mirror of
https://github.com/jcpetruzza/barbies.git
synced 2024-10-03 21:28:35 +03:00
not really known
856bc3d3cc
Fixes #52 |
||
---|---|---|
src | ||
test | ||
.gitignore | ||
.travis.yml | ||
barbies.cabal | ||
ChangeLog.md | ||
LICENSE | ||
README.md | ||
Setup.hs | ||
shell.nix | ||
stack-ghc-844.yaml | ||
stack-ghc-865.yaml | ||
stack-ghc-883.yaml | ||
stack-ghc-901.yaml | ||
stack-ghc-924.yaml | ||
stack-ghc-8104.yaml | ||
stack.yaml |
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