T4D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&'+,-016;<=>?AFKQSTV])Ideally, it will be 'Map Succ' Last elementFindType types First elementUnicode flipped alias for ,Find a type associated to the specified key.Make the result more readable A readable type search result   k v xs is essentially identical to  (k :> v) " xs , but the type v is inferred from k and xs.A synonym for ()The kind of key-value pairsx is a member of xsThe position of x in the type level set xs.get the position as an . Generates a 2 that corresponds to the given ordinal (0-origin).Remember that  Member xs x from . Make up a  from an integer./Embodies a type equivalence to ensure that the  points the first element. Compare two s. There is no  of an empty list.The  points the first elementThe next membership/ !"#$%&'()*     +,-0(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&'+,-16;<=FKQSTV-X(*)+,-.()*+,-.()**5(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&'+,-16;<=FKQSTV2/Reifies the structure of Isos3 3 :: Getter s a -> s -> a4 4& :: Getter s a -> (a -> r) -> (s -> r)5 5* :: Setter s t a b -> (a -> b) -> (s -> t)6"Recover tho functions from an Iso/7 7 :: AReview s a -> a -> s /01234567 213456/07/0(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-013456;<=FKQSTV;9Poly-kinded product;Poly-kinded Const>Poly-kinded compositionA&The extensible data types should take k -> *T as a parameter. This class allows us to take a shortcut for direct representation.BB h v! is the actual representation of h v.CThis is an isomorphism between h v and B h v. !_Wrapper :: Iso' (h v) (Repr h v)DRestricted version of C.. It is useful for eliminating ambiguousness.EWrap a result of . 9:;<=>?@ABCDE ABCD;<=>?@E9:9:;<=>?@ABC(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTVG t<HACK: Without this, the constraints are not propagated well.uEvery element in xs satisfies cvEnumerate all possible s of xs with an additional context.x(Every type-level list is an instance of x.yEnumerate all possible s of xs.z Count the number of memberships.{ Enumerate s and construct an (.|This class allows us to use ~ for both sums and products.Accessor for an element.Like %, but reckon membership from its key.-Access a specified element through a wrapper.$Access an element through a wrapper.>Access an element specified by the key type through a wrapper.% tuvwxyz{|}~&|}~xyz{uvwt  uvwxyz{|}~(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-016;<=>?FKQSTVdOjThe extensible sum type (:|) :: (k -> *) -> [k] -> *Change the wrapper.O(1) lift a value."Try to extract something you want."Try to extract something you want.O(1) Naive pattern matchThere is no empty union.&Embed a value, but focuses on its key. 1(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None%&'+,-16;<=>?DFKQSTV`Concatenate type level lists The type of extensible products. (:*) :: (k -> *) -> [k] -> *A pointer to an element in a .Mutable type-indexed struct.Write a value in a .Read a value from a ."Atomically modify an element in a .Strict version of .*Apply a function to an element atomically.Strict version of .Get a  from a name. Create a new  using the supplied initializer. Create a  full of the specified value. Create a new / using the supplied initializer with a context. Create a new  from an HList.Turn ) into an immutable product. The original  may not be used. Create a new  from a product.The size of a product.Combine products.$Right-associative fold of a product.Convert a product into an HList. Create a new ! using the contents of a product.Get an element in a product.Create a product from an / action which returns a .Turn a product into a  temporarily.015 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy%&'+,-016;<=>?FKQSTVy\ :O(n) Prepend an element onto a product. Expressions like a <: b <: c <: nil are transformed to a single .Strict version of ().An empty product.Convert  into a product.Flipped -Map a function to every element of a product.-Map a function to every element of a product.;Transform every element in a product, preserving the order.  2 "a 2  (f . g) "a  f .  g 3 for heterogeneous product4 for heterogeneous product1Map elements to a monoid and combine the results.  f .  g "a  (f . g)! with the membership of elements.-Perform a strict left fold over the elements.$ with a constraint for each element. Constrained $ with a constraint for each element. Constrained <Traverse all elements and combine the result sequentially.  htraverse (fmap f . g) "a fmap (hmap f) . htraverse g htraverse pure "a pure htraverse (Comp . fmap g . f) "a Comp . fmap (htraverse g) . htraverse f 5 analog for extensible products The dual of  The dual of  with s.*A product filled with the specified value.3Construct a product using a function which takes a .  f ( g) "a  (f . g)  ( m) "a m  ( k) "a k 6 version of .Pure version of .*A product filled with the specified value.6 version of .Accumulate sums on a product.  haccum =  2Group sums by type.$Evaluate every element in a product..uvwxyz{.xyz{uvw00 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy&'+,-16;<=FKQSTV]aAlias for plain sumsAlias for plain productsO(log n) Add a plain value to a product.Extract a plain value.Embed a plain value.)Naive pattern matching for a plain value.%An accessor for newtype constructors.51 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTV)Turn a wrapper type into a clause for it.ORetrieve the contents so that they matches and pass both to the given function.$Applies a function to the result of .O(1) Perform pattern matching.Flipped 0 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTV  Similar to , but this focuses on keys. xs (k ':> v) is equivalent to   k v xsys contains xsUnicode alias for 'Reify the inclusion of type level sets.O(n) Select some elements.O(1) Embed to a larger union.'Reify the inclusion of type level sets.O(n) Select some elements.O(1) Embed to a larger union. 7 (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTV] Wrapped Maybe Apply a function to its content.The inverse of .A product filled with  8,Extend a product and fill missing fields by Null.)Narrow the range of the sum, if possible.(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-016;<=>?FKQSTV*A ghostly type which spells the field name!Signifies a field name internally4When you see this type as an argument, it expects a  FieldLensA. This type is used to resolve the name of the field internally."The trivial inextensible data type FieldOptic s; is a type of optics that points a field/constructor named s.The yielding fields can be  Jhttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:LensLenses for  s and  Khttp://hackage.haskell.org/package/lens/docs/Control-Lens-Lens.html#t:PrismPrisms for s. ( "foo" = Associate "foo" a xs => Lens' (  xs) a ) "foo" = Associate "foo" a xs => Prism' ( xs) a s can be generated using mkField defined in the Data.Extensible.TH module.Simple variant  Simple record  The dual of  )VariantOf :: (v -> *) -> [Assoc k v] -> * 1The type of records which contain several fields. (RecordOf :: (v -> *) -> [Assoc k v] -> * A   h (k ':> v) is h v annotated with the field name k.   :: (v -> *) -> Assoc k v -> *Constraint applied to Constraint applied to Combined constraint for Take the type of the valueTake the type of the key Proxy-level . This is useful when using 9. Proxy-level .Get a string from a proxy of  : v. Lift a function for the content. Lift a function for the content. An empty  .*Select a corresponding field of a variant.Pattern matching on a #Annotate a value by the field name. foo ::  - '["num" >: Int, "str" >: String] foo = #num = 42 <: #str = "foo" <: nil Lifted ()  foo :: IO ( ? '["num" >: Int, "str" >: String]) foo = hsequence $ #num < => readLn  :#str <@= getLine <: nil @+Annotate a value by the field name without A.'Kind-monomorphic, unwrapped version of ('=')@$ Shows in field @= value" style instead of the derived one.            ;<=>1111(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTV+BB h xs mA is the monad of computations that may depend on the elements in xs.E#Hitch an element associated to the  through a wrapper.F6Take a value from the tangles. The result is memoized.GRun a B8 action and return the result and the calculated values.HRun a B action.I-Run tangles and collect all the results as a  .BCDEFGHIBCDEFGHIBCD(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTV]P3The class of types that can be converted to/from a  .TConvert a value into a  .U Convert a   to a value.V 5record :: IsRecord a => Iso' a (Record (RecFields a))W Create an P* instance for a normal record declaration.PQRSTUVWPQRSTUVWPQRS(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTV¸YSpecialised version of .Y[YZ(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-0136;<=FKQSTV]L \Simple option descriptor]? with a default_IOption without an argument; the result is the total count of this option.`True when specifiedaWrapper-generic version of _bOption with an argumentc8Takes the last argument when more than one is specified.dWrapper-generic version of be-Construct an option with an optional argumentfParse option arguments.gyAn all-in-one utility function. When there's an error, print it along with the usage info to stderr and terminate with @._ short option long option explanation` short option long option explanationb short option long option placeholder explanationc short option long option placeholder explanationfa record of option descriptors arguments2(result, remaining non-options, errors, usageInfo)gNon-option usageoption desciptors#the result and non-option arguments \]^_`abcdefg ]^\fg`c_bade]^(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTVh6jThrowing an exceptionkAn effect with no resultl(,) already is a writer monad.mfThe reader monad is characterised by a type equality between the result type and the enviroment type.nn [a, b, c] r is a -> b -> c -> ro)Anonymous representation of instructions.rTransformation between effectsuA function to bind an w in }.v The extensible operational monadw.A unit of named effects. This is a variant of (:|)! specialised for 'Type -> Type'.yLift an instruction onto an v action.zLift an instruction onto an v+ action and apply a function to the result.{/Censor a specific type of effects in an action.|Upcast an action.}7Build a relay-style handler from a triple of functions. `runStateEff = peelEff1 (a s -> return (a, s)) (m k s -> let (a, s') = runState m s in k a s') ~}/ specialised for continuations with no argument}( specialised for 1-argument continuation*A common value for the second argument of }!. Binds an instruction directly./A pre-defined value for the second argument of }.. Preserves the argument of the continuation./A pre-defined value for the second argument of }/. Preserves two arguments of the continuation.Reveal the final result of v.Tear down an action using the A instance of the instruction. Process an v action using a record of rs.Pass the arguments of o to the supplied function. Create a   of a r for an o.Specialised version of } for os. You can pass a function a -> b -> ... -> (q -> r) -> r as a handler for o '[a, b, ...] q.$Non continuation-passing variant of .Fetch the environment.#Pass the environment to a function.Modify the enviroment locally.Run the frontal reader effect.Get the current state.%Pass the current state to a function.#Replace the state with a new value.Modify the state.#Lift a state modification function.Run the frontal state effect.8Run the frontal state effect and return the final state.9Run the frontal state effect and return the final result.6Write the second element and return the first element.Write a value./Squash the outputs into one step and return it.3Modify the output using the function in the result.Run the frontal writer effect.Run the frontal state effect.)Break out of the computation. Similar to 8.,Run an effect which may fail in the name of k.Throw an exception e,, throwing the rest of the computation away."Attach a handler for an exception.Run an action and abort on .!Put a milestone on a computation.*Run a computation until the first call of .$Place a continuation-passing action.Unwrap a continuation.}Re-bind an unrelated actionreturn the result%Handle the foremost type of an action~return the result%Handle the foremost type of an actionreturn the result%Handle the foremost type of an actionRe-bind an unrelated actionreturn the resultHandle the foremost actionHandle the foremost action>jklmnopqrstuvwxyz{|}~>wxvyz{|rst}u~opqnmlkjopqrstwx1(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> Trustworthy%&'+,-16;<=FKQSTV]-Generate fields using .  "foo Bar" defines: Rfoo :: FieldOptic "foo" foo = itemAssoc (Proxy :: Proxy "foo") _Bar :: FieldOptic Bar" _Bar = itemAssoc (Proxy :: Proxy Bar)  (mkName "foo") "bar" defines a field for "bar" as foo./Generate named effects from a GADT declaration. LdecEffects [d| data Blah a b x where Blah :: Int -> a -> Blah a b b |]  generates type Blah a b = "Blah" >: Action '[Int, a] b blah :: forall xs a b . Associate "Blah" (Action '[Int, a] b) xs => Int -> a -> Eff xs b blah a0 a1 = liftEff (Data.Proxy.Proxy :: Data.Proxy.Proxy "Blah") (AArgument a0 (AArgument a1 AResult)) WInstead of making a type synonym for individual actions, it defines a list of actions.KGenerates type synonyms for the set of actions and also individual actions.+Generate effect suite with custom settings.(generate a synonym of the set of actions(generate synonyms for individual actions(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTV'mtl-compatible either effectSame as  ()mtl-compatible writermtl-compatible statemtl-compatible readerSpecialised version of  compatible with the B instance. specialised for the C instance. specialised for the C instance. specialised for the C instance. specialised for the D instance. specialised for the D instance. Similar to  runMaybeT , but on v Similar to E , but on v A bit dubious  (c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTV#,%Composition for a class and a wrapperForall upon a wrapper0Reify a collection of dictionaries, as you wish. parseJSON F is called for missing fields.GHIJKLMNOPQR(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=>?FKQSTV- Bit-packed recordBit-packed recordFields are instances of  and fit in the representation.4Conversion between a value and a bit representation. Instances of ! must satisfy the following laws: HfromBits (x `shiftL` W .|. toBits a) "a a toBits a `shiftR` W == zeroBitswhere W is the .Total 0Bit-vector product. It has similar interface as (:*) but fields are packed into r.5Convert a normal extensible record into a bit record.5Convert a normal extensible record into a bit record. for Update a field of a .(c) Fumiaki Kinoshita 2018BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>None&'+,-16;<=FKQSTV0Z 9:;<=>?@ABCDEtuvwxyz{|}~     BCDEFGHIPQRSTUVWYjklmnopqrstuvwxyz{|}~S !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRSTUVVWWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~LK I J                                 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~      !"#$%#$&'(')')'*'*+,+-+.+/+0+1+2+3+4+5+6+7+8+9::3;<=>?;@ABACDE;F G;HIJ#$KLMNOPQRS;TUVWUXYUZ[\]^_`abcdefghijklm'extensible-0.4.9-DCh0FsGjiZW4aaudVBJvVwData.Extensible.EffectData.Extensible.InternalData.Extensible.HListData.Extensible.Internal.RigData.Extensible.WrapperData.Extensible.ClassData.Extensible.SumData.Extensible.StructData.Extensible.ProductData.Extensible.PlainData.Extensible.MatchData.Extensible.InclusionData.Extensible.NullableData.Extensible.FieldData.Extensible.TangleData.Extensible.RecordData.Extensible.LabelData.Extensible.GetOptData.Extensible.THData.Extensible.Effect.DefaultData.Extensible.DictionaryData.Extensible.BitsLHListData.ExtensiblebaseData.Functor.IdentityIdentitytransformers-0.5.2.0Control.Monad.Trans.ContContT Control.Monad.Trans.State.StrictStateLastFindTypeHead∈ FindAssoc Elaborate Elaborated ExpectingMissing Duplicate Associate association>:Assoc:>Member membership Membership getMemberId mkMembershiprememberreifyMembership leadershipcompareMembershipimpossibleMembershipherenavNext$fSemigroupMembership$fOrdMembership$fEqMembership$fPrettyMembership$fShowMembership$fHashableMembership$fLiftMembership$fAssociatekvkvxs $fMemberkxsx$fNFDataMembershipHNilHCons htraversehtraverseWithIndexhfoldrWithIndexhlengthExchangeOptic'OpticviewviewsoverwithIsoreview$fProfunctorExchangeProdConst' getConst'CompgetCompWrapperRepr_Wrapper _WrapperAscomp$fWrapperkProxy$fWrapperTYPE[]$fWrapperTYPEEither$fWrapperTYPEMaybe$fWrapperTYPEIdentity$fWrapperkComp $fLiftComp$fWrapperkConst'$fArbitraryProd $fMonoidProd$fSemigroupProd$fWrapperkProd$fHashableProd $fNFDataProd $fShowComp$fEqComp $fOrdComp $fNFDataComp $fGenericComp$fSemigroupComp $fMonoidComp$fArbitraryComp$fHashableComp $fPrettyComp $fShowConst' $fEqConst' $fOrdConst'$fGenericConst'$fNFDataConst'$fSemigroupConst'$fMonoidConst'$fFunctorConst'$fFoldableConst'$fTraversableConst'$fArbitraryConst'$fHashableConst' $fShowProd$fEqProd $fOrdProd $fGenericProd $fFunctorProd$fFoldableProd$fTraversableProd$fTraversableComp$fFoldableComp $fFunctorCompForallFForall henumerateForhgenerateListForGenerate henumeratehcount hgenerateList ExtensibleExtensibleConstrpieceAtpiece pieceAssocitemAtitem itemAssoc $fGeneratek: $fGeneratek[] $fForallac: $fForallkc[]:|EmbedAthoistembedstrikestrikeAt<:|exhaust embedAssoc$fExtensiblekfp:| $fBounded:|$fEnum:|++:*WrappedPointerStructsetget atomicModify atomicModify' atomicModify_atomicModify'_-$>new newRepeatnewFor newFromHList unsafeFreezethawhappendtoHListnewFromhlookuphfrozenhmodify$fHasUpdateWrappedPointeraa$fHasSetterWrappedPointera$fHasGetterWrappedPointera$fExtensiblekfp:*<:@:>@==$fKeyValuekvpkpv:> $fKeyIskvpk:>$fValueIskvpv:> $fPrettyField $fShowField$fWrapperAssocField $fLiftField $fUnboxField$fVectorVectorField$fMVectorMVectorField$fExtensiblekfpInextensible$fProfunctorLabelPhantom$fGenericField $fToJSONField$fFromJSONField$fToFieldField$fFromFieldField$fHashableField$fArbitraryField $fNFDataField$fBoundedField $fEnumField $fMonoidField$fStorableField$fSemigroupField$fRealFracField$fRealFloatField $fRealField$fFloatingField$fFractionalField$fIntegralField $fNumField $fOrdField $fEqFieldTangleT unTangleTlassohitchAt runTangleT evalTangleT runTangles$fMonoidTangleT$fSemigroupTangleT$fMonadTransTangleT$fFunctorTangleT$fApplicativeTangleT$fMonadTangleTIsRecord RecFieldsrecordFromList recordToListtoRecord fromRecordrecordderiveIsRecord $fIsRecord()訊$fIsLabelk(->)$fIsLabelkProxy OptDescr' OptionDescroptNoArgoptFlag optionNoArg optReqArg optLastArg optionReqArg optionOptArg getOptRecord withGetOpt$fWrapperkOptionDescr$fFunctorOptionDescr EitherEffMaybeEff WriterEff ReaderEffFunctionActionAResult AArgument InterpreterrunInterpreterRebinderEff InstructionliftEffliftsEffhoistEffcastEffpeelEffpeelEff0peelEff1 rebindEff0 rebindEff1 rebindEff2leaveEff retractEff handleEff runAction@!? peelAction peelAction0askEffasksEfflocalEff runReaderEffgetEffgetsEffputEff modifyEffstateEff runStateEff execStateEff evalStateEff writerEfftellEff listenEffpassEff runWriterEff execWriterEff nothingEff runMaybeEffthrowEffcatchEff runEitherEfftickEff runIterEffcontEff runContEffmkField mkFieldAs decEffects decEffectSetdecEffectSuitecustomDecEffects EitherDefMaybeDef WriterDefStateDef ReaderDef runReaderDef runStateDef evalStateDef execStateDef runWriterDef execWriterDef runMaybeDef runEitherDef$fMonadPlusSkeleton$fAlternativeSkeleton$fMonadErroreSkeleton$fMonadWriterwSkeleton$fMonadStatesSkeleton$fMonadReaderrSkeleton$fMonadIOSkeleton Instance1 WrapForallAndlibrary $fUnboxConst'$fVectorVectorConst'$fMVectorMVectorConst'$fUnboxIdentity$fVectorVectorIdentity$fMVectorMVectorIdentity $fLiftConst$fLiftIdentity $fPrettyConst$fPrettyIdentity $fAndkfgx$fInstance1kkchx $fToJSON:* $fFromJSON:* $fToJSON:*0 $fFromJSON:*0$fToNamedRecord:*$fFromNamedRecord:* $fPretty:| $fArbitrary:|$fLift:| $fHashable:| $fNFData:|$fOrd:|$fEq:|$fShow:| $fToRecord:*$fFromRecord:* $fNFData:* $fArbitrary:* $fUnbox:*$fMVectorMVector:*$fVectorVector:*$fLift:* $fBounded:* $fHashable:* $fMonoid:* $fSemigroup:*$fOrd:*$fEq:* $fPretty:*$fShow:* BitRecord BitRecordOf BitFieldsFromBitsBitWidthfromBitstoBits TotalBitsBitProd unBitProd toBitProd fromBitProdblookupbupdate$fFromBitsrField$fFromBitsrConst'$fFromBitsr(,)$fFromBitsrIdentity$fFromBitsWord64Int32$fFromBitsWord64Int16$fFromBitsWord64Int8$fFromBitsWord64Word32$fFromBitsWord64Word16$fFromBitsWord64Word8$fFromBitsWord64Bool$fFromBitsWord64Word64$fFromBitsrProxy $fFromBitsr()$fFromBitsrBitProd$fExtensiblekfpBitProd $fShowBitProd $fEqBitProd $fOrdBitProd $fEnumBitProd$fBoundedBitProd $fIxBitProd$fGenericBitProd$fHashableBitProd$fStorableBitProdMapSuccghc-prim GHC.TypesInt~~ Data.Proxy asProxyTypeOfProxyKProxyData.Type.Equalityouterinnerapply gcastWithcastWithtranssym:~:Refl:~~:HRefl TestEquality testEquality== RemembranceGHC.BasefmapGHC.STSTHProductidGHC.ListzipWithzipWith3Data.Traversablesequence ApplicativegetAssociationNothing GHC.TypeLits symbolValSymbolD:R:VectorField0V_FieldD:R:MVectorsField0MV_FieldSystem.Console.GetOptOptDescr System.Exit exitFailureMonad mtl-2.2.1-DscMMmDQUE6GBfOSl4qMUHControl.Monad.Reader.Class MonadReaderControl.Monad.State.Class MonadStateControl.Monad.Writer.Class MonadWriterControl.Monad.Trans.Except runExceptT$aeson-1.2.4.0-HJ6Tijnh81vLD043xgUX94Data.Aeson.Types.InternalNullD:R:VectorConst'0V_ConstD:R:MVectorsConst'0MV_ConstD:R:VectorIdentity0 V_IdentityD:R:MVectorsIdentity0 MV_Identity D:R:Vector:*0 V_ProductD:R:MVectors:*0 MV_Product