h&;5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                           Safe-Inferred1Pdeep-transformationsTransformation under a deep-transformationsTransformation under a deep-transformationsTransformation under a  deep-transformations"Composition of two transformations deep-transformations An unnatural  , can behave differently at different points. deep-transformationsApply the transformation t at type x to map   to the  functor. deep-transformationsA  ., natural or not, maps one functor to another.deep-transformationsAlphabetical synonym for        0 Safe-Inferred5` deep-transformationsThe core type class for defining the attribute grammar. The instances of this class typically have a form like instance Attribution MyAttGrammar MyNode (Semantics MyAttGrammar) Identity where attribution MyAttGrammar{} (Identity MyNode{}) (Inherited fromParent, Synthesized MyNode{firstChild= fromFirstChild, ...}) = (Synthesized _forMyself, Inherited MyNode{firstChild= _forFirstChild, ...})If you prefer to separate the calculation of different attributes, you can split the above instance into two instances of the   and  ! classes instead. If you derive  instances for your attributes, you can even define each synthesized attribute individually with a   instance.deep-transformations9The attribution rule for a given transformation and node. deep-transformationsAn attribution rule maps a node's inherited attributes and its child nodes' synthesized attributes to the node's synthesized attributes and the children nodes' inherited attributes.!deep-transformations(All inherited and synthesized attributes%deep-transformations A node's % is a natural tranformation from the node's inherited attributes to all its attributes paired with the preserved node.&deep-transformations A node's & is a natural tranformation from the node's inherited attributes to its synthesized attributes.'deep-transformationsType constructor wrapping the synthesized attributes for the given transformation.*deep-transformationsType constructor wrapping the inherited attributes for the given transformation.-deep-transformationsType family that maps a node type to the type of its attributes, indexed per type constructor..deep-transformations7The core function to tie the recursive knot, turning a   for a node into its &./deep-transformations/Another way to tie the recursive knot, using a   to add ! information to every node0deep-transformationsDrop-in implementation of  1deep-transformationsDrop-in implementation of  7 that preserves all attributes with every original node !$#"%&')(*,+-./01-*,+')(&%!$#" ./01 Safe-Inferred  :deep-transformationsLike Transformation.Deep.4 except it traverses an additional wrapper around the entire tree<deep-transformationsLike Transformation.Deep.6' except the entire tree is also wrapped>deep-transformationsLike Transformation.Deep.8< except it maps an additional wrapper around the entire tree@deep-transformationsAlphabetical synonym for ?Adeep-transformationsDefault implementation for ?( that maps the wrapper and then the treeBdeep-transformationsDefault implementation for ?( that maps the tree and then the wrapperCdeep-transformationsDefault implementation for =) that folds the wrapper and then the treeDdeep-transformationsDefault implementation for =) that folds the tree and then the wrapperEdeep-transformationsDefault implementation for ;- that traverses the wrapper and then the treeFdeep-transformationsDefault implementation for ;- that traverses the tree and then the wrapper :;<=>?@ABCDEF >?<=:;@ABCDEF?4 Safe-Inferred564deep-transformationsLike Transformation.Shallow.  except it folds all descendants and not only immediate children6deep-transformationsLike Transformation.Shallow.  except it folds all descendants and not only immediate children8deep-transformationsLike Transformation.Shallow. ? except it maps all descendants and not only immediate childrenGdeep-transformationsLike 4 for data types with two type constructor parametersJdeep-transformationsLike 4 for data types with two type constructor parametersNdeep-transformationsAlphabetical synonym for 9Odeep-transformationsEquivalent of 456789GIHJMLKNO896745JMLKGIHNO94 Safe-Inferred2cdecde Safe-Inferred6m hdeep-transformationsThe core type class for defining the attribute grammar. The instances of this class typically have a form like instance Attribution MyAttGrammar MyMonoid MyNode (Semantics MyAttGrammar) Identity where attribution MyAttGrammar{} (Identity MyNode{}) Atts{inh= fromParent, syn= fromChildren} = Atts{syn= toParent, inh= toChildren}ideep-transformations9The attribution rule for a given transformation and node.jdeep-transformationsAn attribution rule maps a node's inherited attribute and its child nodes' synthesized attribute to the node's synthesized attribute and the children nodes' inherited attributes.kdeep-transformations A node's k; maps its inherited attribute to its synthesized attribute.ldeep-transformations A node's l; maps its inherited attribute to its synthesized attribute.qdeep-transformationsTransformation wrapper that allows automatic inference of attribute rules and preservation of the attribute with the original nodes.sdeep-transformationsTransformation wrapper that allows automatic inference of attribute rules.udeep-transformations7The core function to tie the recursive knot, turning a j for a node into its l.vdeep-transformations/Another way to tie the recursive knot, using a j> to add attributes to every node througha stateful calculationwdeep-transformationsDrop-in implementation of  xdeep-transformationsDrop-in implementation of ?ydeep-transformationsDrop-in implementation of  4 that stores all attributes with every original nodezdeep-transformationsDrop-in implementation of ;4 that stores all attributes with every original nodefghijklmponqrstuvwxyzstqrmponlkjuvhiwxyzfg Safe-Inferred%c deep-transformationsThe core type class for defining the attribute grammar. The instances of this class typically have a form like instance Attribution MyAttGrammar MyMonoid MyNode (Semantics MyAttGrammar) Identity where attribution MyAttGrammar{} (Identity MyNode{}) Atts{inh= fromParent, syn= fromChildren} = Atts{syn= toParent, inh= toChildren}deep-transformations9The attribution rule for a given transformation and node.deep-transformationsAn attribution rule maps a node's inherited attribute and its child nodes' synthesized attribute to the node's synthesized attribute and the children nodes' inherited attributes.deep-transformations A node's ; maps its inherited attribute to its synthesized attribute.deep-transformations A node's ; maps its inherited attribute to its synthesized attribute.deep-transformationsTransformation wrapper that allows automatic inference of attribute rules and preservation of the attribute with the original nodes.deep-transformationsTransformation wrapper that allows automatic inference of attribute rules.deep-transformationsDrop-in implementation of  deep-transformationsDrop-in implementation of ?deep-transformationsDrop-in implementation of  4 that stores all attributes with every original nodeuvzuvz Safe-Inferred%  Safe-Inferred 'Gdeep-transformationsTransform (naturally) the containing functor of every node in the given tree.deep-transformationsPass down the given record of inherited fields to child nodes.deep-transformations The default  method definition for  fields.deep-transformations The default  method definition for  fields.deep-transformations The default  method definition for  fields.deep-transformationsattribute namedeep-transformationstransformationdeep-transformations tree nodedeep-transformationsinherited attributesdeep-transformationssynthesized attributesdeep-transformationstransformation deep-transformations tree nodedeep-transformationsinherited attributes deep-transformationssynthesized attributesdeep-transformationstransformation deep-transformations tree nodedeep-transformationsinherited attributes deep-transformationssynthesized attributes  Safe-Inferred4  !!"#$%&'()*+,-./01234567889:;<==>??@ABCDEFGHIJHIJKLMNOPQRSTUVKWXYZ[\]^_`abcdefghijklmnn567;<AA@>ooppBCDqErstuvwxyz{|}~n567;<AooppA@>DqEuvwx}       J I H         H  I  J K Y  X                  o o p p     u v w x                                                k l  m        3deep-transformations-0.2.1.1-6BTRymSvKfY4GUWOlxn8KiTransformationTransformation.AGTransformation.DeepTransformation.FullTransformation.Deep.THTransformation.AG.DimorphicTransformation.AG.MonomorphicTransformation.Full.THTransformation.Rank2Transformation.ShallowTransformation.AG.GenericsTransformation.Shallow.TH Data.FunctorFunctor Bequether Synthesizer GHC.GenericsGenericSynthesizedField TraversableFoldableData.Functor.SumSumData.Functor.ProductProduct Data.Eithereither ComposeInner ComposeOuter TraversedFoldedMappedComposeAt$DomainCodomainapply$fTransformationEither$fTransformation(,)$fTransformationArrow $fAtEitherx$fAt(,)x $fAtArrowx $fAtComposex$fTransformationCompose $fAtMappedx$fTransformationMapped $fAtFoldedx$fTransformationFolded$fAtTraversedx$fTransformationTraversed Attribution attributionRuleAllAttsallInhallSynPreservingSemantics Semantics Synthesizedsyn InheritedinhAttsknit knitKeeping applyDefaultapplyDefaultWithAttributes$fShowSynthesized$fShowInheritedtraversefoldMap<$>fmapmapDownDefault mapUpDefaultfoldMapDownDefaultfoldMapUpDefaulttraverseDownDefaulttraverseUpDefaultInLInRPairfstsnd eitherFromSum$fTraversabletProduct$fFunctortProduct$fDistributiveTYPEProduct$$fDistributiveTraversableTYPEProduct$fTraversableTYPEProduct$fFoldableTYPEProduct$fApplicativeTYPEProduct$fApplyTYPEProduct$fFunctorTYPEProduct$fTraversabletSum$fFoldabletSum $fFunctortSum$fTraversableTYPESum$fFoldableTYPESum$fFunctorTYPESum $fShowSum $fDataSum $fShowProduct $fDataProduct deriveAll deriveFunctorderiveTraversableFeederKeepAutofullMapDefaulttraverseDefaultWithAttributes $fMonoidAtts$fSemigroupAtts$fFunctorAutog$fFunctorKeepg $fAtKeepg $fAtAutog$fAttributiontabgdeepshallow$fTraversableFeederg $fAtFeederg$fTransformationFeeder$fTraversableKeepg $fDataAtts $fShowAtts$fAttributiontagdeepshallowderiveDownFunctorderiveUpFunctorderiveDownFoldablederiveUpFoldablederiveDownTraversablederiveUpTraversable TraversalFoldMap $fFunctorMapg$fAtMapx$fTransformationMap $fAtFoldx$fTransformationFold$fAtTraversalx$fTransformationTraversal$fFoldabletProduct getTraversed getMapped getFoldedsynthesizedField synthesisbequest RevelationrevealbequestDefaultpassDown foldedField mappedField$fAttributionAutogds$fFunctorTraversed $fAtPassDowna$fTransformationPassDown$fBequethertgArrowshallow)$fSynthesizedFieldnameFoldedtgdeepshallow$fTransformationAccumulator#$fSynthesizedFieldnameMappedtgdeepf$fAtReplicatora$fTransformationReplicator&$fSynthesizedFieldnameTraversedtgdeepf$fAtTraversera$fTransformationTraverser$$fGenericSynthesizerktgdeepshallowM1%$fGenericSynthesizerktgdeepshallow:*:$fSynthesizertgds-$fGenericSynthesizedFieldknameK1tgdeepshallow%$fGenericSynthesizerktgdeepshallowM10$fMayHaveMonoidalFieldknameaf$fMayHaveMonoidalFieldknameaM1$fMayHaveMonoidalFieldknameaM10$fMayHaveMonoidalFieldknameaM11$fMayHaveMonoidalFieldknamea:+:$fMayHaveMonoidalFieldknamea:*:$fAtAccumulatorx$fFoundFieldkaK1$fFoundFieldkaM1$fMayHaveMonoidalFieldknameaM12 $fEqTraversed$fOrdTraversed$fShowTraversed$fSemigroupTraversed$fMonoidTraversed $fEqMapped $fOrdMapped $fShowMapped$fSemigroupMapped$fMonoidMapped$fFunctorMapped$fApplicativeMapped $fMonadMapped$fFoldableMapped $fEqFolded $fOrdFolded $fShowFolded$fSemigroupFolded$fMonoidFoldedderiveFoldablebaseData.Traversable Data.Foldable)rank2classes-1.5.1-Dl7n8ir17cc8qNDINszQgZRank2MayHaveMonoidalFieldGenericSynthesizedFieldGenericSynthesizer Traverser Replicator AccumulatorPassDowntraversedField