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

Language | Haskell2010 |

## Synopsis

- type WithSpecificDomain dom r = (HasSpecificDomain dom r, dom ~ GetDomain dom r)
- type WithSingleDomain dom r = (HasSingleDomain r, dom ~ GetDomain r)

# Documentation

type WithSpecificDomain dom r = (HasSpecificDomain dom r, dom ~ GetDomain dom r) Source #

Type that forces *dom* to be present in *r* at least once. Will resolve to
a type error if it doesn't. It will always fail if given *dom* is completely
polymorphic and can't be tied to *r* in any way.

type WithSingleDomain dom r = (HasSingleDomain r, dom ~ GetDomain r) Source #

Type that forces *dom* to be the same in all subtypes of *r* that might
contain a domain. If given a polymorphic domain not tied to *r*, GHC will
be allowed to infer that that domain is equal to the one in *r* on the
condition that *r* contains just a single domain.