Safe Haskell | None |
---|---|
Language | Haskell2010 |
Deprecated: Use Barbies.Bare
Bare values
type family Wear t f a where ... Source #
The
Wear
type-function allows one to define a Barbie-type as
data B t f = B { f1 ::Wear
t fInt
, f2 ::Wear
t fBool
}
This gives rise to two rather different types:
-
B
is a normal Barbie-type, in the sense thatCovered
ff1 :: B
, etc.Covered
f -> fInt
-
B
, on the other hand, is a normal record with no functor around the type:Bare
f
B { f1 :: 5, f2 =True
} :: BBare
f
Covering and stripping
class FunctorB (b Covered ) => BareB b where Source #
Class of Barbie-types defined using
Wear
and can therefore
have
Bare
versions. Must satisfy:
bcover
.bstrip
=id
bstrip
.bcover
=id
Nothing