Description
Classes for working with types that can change clothes.
Description
Types that are parametric on a functor are like Barbies that have an outfit for each role. This package provides the basic abstractions to work with them comfortably.
README.md
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
- barbies-th: Use Template Haskell to derive barbie-types from declarations that look like normal types.
- higgledy: Use Generics to give a barbie-type interface to a normal type.
- harg: Program-configuration (from command-line arguments, environment variables, configuration files, etc) via barbie-types.