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 f`Int`

, f2 ::`Wear`

t f`Bool`

}

This gives rise to two rather different types:

`B`

is a normal Barbie-type, in the sense that`Covered`

f`f1 :: B`

, etc.`Covered`

f -> f`Int`

`B`

, on the other hand, is a normal record with no functor around the type:`Bare`

f

B { f1 :: 5, f2 =`True`

} :: B`Bare`

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