quickspec-0.9.6: Equational laws for free!

Safe HaskellSafe-Inferred



A wrapper around Typeable, to work around:

  1. The lack of an Ord instance in older GHCs,
  2. bug #5962 in new GHCs.



class Typeable a

The class Typeable allows a concrete representation of a type to be calculated.


Typeable Bool 
Typeable Char 
Typeable Double 
Typeable Float 
Typeable Int 
Typeable Int8 
Typeable Int16 
Typeable Int32 
Typeable Int64 
Typeable Integer 
Typeable Ordering 
Typeable RealWorld 
Typeable Word 
Typeable Word8 
Typeable Word16 
Typeable Word32 
Typeable Word64 
Typeable () 
Typeable Handle 
Typeable Handle__ 
Typeable E0 
Typeable E1 
Typeable E2 
Typeable E3 
Typeable E6 
Typeable E9 
Typeable E12 
Typeable PatternMatchFail 
Typeable RecSelError 
Typeable RecConError 
Typeable RecUpdError 
Typeable NoMethodError 
Typeable NonTermination 
Typeable NestedAtomically 
Typeable BlockedIndefinitelyOnMVar 
Typeable BlockedIndefinitelyOnSTM 
Typeable Deadlock 
Typeable AssertionFailed 
Typeable AsyncException 
Typeable ArrayException 
Typeable ExitCode 
Typeable CChar 
Typeable CSChar 
Typeable CUChar 
Typeable CShort 
Typeable CUShort 
Typeable CInt 
Typeable CUInt 
Typeable CLong 
Typeable CULong 
Typeable CLLong 
Typeable CULLong 
Typeable CFloat 
Typeable CDouble 
Typeable CPtrdiff 
Typeable CSize 
Typeable CWchar 
Typeable CSigAtomic 
Typeable CClock 
Typeable CTime 
Typeable CUSeconds 
Typeable CSUSeconds 
Typeable CIntPtr 
Typeable CUIntPtr 
Typeable CIntMax 
Typeable CUIntMax 
Typeable IOException 
Typeable TypeRep 
Typeable TyCon 
Typeable LocalTime 
Typeable ZonedTime 
Typeable UTCTime 
Typeable NominalDiffTime 
Typeable Day 
Typeable Sig 
Typeable Two 
Typeable C 
Typeable B 
Typeable A 
(Typeable1 s, Typeable a) => Typeable (s a)

One Typeable instance for all Typeable1 instances

class Typeable1 t

Variant for unary type constructors

class Typeable2 t

Variant for binary type constructors


Typeable2 (->) 
Typeable2 Either 
Typeable2 (,) 
Typeable2 ST 
Typeable2 UArray 
Typeable2 Array 
Typeable2 IOArray 
Typeable2 STRef 
Typeable2 Map 
(Typeable3 s, Typeable a) => Typeable2 (s a)

One Typeable2 instance for all Typeable3 instances

cast :: (Typeable a, Typeable b) => a -> Maybe bSource

gcast :: (Typeable a, Typeable b) => c a -> Maybe (c b)Source