parameterized-utils-2.1.10.0: Classes and data structures for working with data-kind indexed types
Safe HaskellNone
LanguageHaskell2010

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) #

(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 #

show :: PairRepr f g p -> String #

showList :: [PairRepr f g p] -> ShowS #

(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 #

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

(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 #

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

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

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

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

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

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

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 #