b      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [\]^_`aNone!"&3457>IKLNShow the name of type classesShow the name of a type classThe universal class-Dynamic type parameterized on a type universe6Partially witness a type constraint for a reified type,Witness a type constraint for a reified type  Equality on type representations Representation of type a in a type universe t-This type can also be seen as a witness that a is a member of t (i.e.  t a); see .(This class provides reification of type a in a universe t.  t a means that a) is in the type universe represented by t.b-indexed type representationReification of type a in a type universe t Equality on type representations Equality on type representationsType constructor matching. This function makes it possible to match on type representations without dealing with the underlying c representation.For example, to check that a   represents the type a -> Int for some a: is_atoi :: (TypeEq t t, IntType :<: t) => TypeRep t a -> Bool is_atoi t | [E ta, E tb] <- matchCon t , Just _ <- typeEq ta intType = True | otherwise = FalseMonadic version of  matchConM = return . matchCon4 is convenient when matching types in a monad, e.g.: Ldo ... [E ta, E tb] <- matchConM t Dict <- typeEq ta tb ...Default implementation of  for types that have a  instance,Witness a type constraint for a reified type6Partially witness a type constraint for a reified type Witness a  constraint for a reified typePartially witness a  constraint for a reified typeSafe cast (does not use  unsafeCoerce)$Safe generalized cast (does not use  unsafeCoerce) Proxy of  class. Can be passed to  and .  Proxy of d2 class (from the base library). Can be passed to  and .! Proxy of e class. Can be passed to  and ." Proxy of f class. Can be passed to  and .# Proxy of g class. Can be passed to  and .$ Proxy of h class. Can be passed to  and .% Proxy of i class. Can be passed to  and .8  !"#$%&'()*+,-./01234567&  !"#$%8 76 543210/.-,+*)('& !"#$%0    !"#$%&'()*+,-./01234567None!"&3457>IKLNj Match on a k of the form  (t1 ~ t2)l Construct a k of the form (Cl t1 t2 ...)mFThrow an error stating that the given type wasn't declared on the form Ndata SymType sig where ... ThisSym :: SymType (a :-> ... :-> Full x) ...nXGet the arity of a symbol. If the type is not declared according to what is stated for m, o is returned.pConstruct a pattern v q patrConstruct a predicate proxy s :: s PredtA type variable named tu"abc_dfg" -> "abc"8 A version of v that applies u: to each constructor name. That is, e.g. the constructor Int_t :: IntType (Full Int) will be rendered as "Int".9Derive  # instance for a type representation:Derive # instance for a type representation instance Witness Cl t t => Witness Cl Ty t where witSym Con1 Nil = Dict witSym Con2 (a :* b :* Nil) = case wit (Proxy :: Proxy Cl) (TypeRep a) of Dict -> case wit (Proxy :: Proxy Cl) (TypeRep b) of Dict -> Dict;Derive # instance for a type representation instance PWitness Cl t t => PWitness Cl Ty t where pwitSym Con1 Nil = return Dict pwitSym Con2 (a :* b :* Nil) = do Dict <- pwit (Proxy :: Proxy Cl) (TypeRep a) Dict <- pwit (Proxy :: Proxy Cl) (TypeRep b) return Dict<Derive  # instance for a type representation Ginstance Witness Any Ty t where witSym _ _ = Dict witSym _ _ = Dict=Derive  # instance for a type representation Xinstance PWitness Any Ty t where pwitSym _ _ = return Dict pwitSym _ _ = return Dict>Derive  ( Ty)# instance for a type representation instance (Ty :<: t) => Witness (Typeable t) Ty t where witSym Con1 Nil = Dict witSym Con2 (a :* b :* Nil) = case wit (Proxy :: Proxy (Typeable t)) (TypeRep a) of Dict -> case wit (Proxy :: Proxy (Typeable t)) (TypeRep b) of Dict -> Dict?Derive  ( Ty)# instance for a type representation instance (Ty :<: t) => PWitness (Typeable t) Ty t where pwitSym Con1 Nil = return Dict pwitSym Con2 (a :* b :* Nil) = do Dict <- pwit (Proxy :: Proxy (Typeable t)) (TypeRep a) Dict <- pwit (Proxy :: Proxy (Typeable t)) (TypeRep b) return DictjlwxmFunction where error occurredInfo about typenType parameterSymbolpryType predicate (e.g. e or ( t)) Variable for type representationResulttu8 Type name9 Type name: Class name Type name; Class name Type name< Type name= Type name> Type name? Type name89:;<=>?89:;<=>?jlwxmnprytu89:;<=>?None!"&3457>IKLN!@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@ABCDEFGHIJKLMNOP!@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`None!"&3457>IKLNxabcdefghijklmnopqrstuvwxyz{|}~abcdefghijklmnopqrstuxmnklijghefcdabopqrstuvwxy|{z}~qabcdefghijklmnopqrstuvwxyz{|}~None!"&3457>IKLNNone!"&3457>IKLN,        ,          None!"&3457>IKLN !"#$%&'()'&%$#"! () !"#$%&'()None!"&3457>IKLN *+,-./0123 10/.-,+*23 *+,-./0123None!"&3457>IKLN4Sub-universe relationIn general, a universe t is a sub-universe of u if u has the form t1 :+: t2 :+: ... :+: t5/Cast a type representation to a larger universe45z{4545z{ None!"&3457>IKLN+|s}~  !"#$%45    !"#$%45 None!"&3457>IKLN 63Give a function monadic arguments and result type. (6 m) will normally be indexed by (@ a). :FunM m (a -> b -> ... -> Res x) = m a -> m b -> ... -> m x7'Give a function a monadic result type. (7 m) will normally be indexed by (@ a). 6FunM m (a -> b -> ... -> Res x) = a -> b -> ... -> m x<$Witness of the arity of a function. < will normally be indexed by (@ a).? Remove the A( marker at the result type of a function 5FromRes (a -> b -> ... -> Res x) = a -> b -> ... -> x@Put a A( marker at the result type of a function 3ToRes (a -> b -> ... -> x) = a -> b -> ... -> Res xA.Newtype marking the result of a N-ary functionCGet the < of a type. The purpose is to be able to distinguish between functions and non-functions without having to handle all cases of a  .D Prove that ? is the inverse of @E3Attempt to prove that a type is not a function typeF>Lift a function to a similar function with monadic result type 6liftMonadic _ _ f = \a b ... x -> return (f a b ... x)G$Run the result of a monadic function 4runMonadic run _ f = \a b ... x -> run (f a b ... x)H1Compose a function with an N-ary monadic function 1compMonadic f _ g = \a b ... x -> f (g a b ... x)IGLift a function to a similar function with monadic arguments and result hliftMonadic f = \ma mb ... mx -> do a <- ma b <- mb ... x <- mx return (f a b ... x)6789:;<=>?@ABCDEFGHIJKLMNOP6789:;<=>?@ABCDEFGHIAB@?<=>9:;PONMLKJCD8E7FGH6I6789:;<=>?@ABCDEFGHIJKLMNOP None!"&3457>IKLNSInject a symbol in an c2 with a domain decorated by a type representationT&Make a smart constructor of a symbol.  smartSymT has any type of the form: smartSymTR :: (sub :<: AST (sup :&: TypeRep t), Typeable t x) => sub (a :-> b :-> ... :-> Full x) -> (ASTF sup a -> ASTF sup b -> ... -> ASTF sup x)U"Sugared" symbol applicationU has any type of the form: !sugarSymTR :: ( sub :<: AST (sup :&: TypeRep t) , Syntactic a , Syntactic b , ... , Syntactic x , Domain a ~ Domain b ~ ... ~ Domain x , Typeable t (Internal x) ) => sub (Internal a :-> Internal b :-> ... :-> Full (Internal x)) -> (a -> b -> ... -> x)VDefault  for domains of the form ((...    ... )    t)QRSTUVWCan the expression represented by the first argument be shared in the second argument?"Can we hoist over this expression?QRSTUVQRSTUVQRSTUV None!"&3457>IKLNWWW None!"&3457>IKLNXYZZYXXYZNone!"&3457>IKLN[\]^_`a[\]^_`a[\]^_`a[\]^_`a !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0dj12 3 4 5 6 7 8 9 : ; < = > > ? @ A B C D E F G H I J K L M N O P Q R S T U VWXYZ[\]^_`^_abcdefdegbhibjkblmnopqrstbuvw^xyzb{|}~^b{|^_^_^_^_^_^_^_^^^opent_1idvTON59csJkmnYfpmgCZData.TypeRep.RepresentationData.TypeRep.THData.TypeRep.Types.IntWordData.TypeRep.Types.Basic!Data.TypeRep.Types.Basic.TypeableData.TypeRep.Types.Tuple!Data.TypeRep.Types.Tuple.Typeable#Data.TypeRep.Types.IntWord.Typeable Data.TypeRepData.TypeRep.VarArgLanguage.Syntactic.TypeRep*Language.Syntactic.TypeRep.Sugar.BindingTR(Language.Syntactic.TypeRep.Sugar.TupleTR*Language.Syntactic.TypeRep.TupleConversionData.TypeRep.Sub ShowClass showClassAnyDynamicDynPWitnesspwitSymWitnesswitSymTypeEq typeEqSymTypeRep unTypeRepTypeabletypeRep'TRtypeReptypeEqMtypeEqmatchCon matchConMpwitSymDefaultwitpwit witTypeable pwitTypeablecastgcasttoDynfromDynpAny pDataTypeablepEqpOrdpShowpNum pIntegral$fShowClassTypeable$fShowClassIntegral$fShowClassNum$fShowClassShow$fShowClassOrd $fShowClassEq$fShowClassTypeable0$fShowClassAny$fAnya $fShowDynamic $fEqDynamic$fPWitnessp:+:t$fWitnesspASTt$fWitnessp:+:t$fTypeEqEmptyt $fTypeEq:+:t$fSyntacticTypeRep $fShowTypeRepderiveRender_forType deriveTypeEq deriveWitnessderivePWitnessderiveWitnessAnyderivePWitnessAnyderiveWitnessTypeablederivePWitnessTypeable IntWordTypeInt8_tInt16_tInt32_tInt64_tWord8_tWord16_tWord32_tWord64_tint8Type int16Type int32Type int64Type word8Type word16Type word32Type word64Type$fRenderIntWordType$fTypeEqIntWordTypet$fWitnessAnyIntWordTypet$fPWitnessAnyIntWordTypet$fWitnessTypeableIntWordTypet$fWitnessEqIntWordTypet$fWitnessOrdIntWordTypet$fWitnessShowIntWordTypet$fWitnessNumIntWordTypet$fWitnessIntegralIntWordTypet$fPWitnessTypeableIntWordTypet$fPWitnessEqIntWordTypet$fPWitnessOrdIntWordTypet$fPWitnessShowIntWordTypet$fPWitnessNumIntWordTypet$fPWitnessIntegralIntWordTypetFunTypeFun_tListTypeList_t DoubleTypeDouble_t FloatTypeFloat_tIntTypeInt_tCharTypeChar_tBoolTypeBool_tboolTypecharTypeintType floatType doubleTypelistTypefunType$fRenderBoolType$fRenderCharType$fRenderIntType$fRenderFloatType$fRenderFunType$fRenderListType$fRenderDoubleType$fTypeEqBoolTypet$fTypeEqCharTypet$fTypeEqIntTypet$fTypeEqFloatTypet$fTypeEqDoubleTypet$fTypeEqListTypet$fTypeEqFunTypet$fWitnessAnyBoolTypet$fWitnessAnyCharTypet$fWitnessAnyIntTypet$fWitnessAnyFloatTypet$fWitnessAnyDoubleTypet$fWitnessAnyListTypet$fWitnessAnyFunTypet$fPWitnessAnyBoolTypet$fPWitnessAnyCharTypet$fPWitnessAnyIntTypet$fPWitnessAnyFloatTypet$fPWitnessAnyDoubleTypet$fPWitnessAnyListTypet$fPWitnessAnyFunTypet$fWitnessTypeableBoolTypet$fWitnessTypeableCharTypet$fWitnessTypeableIntTypet$fWitnessTypeableFloatTypet$fWitnessTypeableDoubleTypet$fWitnessTypeableListTypet$fWitnessTypeableFunTypet$fPWitnessTypeableBoolTypet$fPWitnessTypeableCharTypet$fPWitnessTypeableIntTypet$fPWitnessTypeableFloatTypet$fPWitnessTypeableDoubleTypet$fPWitnessTypeableListTypet$fPWitnessTypeableFunTypet$fWitnessEqBoolTypet$fWitnessEqCharTypet$fWitnessEqIntTypet$fWitnessEqFloatTypet$fWitnessEqDoubleTypet$fWitnessEqListTypet$fPWitnessEqBoolTypet$fPWitnessEqCharTypet$fPWitnessEqIntTypet$fPWitnessEqFloatTypet$fPWitnessEqDoubleTypet$fPWitnessEqListTypet$fWitnessOrdBoolTypet$fWitnessOrdCharTypet$fWitnessOrdIntTypet$fWitnessOrdFloatTypet$fWitnessOrdDoubleTypet$fWitnessOrdListTypet$fPWitnessOrdBoolTypet$fPWitnessOrdCharTypet$fPWitnessOrdIntTypet$fPWitnessOrdFloatTypet$fPWitnessOrdDoubleTypet$fPWitnessOrdListTypet$fWitnessShowBoolTypet$fWitnessShowCharTypet$fWitnessShowIntTypet$fWitnessShowFloatTypet$fWitnessShowDoubleTypet$fWitnessShowListTypet$fPWitnessShowBoolTypet$fPWitnessShowCharTypet$fPWitnessShowIntTypet$fPWitnessShowFloatTypet$fPWitnessShowDoubleTypet$fPWitnessShowListTypet$fWitnessNumIntTypet$fWitnessNumFloatTypet$fWitnessNumDoubleTypet$fPWitnessNumIntTypet$fPWitnessNumFloatTypet$fPWitnessNumDoubleTypet$fWitnessIntegralIntTypet$fPWitnessIntegralFunTypet$fPWitnessIntegralListTypet$fPWitnessIntegralDoubleTypet$fPWitnessIntegralFloatTypet$fPWitnessIntegralCharTypet$fPWitnessIntegralBoolTypet$fPWitnessNumFunTypet$fPWitnessNumListTypet$fPWitnessNumCharTypet$fPWitnessNumBoolTypet$fPWitnessShowFunTypet$fPWitnessOrdFunTypet$fPWitnessEqFunTypet$fPWitnessIntegralIntTypet$fTypeablet(->) $fTypeablet[]$fTypeabletDouble$fTypeabletFloat$fTypeabletInt$fTypeabletChar$fTypeabletBool TupleTypeTup2_tTup3_tTup4_tTup5_tTup6_tTup7_tTup8_tTup9_tTup10_tTup11_tTup12_tTup13_tTup14_tTup15_ttup2Typetup3Typetup4Typetup5Typetup6Typetup7Typetup8Typetup9Type tup10Type tup11Type tup12Type tup13Type tup14Type tup15TypetupWidth$fRenderTupleType$fTypeEqTupleTypet$fWitnessAnyTupleTypet$fWitnessTypeableTupleTypet$fWitnessEqTupleTypet$fWitnessOrdTupleTypet$fWitnessShowTupleTypet$fPWitnessAnyTupleTypet$fPWitnessTypeableTupleTypet$fPWitnessEqTupleTypet$fPWitnessOrdTupleTypet$fPWitnessIntegralTupleTypet$fPWitnessNumTupleTypet$fPWitnessShowTupleTypet$fTypeablet(,,,,,,,,,,,,,,)$fTypeablet(,,,,,,,,,,,,,)$fTypeablet(,,,,,,,,,,,,)$fTypeablet(,,,,,,,,,,,)$fTypeablet(,,,,,,,,,,)$fTypeablet(,,,,,,,,,)$fTypeablet(,,,,,,,,)$fTypeablet(,,,,,,,)$fTypeablet(,,,,,,)$fTypeablet(,,,,,)$fTypeablet(,,,,)$fTypeablet(,,,)$fTypeablet(,,)$fTypeablet(,)$fTypeabletWord64$fTypeabletWord32$fTypeabletWord16$fTypeabletWord8$fTypeabletInt64$fTypeabletInt32$fTypeabletInt16$fTypeabletInt8 SubUniverseweakenUniverseFunM2FunM NonFunctionVarArgaritySym fromResInvSymArityFunResFunArgFromResToResResarity fromResInv nonFunction liftMonadic runMonadic compMonadic liftMonadic2$fVarArgFunType$fVarArgListType$fVarArgFloatType$fVarArgIntType$fVarArgCharType$fVarArgBoolType $fVarArg:+:mkVarSymmkLamSyminjTR smartSymTR sugarSymTRdefaultInterfaceTypeRep$fSyntactic(->)$fSyntactic(,,,)$fSyntactic(,,)$fSyntactic(,)sel1sel2sel3sel4tup2tup3tup4synta_DNJYZBnaVFqIY5rXRJCBk7Language.Syntactic.SyntaxFullASTbaseData.Typeable.Internalghc-prim GHC.ClassesEqOrdGHC.ShowShowGHC.NumNumGHC.RealIntegral viewEqPredtemplate-haskellLanguage.Haskell.TH.SyntaxPred mkClassPred errorDerivesymArityGHC.BaseNothingargConsPLanguage.Syntactic.Traversal:* mkPredProxy Data.ProxyProxytVartypeNameLanguage.Syntactic.TH deriveRender tyVarNameindentsupport$fSubUniversesubsup$fSubUniversettconst_BbQ8QtIow526LwixdaWUyXData.ConstraintDict:+:prjProjectinj:<:E%Language.Syntactic.Functional.SharingCodeMotionInterfaceLanguage.Syntactic.FunctionalBindingTLanguage.Syntactic.Decoration:&: