úÎ4ƒ.¤"      ! non-portable experimentalgenerics@haskell.org Safe-Infered'"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH non-portable experimentalgenerics@haskell.org Safe-Infered'IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno non-portable experimentalgenerics@haskell.org Safe-InferedLApplies a function to the first subtree (possibly the tree itself) on which * it succeeds, using a preorder traversal. QApplies a function to the first immediate child of a value on which it succeeds. ?Applies a monadic function exhaustively in a top-down fashion. 6Applies a function exhaustively in a top-down fashion @Applies a monadic function exhaustively in a bottom-up fashion. 7Applies a function exhaustively in a bottom-up fashion EApplies a monadic function to all the immediate children of a value. =Applies a function to all the immediate children of a value. p p non-portable experimentalgenerics@haskell.org Safe-InferedThe type class Builder- captures the functions, that are defined by < induction on the type argument, that construct appropriate left and  rightA values. These values are used to transform a rule specification  to a rule. ;A view on schemes to easily distinguish metavariables from  pattern functor values. /Allows metavariables on either side of a rule. (Extends the pattern functor of a value. +Specifies a rule as a value of a datatype. &Returns the left-hand side of a rule. 'Returns the right-hand side of a rule. Constructs a metavariable. $Constructs a pattern functor value. 'Returns the value corresponding to the  SchemeView. "Recursively converts a value to a SchemeOf value. Folds a Scheme8 value given a function to apply to metavariables and a / function to apply to a pattern functor value. HTransforms a rule specification to a rule and throws a runtime error if D an unbound metavariable occurs in the right-hand side of the rule. 6Transforms a rule specification to a rule and returns Nothing if D an unbound metavariable occurs in the right-hand side of the rule.  qr      qr non-portable experimentalgenerics@haskell.org Safe-InferedThe Rewrite< is a type class synonym, hiding some of the implementation  details. KTo be able to use the rewriting functions, the user is required to provide ! an instance of this type class. CApplies a rule specification to a term, obtaining a monadic value. EApplies a rule specification to a term, obtaining the original term  when rewriting fails. ,Rewrites a term, obtaining a monadic value. !CRewrites a term, obtaining the original term when rewriting fails.  ! ! ! ! non-portable experimentalgenerics@haskell.org Safe-InferedpIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH  !s      !"#$%&'()*()+()+(),()-()-().().()/()0()1()2()2()3()4()4()5()6()6()7()8()9()():();()<(=>(=?(=@(=A(=B(=C(=D(=E(=F(=G(=H(IJ(IKLMLN(OP(OQ(OR(OS(TU(TV(TW(TX(TY(TZ(T[(T\(]^(]_(`a(`b(`c(`d(`e(`f(`g(`h(`i(`j(`k(lm(ln(lo(lp(lq(lr(ls(lt(lu(vw(vx(vyz{|}rewriting-0.2.2%Generics.Regular.Rewriting.Strategies Generics.Regular.Rewriting.Rules$Generics.Regular.Rewriting.Machinery*Generics.Regular.Rewriting.RepresentationsGenerics.Regular.Rewriting.BaseGenerics.Regular.RewritingonceonetopdownMtopdown bottomupMbottomupcomposMcomposBuilderTargetbasediag SchemeViewPFMetavarRuleSchemeOfRuleSpec:~>lhsRrhsRmetavarpf schemeViewtoScheme foldSchemeruleruleMRewrite applyRuleM applyRulerewriteMrewrite regular-0.3.4Generics.Regular.BaseunKKunIIULR:+::*:unCCunSSoutInFixtofromRegularGenerics.Regular.Constructor conIsRecord conFixityconName ConstructorPrefixInfixFixityLeftAssociativeRightAssociativeNotAssociative AssociativityGenerics.Regular.SelectorselNameSelectorGHC.BasefmapFunctorGenerics.Regular.Functions.Zipfzip'fzipfzipMZipGenerics.Regular.Functions.LRrightleftrightbleftbLRBaserightfleftfLRGenerics.Regular.Functions.GMapfmapMGMapGenerics.Regular.Functions.Fold&unfoldfoldAlgAlgebraalgFoldCoAlg CoAlgebracoalgUnfold Generics.Regular.Functions.Crushcrushlcrushrflattenlflattenr AssocLeft AssocRightAssoccrushCrush#Generics.Regular.Functions.ConNamesconNames hconNamesConNames$fMonadS $fBuilder(->)$fBuilderRuleSpec