packages feed

haskell-tools-rewrite 1.0.0.4 → 1.0.1.1

raw patch · 25 files changed

+99/−65 lines, 25 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Language.Haskell.Tools.Rewrite.Create.Exprs: mkMDoBlock :: [Stmt] -> Expr
+ Language.Haskell.Tools.Rewrite.Create.Modules: mkFilePragmas :: [FilePragma] -> FilePragmaList
+ Language.Haskell.Tools.Rewrite.ElementTypes: type ImportModifier = Ann UImportModifier IdDom SrcTemplateStage
+ Language.Haskell.Tools.Rewrite.ElementTypes: type MaybeImportModifier = AnnMaybe UImportModifier

Files

Language/Haskell/Tools/Rewrite/Create/Binds.hs view
@@ -1,7 +1,8 @@ -- | Generation of binding-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkMatch@ creates the annotated version of the @UMatch@ constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Binds where
 
 import Data.String (IsString(..))
Language/Haskell/Tools/Rewrite/Create/Decls.hs view
@@ -1,7 +1,8 @@ -- | Generation of declaration-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkTypeSignature@ creates the annotated version of the @UTypeSignature@ AST constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Decls where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Create/Exprs.hs view
@@ -1,7 +1,8 @@ -- | Generation of expression-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkApp@ creates the annotated version of the @App@ AST constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Exprs where
 
 import Language.Haskell.Tools.AST
@@ -55,6 +56,11 @@ mkDoBlock :: [Stmt] -> Expr
 mkDoBlock stmts = mkAnn (child <> " " <> child) $ UDo (mkAnn "do" UDoKeyword) (mkAnnList (indented list) stmts)
 
+-- | Create a mdo-notation expressions (@ mdo x <- act1; act2 @)
+mkMDoBlock :: [Stmt] -> Expr
+mkMDoBlock stmts = mkAnn (child <> " " <> child) $ UDo (mkAnn "mdo" UMDoKeyword) (mkAnnList (indented list) stmts)
+
+
 -- | Create a tuple expression (@ (e1, e2, e3) @)
 mkTuple :: [Expr] -> Expr
 mkTuple exprs = mkAnn ("(" <> child <> ")") $ UTuple (mkAnnList (separatedBy ", " list) exprs)
@@ -65,13 +71,13 @@ 
 -- | Create a tuple section, enabled with @TupleSections@ (@ (a,,b) @). One of the elements must be missing.
 mkTupleSection :: [Maybe Expr] -> Expr
-mkTupleSection elems 
+mkTupleSection elems
   = let tupSecs = map (maybe (mkAnn "" Missing) (mkAnn child . Present)) elems
      in mkAnn ("(" <> child <> ")") $ UTupleSection (mkAnnList (separatedBy ", " list) tupSecs)
 
 -- | Create a unboxed tuple section, enabled with @TupleSections@ (@ (\#a,,b\#) @). One of the elements must be missing.
 mkTupleUnboxedSection :: [Maybe Expr] -> Expr
-mkTupleUnboxedSection elems 
+mkTupleUnboxedSection elems
   = let tupSecs = map (maybe (mkAnn "" Missing) (mkAnn child . Present)) elems
      in mkAnn ("(" <> child <> ")") $ UTupleSection (mkAnnList (separatedBy ", " list) tupSecs)
 
@@ -110,19 +116,19 @@ -- | Create a parallel array enumeration (@ [: 1,3 .. 10 :] @)
 mkParArrayEnum :: Expr -> Maybe (Expr) -> Expr -> Expr
 mkParArrayEnum from step to
-  = mkAnn ("[: " <> child <> child <> ".." <> child <> " :]") 
+  = mkAnn ("[: " <> child <> child <> ".." <> child <> " :]")
       $ UParArrayEnum from (mkAnnMaybe (after "," opt) step) to
 
 -- | Create a list comprehension (@ [ (x, y) | x <- xs | y <- ys ] @)
 mkListComp :: Expr -> [ListCompBody] -> Expr
-mkListComp expr stmts 
-  = mkAnn ("[ " <> child <> " | " <> child <> " ]") 
+mkListComp expr stmts
+  = mkAnn ("[ " <> child <> " | " <> child <> " ]")
       $ UListComp expr $ mkAnnList (separatedBy " | " list) stmts
 
 -- | Create a parallel array comprehensions @ [: (x, y) | x <- xs , y <- ys :] @ enabled by @ParallelArrays@
 mkParArrayComp :: Expr -> [ListCompBody] -> Expr
-mkParArrayComp expr stmts 
-  = mkAnn ("[: " <> child <> " | " <> child <> " :]") 
+mkParArrayComp expr stmts
+  = mkAnn ("[: " <> child <> " | " <> child <> " :]")
       $ UParArrayComp expr $ mkAnnList (separatedBy " | " list) stmts
 
 -- | Create a explicit type signature (@ x :: Int @)
@@ -204,7 +210,7 @@ mkGuardedCaseRhss :: [GuardedCaseRhs] -> CaseRhs
 mkGuardedCaseRhss = mkAnn child . UGuardedCaseRhss . mkAnnList (indented list)
 
--- | Creates a guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)      
+-- | Creates a guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)
 mkGuardedCaseRhs :: [RhsGuard] -> Expr -> GuardedCaseRhs
 mkGuardedCaseRhs guards expr = mkAnn (" | " <> child <> " -> " <> child) $ UGuardedCaseRhs (mkAnnList (separatedBy ", " list) guards) expr
 
@@ -212,17 +218,17 @@ 
 -- | Creates a @CORE@ pragma for adding notes to expressions.
 mkCorePragma :: String -> ExprPragma
-mkCorePragma = mkAnn ("{-# CORE " <> child <> " #-}") . UCorePragma 
+mkCorePragma = mkAnn ("{-# CORE " <> child <> " #-}") . UCorePragma
                  . mkAnn ("\"" <> child <> "\"") . UStringNode
 
 -- | Creates an @SCC@ pragma for defining cost centers for profiling
 mkSccPragma :: String -> ExprPragma
-mkSccPragma = mkAnn ("{-# SCC " <> child <> " #-}") . USccPragma 
+mkSccPragma = mkAnn ("{-# SCC " <> child <> " #-}") . USccPragma
                 . mkAnn ("\"" <> child <> "\"") . UStringNode
 
 -- | Creates a pragma that describes if an expression was generated from a code fragment by an external tool (@ {-\# GENERATED "Happy.y" 1:15-1:25 \#-} @)
 mkGeneratedPragma :: SourceRange -> ExprPragma
-mkGeneratedPragma = mkAnn ("{-# GENERATED " <> child <> " #-}") . UGeneratedPragma 
+mkGeneratedPragma = mkAnn ("{-# GENERATED " <> child <> " #-}") . UGeneratedPragma
 
 -- | Create a in-AST source ranges (for generated pragmas)
 mkSourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange
@@ -236,13 +242,13 @@ 
 -- | An arrow application command (@ f -< x + 1 @)
 mkArrowAppCmd :: Expr -> ArrowApp -> Expr -> Cmd
-mkArrowAppCmd lhs arrow rhs 
+mkArrowAppCmd lhs arrow rhs
   = mkAnn (child <> " " <> child <> " " <> child)
       $ UArrowAppCmd lhs arrow rhs
 
 -- | A form command (@ (|untilA (increment -< x+y) (within 0.5 -< x)|) @)
 mkArrowFromCmd :: Expr -> [Cmd] -> Cmd
-mkArrowFromCmd expr cmds 
+mkArrowFromCmd expr cmds
   = mkAnn ("(| " <> child <> child <> " |)")
       $ UArrowFormCmd expr $ mkAnnList (after " " $ separatedBy " " list) cmds
 
@@ -256,7 +262,7 @@ mkInfixCmd lhs op rhs = mkAnn (child <> " " <> child <> " " <> child)
                           $ UInfixCmd lhs op rhs
 
--- | A lambda command 
+-- | A lambda command
 mkLambdaCmd :: [Pattern] -> Cmd -> Cmd
 mkLambdaCmd args cmd = mkAnn ("\\" <> child <> " -> " <> child)
                          $ ULambdaCmd (mkAnnList (separatedBy " " list) args) cmd
@@ -267,20 +273,20 @@ 
 -- | A pattern match command
 mkCaseCmd :: Expr -> [CmdAlt] -> Cmd
-mkCaseCmd expr alts 
-  = mkAnn ("case " <> child <> " of " <> child) 
+mkCaseCmd expr alts
+  = mkAnn ("case " <> child <> " of " <> child)
       $ UCaseCmd expr $ mkAnnList (indented list) alts
 
 -- | An if command (@ if f x y then g -< x+1 else h -< y+2 @)
 mkIfCmd :: Expr -> Cmd -> Cmd -> Cmd
-mkIfCmd pred then_ else_ 
-  = mkAnn ("if " <> child <> " then " <> child <> " else " <> child) 
+mkIfCmd pred then_ else_
+  = mkAnn ("if " <> child <> " then " <> child <> " else " <> child)
       $ UIfCmd pred then_ else_
 
 -- | A local binding command (@ let z = x+y @)
 mkLetCmd :: [LocalBind] -> Cmd -> Cmd
 mkLetCmd binds cmd
-  = mkAnn ("let " <> child <> " in " <> child) 
+  = mkAnn ("let " <> child <> " in " <> child)
       $ ULetCmd (mkAnnList (indented list) binds) cmd
 
 -- | A do-notation in a command
@@ -306,5 +312,3 @@ -- | A hole expression @_@
 mkHole :: Expr
 mkHole = mkAnn "_" UHole
-
-
Language/Haskell/Tools/Rewrite/Create/Kinds.hs view
@@ -1,6 +1,7 @@ -- | Generation of statement-level AST fragments for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Kinds where
 
 import Data.String (IsString(..), String)
Language/Haskell/Tools/Rewrite/Create/Literals.hs view
@@ -1,6 +1,7 @@ -- | Generation of literals for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Literals where
 
 import Data.String (IsString(..), String)
Language/Haskell/Tools/Rewrite/Create/Modules.hs view
@@ -1,7 +1,8 @@ -- | Generation of UModule-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkModule@ creates the annotated version of the @UModule@ AST constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Modules where
 
 import Data.String (IsString(..), String)
@@ -14,14 +15,14 @@ -- | The representation of a haskell module, that is a separate compilation unit.
 -- It may or may not have a header.
 mkModule :: [FilePragma] -> Maybe ModuleHead -> [ImportDecl] -> [Decl] -> Module
-mkModule filePrags head imps decls 
-  = mkAnn (child <> child <> child <> child) 
+mkModule filePrags head imps decls
+  = mkAnn (child <> child <> child <> child)
       $ UModule (mkAnnList (followedBy "\n" $ separatedBy "\n" list) filePrags) (mkAnnMaybe opt head)
                 (mkAnnList (after "\n" $ indented list) imps) (mkAnnList (after "\n" $ indented list) decls)
-               
+
 -- | Module declaration with name and (optional) exports
 mkModuleHead :: ModuleName -> Maybe ModulePragma -> Maybe ExportSpecs -> ModuleHead
-mkModuleHead n pr es = mkAnn ("module " <> child <> child <> child <> " where") 
+mkModuleHead n pr es = mkAnn ("module " <> child <> child <> child <> " where")
                          $ UModuleHead n (mkAnnMaybe (after "\n" opt) pr) (mkAnnMaybe opt es)
 
 -- | A list of export specifications surrounded by parentheses
@@ -52,9 +53,9 @@ mkSubAll :: SubSpec
 mkSubAll = mkAnn ".." USubSpecAll
 
--- | An import declaration: @import Module.Name@         
+-- | An import declaration: @import Module.Name@
 mkImportDecl :: Bool -> Bool -> Bool -> Maybe String -> ModuleName -> Maybe ModuleName -> Maybe ImportSpec
-                  -> ImportDecl       
+                  -> ImportDecl
 mkImportDecl source qualified safe pkg name rename spec
   = mkAnn ("import " <> child <> child <> child <> child <> child <> child <> child) $
       UImportDecl (if source then justVal (mkAnn "{-# SOURCE #-} " UImportSource) else noth)
@@ -77,26 +78,29 @@ 
 -- * Pragmas
 
+mkFilePragmas :: [FilePragma] -> FilePragmaList
+mkFilePragmas = mkAnnList (separatedBy "\n" list)
+
 -- | @LANGUAGE@ pragma, listing the enabled language extensions in that file
 mkLanguagePragma :: [String] -> FilePragma
-mkLanguagePragma extensions 
-  = mkAnn ("{-# LANGUAGE " <> child <> " #-}") $ ULanguagePragma 
+mkLanguagePragma extensions
+  = mkAnn ("{-# LANGUAGE " <> child <> " #-}") $ ULanguagePragma
       $ mkAnnList (separatedBy ", " list) (map (\ext -> mkAnn (fromString ext) (ULanguageExtension ext)) extensions)
 
 -- | @OPTIONS@ pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
 mkOptionsGHC :: String -> FilePragma
-mkOptionsGHC opts 
-  = mkAnn ("{-# OPTIONS_GHC " <> child <> " #-}") $ UOptionsPragma 
+mkOptionsGHC opts
+  = mkAnn ("{-# OPTIONS_GHC " <> child <> " #-}") $ UOptionsPragma
       $ mkStringNode opts
 
 -- | A warning pragma attached to the module
 mkModuleWarningPragma :: [String] -> ModulePragma
-mkModuleWarningPragma msg 
-  = mkAnn ("{-# WARNING " <> child <> " #-}") $ UModuleWarningPragma 
+mkModuleWarningPragma msg
+  = mkAnn ("{-# WARNING " <> child <> " #-}") $ UModuleWarningPragma
       $ mkAnnList (separatedBy " " list) $ map mkStringNode msg
 
 -- | A deprecated pragma attached to the module
 mkModuleDeprecatedPragma :: [String] -> ModulePragma
-mkModuleDeprecatedPragma msg 
-  = mkAnn ("{-# DEPRECATED " <> child <> " #-}") $ UModuleDeprecatedPragma 
+mkModuleDeprecatedPragma msg
+  = mkAnn ("{-# DEPRECATED " <> child <> " #-}") $ UModuleDeprecatedPragma
       $ mkAnnList (separatedBy " " list) $ map mkStringNode msg
Language/Haskell/Tools/Rewrite/Create/Names.hs view
@@ -1,5 +1,6 @@ -- | Generation of names for refactorings
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Names where
 
 import Data.String (IsString(..), String)
Language/Haskell/Tools/Rewrite/Create/Patterns.hs view
@@ -1,7 +1,8 @@ -- | Generation of pattern-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkVarPat@ creates the annotated version of the @VarPat@ AST constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Patterns where
 
 import Language.Haskell.Tools.AST (UFieldWildcard(..), UPatternField(..), UPattern(..))
Language/Haskell/Tools/Rewrite/Create/Stmts.hs view
@@ -1,6 +1,7 @@ -- | Generation of statement-level AST fragments for refactorings.
 -- The bindings defined here are the AST constructor names with an "mk" prefix.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Stmts where
 
 import Language.Haskell.Tools.AST (UCompStmt(..), UListCompBody(..), UStmt'(..))
Language/Haskell/Tools/Rewrite/Create/TH.hs view
@@ -1,5 +1,6 @@ -- | Generation of Template Haskell AST fragments for refactorings.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.TH where
 
 import Data.String (IsString(..), String)
Language/Haskell/Tools/Rewrite/Create/Types.hs view
@@ -1,7 +1,8 @@ -- | Generation of type-level AST fragments for refactorings.
 -- The bindings defined here create a the annotated version of the AST constructor with the same name.
 -- For example, @mkTyForall@ creates the annotated version of the @TyForall@ AST constructor.
-{-# LANGUAGE OverloadedStrings, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds, OverloadedStrings #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Types where
 
 import Data.String (IsString(..), String)
Language/Haskell/Tools/Rewrite/Create/Utils.hs view
@@ -1,5 +1,6 @@ -- | Utility methods for generating parts of the AST for refactorings
-{-# LANGUAGE FlexibleInstances, TypeFamilies #-}
+{-# LANGUAGE MonoLocalBinds #-}
+
 module Language.Haskell.Tools.Rewrite.Create.Utils where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/ElementTypes.hs view
@@ -23,6 +23,9 @@ -- | Marks a name to be imported or exported with related names (subspecifier)
 type IESpec = Ann UIESpec IdDom SrcTemplateStage
 
+-- | Specifies the imported element
+type ImportModifier = Ann UImportModifier IdDom SrcTemplateStage
+
 -- | Marks how related names will be imported or exported with a given name
 type SubSpec = Ann USubSpec IdDom SrcTemplateStage
 
@@ -346,6 +349,7 @@ type MaybeImportSafe = AnnMaybe UImportSafe
 type MaybeImportSpec = AnnMaybe UImportSpec
 type MaybeModuleHead = AnnMaybe UModuleHead
+type MaybeImportModifier = AnnMaybe UImportModifier
 type MaybeModulePragma = AnnMaybe UModulePragma
 type MaybeSubSpec = AnnMaybe USubSpec
 type MaybeStringNode = AnnMaybe UStringNode
Language/Haskell/Tools/Rewrite/Match/Binds.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on binding-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Binds where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/Decls.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on declaration-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Decls where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/Exprs.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching expression-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Exprs where
 
 import Language.Haskell.Tools.AST
@@ -52,6 +53,10 @@ pattern Do :: StmtList -> Expr
 pattern Do stmts <- Ann _ (UDo DoKeyword stmts)
 
+-- | MDo-notation expressions (@ mdo x <- act1; act2 @)
+pattern MDo :: StmtList -> Expr
+pattern MDo stmts <- Ann _ (UDo MDoKeyword stmts)
+
 pattern ParArrayComp :: Expr -> ListCompBodyList -> Expr
 pattern ParArrayComp expr stmts <- Ann _ (UParArrayComp expr stmts)
 
@@ -192,7 +197,7 @@ 
 -- | Clause of case expression (@ Just x -> x + 1 @)
 pattern Alt :: Pattern -> CaseRhs -> MaybeLocalBinds -> Alt
-pattern Alt pat rhs locals <- Ann _ (UAlt pat rhs locals) 
+pattern Alt pat rhs locals <- Ann _ (UAlt pat rhs locals)
 
 -- | Unguarded right-hand side a pattern match (@ -> 3 @)
 pattern CaseRhs :: Expr -> CaseRhs
@@ -202,7 +207,7 @@ pattern GuardedCaseRhss :: GuardedCaseRhsList -> CaseRhs
 pattern GuardedCaseRhss cases <- Ann _ (UGuardedCaseRhss cases)
 
--- | A guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)      
+-- | A guarded right-hand side of pattern matches binding (@ | x > 3 -> 2 @)
 pattern GuardedCaseRhs :: RhsGuardList -> Expr -> GuardedCaseRhs
 pattern GuardedCaseRhs guards expr <- Ann _ (UGuardedCaseRhs guards expr)
 
@@ -223,8 +228,8 @@ 
 -- | In-AST source ranges (for generated pragmas)
 pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange
-pattern SourceRange file fromLine fromCol toLine toCol 
-          <- Ann _ (USourceRange 
+pattern SourceRange file fromLine fromCol toLine toCol
+          <- Ann _ (USourceRange
                      (Ann _ (UStringNode file))
                      (Ann _ (Number fromLine))
                      (Ann _ (Number fromCol))
@@ -275,23 +280,20 @@ 
 -- | Left arrow application: @-<@
 pattern LeftAppl :: ArrowApp
-pattern LeftAppl <- Ann _ ULeftAppl 
+pattern LeftAppl <- Ann _ ULeftAppl
 
 -- | Right arrow application: @>-@
 pattern RightAppl :: ArrowApp
-pattern RightAppl <- Ann _ URightAppl 
+pattern RightAppl <- Ann _ URightAppl
 
 -- | Left arrow high application: @-<<@
 pattern LeftHighApp :: ArrowApp
-pattern LeftHighApp <- Ann _ ULeftHighApp 
+pattern LeftHighApp <- Ann _ ULeftHighApp
 
 -- | Right arrow high application: @>>-@
 pattern RightHighApp :: ArrowApp
-pattern RightHighApp <- Ann _ URightHighApp 
+pattern RightHighApp <- Ann _ URightHighApp
 
 -- | A hole expression @_@
 pattern Hole :: Expr
 pattern Hole <- Ann _ UHole
-
-
-
Language/Haskell/Tools/Rewrite/Match/Kinds.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on statement-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Kinds where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/Literals.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on literals for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Literals where
 
 import Language.Haskell.Tools.AST (ULiteral(..), Ann(..))
Language/Haskell/Tools/Rewrite/Match/Modules.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on UModule-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Modules where
 
 import Language.Haskell.Tools.AST
@@ -28,8 +29,8 @@ pattern ModuleExport name <- Ann _ (UModuleExport name)
 
 -- | Marks a name to be imported or exported with related names (subspecifier)
-pattern IESpec :: Name -> MaybeSubSpec -> IESpec
-pattern IESpec name ss <- Ann _ (UIESpec _ name ss)
+pattern IESpec :: MaybeImportModifier -> Name -> MaybeSubSpec -> IESpec
+pattern IESpec modifier name ss <- Ann _ (UIESpec modifier name ss)
 
 -- | @(..)@: a class exported with all of its methods, or a datatype exported with all of its constructors.
 pattern SubAll :: SubSpec
@@ -40,10 +41,10 @@ pattern SubList names <- Ann _ (USubSpecList names)
 
 
-pattern ImportDecl :: MaybeImportSource -> MaybeImportQualified 
+pattern ImportDecl :: MaybeImportSource -> MaybeImportQualified
                         -> MaybeImportSafe -> MaybeStringNode
                         -> ModuleName -> MaybeImportRenaming
-                        -> MaybeImportSpec -> ImportDecl       
+                        -> MaybeImportSpec -> ImportDecl
 pattern ImportDecl source qualified safe pkg name rename spec <- Ann _ (UImportDecl source qualified safe pkg name rename spec)
 
 pattern ImportRenaming :: ModuleName -> ImportRenaming
@@ -78,4 +79,4 @@ 
 -- | A deprecated pragma attached to the module
 pattern ModuleDeprecatedPragma :: StringNodeList -> ModulePragma
-pattern ModuleDeprecatedPragma msgs <- Ann _ (UModuleDeprecatedPragma msgs)+pattern ModuleDeprecatedPragma msgs <- Ann _ (UModuleDeprecatedPragma msgs)
Language/Haskell/Tools/Rewrite/Match/Names.hs view
@@ -1,5 +1,6 @@ -- | Generation of basic AST fragments (names for example) for refactorings
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Names where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/Patterns.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on pattern-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Patterns where
 
 import Language.Haskell.Tools.AST (Ann(..), UPatternField(..), UPattern(..))
Language/Haskell/Tools/Rewrite/Match/Stmts.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on statement-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Stmts where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/TH.hs view
@@ -1,5 +1,6 @@ -- | Pattern matching on Template Haskell AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.TH where
 
 import Language.Haskell.Tools.AST
Language/Haskell/Tools/Rewrite/Match/Types.hs view
@@ -1,5 +1,6 @@ -- | UPattern matching on type-level AST fragments for refactorings.
 {-# LANGUAGE PatternSynonyms #-}
+
 module Language.Haskell.Tools.Rewrite.Match.Types where
 
 import Language.Haskell.Tools.AST
@@ -11,7 +12,7 @@ pattern ForallType :: TyVarList -> Type -> Type
 pattern ForallType vars t <- Ann _ (UTyForall vars t)
 
--- | Type with a context (@ forall x y . type @)
+-- | Type with a context (@ C a => type @)
 pattern CtxType :: Context -> Type -> Type
 pattern CtxType ctx t <- Ann _ (UTyCtx ctx t)
 
haskell-tools-rewrite.cabal view
@@ -1,5 +1,5 @@ name:                haskell-tools-rewrite
-version:             1.0.0.4
+version:             1.0.1.1
 synopsis:            Facilities for generating new parts of the Haskell-Tools AST
 description:         Contains utility functions to generate parts of the Haskell-Tools AST. Generates these elements to be compatible with the source annotations that are already present on the AST. The package is divided into modules based on which language elements can the given module generate. This packages should be used during the transformations to generate parts of the new AST.
 homepage:            https://github.com/haskell-tools/haskell-tools