Ia].      !"#$%&'()*+,-None.,Haskell language extensions we want to allow/$Configuration for the Haskell parser0Parses a string into a TH type./012012./012Safe345634563456None7.`preProcessMethods ds' builds a value of type 8* from a list of top-level declarations. 89:;<=>?7 89:;<=>?789:;<=>?7None@W`ctrsForClass dec' returns a list of object states for the state class described by decABCDEFGHIJKLMNOPQRSTUVWXYZ@$89:;<=>?7ABCDEFGHIJKLMNOPQRSTUVWXYZ@A BCDEFGHIJKLMNOPQRSTUVWXYZ@None[Parses state declarations\CParses a variable identifier (starting with a lower-case character)]LParses a type/constructor identifier (starting with an upper-case character)^_[`\]abcdefghijklmn[`^_[`\]abcdefghijklmnNone4o%`buildStateGraph env' resolves types.p`toGraph env' turns env- into a suitable graph for the SCC algorithm.qrstopuqrstopqrstopuNonevApplies a type m" to the return type of a function.wxyz{|}~vwxyz{|}~vwxyz{|}~v~ None None1Generates the object type for a state declaration  None None2`genObjectInstance decl' generates an instance of Object for the state declaration decl;. Note: only one such instance is needed per state decl. None6`isInherited env mp name' determines whether a method name is inherited from mp(Determines whether a method is abstract.  None)Generates the context for the type class.Generates the typing for the invoke function.0Generates the type class for a state declarationNone.Generates a method belonging to a state class.$Generates methods for a state class.None-Enumerates different member generation modes.`lifted exp' wraps  in a call to .'`genRunStateT f d' generates a call to  runStateT where f% is the computation to be run and d is the initial state..`genInvoke pn obj exp st' generates a call to  _pn_invoke for some state class named pn where obj is the base delta-object, ! is the expression to run and st is the state(of what?)$Generates the implementation of the  _C_invoke! function. The purpose of the  _C_invokej functions is to allow a sub-class to pass an arbitrary method to the super-class. It works as follows:k`genModDefs mode name fname' generates the getter, the setter, and the field selector for a field named fname in a state class named name using routing mode mode.``genModsDefs mode name ds' generates getters, setters, and field selectors for the fields in ds' which are part of a state class named name. mode. determines how these calls will be routed.<`genMethod env cls mp cn d' generates a method for based on d.NoneNone-Enumerates different member generation modes.:Generated members will correspond to their implementationsDGenerated members will forward calls to the parent, unless overriden Generates members will call the _invoke# method to construct a monad stack 1Generates instances of the parental type classes.Generates type class instances for a state declaration For a base class, there will be one instance of the corresponding type class For sub-classes, there will be two instances of the corresponding type class, as well as instances of all parent classes  NoneNonepThis is a hack to change the names of type variables in imported types from unique names to unqualified names#Generates the internal constructor _mkS for a class S.NoneSafeNoneNoneHGenerates a caluse which extracts the data from an object's constructor.KGenerates a function which extracts the data from an object's constructors.Generates an instance of the Object class.5`genDowncastClauses s' generates the clauses for the downcast function in an instance of Cast for state class s.1`genCastInstance s' generates an instance of the Cast typeclass for state class s if s is not a base class.  None!Appends "_lens" to the lens names8Generates top-level declarations for a state declarationNoneSafeSafe !"(3457>ILN6Represents a context in which combinators may be used.;Represents a query which can be run by combinators such as , , etc.Enumerates call types.$The call is to a method, externally.If s! returns a value whose type is a , then `s.$m' calls m on the inner value of s via  .)            NoneNone (134579>ILN !"#$%&'()*+,-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs  !"#$%&'()*+,-.  "# !*+()%&'$-,  !"#$%&'()*+,-,t !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{|}~          R !"!#$%&'()*+,-./012!3!4!5!6789:!;!<7=>?!@ABCABDEFGEFHEFIJKJLJLMNMO9P9Q9R9S9T9U9V9W9X9Y9Z9[9\9]>^>_>`>abcbdbdefegeheijkjlmn!o!p!q!r!s!t!u!v!w!xAByz{z|}z|~EF                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7898:8;8<8=8>8?8@8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8[8\8]8^8_8`8a8b8c8defeghihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzh{h|h}h~hhhhhhhhhhhhhhhhhhhhh      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGFHFIFJKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_`a`b`c`d`e`f`g`hijikiliminioipiqirisitiuiviwixiyizi{i|i}i~i      !"#$%&'()*+,-./0123456789:9:9>9;9<9=9F9>9?9@9B9A9B9C9D9E9F9G9V9H9Z9I9J9K9^9L9M9N9b9O9P9Q9R9J9M9S9P9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a9bcdcecfcghijkjljljmjnjojojpqrqrqstutvtwtxtytzt{t|t}t~ttz{zzEFEFz|z|z|z|z|z|z|z|z|z|z|msh_HP04DZpXNWFD4O40wY87Qs Language.MSHLanguage.MSH.CodeGen.InteropLanguage.MSH.NewExprLanguage.MSH.MethodTableLanguage.MSH.StateDeclLanguage.MSH.ParsersLanguage.MSH.StateEnvLanguage.MSH.CodeGen.SharedLanguage.MSH.CodeGen.DataLanguage.MSH.CodeGen.ObjectLanguage.MSH.CodeGen.Monad#Language.MSH.CodeGen.ObjectInstance Language.MSH.CodeGen.InheritanceLanguage.MSH.CodeGen.ClassLanguage.MSH.CodeGen.Methods#Language.MSH.CodeGen.SharedInstance$Language.MSH.CodeGen.PrimaryInstanceLanguage.MSH.CodeGen.InstancesLanguage.MSH.Constructor!Language.MSH.CodeGen.ConstructorsLanguage.MSH.CodeGen.NewLanguage.MSH.BuiltIn Language.MSH.CodeGen.NewInstance"Language.MSH.CodeGen.MiscInstancesLanguage.MSH.CodeGen.DeclsLanguage.MSH.CodeGenLanguage.MSH.RuntimeErrorLanguage.MSH.SelectorsLanguage.MSH.QuasiQuoters_msh_rt_invalid_call_abstract_msh_rt_invalid_call_stateObjectthis.! QueryResult QueryMonad QueryObjectThisMkThisSelectorMkMethodMkFieldFieldComposeResult FieldTypeMethodField MemberTypeMutable ImmutableCallCtx CtxResultresultobject RunnableQuery MkExtCallCallTypeExtCall.$state stateParser ValueContextVCStVCM SetterContext>:VoidNewArgsnewCastdowncastHasData extractData<:switch extensions parseMode parseType parseDecsparseExpNewExpr newClassNamenewArgspreProcessMethods MethodTable MkMethodTable methodSigs methodDefsemptyMethodTable addMethodSig addMethodDef isImplemented ctrsForClass StateDeclstateMod stateName stateParams stateParentN stateParent stateData stateBody stateMethodsStateMemberDecl StateDataDecl stateDataName stateDataExpr stateDataType StateObjCtrDataCtrStartCtr MiddleCtrEndCtrStateModAbstractFinal isBaseClassisAbstractClass isFinalClassparseStateDeclvaridctridtrim isSpaceNoNL parseNewExprtyVarabstractfinal classModifier parentClassdataInitdataDecl valueLine emptyLine valueDecl stateMember stateDecl stateDeclsnewExprbuildStateGraphtoGraphStateEnvStateGraphError ClassNotFoundCyclicInheritance$fShowStateGraphErrorwrapMethodTypetypeArgs countTypeArgsrenameTconNameappNappN'appEsarrtuple2tuple renameParent parentName parentArgs getFields getFieldTypes unwrapForalls parameterise genDataField genDataFields genStateDatagenStateObjectsupField dataFieldsubField objectCtrCxtdataCtrstartCtrendCtr middleCtr genObjectCtrs genStateTypegenObjectInstancegenObjectTypeInsts isInherited isAbstract HasMethod hasMethodHasMethodResult DefResult ContResultisOverridenEnvisInheritedFromInfoisInheritedFromParent declByParent$fHasMethodDecgenClassContext genInvokeDecl genStateClassSCV scvObjectscvStatescvMonad getterName setterName fieldTypegenModDeclsFor genModsDeclssplitMethodType methodTypegenMethodDecls'genMethodDeclsgenMethodsDecls genMethod genMethodsImplModeliftedbase GHC.Floatexptemplate-haskellLanguage.Haskell.TH.Syntaxlift genRunStateT genInvoke genInvokeDefgenField genFields PrimaryInst SecondaryInst IdentityInst genUndefinedcomposedgenPrimaryClausegenIdentityClauselensName genGetterBody genSetterBody genIntGetter genIntSettergenGetterClausesgenSetterClausesfindClassMethodTypenumArgsForMethodgenSelectorWrappergenInternalWrappergenExternalWrappergenMethodClauses genMethod' getBaseMonadgenPrimaryInstancegenIdentityInstancegenParentalInstance MemberGenModePrimaryLiftInvokegenParentalInstancesgenStateInstances genDataClausegenStartClausegenMiddleClause genEndClauseStateCtrSCtrsctrDec sctrTypes unqualifyNamegenBaseConstructor genCtrParams unqualifyBndr normaliseType genPCtrParams genStateExprgenConstructors genNewExpnewArgsTypeName newKwdNamegenNewInstancegenObjectDataExtractorgenObjectInstanceDecgenDataInstancegenDowncastClausesgenCastInstancegenParentPattern genParentCtrgenCastFromEndgenCastFromMidgenMiscInstances lensLookup genStateDeclstateLensRules genStateDeclsGHC.BaseFunctorfmap$fObjectThisst'ctx'TFCo:R:QueryResultThistyst'mxTFCo:R:QueryObjectThisTFCo:R:QueryMonadThisctx'$fObjectSelectorst'm$TFCo:R:QueryResultSelectorFieldst'mx%TFCo:R:QueryResultSelectorMethodst'mxTFCo:R:QueryObjectSelectorTFCo:R:QueryMonadSelectorctx'$fObjectSelectorst'm0!TFCo:R:QueryResultSelectortyst'mxTFCo:R:QueryObjectSelector0TFCo:R:QueryMonadSelectorctx'0$fCallCtxExtCallctx$fValueContextStateTvalfail>>=>>returnControl.Monad.Fixmfix Control.MonadguardjoinMonadMonadFixData.Traversable TraversableliftMcontr_6YXCrIazFLhDoYkGeQkZZLData.Functor.Contravariant contramap Contravariantmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.State.Class MonadStategetputData.Functor.Identity runIdentityIdentityData.Bifunctorbimap Bifunctormfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMforMsequencemapMtraverseControl.ApplicativegetConstConst Data.Foldablemsum sequence_forM_mapM_ Data.Function&fix Data.FunctorvoidapliftM5liftM4liftM3liftM2when=<<mplusmzero MonadPlus>$trans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.Trans.ClassControl.Monad.Trans.State.LazyrunStateStategetslens_9a2djBByzhQCLaegMRr5W5Control.Lens.THdefaultFieldRules makeFieldsabbreviatedFieldscamelCaseFieldsunderscoreFields makeWrappeddeclareLensesWith declareFieldsdeclareWrapped declarePrismsdeclareClassyFor declareClassydeclareLensesFor declareLensesmakeLensesWith makeClassyFor makeLensesFor makeClassy_ makeClassy makeLenses classyRules_ classyRules lensRulesFor lensRules lensClass lensField createClassgenerateLazyPatternsgenerateUpdateableOpticsgenerateSignatures simpleLensesControl.Lens.Internal.PrismTHmakeClassyPrisms makePrismsControl.Lens.Internal.FieldTH LensRules MethodNameTopNameDefNameControl.Lens.AtiatsansixAtiix icontainsIndexcontainsContainsIxValueixIxedatAtControl.Lens.Consunsnocsnoc|>_last_init_tail_headunconscons<|:>:<_ConsCons_SnocSnocControl.Lens.EacheachEachControl.Lens.EmptyEmpty_EmptyAsEmptyControl.Lens.Wrappedalafala _Unwrapping _Wrapping _Unwrapping' _Wrapping'op _Unwrapped_Wrapped _Unwrapped' UnwrappedWrapped _Wrapped' Rewrapped RewrappingControl.Lens.Isocoerced bimappingrmappinglmapping dimapping contramappingimagmamagma involutedreversedlazyflipped uncurriedcurriedanonnon'nonmappingenumunderaufaucloneIsowithIsofromisoListReversedSwappedLazyStrictAnIsoAnIso'swappedstrictControl.Lens.EqualitysimplesimplyfromEqmapEqsubstEqrunEq Identical AnEquality AnEquality'Control.Lens.Platedgplateparts composOpFoldparaparaOf holesOnOfholesOnholes contextsOnOf contextsOn contextsOfcontextstransformMOnOf transformMOf transformMOn transformM transformOnOf transformOf transformOn transform cosmosOnOfcosmosOncosmosOfcosmos universeOnOf universeOn universeOfuniverse rewriteMOnOf rewriteMOn rewriteMOfrewriteM rewriteOnOf rewriteOn rewriteOfrewritechildrendeep...platePlatedGPlatedControl.Lens.ReifiedrunLensLens ReifiedLens ReifiedLens'runIndexedLens IndexedLensReifiedIndexedLensReifiedIndexedLens'runIndexedTraversalIndexedTraversalReifiedIndexedTraversalReifiedIndexedTraversal' runTraversal TraversalReifiedTraversalReifiedTraversal' runGetterGetter ReifiedGetterrunIndexedGetter IndexedGetterReifiedIndexedGetterrunFoldFold ReifiedFoldrunIndexedFold IndexedFoldReifiedIndexedFold runSetterSetter ReifiedSetterReifiedSetter'runIndexedSetter IndexedSetterReifiedIndexedSetterReifiedIndexedSetter'runIsoIso ReifiedIso ReifiedIso'runPrismPrism ReifiedPrism ReifiedPrism'Control.Lens.LevelilevelslevelsControl.Lens.Indexed itraverseByOf itraverseBy ifoldMapByOf ifoldMapBy imapAccumL imapAccumRiforMimapMiforitoListifoldlMifoldrMifind iconcatMapiforM_imapM_ifor_ itraverse_noneinoneiallianyindexindicesicompose<.> reindexed selfIndex.><.imappedimapFunctorWithIndexifoldl'ifoldr'ifoldlifoldrifoldedifoldMapFoldableWithIndex itraversed itraverseTraversableWithIndexControl.Lens.Traversal sequenceByOf traverseByOf confusingdeepOffailing ifailoverfailoverelements elementsOfelement elementOfignored traversed64 traversed1 traversed imapAccumLOf imapAccumROfiforMOfimapMOfiforOf itraverseOfcloneIndexedTraversal1cloneIndexPreservingTraversal1cloneTraversal1cloneIndexedTraversalcloneIndexPreservingTraversalcloneTraversaldroppingtakingbesidebothunsafeSingularsingularholesOfiunsafePartsOf'unsafePartsOf'iunsafePartsOf unsafePartsOf ipartsOf'partsOf'ipartsOfpartsOfilocilociscanl1Ofscanr1Of mapAccumLOf mapAccumROf transposeOf sequenceOfforMOfmapMOf sequenceAOfforOf traverseOf ATraversal ATraversal' ATraversal1 ATraversal1'AnIndexedTraversalAnIndexedTraversal1AnIndexedTraversal'AnIndexedTraversal1' Traversing Traversing1 Traversing' Traversing1' traverseMin TraverseMin traverseMax TraverseMaxControl.Lens.Fold foldMapByOffoldByOfidroppingWhile itakingWhile ifiltered findIndicesOf findIndexOf elemIndicesOf elemIndexOf^@?!^@?^@.. itoListOf ifoldlMOf ifoldrMOf ifoldlOf' ifoldrOf'ifindMOfifindOf iconcatMapOfiforMOf_imapMOf_iforOf_ itraverseOf_inoneOfiallOfianyOfifoldlOfifoldrOf ifoldMapOf backwardsipreusespreusesipreusepreuse ipreviewspreviewsipreviewpreviewipreprehasn'thasfoldlMOffoldrMOf foldl1Of' foldr1Of'foldlOf'foldrOf'foldl1Offoldr1OffindMOffindOf minimumByOf maximumByOf minimumOf maximumOf notNullOfnullOflastOffirstOf^?!^?lengthOfconcatOf concatMapOf notElemOfelemOfmsumOfasumOf sequenceOf_forMOf_mapMOf_ sequenceAOf_forOf_ traverseOf_sumOf productOfnoneOfallOfanyOforOfandOf^..toListOffoldlOffoldrOffoldOf foldMapOflinedworded droppingWhile takingWhilefilterediteratedunfoldedcycled replicatedrepeatedfolded64folded ifoldringfoldringifoldingfoldingControl.Lens.ZoomzoomZoommagnifyMagnifyControl.Lens.Prism_Shownearlyonly_Void_Nothing_Just_Right_Leftmatchingisn'tbelowasidewithoutoutsideprism'prism clonePrism withPrismAPrismAPrism'Control.Lens.Reviewreusesreusereviews#reviewreununtoControl.Lens.Gettergetting^@.iusesiuseiviewsiview ilistenings listenings ilistening listeningusesuse^.viewsviewilikelikeitotoGettingIndexedGetting AccessingControl.Lens.Tuple_9'_8'_7'_6'_5'_4'_3'_2'_1'_1Field1_2Field2_3Field3_4Field4_5Field5_6Field6_7Field7_8Field8_9Field9Control.Lens.Lensfusinguniteddevoid<#=<#~#%%=<#%=<#%~#%=#=#%%~#%~#~storing^#<<%@=<%@=%%@=%%@~<<%@~<%@~overA<<>=<<>~<<~<<<>=<<&&=<<||=<<**=<<^^=<<^=<~<<&&~<<||~<<**~<<^^~<<^~<%%=%%~&~ilensiplenslensALensALens' AnIndexedLensAnIndexedLens'Control.Lens.SetterimapOfmapOfassignA.@= imodifying%@=.@~%@~isetsisetiover icensoring censoringipassingpassingscribe<>=<>~