Skip to content

jcpetruzza/barbies

Repository files navigation

barbies Build Status

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