Safe Haskell | Safe-Infered |
---|
This module contains a type-level combinator for combining constraint constructors.
This is useful because you can't otherwise write an
type or Exists
instance referencing more than one at the same time.
Existential
Documentation
class (c a, d a) => (c :&: d) a Source
Combine two constraint constructors of kind χ ->
, where Constraint
χ
is any kind.
This is the same as
type (c :&: d) a = (c a, d a)
except that it can be partially applied.
f :: ((Eq :&: Enum :&: Bounded) a) => a -> Bool
is equivalent to
f :: (Eq a, Enum a, Bounded a) => a -> Bool
(c a, d a) => (k :&: c) d a |