^-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop q r s t u v w x y z { | } ~         !"#$%&'()*+,Safe 16;<=>?AFT Fresh single f, and modifier upd for freshly created value  Fresh single f Fresh infinite range of f, and modifier upd for freshly created value Fresh infinite range of f   Safe 16;<=>?AFT5EClass interface uses same names as Data.Map. Instances must define: , findMin, findMax, , , , i. Union is left-biased in that left operand values overwrite right operand values, but all other contextinfo (if any and9or relevant, like scope) is inherited from the right one.$ Default for  when ,  (or  inserWith), and  are defined"# !$ !"#$ !"#Safe167;<=>?AFST('Split at index places (inspired by/from split package). Places should be increasing, starting with an index >= 0. The number of sublists returned is one higher than the number of places.HExamples: >>> splitPlaces [2,3] [1,2,3,4,5,6,7] [[1,2],[3],[4,5,6,7]]!splitPlaces [6,7] [1,2,3,4,5,6,7][[1,2,3,4,5,6],[7],[]]!splitPlaces [0,7] [1,2,3,4,5,6,7][[],[1,2,3,4,5,6,7],[]]-splitPlaces [0,1,2,3,4,5,6,7] [1,2,3,4,5,6,7]#[[],[1],[2],[3],[4],[5],[6],[7],[]](Combine [[x1..xn],..,[y1..ym]] to [[x1..y1],[x2..y1],..,[xn..ym]]. Each element [xi..yi] is distinct based on the the key k in xi==(k,_)*Error, with message,<A slightly more lazy version of Data.List.sortOn. See also  7https://github.com/UU-ComputerScience/uhc-util/issues/5 .2>Reduce compare results lexicographically to one compare result3FReduce compare results lexicographically using a continuation ordering'places%&'()*+,-./01234%&'()32*+,-.0/14None16;<=>?AFQSTV1 7composition alias8 Alias for get? to avoid conflict with state get; not happy choice because of >93functional setter, which acts like a field assigner:functional modify;monadic modify & set & get<monadic modify & set & get=monadic modify & set & get> monadic get? monadic set@monadic modify & setG8Wrapper around a Maybe with a default in case of NothingHVWrapper around a Maybe with an embedded panic in case of Nothing, with a panic message56789:;<=>?@ABCDEFGH56789:?@=;<>ABCDEFHG79 94:4;4?4@4None 16;<=>?AFT256789:;<=>?@ABCDEFGHNone16;<=>?AFTV4pI VecAlloc e-Ensure enough free slotsILMNOPQILMNOPQI./0123None 16;<=>?AFT5fNone136;<=>?AFKT:dVFunctionality on top of / for awareness of a scope. Minimal definition W, 'unlifts,',  'top'/'topM',  'pop'/'popM', 'push'/'pushM'faStacked Lookup derived from a base one, to allow a use of multiple lookups but update on top onlyapush, but only top of first argVYWXZ[\]^_`abcdefghVWXYZ[\]^_`abcdefghVWXYZ[\]^_`abcdfgh None16;<=>?AFKTVK- pVarLookupCmb abstracts the  combining' of/from a substitution. The interface goes along with VarLookup but is split off to avoid functional dependency restrictions. The purpose is to be able to combine maps only for the purpose of searching without actually merging the maps. This then avoids the later need to unmerge such mergings.dStacked VarLookup derived from a base one, to allow a use of multiple lookups but update on top onlyqVarLookup abstracts from a Map. The purpose is to be able to combine maps only for the purpose of searching without actually merging the maps. This then avoids the later need to unmerge such mergings. The class interface serves to hide this.rLookup a key at a levels Lookup a keytKeys at a levelu Keys as SetvMake an empty VarLookupw%Make a singleton VarLookup at a levelxMake a singleton VarLookupy$Type family for value of a VarLookupz"Type family for key of a VarLookup{Level to lookup into|Base level (of values, usually)pqrstuvwxyz{|zyqrstuvwx{|pqrstuvwx None16;<=>?ACFTVR4Default scope lookup5 Scoped item6Scopes7Scope idFunctionality on top of  for awareness of a scope`Something at current scope is visible from given scope, i.e. given scope is inside current scope8Ensure enough free slots9Allocate new entry, init to point back to current, switch to it; assume enough free size. Modification is done destructively but only on newly allocated position4:;<5=>?6@ABC None 16;<=>?AFTVFully resolve lookupFully resolve lookupdMonadically lookup a variable, resolve it, continue with either a fail or success monad continuationInverse of a lookup"# !$VNone 16;<=>?AFSTa "composition with a flipped reading3functional getter, which acts like a field accessor Alias for D? to avoid conflict with state get; not happy choice because of 3functional setter, which acts like a field assignerfunctional modifymonadic modify & set & getmonadic modify & set & getmonadic modify & setcZoom state in on substructure. This regretfully does not really work, because of MonadState fundep. Alias for gets" avoiding conflict with MonadState8Wrapper around a Maybe with a default in case of NothingVWrapper around a Maybe with an embedded panic in case of Nothing, with a panic message9 84444 Safe 16;<=>?AFTcE"View as head and tail, if possibleFGH555 None&'+016;<=>?AFTVxQThe trie structure, branching out on (1) kind, (2) nr of children, (3) actual keyIChild structurePKeyable values, i.e. capable of yielding a TreeTrieKey for retrieval from a trieFull keyJKey used on 1 level of trie. Key1_Wild plays a special role, may occur in Key1_Multi only, and in there it is guaranteed to have non wild siblings, allowing easy wildcard lookup where only not all elements of the group need be a specific Key1_SingleKequal to anythingL"equal to nothing, except Key1_WildMGSimplify a generated raw Key1 into its canonical form used for indexingNFSimplify a generated raw Key into its canonical form used for indexing Single keyWildcard, matching anythingNo keyNo key, delegate to next layerKey with single childKey with childrenKey with 2 childrenOLookup giving back possible precise result and values found whilst descending into trie (corresponding to wildcard in key in trie) and remaining when key is exhausted (corresponding to wildcard in key)Lookup giving back possible precise result and values found whilst descending into trie (corresponding to wildcard in key in trie) and remaining when key is exhausted (corresponding to wildcard in key).Convert the lookup result to a list of results!!PQRSTUVWXYZ[\]J^_KLSafe 16;<=>?AFT}{intended for parsingCombine [[x1..xn],..,[y1..ym]] to [[x1..y1],[x2..y1],..,[xn..ym]]. Each element [xi..yi] is distinct based on the the key k in xi==(k,_)None 16;<=>?AFTthe base meta level5for each level a map, starting at the base meta levelDeleteAlter irrespective of levelsExtract first level map, together with a construction function putting a new map into the place of the previous one VarMp singleton VarMp singletonLcombine by taking the lowest level, adapting the lists with maps accordingly0pqrstuvwxyz{|     !     7None 16;<=>?AFT =Term with a (substitutable, extractable, free, etc.) variable Maybe is a key!,Construct wrapper for key (i.e. lift, embed)"/Term from which free variables can be extracted#Free vars, as a list$Free vars, as a set%<Term in which variables can be updated with a subst(itution)&Update'Update with cycle detection(6The variable wich is used as a key into a substitution  !"#$%&'( %&'"#$( ! !"#$%&'&6'6` !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a20+-,.bcdefghijklmnopqrstuvvwxyz{|}~        2 j m OP QRSTUWVXYZ[\]^      2 . / 1 , - = 6 8       2 - , + . 1 5 6 7 8      _           ! "  # $ %&' ( ) * + , - . / 0 1 2  3 4  5 6 7 8 9 8 : ;  < = >?'chr-data-0.1.0.0-7sGx1gkV5D5HYkg5X58x8Q CHR.UtilsCHR.Data.Lens.FCLabelsCHR.Data.Lens.MicroLensCHR.Data.FreshCHR.Data.Lookup.TypesCHR.Data.VecAllocCHR.Data.Lookup.InstancesCHR.Data.Lookup.StackedCHR.Data.VarLookupCHR.Data.Lookup.ScopedCHR.Data.LookupCHR.Data.FastSeqCHR.Data.TreeTrieCHR.Data.AssocLCHR.Data.VarMpCHR.Data.Substitutable CHR.Data.Lensbase Data.OldListsortOn'fclabels-2.0.3.2-4PbsFDjds23DVWcXML4X3oData.Label.Monadic modifyAndGet=.=:Data.Label.DerivemkLabelData.Label.Mono:->(microlens-0.4.8.1-7SYUbX7BsEv8bVxypsAUmf Lens.Micro^.Fresh freshWithfresh freshInfWithfreshInf $fFreshInt[] $fFreshIntInt LookupApplyapplyLookuplookupfromListtoListnullsizealter singletonempty insertWithinsert unionWithunion unionsWithunionsdeletekeyskeysSetelemsmap alterDefault maybeNullmaybeHd splitPlacescombineToDistinguishedEltsByzipWithNpanic isSortedByOn sortOnLazysortByOngroupOn groupSortOn groupByOn groupSortByOnorderingLexicList orderingLexic panicJustLens^*getL^=^$==$^:modLgetl=$:fstlsndlfst3lsnd3ltrd3lisoMbWithDefaultisoMbVecAlloc $fShowVal$fShowVecAlloc$fLookupVecAllocInte$fLookupIntMapIntv$fLookupHashMapkv $fLookupMapkvStackedliftsunliftstoppoppushtopMpopMpushMtopspopspushstopsMpopsMpushsM StackedEltStacksunStacks $fPPStacks $fShowStacks$fLookupApplyl1Stacks$fLookupStackskv$fStackedStacks$fFunctorStacks$fApplicativeStacksStackedVarLookup VarLookupvarlookupWithMetaLev varlookupvarlookupKeysSetWithMetaLevvarlookupKeysSetvarlookupEmptyvarlookupSingletonWithMetaLevvarlookupSingleton VarLookupVal VarLookupKeyMetaLev metaLevVal $fPPScopes $fShowScopes$fPPScopedItem $fPPScpsLkup$fShowScopedItem$fShowScpsLkupDefaultScpsLkupScopednewswitchscopecurIsVisibleFromnewMswitchMscopeMcurIsVisibleFromMdefaultScpsLkup$fLookupScpsLkupkv$fScopedScpsLkup$fScopedScopeslookupResolveVarlookupResolveVallookupResolveAndContinueMinversefocusSeqFastSeq:++::+::::+:isEmpty firstNotEmpty$fMonoidFastSeqTreeTrieTTCtxtTreeTrieKeyabletoTreeTriePreKey1PreKey1TrTrKeyKey toTreeTrieKeyprekey1 prekey1Wild prekey1Nilprekey1Delegateprekey1WithChildprekey1WithChildrenprekey1With2Children emptyTreeTrie toListByKeyfromListByKeyWithlookupResultToListsingletonKeyableinsertByKeyWith insertByKey$fPPKey1 $fShowKey1 $fOrdKey1$fEqKey1 $fFunctorKey1$fPPKey $fPPTreeTrie$fShowTreeTrie $fGenericKey1$fEqKey$fOrdKey $fGenericKey $fShowKeyAssocLAssoc ppAssocL'ppAssocL ppAssocLV ppAssocLHppCurlysAssocL assocLMapElt assocLMapKeyassocLMapUnzip assocLKeys assocLEltsassocLGroupSortcombineToDistinguishedEltsVarMp'VarMp varmpMetaLevvarmpMpL varmpToMapmkVarMp emptyVarMp varmpIsEmpty varmpFilter|\>varmpDel varmpAltervarmpShiftMetaLevvarmpIncMetaLevvarmpDecMetaLevvarmpSelectMetaLev varmpAsMap varmpSize varmpKeys varmpKeysSetvarmpMetaLevSingletonvarmpSingletonassocMetaLevLToVarMp assocLToVarMp varmpToAssocL varmpPlus varmpUnion varmpUnionsvarmpUnionWith varmpMapMaybevarmpMapvarmpInsertWith varmpLookup $fPPVarMp' $fShowVarMp'$fLookupApplyVarMp'VarMp'$fVarLookupVarMp' $fEqVarMp' $fOrdVarMp'$fGenericVarMp'VarTerm varTermMbKey varTermMkKeyVarExtractablevarFree varFreeSet VarUpdatablevarUpd varUpdCyc ExtrValVarKey$fVarUpdatable[]subst$fVarUpdatableMaybesubst$fVarExtractable[]$fVarExtractableMaybeensure _vecallocVecValInitNothScpsLkup ScopedItemScopesScpId scpEnsurescpAlloc _scpslkupBase_scpslkupScopes _scopeditemId_scopeditemVal _scopesVec _scopesFree _scopesCur Data.Labelget viewMbConsFSeqFSeqLFSeqNilTreeTrieChildrenKey1 Key1_WildKey1_Nilkey1RawToCanon keyRawToCanon lookupWith ttrieMbVal ttrieSubs PreKey1_Deleg PreKey1_Wild PreKey1_Nil PreKey1ContPreKey1Cont_None PreKey1Cont2 PreKey1ContsunKey Key1_Single Key1_Multi