úÎE?I      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHNoneIJKIJKNoneHThe checker monad. For now the environment is the current ATerm, in the N future we may also store the path from the root to the current ATerm, so use  ) instead of ask to get the current ATerm ;Turns a normal function of ATermTable into a function that " works on the hash value instead. $Standard foldr, but for ATermTables $Standard foldl, but for ATermTables Standard foldl', but for ATermTables $Standard foldM, but for ATermTables #Standard mapM, but for ATermTables $Standard mapM_, but for ATermTables "Standard map, but for ATermTables (Standard concatMap, but for ATermTables Like , but lifts the result into the CheckM monad Use this instead of L so that we can refactor 8 the environment later without impacting existing code. Use this instead of M so that we can refactor 8 the environment later without impacting existing code. %Return the hashes of the current term's children into the monad AUse this when the current node must satisfy a specific property. X Note: Using Maybe here is a bit of a hack. Refactor to support MonadPlus style guards? DApplies a traversal in a subtree of the current ATerm. Differs from  T in that it does not apply the traversal to the current term (only its children and  their children). UApplies a traversal over the tree defined by the current node (including root node). Like  but throws away the result. (Extracts the label of Application nodes !Extract the integer of Int nodes ;Extracts the filename, line number, and colunm number from  file_info nodes. 2Equality test on the label of an Application node It's not acually pretty, but that's not our fault. JThis pattern comes up in most traversals. Simply return the stable names  so we don't break sharing.      None8Binding type gives you back the parts of the ATerm that  that match. 3The index into the ATermTable for the ShAAppl term The matching String The matching Integer !3The list of indexes into the ATermTable that match "4The index into the ATermTable of the matching ATerm N*Turns anything with an Eq instance into a 1 matcher by using (==). No binding is generated. #Matches exactly the string s within the ATerm $Matches exactly the integer i within the ATerm %Matches exactly the list xs within the ATerm &Matches the string exactly 'Looks for an Appl with name s and any children ):Matches a partial specification against the children. The ? matching is maximised so that if the pattern occurs more than * once it is matched each time it appears. *9Matches a partial specification of a sub aterm List. The ? matching is maximised so that if the pattern occurs more than * once it is matched each time it appears. +<Matches a partial specification of an Appl. The matching is D maximised so that if the pattern occurs more than once it is match  each time it appears. ,7Matches any ATerm and generates a binding to that term -6Matches any list and generates a binding to that list .<Matches any integer and generates a binding to that integer /:Matches any string and generates a binding to that string ) Strings have the form (Appl somestring [] []). B Not to be confused with matching the the string part of an Appl. 06Matches any Appl and generates a binding to that Appl  !"N#$%&'()*+,-./0 !"#$%&'()*+,-./0"! #$%&')*+(,-./0"! N#$%&'()*+,-./0NoneGConvert all the O' elements into the requested structure HConvert the next O to the next needed field type =123456789:;<=>?@ABCDEFGHPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst123456789:;<=>?@ABCDEFGH=>;<89:?@AB567CDEF34GH125123456789:;<=>?@ABCDEFGHPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUSTVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~aterm-utils-0.2.0.0ATerm.Utilities ATerm.PrettyATerm.MatchingATerm.Generics aterm-0.1.0.1ATerm.ReadWritewriteSharedATerm readATermppATermCheckMappfoldrfoldlfoldl'foldMmapMmapM_map concatMapappM currentTermwithCurrentTerm childrenMsatisfy inSubtree inSubtree_ everywhere everywhere_ extractStringextractIntegerextractFileInfoisNamed showATermchildrengetATermFromTableBinding BoundApplBoundStrBoundInt BoundList BoundTermexactlySexactlyIexactlyLexactlyA exactlyNamedcontainsChildrencontains containsL containsAbindTbindLbindIbindSbindA GFromATerms gFromATerms GFromATerm gFromATerm FromATerm fromATerm fromATermListToATermtoATerm toATermList GToATerms gToATermsGToATermgToATermintegralToATerm showToATerm listToATerm stringToATermatermToIntegral atermToRead atermToString atermToList gFromATerms'nextppAListnestListnestAppltransformers-0.3.0.0Control.Monad.Trans.RWS.StrictasklocalexactlyATerm.UnsharedATerm$fGFromATermsU1$fGFromATermsK1$fGFromATerms:*:$fGFromATermsM1$fGFromATermM1$fGFromATerm:+:$fGFromATermM10 $fFromATerm[]$fFromATermChar$fFromATermInteger$fFromATermInt$fFromATermMaybe$fFromATermEither$fFromATerm(,,)$fFromATerm(,)$fFromATermDouble$fFromATermFloat$fFromATermBool $fFromATerm() $fToATerm[]$fToATermInteger $fToATermInt $fToATermChar$fToATermEither $fToATerm(,)$fToATermMaybe $fToATerm()$fToATermDouble$fToATermFloat $fToATermBool $fGToATermsU1 $fGToATermsK1$fGToATerms:*: $fGToATermsM1 $fGToATermM1 $fGToATerm:+: $fGToATermM10