barbies: Classes for working with types that can change clothes.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

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.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.1, 0.1.2.0, 0.1.3.0, 0.1.3.1, 0.1.4.0, 1.0.0.0, 1.1.0.0, 1.1.1.0, 1.1.2.0, 1.1.2.1, 1.1.3.0, 2.0.0.0, 2.0.1.0, 2.0.2.0, 2.0.3.0, 2.0.3.1, 2.0.4.0, 2.0.4.0, 2.0.5.0, 2.1.0.0, 2.1.1.0
Change log ChangeLog.md
Dependencies base (>=4.11 && <5), distributive, transformers [details]
License BSD-3-Clause
Copyright 2018 Daniel Gorin
Author Daniel Gorin
Maintainer jcpetruzza@gmail.com
Category Data Structures
Home page https://github.com/jcpetruzza/barbies#readme
Bug tracker https://github.com/jcpetruzza/barbies/issues
Source repo head: git clone https://github.com/jcpetruzza/barbies
Uploaded by DanielGorin at 2022-12-16T19:38:05Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for barbies-2.0.4.0

[back to package description]

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.