I checked on hackage, and most packages providing type level functionality live in the Data
hierarchy, under Data.Type
, Data.TypeLevel
or the like, or sometimes Data.Number.Etc.TypeLevel
. There are a few exceptions though.
The type-level-natural-number package lives under TypeLevel: http://hackage.haskell.org/package/type-level-natural-number
The tfp package lives under Types: http://hackage.haskell.org/package/tfp
A number of nicolas frisby's packages live under Type: http://hackage.haskell.org/package/type-booleans and http://hackage.haskell.org/package/type-cereal for example.
So there's no consensus at the moment, apparently. Personally I think Types
is the appropriate place for all this stuff to go, but as is usual with the Haskell community, everything ends to end up in Data
.
The perils of a language where nearly everything is first class, I suppose :-)
You can see some, but not all, of the type-level packages in the "Type System" category on hackage: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:type%20system