@hackage barbies-layered0.1.0.0

Barbies with layered clothes.

barbies-layered

Hackage

CI

Sponsor

This is like barbies but these clothes are layered.

For example when there is a following data type,

data Foo = Foo { foo :: [Int] }

barbies requires a following.

data Foo f = Foo { foo :: f [Int] }

But in case of barbies-layered,

data Foo f = Foo { foo :: f [f Int] }

A typical difference is a type of bmap.

-- barbies
type FunctorB :: ((k -> Type) -> Type) -> Constraint
class FunctorB b where
  bmap :: (forall a. f a -> g a) -> b f -> b g

-- barbies-layered
type FunctorB :: ((Type -> Type) -> Type) -> Constraint
class FunctorB b where
  bmap :: (Functor f, Functor g) => (forall a. f a -> g a) -> b f -> b g