úÎ;Ê7Ù(      !"#$%&'None+,DQR†This type family sets which fields should not be traversed when trying to generate automatically pruned versions of classy traversal.YInstantiate this type family to signal what elements does your operation operate on. If AppSelector c t is True, there should be a c t‚ instance. AppSelector should be a total type function for a given class, at least for all the types that can possibly accessed.]This type decides if the subtree of an element cannot contain an element that is transformed. ()*+,-. ()*+,-.None*+,059:;<=DOQRTf A class for traversals that use a polymorphic function to visit all applicable elements but only visit the parts where the applicable elements could be found.XA class for traversals that use a polymorphic function to visit all applicable elements./TA class for applying a function if the class of the functions allows the application /      /None0+The information we need from a constructor._Creates ClassyPlate instances for a datatype. Can specify which fields should not be traversed.1 Creates the  ClassyPlate2 Creates an  IgnoredFields8 type instance according to the ignored fields specified3FGenerates the body of the instance definitions for normal classyplates4CGenerates the body of the instance definition for auto classy plate5Creates the clause for the classyTraverse_ function for one constructor: ›classyTraverse_ t f (Add e1 e2) = app (undefined :: FlagToken (AppSelector c (Expr dom stage))) t f $ Add (classyTraverse_ t f e1) (classyTraverse_ t f e2)6Creates the clause for the classyTraverseM_ function for one constructor: hclassyTraverseM_ t f (Ann ann e) = appM (undefined :: FlagToken (AppSelector c (Ann e dom stage))) t f = <(Ann <$ return ann  * applyM t f e)7Creates the clause for the descend_ function for one constructor8Creates the clause for the  descendM_ function for one constructor9Creates the clause for the smartTraverse_ function for one constructor:Creates the clause for the smartTraverseM_ function for one constructor; Gets the name of a type variable<6Extracts the necessary information from a constructor.0=12>3?45@A6BCDEFGH7I8J9K:L;<0=12>3?45@A6BCDEFGH7I8J9K:L;<None   None*,9:;<=DORTf EA class for the simple case when the applied function is monomorphic.=Apply a monomorphic function on a polymorphic data structure.PGo down one level in the data structure and apply the given polymorphic functionNTraverse the data structure in a top-down fashion with a polymorphic function.!8Traverse the data structure with a polymorphic function."@Traverse the data structure with a polymorphic monadic function.#fTraverse the data structure selectively with a function specifying if need to go down on the subtrees.$nTraverse the data structure selectively with a monadic function specifying if need to go down on the subtrees.%~Traverse only those parts of the data structure that could possibly contain elements that the given function can be applied on&†Traverse only those parts of the data structure that could possibly contain elements that the given monadic function can be applied on !"#$%&'  !"#$%&' !"#$%&  !"#$%&'None !"#$%&M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST*classyplate-0.2.0.0-FusE3DWxF7qHvwaU7rIJlW#Data.Generics.ClassyPlate.TypePruneData.Generics.ClassyPlate.CoreData.Generics.ClassyPlate.TH Data.Generics.ClassyPlate.Common"Data.Generics.ClassyPlate.GenerateData.Generics.ClassyPlate IgnoredFields AppPruning AppSelectorClassIgnoresSubtreeSmartClassyPlatesmartTraverse_smartTraverseM_ ClassyPlate bottomUp_ bottomUpM_descend_ descendM_topDown_ topDownM_appappMappTDappTDM FlagTokenClsTokenGoodOperationForAutoGoodOperationFor$fSmartClassyPlatecTrueb $fAppFalsecb $fAppTruecbmakeClassyPlateTypEq MonoMatchmonoAppdescenddescendMtopDowntopDownMbottomUp bottomUpMselectiveTraverseselectiveTraverseM smartTraversesmartTraverseM $fMonoMatchaaGetElementTypesFieldGetElementTypesFieldsGetElementTypesConsGetElementTypesGetMemberTypes MemberTypes AnySelectedAppConRepmakeAutoCPForDataTypemakeIgnoredFieldsTF generateDefsgenerateAutoDefsgenerateAppClausegenerateAppMClausegenerateDescendAppClausegenerateDescendMAppClausegenerateAppAutoClausegenerateAppAutoMClause getTVName getConRepmakeNormalCPForDataType generateCtxgenerateAutoCtxgenerateAppExprgenerateRecombineExprgenerateAppMExprgenerateRecombineMExprgenerateTopDownClausegenerateTopDownExprcreateTopDownMatchgenerateTopDownMExprgenerateTopDownMMatchgenerateDescendRecombineExprgenerateDescendMRecombineExprgenerateAutoRecombineExprgenerateAutoRecombineMExpr