Safe Haskell | None |
---|---|

Language | Haskell2010 |

Support for operating on Barbie-types with constrained functions.

# Instance dictionaries

is evidence that there exists an instance of `Dict`

c a`c a`

.

It is essentially equivalent to `Dict (c a)`

from the
constraints package,
but because of its kind, it allows us to define things like

.`Dict`

`Show`

requiringDict :: (c a => r) -> Dict c a -> r Source #

Turn a constrained-function into an unconstrained one that uses the packed instance dictionary instead.

# Getting constraints

class c (f a) => ClassF c f a Source #

`ClassF`

has one universal instance that makes

equivalent to `ClassF`

c f a`c (f a)`

. However, we have

`'ClassF c f :: k -> ``Constraint`

This is useful since it allows to define constraint-constructors like
`ClassF`

`Monoid`

`Maybe`

## Instances

c (f a) => ClassF (c :: k2 -> Constraint) (f :: k1 -> k2) (a :: k1) Source # | |

Defined in Barbies.Internal.Dicts |

class c (f a) (g a) => ClassFG c f g a Source #

Like `ClassF`

but for binary relations.

## Instances

c (f a) (g a) => ClassFG (c :: k2 -> k3 -> Constraint) (f :: k1 -> k2) (g :: k1 -> k3) (a :: k1) Source # | |

Defined in Barbies.Internal.Dicts |