barbies

Types that are parametric on unary type-constructors that control their shapes are like Barbies that can wear different clothes to become a different doll. This is a common Haskell-idiom. E.g.,

data Person f = Person { name :: f String , age :: f Int } b1 :: Person Last -- Barbie with a monoid structure b2 :: Person (Const a) -- container Barbie b3 :: Person Identity -- Barbie's new clothes

This package provides basic classes and abstractions to work with these types and easily transform them. See the docs to learn more.

Related packages