Data.Constraint.Forall

constraints-0.3.2: Constraint manipulation

Copyright | (C) 2011-2012 Edward Kmett,
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | experimental
Portability | non-portable
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Constraint.Forall

Description

Synopsis

- type Forall p = (p A, p B)
- inst :: forall p a. Forall p :- p a
- type ForallF p f = (p (f A), p (f B))
- instF :: forall p f a. ForallF p f :- p (f a)
- type Forall1 p = (p F, p M)
- inst1 :: forall p f. Forall1 p :- p f
- type ForallT p t = (p (t F A), p (t M B))
- instT :: forall p t f a. ForallT p t :- p (t f a)

# Documentation

type Forall p = (p A, p B)

A quantified constraint

inst :: forall p a. Forall p :- p a

instantiate a quantified constraint on kind `*`

type ForallF p f = (p (f A), p (f B))

instF :: forall p f a. ForallF p f :- p (f a)

type Forall1 p = (p F, p M)

inst1 :: forall p f. Forall1 p :- p f

instantiate a quantified constraint on kind `* -> *`

type ForallT p t = (p (t F A), p (t M B))

instT :: forall p t f a. ForallT p t :- p (t f a)