not really known
Go to file
Daniel Gorin 856bc3d3cc Fix typo in docs
Fixes #52
2024-04-08 20:38:19 +01:00
src Fix typo in docs 2024-04-08 20:38:19 +01:00
test Add FlexibleContexts to tests to make them compile on ghc 9.2 2022-01-05 17:27:59 +00:00
.gitignore .gitignore: ignore some cabal-generated files 2024-01-13 13:39:23 +00:00
.travis.yml Add ghc 9.2.4 to ci 2022-09-28 21:24:40 +01:00
barbies.cabal Bump to 2.1.1.0 2024-01-13 13:42:59 +00:00
ChangeLog.md Document export changes in 2.1.1.0 2024-01-13 13:39:23 +00:00
LICENSE Amend LICENSE file 2020-10-19 00:04:40 +01:00
README.md Update README file 2020-01-12 10:09:23 +00:00
Setup.hs Initial version 2018-04-29 15:31:56 +00:00
shell.nix Add a shell.nix and gitignore .envrc 2020-11-15 13:49:13 +00:00
stack-ghc-844.yaml Update build matrix 2019-03-31 20:29:13 +00:00
stack-ghc-865.yaml CI: Test against ghc 8.6.5 2019-09-25 20:14:48 +00:00
stack-ghc-883.yaml Use lts 16.8 for ghc 8.8.x 2020-08-08 14:51:41 +01:00
stack-ghc-901.yaml Add a stack.yaml for ghc-9.0.1 2021-04-14 00:51:25 +01:00
stack-ghc-924.yaml Add ghc 9.2.4 to ci 2022-09-28 21:24:40 +01:00
stack-ghc-8104.yaml Run by default on ghc 8.10.4 2021-04-14 00:48:18 +01:00
stack.yaml Add ghc 9.2.4 to ci 2022-09-28 21:24:40 +01:00

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.

  • 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