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.