6

それで、私がHaskellでタイプレベルのプログラムを書いたとしましょう:

type family NAryFn (n::Nat) (dom::*) (cod::*) :: *
type instance NAryFn Ze dom cod = cod
type instance NAryFn (Su n) dom cod = dom -> NAryFn n dom cod

これは便利だと思います。プロジェクト全体で使用したいと思います。だから私はそれをモジュールに入れました。

モジュールの適切な階層名は何でしょうか?(Haskell階層モジュールを参照)

多くのデータ構造がDataData.TextData.Listなど)に存在し、効果を構造化するさまざまな方法がまたはControlなどにあります。Control.MonadControl.Applicative

タイプレベルのプログラムはどこにあるべきですか? TypeTypeFamily?コンセンサスはまだ発達していますか?

4

1 に答える 1

1

私はハッキングをチェックしましたが、タイプレベルの機能を提供するほとんどのパッケージは、Data階層内、下などData.TypeData.TypeLevelまたは場合によっては存在しData.Number.Etc.TypeLevelます。ただし、いくつかの例外があります。

type-level-natural-numberパッケージはTypeLevelの下にあります:http://hackage.haskell.org/package/type-level-natural-number

tfpパッケージはTypesの下にあります:http://hackage.haskell.org/package/tfp

多くのnicolasfrisbyのパッケージはTypeの下にあります:http://hackage.haskell.org/package/type-booleanshttp://hackage.haskell.org/package/type-cerealなど

したがって、現時点ではコンセンサスはないようです。個人的には、これらすべてのものを移動するのに適切な場所だと思いますTypesが、Haskellコミュニティではいつものように、すべてがで終わることになりDataます。

ほとんどすべてがファーストクラスである言語の危険性、私は推測します:-)

すべてではありませんが、ハッキングの「型システム」カテゴリにあるタイプレベルのパッケージの一部を見ることができます:http://hackage.haskell.org/packages/archive/pkg-list.html#cat:type%20system

于 2013-03-08T17:13:48.390 に答える