Safe HaskellNone

AOP.Internal.PolyTypeable

Documentation

data TVar a

Instances

(HIndex a g0 n, MyTypeable'' n g0 gout (TVar a)) => MyTypeable' g0 gout (TVar a) 
HLen g0 n1 => MyTypeable'' Z g0 (HCons a g0) (TVar a) 
Nat n => MyTypeable'' (S n) g0 g0 (TVar a) 

data TCon0 c

Instances

Typeable a => MyTypeable' g0 g0 (TCon0 a) 
LeastGen' (TCon0 a) (TCon0 a) a s0 s0 

data TCon1 c a1

Instances

(Typeable1 c, MyTypeable' g0 g1 a1) => MyTypeable' g0 g1 (TCon1 c a1) 
(LeastGen' a1 b1 c1 s0 s1, ~ * (d c1) c) => LeastGen' (TCon1 d a1) (TCon1 d b1) c s0 s1 

data TCon2 c a1 a2

Instances

(Typeable2 c, MyTypeable' g0 g a1, MyTypeable' g g2 a2) => MyTypeable' g0 g2 (TCon2 c a1 a2) 
(LeastGen' a1 b1 c1 s0 s1, LeastGen' a2 b2 c2 s1 s2, ~ * (d c1 c2) c) => LeastGen' (TCon2 d a1 a2) (TCon2 d b1 b2) c s0 s2 

data TCon3 c a1 a2 a3

Instances

(Typeable3 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3) => MyTypeable' g0 g3 (TCon3 c a1 a2 a3) 
(LeastGen' a1 b1 c1 s0 s1, LeastGen' a2 b2 c2 s1 s2, LeastGen' a3 b3 c3 s2 s3, ~ * (d c1 c2 c3) c) => LeastGen' (TCon3 d a1 a2 a3) (TCon3 d b1 b2 b3) c s0 s3 

data TCon4 c a1 a2 a3 a4

Instances

(Typeable4 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3, MyTypeable' g3 g4 a4) => MyTypeable' g0 g4 (TCon4 c a1 a2 a3 a4) 
(LeastGen' a1 b1 c1 s0 s1, LeastGen' a2 b2 c2 s1 s2, LeastGen' a3 b3 c3 s2 s3, LeastGen' a4 b4 c4 s3 s4, ~ * (d c1 c2 c3 c4) c) => LeastGen' (TCon4 d a1 a2 a3 a4) (TCon4 d b1 b2 b3 b4) c s0 s4 

data TCon5 c a1 a2 a3 a4 a5

Instances

(Typeable5 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3, MyTypeable' g3 g4 a4, MyTypeable' g4 g5 a5) => MyTypeable' g0 g5 (TCon5 c a1 a2 a3 a4 a5) 
(LeastGen' a1 b1 c1 s0 s1, LeastGen' a2 b2 c2 s1 s2, LeastGen' a3 b3 c3 s2 s3, LeastGen' a4 b4 c4 s3 s4, LeastGen' a5 b5 c5 s4 s5, ~ * (d c1 c2 c3 c4 c5) c) => LeastGen' (TCon5 d a1 a2 a3 a4 a5) (TCon5 d b1 b2 b3 b4 b5) c s0 s5 

class Analyze a b | a -> b

Instances

~ * r (TCon0 Bool) => Analyze Bool r 
~ * r (TCon0 Char) => Analyze Char r 
~ * r (TCon0 Double) => Analyze Double r 
~ * r (TCon0 Float) => Analyze Float r 
~ * r (TCon0 Int) => Analyze Int r 
~ * r (TCon0 Int8) => Analyze Int8 r 
~ * r (TCon0 Int16) => Analyze Int16 r 
~ * r (TCon0 Int32) => Analyze Int32 r 
~ * r (TCon0 Int64) => Analyze Int64 r 
~ * r (TCon0 Integer) => Analyze Integer r 
~ * r (TCon0 Ordering) => Analyze Ordering r 
~ * r (TCon0 Word8) => Analyze Word8 r 
~ * r (TCon0 Word16) => Analyze Word16 r 
~ * r (TCon0 Word32) => Analyze Word32 r 
~ * r (TCon0 Word64) => Analyze Word64 r 
~ * r (TCon0 ()) => Analyze () r 
~ * r (TVar a) => Analyze a r 
(Analyze a1 ra1, ~ * r (TCon1 c ra1)) => Analyze (c a1) r 
(Analyze a1 ra1, Analyze a2 ra2, ~ * r (TCon2 c ra1 ra2)) => Analyze (c a1 a2) r 
(Analyze a1 ra1, Analyze a2 ra2, Analyze a3 ra3, ~ * r (TCon3 c ra1 ra2 ra3)) => Analyze (c a1 a2 a3) r 
(Analyze a1 ra1, Analyze a2 ra2, Analyze a3 ra3, Analyze a4 ra4, ~ * r (TCon4 c ra1 ra2 ra3 ra4)) => Analyze (c a1 a2 a3 a4) r 
(Analyze a1 ra1, Analyze a2 ra2, Analyze a3 ra3, Analyze a4 ra4, Analyze a5 ra5, ~ * r (TCon5 c ra1 ra2 ra3 ra4 ra5)) => Analyze (c a1 a2 a3 a4 a5) r 

analyze :: Analyze a b => a -> b

class PolyTypeable a where

Methods

polyTypeOf :: a -> TypeRep

Instances

(Analyze a result, MyTypeable' HNil gout result) => PolyTypeable a 
PolyTypeable Unique 

class MyTypeable' g0 gout classification | g0 classification -> gout where

Methods

mytypof' :: g0 -> classification -> (TypeRep, gout)

Instances

(HIndex a g0 n, MyTypeable'' n g0 gout (TVar a)) => MyTypeable' g0 gout (TVar a) 
Typeable a => MyTypeable' g0 g0 (TCon0 a) 
(Typeable1 c, MyTypeable' g0 g1 a1) => MyTypeable' g0 g1 (TCon1 c a1) 
(Typeable2 c, MyTypeable' g0 g a1, MyTypeable' g g2 a2) => MyTypeable' g0 g2 (TCon2 c a1 a2) 
(Typeable3 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3) => MyTypeable' g0 g3 (TCon3 c a1 a2 a3) 
(Typeable4 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3, MyTypeable' g3 g4 a4) => MyTypeable' g0 g4 (TCon4 c a1 a2 a3 a4) 
(Typeable5 c, MyTypeable' g0 g1 a1, MyTypeable' g1 g2 a2, MyTypeable' g2 g3 a3, MyTypeable' g3 g4 a4, MyTypeable' g4 g5 a5) => MyTypeable' g0 g5 (TCon5 c a1 a2 a3 a4 a5) 

class MyTypeable'' n g0 gout classification | n g0 classification -> gout where

Methods

mytypof'' :: n -> g0 -> classification -> (TypeRep, gout)

Instances

HLen g0 n1 => MyTypeable'' Z g0 (HCons a g0) (TVar a) 
Nat n => MyTypeable'' (S n) g0 g0 (TVar a) 

mkany :: Nat n => n -> TypeRep

class Nat n => HIndex x l n | x l -> n

Instances

HIndex x HNil Z 
(Nat n, TypeEq x a f, HIndex' f x (HCons a l) n) => HIndex x (HCons a l) n 

class HIndex' f x l n | f x l -> n

Instances

HLen l n => HIndex' HTrue x l n 
HIndex x l n => HIndex' HFalse x (HCons a l) n 

class Nat n => HLen l n | l -> n

Instances

HLen HNil Z 
HLen l n => HLen (HCons a l) (S n) 

data Z

Instances

Nat Z 
HLen HNil Z 
HIndex x HNil Z 
HLen g0 n1 => MyTypeable'' Z g0 (HCons a g0) (TVar a) 

data S a

Instances

Nat a => Nat (S a) 
Nat n => MyTypeable'' (S n) g0 g0 (TVar a) 
HLen l n => HLen (HCons a l) (S n) 

class Nat a where

Methods

nat :: a -> Int

Instances

Nat Z 
Nat a => Nat (S a) 

data HTrue

Instances

HLen l n => HIndex' HTrue x l n 

data HFalse

Instances

TypeEq'' () x y HFalse 
HIndex x l n => HIndex' HFalse x (HCons a l) n 

data HNil

Constructors

HNil 

Instances

data HCons a b

Constructors

HCons a b 

Instances

HIndex x l n => HIndex' HFalse x (HCons a l) n 
HLen g0 n1 => MyTypeable'' Z g0 (HCons a g0) (TVar a) 
(Nat n, TypeEq x a f, HIndex' f x (HCons a l) n) => HIndex x (HCons a l) n 
HLen l n => HLen (HCons a l) (S n) 

class TypeEq' () x y b => TypeEq x y b | x y -> b where

Methods

type'eq :: x -> y -> b

Instances

TypeEq' () x y b => TypeEq x y b 

class TypeEq' q x y b | q x y -> b

Instances

~ * b HTrue => TypeEq' () x x b 
TypeEq'' q x y b => TypeEq' q x y b 

class TypeEq'' q x y b | q x y -> b

Instances

TypeEq'' () x y HFalse