So let's say I wrote some level-level program in 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
I think this is useful, and I want to use it throughout my project. So I put it in a module.
What would be a good hierarchical name for a module? (cf Haskell Hierarchical Modules )
Many data structures live in Data ( Data.Text , Data.List , etc.), various methods of structuring effects are in Control , for example, Control.Monad or Control.Applicative .
Where should programs work at the level level? Type ? TypeFamily ? Is consensus reached?
source share