parameterized-utils-2.1.11.0: Classes and data structures for working with data-kind indexed types

Safe Haskell | None
Language | Haskell2010

Data.Parameterized.DataKind

# Documentation

data PairRepr (f :: k1 -> Type) (g :: k2 -> Type) (p :: (k1, k2)) where Source #

Constructors

PairRepr :: forall {k1} {k2} (f :: k1 -> Type) (a :: k1) (g :: k2 -> Type) (b :: k2). f a -> g b -> PairRepr f g '(a, b) |

#### Instances

Instances details

(TestEquality f, TestEquality g) => TestEquality (PairRepr f g :: (k1, k2) -> Type) Source # |
Instance details Defined in Data.Parameterized.DataKind Methods testEquality :: forall (a :: (k1, k2)) (b :: (k1, k2)). PairRepr f g a -> PairRepr f g b -> Maybe (a :~: b) Source #
(EqF f, EqF g) => EqF (PairRepr f g :: (k1, k2) -> Type) Source # |
Instance details Defined in Data.Parameterized.DataKind Methods eqF :: forall (a :: (k1, k2)). PairRepr f g a -> PairRepr f g a -> Bool Source #
(OrdF f, OrdF g) => OrdF (PairRepr f g :: (k1, k2) -> Type) Source # |

Instance details

Defined in Data.Parameterized.DataKind

Methods

compareF :: forall (x :: (k1, k2)) (y :: (k1, k2)). PairRepr f g x -> PairRepr f g y -> OrderingF x y Source #

leqF :: forall (x :: (k1, k2)) (y :: (k1, k2)). PairRepr f g x -> PairRepr f g y -> Bool Source #

ltF :: forall (x :: (k1, k2)) (y :: (k1, k2)). PairRepr f g x -> PairRepr f g y -> Bool Source #

geqF :: forall (x :: (k1, k2)) (y :: (k1, k2)). PairRepr f g x -> PairRepr f g y -> Bool Source #

gtF :: forall (x :: (k1, k2)) (y :: (k1, k2)). PairRepr f g x -> PairRepr f g y -> Bool Source #

(ShowF f, ShowF g) => ShowF (PairRepr f g :: (k1, k2) -> Type) Source # |
Instance details Defined in Data.Parameterized.DataKind Methods withShow :: forall p q (tp :: (k1, k2)) a. p (PairRepr f g) -> q tp -> (Show (PairRepr f g tp) => a) -> a Source # showF :: forall (tp :: (k1, k2)). PairRepr f g tp -> String Source # showsPrecF :: forall (tp :: (k1, k2)). Int -> PairRepr f g tp -> String -> String Source #
(ShowF f, ShowF g) => Show (PairRepr f g p) Source # |
Instance details Defined in Data.Parameterized.DataKind Methods showsPrec :: Int -> PairRepr f g p -> ShowS Source # show :: PairRepr f g p -> String Source # showList :: [PairRepr f g p] -> ShowS Source #
(Eq (f a), Eq (g b)) => Eq (PairRepr f g '(a, b)) Source # |
Instance details Defined in Data.Parameterized.DataKind Methods (==) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source # (/=) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source #
(Ord (f a), Ord (g b)) => Ord (PairRepr f g '(a, b)) Source # |

Instance details

Defined in Data.Parameterized.DataKind

Methods

compare :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Ordering Source #

(<) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source #

(<=) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source #

(>) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source #

(>=) :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> Bool Source #

max :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> PairRepr f g '(a, b) Source #

min :: PairRepr f g '(a, b) -> PairRepr f g '(a, b) -> PairRepr f g '(a, b) Source #

type family Fst (pair :: (k1, k2)) :: k1 where ... Source #

Equations

Fst ('(a, _1) :: (k1, k2)) = a |

type family Snd (pair :: (k1, k2)) :: k2 where ... Source #

Equations

Snd ('(_1, b) :: (k1, k2)) = b |

fst :: forall {k1} {k2} f (g :: k2 -> Type) (p :: (k1, k2)). PairRepr f g p -> f (Fst p) Source #

snd :: forall {k1} {k2} (f :: k1 -> Type) g (p :: (k1, k2)). PairRepr f g p -> g (Snd p) Source #