Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Haskell.Tools.Refactor
Description
Defines the API for refactorings
Synopsis
- trace :: String -> a -> a
- data Maybe a
- maybe :: b -> (a -> b) -> Maybe a -> b
- isJust :: Maybe a -> Bool
- isNothing :: Maybe a -> Bool
- fromMaybe :: a -> Maybe a -> a
- maybeToList :: Maybe a -> [a]
- listToMaybe :: [a] -> Maybe a
- catMaybes :: [Maybe a] -> [a]
- mapMaybe :: (a -> Maybe b) -> [a] -> [b]
- traceMarkerIO :: String -> IO ()
- traceMarker :: String -> a -> a
- traceEventIO :: String -> IO ()
- traceEvent :: String -> a -> a
- traceStack :: String -> a -> a
- traceShowM :: (Show a, Applicative f) => a -> f ()
- traceM :: Applicative f => String -> f ()
- traceShowId :: Show a => a -> a
- traceShow :: Show a => a -> b -> b
- traceId :: String -> String
- putTraceMsg :: String -> IO ()
- traceIO :: String -> IO ()
- fromJust :: Maybe a -> a
- newtype MaybeT (m :: Type -> Type) a = MaybeT {}
- inScope :: Name -> Scope -> Bool
- compareRangeLength :: SrcSpan -> SrcSpan -> Ordering
- getNodeContaining :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage, HasRange (Ann inner dom stage)) => RealSrcSpan -> Ann node dom stage -> Maybe (Ann inner dom stage)
- nodesWithRange :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage) => RealSrcSpan -> Simple Traversal (Ann node dom stage) (Ann inner dom stage)
- isContained :: HasRange (inner dom stage) => RealSrcSpan -> inner dom stage -> Bool
- nodesContained :: (HasRange (inner dom stage), Biplate (node dom stage) (inner dom stage)) => RealSrcSpan -> Simple Traversal (node dom stage) (inner dom stage)
- isInside :: HasRange (inner dom stage) => RealSrcSpan -> inner dom stage -> Bool
- nodesContaining :: (HasRange (inner dom stage), Biplate (node dom stage) (inner dom stage)) => RealSrcSpan -> Simple Traversal (node dom stage) (inner dom stage)
- semantics :: Simple Lens (Ann elem dom stage) (SemanticInfo dom elem)
- valBindPats :: Simple Traversal (Ann UValueBind dom stage) (Ann UPattern dom stage)
- typeParams :: Simple Traversal (Ann UType dom stage) (Ann UType dom stage)
- declHeadNames :: Simple Traversal (Ann UDeclHead dom stage) (Ann UQualifiedName dom stage)
- bindingName :: Simple Traversal (Ann UValueBind dom stage) (Ann UQualifiedName dom stage)
- importIsHiding :: Ann UImportDecl dom stage -> Bool
- importIsExact :: Ann UImportDecl dom stage -> Bool
- pattern AnnList :: forall (elem :: Type -> Type -> Type) dom stage. [Ann elem dom stage] -> AnnListG elem dom stage
- pattern AnnNothing :: forall (elem :: Type -> Type -> Type) dom stage. AnnMaybeG elem dom stage
- pattern AnnJust :: forall (elem :: Type -> Type -> Type) dom stage. Ann elem dom stage -> AnnMaybeG elem dom stage
- class NamedElement (elem :: Type -> Type -> Type) where
- elementName :: Simple Traversal (Ann elem dom st) (Ann UQualifiedName dom st)
- stringNodeStr :: Lens (Ann UStringNode dom stage) (Ann UStringNode dom stage) String String
- simpleNameStr :: Lens (Ann UNamePart dom stage) (Ann UNamePart dom stage) String String
- unqualifiedName :: Lens (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) (Ann UNamePart dom stage) (Ann UNamePart dom stage)
- qualifiers :: Lens (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) (AnnListG UNamePart dom stage) (AnnListG UNamePart dom stage)
- simpleName :: Lens (Ann UName dom stage) (Ann UName dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage)
- operatorName :: Lens (Ann UOperator dom stage) (Ann UOperator dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage)
- promotedStringValue :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) String String
- promotedIntValue :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) Integer Integer
- promotedElements :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) (AnnListG t dom stage) (AnnListG t dom stage)
- promotedConName :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) (Ann UName dom stage) (Ann UName dom stage)
- stringLitValue :: Partial (Ann ULiteral dom stage) (Ann ULiteral dom stage) String String
- intLitValue :: Partial (Ann ULiteral dom stage) (Ann ULiteral dom stage) Integer Integer
- fracLitValue :: Partial (Ann ULiteral dom stage) (Ann ULiteral dom stage) Rational Rational
- floatLitValue :: Partial (Ann ULiteral dom stage) (Ann ULiteral dom stage) Rational Rational
- charLitValue :: Partial (Ann ULiteral dom stage) (Ann ULiteral dom stage) Char Char
- bracketType :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UType dom stage) (Ann UType dom stage)
- bracketPattern :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- bracketExpr :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- bracketDecl :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (AnnListG UDecl dom stage) (AnnListG UDecl dom stage)
- qqString :: Lens (Ann QQString dom stage) (Ann QQString dom stage) String String
- qqExprName :: Lens (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) (Ann UName dom stage) (Ann UName dom stage)
- qqExprBody :: Lens (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) (Ann QQString dom stage) (Ann QQString dom stage)
- spliceId :: Partial (Ann USplice dom stage) (Ann USplice dom stage) (Ann UName dom stage) (Ann UName dom stage)
- spliceExpr :: Partial (Ann USplice dom stage) (Ann USplice dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- fieldPatternWildcard :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UFieldWildcard dom stage) (Ann UFieldWildcard dom stage)
- fieldPatternName :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UName dom stage) (Ann UName dom stage)
- fieldPattern :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- patternType :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UType dom stage) (Ann UType dom stage)
- patternSumPlaceholdersBefore :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage)
- patternSumPlaceholdersAfter :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage)
- patternSplice :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann USplice dom stage) (Ann USplice dom stage)
- patternRhs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- patternOperator :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- patternName :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UName dom stage) (Ann UName dom stage)
- patternLiteral :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage)
- patternLit :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage)
- patternLhs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- patternInner :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- patternFields :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPatternField dom stage) (AnnListG UPatternField dom stage)
- patternExpr :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- patternElems :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage)
- patternArgs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage)
- patQQ :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage)
- cmdThen :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdStmts :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmdStmt dom stage) (AnnListG UCmdStmt dom stage)
- cmdRightCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdRhs :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- cmdOperator :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UName dom stage) (Ann UName dom stage)
- cmdLhs :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- cmdLeftCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdInnerCmds :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmd dom stage) (AnnListG UCmd dom stage)
- cmdInnerCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdInner :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdExpr :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- cmdElse :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- cmdBinds :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage)
- cmdBindings :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage)
- cmdArrowOp :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UArrowAppl dom stage) (Ann UArrowAppl dom stage)
- cmdApplied :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- cmdAlts :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmdAlt dom stage) (AnnListG UCmdAlt dom stage)
- compStmts :: Lens (Ann UListCompBody dom stage) (Ann UListCompBody dom stage) (AnnListG UCompStmt dom stage) (AnnListG UCompStmt dom stage)
- usingExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage)
- thenExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- compStmt :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (Ann UStmt dom stage) (Ann UStmt dom stage)
- byExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage)
- stmtPattern :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- stmtExpr :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage)
- stmtBinds :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage)
- cmdStmtBinds :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (AnnListG (UStmt' expr) dom stage) (AnnListG (UStmt' expr) dom stage)
- caseGuardStmts :: Lens (Ann (UGuardedCaseRhs' expr) dom stage) (Ann (UGuardedCaseRhs' expr) dom stage) (AnnListG URhsGuard dom stage) (AnnListG URhsGuard dom stage)
- caseGuardExpr :: Lens (Ann (UGuardedCaseRhs' expr) dom stage) (Ann (UGuardedCaseRhs' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage)
- rhsCaseGuards :: Partial (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (AnnListG (UGuardedCaseRhs' expr) dom stage) (AnnListG (UGuardedCaseRhs' expr) dom stage)
- rhsCaseExpr :: Partial (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage)
- pragmaStr :: Partial (Ann UExprPragma dom stage) (Ann UExprPragma dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage)
- pragmaSrcRange :: Partial (Ann UExprPragma dom stage) (Ann UExprPragma dom stage) (Ann USourceRange dom stage) (Ann USourceRange dom stage)
- tupSecExpr :: Partial (Ann UTupSecElem dom stage) (Ann UTupSecElem dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- fieldWildcard :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UFieldWildcard dom stage) (Ann UFieldWildcard dom stage)
- fieldValue :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- fieldUpdateName :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UName dom stage) (Ann UName dom stage)
- fieldName :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UName dom stage) (Ann UName dom stage)
- altRhs :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage)
- altPattern :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- altBinds :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage)
- tupleSectionElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UTupSecElem dom stage) (AnnListG UTupSecElem dom stage)
- tupleElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UExpr dom stage) (AnnListG UExpr dom stage)
- quotedName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage)
- procPattern :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- procExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage)
- listElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UExpr dom stage) (AnnListG UExpr dom stage)
- innerExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprType :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UType dom stage) (Ann UType dom stage)
- exprThen :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprSumPlaceholdersBefore :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage)
- exprSumPlaceholdersAfter :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage)
- exprStmts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UStmt dom stage) (AnnListG UStmt dom stage)
- exprSplice :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann USplice dom stage) (Ann USplice dom stage)
- exprSig :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UType dom stage) (Ann UType dom stage)
- exprRhs :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprRecName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage)
- exprRecFields :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UFieldUpdate dom stage) (AnnListG UFieldUpdate dom stage)
- exprQQ :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage)
- exprPragma :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExprPragma dom stage) (Ann UExprPragma dom stage)
- exprOperator :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- exprName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage)
- exprLit :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage)
- exprLhs :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprInner :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprIfAlts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UGuardedCaseRhs dom stage) (AnnListG UGuardedCaseRhs dom stage)
- exprFunBind :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage)
- exprFun :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprElse :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprCond :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprCase :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprBracket :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UBracket dom stage) (Ann UBracket dom stage)
- exprBindings :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage)
- exprArg :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- exprAlts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UAlt dom stage) (AnnListG UAlt dom stage)
- enumToFix :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- enumTo :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage)
- enumThen :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage)
- enumFrom :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- doKind :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UDoKind dom stage) (Ann UDoKind dom stage)
- compExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- compBody :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UListCompBody dom stage) (AnnListG UListCompBody dom stage)
- arrowAppl :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UArrowAppl dom stage) (Ann UArrowAppl dom stage)
- innerAsserts :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (AnnListG UAssertion dom stage) (AnnListG UAssertion dom stage)
- assertTypes :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage)
- assertRhs :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage)
- assertOp :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- assertLhs :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage)
- assertImplVar :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UName dom stage) (Ann UName dom stage)
- assertImplType :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage)
- assertClsName :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UName dom stage) (Ann UName dom stage)
- contextAssertion :: Lens (Ann UContext dom stage) (Ann UContext dom stage) (Ann UAssertion dom stage) (Ann UAssertion dom stage)
- kindVar :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UName dom stage) (Ann UName dom stage)
- kindType :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UType dom stage) (Ann UType dom stage)
- kindRight :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindRhs :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindPromoted :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann (UPromoted UKind) dom stage) (Ann (UPromoted UKind) dom stage)
- kindParen :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindLhs :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindLeft :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindElems :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (AnnListG UKind dom stage) (AnnListG UKind dom stage)
- kindElem :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindAppOp :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- kindAppFun :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- kindAppArg :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- typeWildcardName :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UName dom stage) (Ann UName dom stage)
- typeType :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeRight :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeResult :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeQQ :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage)
- typeParam :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeOperator :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- typeName :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UName dom stage) (Ann UName dom stage)
- typeLeft :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeKind :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- typeInner :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeElements :: Partial (Ann UType dom stage) (Ann UType dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage)
- typeElement :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeCtx :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UContext dom stage) (Ann UContext dom stage)
- typeCon :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- typeBounded :: Partial (Ann UType dom stage) (Ann UType dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage)
- typeArg :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- tsSplice :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann USplice dom stage) (Ann USplice dom stage)
- tpPromoted :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann (UPromoted UType) dom stage) (Ann (UPromoted UType) dom stage)
- tyVarName :: Lens (Ann UTyVar dom stage) (Ann UTyVar dom stage) (Ann UName dom stage) (Ann UName dom stage)
- tyVarKind :: Lens (Ann UTyVar dom stage) (Ann UTyVar dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage)
- valBindRhs :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (Ann URhs dom stage) (Ann URhs dom stage)
- valBindPat :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- valBindLocals :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage)
- funBindMatches :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (AnnListG UMatch dom stage) (AnnListG UMatch dom stage)
- kindConstr :: Lens (Ann UKindConstraint dom stage) (Ann UKindConstraint dom stage) (Ann UKind dom stage) (Ann UKind dom stage)
- matchLhsRhs :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- matchLhsOperator :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- matchLhsName :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UName dom stage) (Ann UName dom stage)
- matchLhsLhs :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- matchLhsArgs :: Lens (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage)
- tsType :: Lens (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) (Ann UType dom stage) (Ann UType dom stage)
- tsName :: Lens (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- precedenceValue :: Lens (Ann Precedence dom stage) (Ann Precedence dom stage) Int Int
- fixityPrecedence :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (AnnMaybeG Precedence dom stage) (AnnMaybeG Precedence dom stage)
- fixityOperators :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (AnnListG UOperator dom stage) (AnnListG UOperator dom stage)
- fixityAssoc :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (Ann Assoc dom stage) (Ann Assoc dom stage)
- localBinds :: Lens (Ann ULocalBinds dom stage) (Ann ULocalBinds dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage)
- localVal :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage)
- localSig :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage)
- localInline :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage)
- localFixity :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage)
- guardRhs :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- guardPat :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- guardCheck :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- guardBinds :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage)
- guardStmts :: Lens (Ann UGuardedRhs dom stage) (Ann UGuardedRhs dom stage) (AnnListG URhsGuard dom stage) (AnnListG URhsGuard dom stage)
- guardExpr :: Lens (Ann UGuardedRhs dom stage) (Ann UGuardedRhs dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- rhsGuards :: Partial (Ann URhs dom stage) (Ann URhs dom stage) (AnnListG UGuardedRhs dom stage) (AnnListG UGuardedRhs dom stage)
- rhsExpr :: Partial (Ann URhs dom stage) (Ann URhs dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- matchRhs :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (Ann URhs dom stage) (Ann URhs dom stage)
- matchLhs :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage)
- matchBinds :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage)
- specializeType :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage)
- specializeDef :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (Ann UName dom stage) (Ann UName dom stage)
- pragmaPhase :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (AnnMaybeG UPhaseControl dom stage) (AnnMaybeG UPhaseControl dom stage)
- numberInteger :: Lens (Ann Number dom stage) (Ann Number dom stage) Integer Integer
- srToLine :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage)
- srToCol :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage)
- srFromLine :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage)
- srFromCol :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage)
- srFileName :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage)
- minimalOrs :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage)
- minimalName :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UName dom stage) (Ann UName dom stage)
- minimalInner :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage)
- minimalAnds :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage)
- annotateName :: Partial (Ann UAnnotationSubject dom stage) (Ann UAnnotationSubject dom stage) (Ann UName dom stage) (Ann UName dom stage)
- warnMessage :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage)
- specializePragma :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage)
- pragmaSignature :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnMaybeG UName dom stage) (AnnMaybeG UName dom stage)
- pragmaRule :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG URule dom stage) (AnnListG URule dom stage)
- pragmaObjects :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- pragmaLineNum :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann LineNumber dom stage) (Ann LineNumber dom stage)
- pragmaInline :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage)
- pragmaFileName :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnMaybeG UStringNode dom stage) (AnnMaybeG UStringNode dom stage)
- deprMessage :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage)
- annotationSubject :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UAnnotationSubject dom stage) (Ann UAnnotationSubject dom stage)
- annotateExpr :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- phaseNum :: Lens (Ann PhaseNumber dom stage) (Ann PhaseNumber dom stage) Integer Integer
- phaseUntil :: Lens (Ann UPhaseControl dom stage) (Ann UPhaseControl dom stage) (AnnMaybeG PhaseInvert dom stage) (AnnMaybeG PhaseInvert dom stage)
- phaseNumber :: Lens (Ann UPhaseControl dom stage) (Ann UPhaseControl dom stage) (AnnMaybeG PhaseNumber dom stage) (AnnMaybeG PhaseNumber dom stage)
- ruleVarType :: Partial (Ann URuleVar dom stage) (Ann URuleVar dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ruleVarName :: Lens (Ann URuleVar dom stage) (Ann URuleVar dom stage) (Ann UName dom stage) (Ann UName dom stage)
- ruleRhs :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- rulePhase :: Lens (Ann URule dom stage) (Ann URule dom stage) (AnnMaybeG UPhaseControl dom stage) (AnnMaybeG UPhaseControl dom stage)
- ruleName :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage)
- ruleLhs :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage)
- ruleBounded :: Lens (Ann URule dom stage) (Ann URule dom stage) (AnnListG URuleVar dom stage) (AnnListG URuleVar dom stage)
- teRhs :: Lens (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage) (Ann UType dom stage) (Ann UType dom stage)
- teLhs :: Lens (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ihType :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ihOperator :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- ihLeftOp :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ihHead :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage)
- ihFun :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage)
- ihConName :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UName dom stage) (Ann UName dom stage)
- irVars :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (AnnMaybeG (AnnListG UTyVar) dom stage) (AnnMaybeG (AnnListG UTyVar) dom stage)
- irHead :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage)
- irCtx :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage)
- oneDerived :: Partial (Ann UDeriving dom stage) (Ann UDeriving dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage)
- allDerived :: Partial (Ann UDeriving dom stage) (Ann UDeriving dom stage) (AnnListG UInstanceHead dom stage) (AnnListG UInstanceHead dom stage)
- deriveStrategy :: Lens (Ann UDeriving dom stage) (Ann UDeriving dom stage) (AnnMaybeG UDeriveStrategy dom stage) (AnnMaybeG UDeriveStrategy dom stage)
- fieldType :: Lens (Ann UFieldDecl dom stage) (Ann UFieldDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- fieldNames :: Lens (Ann UFieldDecl dom stage) (Ann UFieldDecl dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- conDeclRhs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- conDeclOp :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- conDeclName :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UName dom stage) (Ann UName dom stage)
- conDeclLhs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- conDeclFields :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UFieldDecl dom stage) (AnnListG UFieldDecl dom stage)
- conDeclArgs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage)
- conTypeCtx :: Lens (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage)
- conTypeArgs :: Lens (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage)
- funDepRhs :: Lens (Ann UFunDep dom stage) (Ann UFunDep dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- funDepLhs :: Lens (Ann UFunDep dom stage) (Ann UFunDep dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- funDeps :: Lens (Ann UFunDeps dom stage) (Ann UFunDeps dom stage) (AnnListG UFunDep dom stage) (AnnListG UFunDep dom stage)
- patSigType :: Lens (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage) (Ann UType dom stage) (Ann UType dom stage)
- patSigName :: Lens (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- patOpposite :: Lens (Ann UPatSynWhere dom stage) (Ann UPatSynWhere dom stage) (AnnListG UMatch dom stage) (AnnListG UMatch dom stage)
- patSynRhs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage)
- patSynOp :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- patSynLhs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage)
- patName :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage)
- patArgs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- patRhsOpposite :: Partial (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage) (AnnMaybeG UPatSynWhere dom stage) (AnnMaybeG UPatSynWhere dom stage)
- patRhsPat :: Lens (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage)
- patRhs :: Lens (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage) (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage)
- patLhs :: Lens (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage) (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage)
- gadtConResultType :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- gadtConRecordFields :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (AnnListG UFieldDecl dom stage) (AnnListG UFieldDecl dom stage)
- gadtConNormalType :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (Ann UType dom stage) (Ann UType dom stage)
- gadtConTypeCtx :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage)
- gadtConTypeArgs :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage)
- gadtConType :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (Ann UGadtConType dom stage) (Ann UGadtConType dom stage)
- gadtConNames :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- injAnnRes :: Lens (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage)
- injAnnDeps :: Lens (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- tfTypeVar :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage)
- tfSpecKind :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UKindConstraint dom stage) (Ann UKindConstraint dom stage)
- tfInjectivity :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage)
- tfSpec :: Partial (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (AnnMaybeG UTypeFamilySpec dom stage) (AnnMaybeG UTypeFamilySpec dom stage)
- tfKind :: Partial (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage)
- tfHead :: Lens (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage)
- specializeInstanceType :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- specializeInstance :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage)
- instanceInline :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage)
- instBodyTypeSig :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage)
- instBodyTypeEqn :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage)
- instBodyLhsType :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage)
- instBodyGadtCons :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UGadtConDecl dom stage) (AnnListG UGadtConDecl dom stage)
- instBodyDerivings :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UDeriving dom stage) (AnnListG UDeriving dom stage)
- instBodyDeclFunbind :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage)
- instBodyDataNew :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UDataOrNewtypeKeyword dom stage) (Ann UDataOrNewtypeKeyword dom stage)
- instBodyDataKind :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage)
- instBodyDataCons :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UConDecl dom stage) (AnnListG UConDecl dom stage)
- instBodyDecls :: Lens (Ann UInstBody dom stage) (Ann UInstBody dom stage) (AnnListG UInstBodyDecl dom stage) (AnnListG UInstBodyDecl dom stage)
- dhRight :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage)
- dhOperator :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage)
- dhName :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UName dom stage) (Ann UName dom stage)
- dhLeft :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage)
- dhBody :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage)
- dhAppOperand :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage)
- dhAppFun :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage)
- pragmaFormula :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage)
- clsInline :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage)
- clsFixity :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage)
- ceTypeSig :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage)
- ceTypeFam :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage)
- ceType :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ceName :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UName dom stage) (Ann UName dom stage)
- ceKind :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UType dom stage) (Ann UType dom stage)
- ceHead :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage)
- ceBind :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage)
- cbElements :: Lens (Ann UClassBody dom stage) (Ann UClassBody dom stage) (AnnListG UClassElement dom stage) (AnnListG UClassElement dom stage)
- declValBind :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage)
- declTypes :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage)
- declTypeSig :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage)
- declTypeFamily :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage)
- declType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- declSplice :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann USplice dom stage) (Ann USplice dom stage)
- declSpec :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UTypeFamilySpec dom stage) (AnnMaybeG UTypeFamilySpec dom stage)
- declSafety :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG USafety dom stage) (AnnMaybeG USafety dom stage)
- declRoles :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG URole dom stage) (AnnListG URole dom stage)
- declRoleType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage)
- declPragma :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage)
- declPatTypeSig :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage)
- declPatSyn :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage)
- declOverlap :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UOverlapPragma dom stage) (AnnMaybeG UOverlapPragma dom stage)
- declNewtype :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UDataOrNewtypeKeyword dom stage) (Ann UDataOrNewtypeKeyword dom stage)
- declName :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UName dom stage) (Ann UName dom stage)
- declKind :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage)
- declInstance :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage)
- declInstRule :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage)
- declInstDecl :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UInstBody dom stage) (AnnMaybeG UInstBody dom stage)
- declHead :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage)
- declGadt :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UGadtConDecl dom stage) (AnnListG UGadtConDecl dom stage)
- declFunDeps :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UFunDeps dom stage) (AnnMaybeG UFunDeps dom stage)
- declForeignType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- declFixity :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage)
- declDeriving :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UDeriving dom stage) (AnnListG UDeriving dom stage)
- declDerivStrat :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UDeriveStrategy dom stage) (AnnMaybeG UDeriveStrategy dom stage)
- declDecl :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UTypeEqn dom stage) (AnnListG UTypeEqn dom stage)
- declCtx :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage)
- declCons :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UConDecl dom stage) (AnnListG UConDecl dom stage)
- declCallConv :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UCallConv dom stage) (Ann UCallConv dom stage)
- declBody :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UClassBody dom stage) (AnnMaybeG UClassBody dom stage)
- declAssignedType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage)
- langExt :: Lens (Ann ULanguageExtension dom stage) (Ann ULanguageExtension dom stage) String String
- moduleNameString :: Lens (Ann UModuleName dom stage) (Ann UModuleName dom stage) String String
- importRename :: Lens (Ann UImportRenaming dom stage) (Ann UImportRenaming dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage)
- importSpecList :: Partial (Ann UImportSpec dom stage) (Ann UImportSpec dom stage) (AnnListG UIESpec dom stage) (AnnListG UIESpec dom stage)
- importSpecHiding :: Partial (Ann UImportSpec dom stage) (Ann UImportSpec dom stage) (AnnListG UIESpec dom stage) (AnnListG UIESpec dom stage)
- importSpec :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSpec dom stage) (AnnMaybeG UImportSpec dom stage)
- importSource :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSource dom stage) (AnnMaybeG UImportSource dom stage)
- importSafe :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSafe dom stage) (AnnMaybeG UImportSafe dom stage)
- importQualified :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportQualified dom stage) (AnnMaybeG UImportQualified dom stage)
- importPkg :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UStringNode dom stage) (AnnMaybeG UStringNode dom stage)
- importModule :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage)
- importAs :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportRenaming dom stage) (AnnMaybeG UImportRenaming dom stage)
- opStr :: Partial (Ann UFilePragma dom stage) (Ann UFilePragma dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage)
- lpPragmas :: Partial (Ann UFilePragma dom stage) (Ann UFilePragma dom stage) (AnnListG ULanguageExtension dom stage) (AnnListG ULanguageExtension dom stage)
- modWarningStr :: Partial (Ann UModulePragma dom stage) (Ann UModulePragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage)
- modDeprecatedPragma :: Partial (Ann UModulePragma dom stage) (Ann UModulePragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage)
- essList :: Partial (Ann USubSpec dom stage) (Ann USubSpec dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage)
- ieSubspec :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (AnnMaybeG USubSpec dom stage) (AnnMaybeG USubSpec dom stage)
- ieName :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (Ann UName dom stage) (Ann UName dom stage)
- ieModifier :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (AnnMaybeG UImportModifier dom stage) (AnnMaybeG UImportModifier dom stage)
- exportModuleName :: Partial (Ann UExportSpec dom stage) (Ann UExportSpec dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage)
- exportDecl :: Partial (Ann UExportSpec dom stage) (Ann UExportSpec dom stage) (Ann UIESpec dom stage) (Ann UIESpec dom stage)
- espExports :: Lens (Ann UExportSpecs dom stage) (Ann UExportSpecs dom stage) (AnnListG UExportSpec dom stage) (AnnListG UExportSpec dom stage)
- mhPragma :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (AnnMaybeG UModulePragma dom stage) (AnnMaybeG UModulePragma dom stage)
- mhName :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage)
- mhExports :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (AnnMaybeG UExportSpecs dom stage) (AnnMaybeG UExportSpecs dom stage)
- modImports :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UImportDecl dom stage) (AnnListG UImportDecl dom stage)
- modHead :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnMaybeG UModuleHead dom stage) (AnnMaybeG UModuleHead dom stage)
- modDecl :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UDecl dom stage) (AnnListG UDecl dom stage)
- filePragmas :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UFilePragma dom stage) (AnnListG UFilePragma dom stage)
- semanticsLitType :: Ann ULiteral IdDom st -> Type
- type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName))
- class HasNameInfo' si where
- semanticsName :: si -> Maybe Name
- type HasLiteralInfo dom = (Domain dom, HasLiteralInfo' (SemanticInfo dom ULiteral))
- class HasLiteralInfo' si where
- semanticsLiteralType :: si -> Type
- type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName))
- class HasNameInfo' si => HasIdInfo' si where
- semanticsId :: si -> Id
- type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName))
- class HasFixityInfo' si where
- semanticsFixity :: si -> Maybe Fixity
- type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr))
- class HasScopeInfo' si where
- semanticsScope :: si -> Scope
- type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName))
- class HasDefiningInfo' si where
- semanticsDefining :: si -> Bool
- class HasSourceInfoInSema' si where
- semanticsSourceInfo :: si -> Maybe SrcSpan
- type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule))
- class HasModuleInfo' si where
- semanticsModule :: si -> Module
- semanticsDynFlags :: si -> DynFlags
- isBootModule :: si -> Bool
- semanticsImplicitImports :: si -> [Name]
- semanticsPrelTransMods :: si -> [Module]
- type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl))
- class HasImportInfo' si where
- semanticsImportedModule :: si -> Module
- semanticsAvailable :: si -> [Name]
- semanticsImported :: si -> [Name]
- semanticsTransMods :: si -> [Module]
- type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom UFieldWildcard))
- class HasImplicitFieldsInfo' si where
- semanticsImplicitFlds :: si -> [(Name, Name)]
- type HasNoSemanticInfo dom (si :: Type -> Type -> Type) = SemanticInfo dom si ~ NoSemanticInfo
- getInstances :: GhcMonad m => [Module] -> m ([ClsInst], [FamInst])
- data UsageSpec = UsageSpec {}
- after :: AfterBefore i => String -> i -> i
- followedBy :: AfterBefore i => String -> i -> i
- relativeIndented :: RelativeIndent i => Int -> i -> i
- minimumIndented :: MinimumIndent i => Int -> i -> i
- fixMainRange :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom RangeStage
- prepareASTCpp :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom SrcTemplateStage
- prepareAST :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom SrcTemplateStage
- indented :: ListInfo SrcTemplateStage -> ListInfo SrcTemplateStage
- separatedBy :: String -> ListInfo SrcTemplateStage -> ListInfo SrcTemplateStage
- list :: ListInfo SrcTemplateStage
- opt :: OptionalInfo SrcTemplateStage
- child :: SpanInfo SrcTemplateStage
- extractStayingElems :: SourceInfoTraversal node => Ann node dom SrcTemplateStage -> Ann node dom SrcTemplateStage
- mapLocIndices :: Ord k => StringBuffer -> Set (RealSrcLoc, k) -> Map k String
- getLocIndices :: SourceInfoTraversal e => Ann e dom RngTemplateStage -> Set (RealSrcLoc, Int)
- rangeToSource :: SourceInfoTraversal node => StringBuffer -> Ann node dom RngTemplateStage -> Ann node dom SrcTemplateStage
- lineEndings :: Partial SourceTemplateTextElem SourceTemplateTextElem String String
- sourceTemplateText :: Lens SourceTemplateTextElem SourceTemplateTextElem String String
- sourceTemplateTextRange :: Partial SourceTemplateElem SourceTemplateElem SrcSpan SrcSpan
- sourceTemplateTextElem :: Partial SourceTemplateElem SourceTemplateElem [SourceTemplateTextElem] [SourceTemplateTextElem]
- isStayingText :: SourceTemplateTextElem -> Bool
- srcTmpOptMinimalIndent :: Simple Lens (OptionalInfo SrcTemplateStage) Int
- srcTmpOptAfter :: Simple Lens (OptionalInfo SrcTemplateStage) String
- srcTmpOptBefore :: Simple Lens (OptionalInfo SrcTemplateStage) String
- sourceTemplateOptRange :: Simple Lens (OptionalInfo SrcTemplateStage) SrcSpan
- srcTmpListMinimalIndent :: Simple Lens (ListInfo SrcTemplateStage) Int
- srcTmpSeparators :: Simple Lens (ListInfo SrcTemplateStage) [([SourceTemplateTextElem], SrcSpan)]
- srcTmpIndented :: Simple Lens (ListInfo SrcTemplateStage) (Maybe [Bool])
- srcTmpDefaultSeparator :: Simple Lens (ListInfo SrcTemplateStage) String
- srcTmpListAfter :: Simple Lens (ListInfo SrcTemplateStage) String
- srcTmpListBefore :: Simple Lens (ListInfo SrcTemplateStage) String
- sourceTemplateListRange :: Simple Lens (ListInfo SrcTemplateStage) SrcSpan
- sourceTemplateMinimalIndent :: Simple Lens (SpanInfo SrcTemplateStage) Int
- sourceTemplateNodeElems :: Simple Lens (SpanInfo SrcTemplateStage) [SourceTemplateElem]
- sourceTemplateNodeRange :: Simple Lens (SpanInfo SrcTemplateStage) SrcSpan
- data SourceTemplateElem
- data SourceTemplateTextElem
- = NormalText { }
- | StayingText { }
- fixRanges :: SourceInfoTraversal node => Ann node dom RangeStage -> Ann node dom NormRangeStage
- cutUpRanges :: SourceInfoTraversal node => Ann node dom NormRangeStage -> Ann node dom RngTemplateStage
- data BreakUpProblem = BreakUpProblem {
- bupOuter :: RealSrcSpan
- bupInner :: SrcSpan
- bupSiblings :: [SrcSpan]
- data TransformationProblem = TransformationProblem String
- placeComments :: RangeInfo stage => Map ApiAnnKey [SrcSpan] -> Map SrcSpan [Located AnnotationComment] -> Ann UModule dom stage -> Ann UModule dom stage
- getPragmaComments :: Map SrcSpan [Located AnnotationComment] -> Map String [Located String]
- getNormalComments :: Map SrcSpan [Located AnnotationComment] -> Map SrcSpan [Located AnnotationComment]
- pattern ForallType :: TyVarList -> Type -> Type
- pattern CtxType :: Context -> Type -> Type
- pattern FunctionType :: Type -> Type -> Type
- pattern TupleType :: TypeList -> Type
- pattern UnboxedTupleType :: TypeList -> Type
- pattern ListType :: Type -> Type
- pattern ParArrayType :: Type -> Type
- pattern TypeApp :: Type -> Type -> Type
- pattern InfixTypeApp :: Type -> Operator -> Type -> Type
- pattern ParenType :: Type -> Type
- pattern VarType :: Name -> Type
- pattern KindedType :: Type -> Kind -> Type
- pattern BangType :: Type -> Type
- pattern LazyType :: Type -> Type
- pattern UnpackType :: Type -> Type
- pattern NoUnpackType :: Type -> Type
- pattern WildcardType :: Type
- pattern NamedWildcardType :: Name -> Type
- pattern SpliceType :: Splice -> Type
- pattern QuasiQuoteType :: QuasiQuote -> Type
- pattern PromotedIntType :: Integer -> Type
- pattern PromotedStringType :: String -> Type
- pattern PromotedConType :: Name -> Type
- pattern PromotedListType :: TypeList -> Type
- pattern PromotedTupleType :: TypeList -> Type
- pattern PromotedUnitType :: Type
- pattern UnboxedSumType :: TypeList -> Type
- pattern TyVarDecl :: Name -> TyVar
- pattern KindedTyVarDecl :: Name -> Kind -> TyVar
- pattern Context :: Assertion -> Context
- pattern ClassAssert :: Name -> TypeList -> Assertion
- pattern InfixAssert :: Type -> Operator -> Type -> Assertion
- pattern ImplicitAssert :: Name -> Type -> Assertion
- pattern TupleAssert :: [Assertion] -> Assertion
- pattern IdSplice :: Name -> Splice
- pattern ParenSplice :: Expr -> Splice
- pattern QuasiQuote :: Name -> String -> QuasiQuote
- pattern ExprBracket :: Expr -> Bracket
- pattern PatternBracket :: Pattern -> Bracket
- pattern TypeBracket :: Type -> Bracket
- pattern DeclsBracket :: DeclList -> Bracket
- pattern Var :: Name -> Expr
- pattern Lit :: Literal -> Expr
- pattern InfixApp :: Expr -> Operator -> Expr -> Expr
- pattern PrefixApp :: Operator -> Expr -> Expr
- pattern App :: Expr -> Expr -> Expr
- pattern Lambda :: PatternList -> Expr -> Expr
- pattern Let :: LocalBindList -> Expr -> Expr
- pattern If :: Expr -> Expr -> Expr -> Expr
- pattern MultiIf :: GuardedCaseRhsList -> Expr
- pattern Case :: Expr -> AltList -> Expr
- pattern Do :: StmtList -> Expr
- pattern MDo :: StmtList -> Expr
- pattern ParArrayComp :: Expr -> ListCompBodyList -> Expr
- pattern Tuple :: ExprList -> Expr
- pattern UnboxedTuple :: ExprList -> Expr
- pattern TupleSection :: TupSecElemList -> Expr
- pattern UnboxedTupleSection :: TupSecElemList -> Expr
- pattern List :: ExprList -> Expr
- pattern ParArray :: ExprList -> Expr
- pattern Paren :: Expr -> Expr
- pattern LeftSection :: Expr -> Operator -> Expr
- pattern RightSection :: Operator -> Expr -> Expr
- pattern RecCon :: Name -> FieldUpdateList -> Expr
- pattern RecUpdate :: Expr -> FieldUpdateList -> Expr
- pattern Enum :: Expr -> MaybeExpr -> MaybeExpr -> Expr
- pattern ParArrayEnum :: Expr -> MaybeExpr -> Expr -> Expr
- pattern ListComp :: Expr -> ListCompBodyList -> Expr
- pattern ParArrayListComp :: Expr -> ListCompBodyList -> Expr
- pattern TypeSig :: Expr -> Type -> Expr
- pattern ExplicitTypeApp :: Expr -> Type -> Expr
- pattern VarQuote :: Name -> Expr
- pattern TypeQuote :: Name -> Expr
- pattern BracketExpr :: Bracket -> Expr
- pattern SpliceExpr :: Splice -> Expr
- pattern QuasiQuoteExpr :: QuasiQuote -> Expr
- pattern ExprPragma :: ExprPragma -> Expr -> Expr
- pattern Proc :: Pattern -> Cmd -> Expr
- pattern ArrowApp :: Expr -> ArrowApp -> Expr -> Expr
- pattern LambdaCase :: AltList -> Expr
- pattern StaticPointer :: Expr -> Expr
- pattern NormalFieldUpdate :: Name -> Expr -> FieldUpdate
- pattern FieldPun :: Name -> FieldUpdate
- pattern FieldWildcard :: FieldWildcard -> FieldUpdate
- pattern TupSecPresent :: Expr -> TupSecElem
- pattern TupSecMissing :: TupSecElem
- pattern Alt :: Pattern -> CaseRhs -> MaybeLocalBinds -> Alt
- pattern CaseRhs :: Expr -> CaseRhs
- pattern GuardedCaseRhss :: GuardedCaseRhsList -> CaseRhs
- pattern GuardedCaseRhs :: RhsGuardList -> Expr -> GuardedCaseRhs
- pattern CorePragma :: String -> ExprPragma
- pattern SccPragma :: String -> ExprPragma
- pattern GeneratedPragma :: SourceRange -> ExprPragma
- pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange
- pattern ArrowAppCmd :: Expr -> ArrowApp -> Expr -> Cmd
- pattern ArrowFormCmd :: Expr -> CmdList -> Cmd
- pattern AppCmd :: Cmd -> Expr -> Cmd
- pattern InfixCmd :: Cmd -> Name -> Cmd -> Cmd
- pattern LambdaCmd :: PatternList -> Cmd -> Cmd
- pattern ParenCmd :: Cmd -> Cmd
- pattern CaseCmd :: Expr -> CmdAltList -> Cmd
- pattern IfCmd :: Expr -> Cmd -> Cmd -> Cmd
- pattern LetCmd :: LocalBindList -> Cmd -> Cmd
- pattern DoCmd :: CmdStmtList -> Cmd
- pattern LeftAppl :: ArrowApp
- pattern RightAppl :: ArrowApp
- pattern LeftHighApp :: ArrowApp
- pattern RightHighApp :: ArrowApp
- pattern Hole :: Expr
- pattern BindStmt :: Pattern -> Expr -> Stmt
- pattern ExprStmt :: Expr -> Stmt
- pattern LetStmt :: LocalBindList -> Stmt
- pattern RecStmt :: StmtList -> Stmt
- pattern DoKeyword :: DoKind
- pattern MDoKeyword :: DoKind
- pattern ListCompBody :: CompStmtList -> ListCompBody
- pattern CompStmt :: Stmt -> CompStmt
- pattern ThenStmt :: Expr -> MaybeExpr -> CompStmt
- pattern GroupStmt :: MaybeExpr -> MaybeExpr -> CompStmt
- pattern BindStmtCmd :: Pattern -> Cmd -> CmdStmt
- pattern ExprStmtCmd :: Cmd -> CmdStmt
- pattern LetStmtCmd :: LocalBindList -> CmdStmt
- pattern RecStmtCmd :: CmdStmtList -> CmdStmt
- pattern VarPat :: Name -> Pattern
- pattern LitPat :: Literal -> Pattern
- pattern InfixAppPat :: Pattern -> Operator -> Pattern -> Pattern
- pattern AppPat :: Name -> PatternList -> Pattern
- pattern TuplePat :: PatternList -> Pattern
- pattern UnboxTuplePat :: PatternList -> Pattern
- pattern ListPat :: PatternList -> Pattern
- pattern ParArrayPat :: PatternList -> Pattern
- pattern ParenPat :: Pattern -> Pattern
- pattern RecPat :: Name -> PatternFieldList -> Pattern
- pattern AsPat :: Name -> Pattern -> Pattern
- pattern WildPat :: Pattern
- pattern IrrefutablePat :: Pattern -> Pattern
- pattern BangPat :: Pattern -> Pattern
- pattern TypeSigPat :: Pattern -> Type -> Pattern
- pattern ViewPat :: Expr -> Pattern -> Pattern
- pattern SplicePat :: Splice -> Pattern
- pattern QuasiQuotePat :: QuasiQuote -> Pattern
- pattern NPlusKPat :: Name -> Literal -> Pattern
- pattern FieldPattern :: Name -> Pattern -> PatternField
- pattern FieldPunPattern :: Name -> PatternField
- pattern FieldWildcardPattern :: FieldWildcard -> PatternField
- pattern NormalOp :: QualifiedName -> Operator
- pattern BacktickOp :: QualifiedName -> Operator
- pattern NormalName :: QualifiedName -> Name
- pattern ParenName :: QualifiedName -> Name
- pattern ImplicitName :: QualifiedName -> Name
- pattern StringNode :: String -> StringNode
- pattern QualifiedName :: NamePartList -> NamePart -> QualifiedName
- pattern NamePart :: String -> NamePart
- pattern Module :: FilePragmaList -> MaybeModuleHead -> ImportDeclList -> DeclList -> Module
- pattern ModuleHead :: ModuleName -> MaybeModulePragma -> MaybeExportSpecs -> ModuleHead
- pattern ExportSpecs :: ExportSpecList -> ExportSpecs
- pattern ExportSpec :: IESpec -> ExportSpec
- pattern ModuleExport :: ModuleName -> ExportSpec
- pattern IESpec :: MaybeImportModifier -> Name -> MaybeSubSpec -> IESpec
- pattern SubAll :: SubSpec
- pattern SubList :: NameList -> SubSpec
- pattern ImportDecl :: MaybeImportSource -> MaybeImportQualified -> MaybeImportSafe -> MaybeStringNode -> ModuleName -> MaybeImportRenaming -> MaybeImportSpec -> ImportDecl
- pattern ImportRenaming :: ModuleName -> ImportRenaming
- pattern ImportSpecList :: IESpecList -> ImportSpec
- pattern ImportHidingList :: IESpecList -> ImportSpec
- pattern ModuleName :: String -> ModuleName
- pattern LanguagePragma :: LanguageExtensionList -> FilePragma
- pattern OptionsPragma :: String -> FilePragma
- pattern LanguageExtension :: String -> LanguageExtension
- pattern ModuleWarningPragma :: StringNodeList -> ModulePragma
- pattern ModuleDeprecatedPragma :: StringNodeList -> ModulePragma
- pattern CharLit :: Char -> Literal
- pattern StringLit :: String -> Literal
- pattern IntLit :: Integer -> Literal
- pattern FracLit :: Rational -> Literal
- pattern PrimIntLit :: Integer -> Literal
- pattern PrimWordLit :: Integer -> Literal
- pattern PrimFloatLit :: Rational -> Literal
- pattern PrimDoubleLit :: Rational -> Literal
- pattern PrimCharLit :: Char -> Literal
- pattern PrimStringLit :: String -> Literal
- pattern KindConstraint :: Kind -> KindConstraint
- pattern StarKind :: Kind
- pattern UnboxKind :: Kind
- pattern FunKind :: Kind -> Kind -> Kind
- pattern ParenKind :: Kind -> Kind
- pattern VarKind :: Name -> Kind
- pattern AppKind :: Kind -> Kind -> Kind
- pattern ListKind :: Kind -> Kind
- pattern IntKind :: Integer -> Kind
- pattern StringKind :: String -> Kind
- pattern ConKind :: Name -> Kind
- pattern ListKindPromoted :: KindList -> Kind
- pattern TupleKind :: KindList -> Kind
- pattern UnitKind :: Kind
- pattern TypeDecl :: DeclHead -> Type -> Decl
- pattern StandaloneDeriving :: Maybe DeriveStrategy -> Maybe OverlapPragma -> InstanceRule -> Decl
- pattern FixityDecl :: FixitySignature -> Decl
- pattern DefaultDecl :: TypeList -> Decl
- pattern TypeSigDecl :: TypeSignature -> Decl
- pattern ValueBinding :: ValueBind -> Decl
- pattern SpliceDecl :: Splice -> Decl
- pattern DataDecl :: DataOrNewtypeKeyword -> MaybeContext -> DeclHead -> ConDeclList -> DerivingList -> Decl
- pattern GADTDataDecl :: DataOrNewtypeKeyword -> MaybeContext -> DeclHead -> MaybeKindConstraint -> AnnList UGadtConDecl -> DerivingList -> Decl
- pattern GadtConDecl :: NameList -> Type -> GadtConDecl
- pattern GadtRecordConDecl :: NameList -> FieldDeclList -> Type -> GadtConDecl
- pattern ConDecl :: Name -> TypeList -> ConDecl
- pattern RecordConDecl :: Name -> FieldDeclList -> ConDecl
- pattern InfixConDecl :: Type -> Operator -> Type -> ConDecl
- pattern FieldDecl :: NameList -> Type -> FieldDecl
- pattern DerivingOne :: InstanceHead -> Deriving
- pattern DerivingOne' :: MaybeDeriveStrategy -> InstanceHead -> Deriving
- pattern DerivingMulti :: InstanceHeadList -> Deriving
- pattern DerivingMulti' :: MaybeDeriveStrategy -> InstanceHeadList -> Deriving
- pattern DataKeyword :: DataOrNewtypeKeyword
- pattern NewtypeKeyword :: DataOrNewtypeKeyword
- pattern FunDeps :: FunDepList -> FunDeps
- pattern FunDep :: NameList -> NameList -> FunDep
- pattern ClassDecl :: MaybeContext -> DeclHead -> MaybeFunDeps -> MaybeClassBody -> Decl
- pattern ClassBody :: ClassElementList -> ClassBody
- pattern ClassElemSig :: TypeSignature -> ClassElement
- pattern ClassElemDef :: ValueBind -> ClassElement
- pattern ClassElemTypeFam :: DeclHead -> MaybeTypeFamilySpec -> ClassElement
- pattern ClassElemDataFam :: DeclHead -> MaybeKindConstraint -> ClassElement
- pattern ClsDefaultType :: DeclHead -> Type -> ClassElement
- pattern ClsDefaultSig :: Name -> Type -> ClassElement
- pattern ClsMinimal :: MinimalFormula -> ClassElement
- pattern MinimalName :: Name -> MinimalFormula
- pattern MinimalParen :: MinimalFormula -> MinimalFormula
- pattern MinimalOr :: MinimalFormulaList -> MinimalFormula
- pattern MinimalAnd :: MinimalFormulaList -> MinimalFormula
- pattern NameDeclHead :: Name -> DeclHead
- pattern ParenDeclHead :: DeclHead -> DeclHead
- pattern DeclHeadApp :: DeclHead -> TyVar -> DeclHead
- pattern InfixDeclHead :: TyVar -> Operator -> TyVar -> DeclHead
- pattern InstanceDecl :: InstanceRule -> MaybeInstBody -> Decl
- pattern InstanceBody :: InstBodyDeclList -> InstBody
- pattern InstanceBind :: ValueBind -> InstBodyDecl
- pattern InstanceTypeSig :: TypeSignature -> InstBodyDecl
- pattern InstanceTypeFamilyDef :: TypeEqn -> InstBodyDecl
- pattern InstanceDataFamilyDef :: DataOrNewtypeKeyword -> InstanceRule -> ConDeclList -> DerivingList -> InstBodyDecl
- pattern InstanceDataFamilyGADTDef :: DataOrNewtypeKeyword -> InstanceRule -> MaybeKindConstraint -> AnnList UGadtConDecl -> DerivingList -> InstBodyDecl
- pattern InstanceSpecializePragma :: Type -> InstBodyDecl
- pattern InstanceRule :: AnnMaybe (AnnListG UTyVar) -> MaybeContext -> InstanceHead -> InstanceRule
- pattern InstanceHead :: Name -> InstanceHead
- pattern InfixInstanceHead :: Type -> Operator -> InstanceHead
- pattern ParenInstanceHead :: InstanceHead -> InstanceHead
- pattern AppInstanceHead :: InstanceHead -> Type -> InstanceHead
- pattern EnableOverlap :: OverlapPragma
- pattern DisableOverlap :: OverlapPragma
- pattern Overlappable :: OverlapPragma
- pattern Overlapping :: OverlapPragma
- pattern Overlaps :: OverlapPragma
- pattern IncoherentOverlap :: OverlapPragma
- pattern RoleDecl :: QualifiedName -> RoleList -> Decl
- pattern NominalRole :: Role
- pattern RepresentationalRole :: Role
- pattern PhantomRole :: Role
- pattern ForeignImport :: CallConv -> MaybeSafety -> Name -> Type -> Decl
- pattern ForeignExport :: CallConv -> Name -> Type -> Decl
- pattern StdCall :: CallConv
- pattern CCall :: CallConv
- pattern CApi :: CallConv
- pattern Unsafe :: Safety
- pattern PatternSynonym :: PatSynLhs -> PatSynRhs -> Decl
- pattern ConPatSyn :: Name -> NameList -> PatSynLhs
- pattern InfixPatSyn :: Name -> Operator -> Name -> PatSynLhs
- pattern RecordPatSyn :: Name -> NameList -> PatSynLhs
- pattern SymmetricPatSyn :: Pattern -> PatSynRhs
- pattern OneWayPatSyn :: Pattern -> PatSynRhs
- pattern TwoWayPatSyn :: Pattern -> MatchList -> PatSynRhs
- pattern PatternSignatureDecl :: PatternSignature -> Decl
- pattern PatternSignature :: NameList -> Type -> PatternSignature
- pattern TypeFamily :: DeclHead -> MaybeTypeFamilySpec -> Decl
- pattern DataFamily :: DeclHead -> MaybeKindConstraint -> Decl
- pattern TypeInstance :: InstanceRule -> Type -> Decl
- pattern DataInstance :: DataOrNewtypeKeyword -> InstanceRule -> ConDeclList -> DerivingList -> Decl
- pattern GadtDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> MaybeKindConstraint -> GadtConDeclList -> Decl
- pattern ClosedTypeFamily :: DeclHead -> MaybeTypeFamilySpec -> TypeEqnList -> Decl
- pattern TypeFamilyKindSpec :: KindConstraint -> TypeFamilySpec
- pattern TypeFamilyInjectivitySpec :: TyVar -> NameList -> TypeFamilySpec
- pattern TypeEqn :: Type -> Type -> TypeEqn
- pattern PragmaDecl :: TopLevelPragma -> Decl
- pattern RulePragma :: RuleList -> TopLevelPragma
- pattern DeprPragma :: NameList -> String -> TopLevelPragma
- pattern WarningPragma :: NameList -> String -> TopLevelPragma
- pattern AnnPragma :: AnnotationSubject -> Expr -> TopLevelPragma
- pattern InlinePragma :: MaybeConlikeAnnot -> MaybePhaseControl -> Name -> TopLevelPragma
- pattern NoInlinePragma :: Name -> TopLevelPragma
- pattern InlinablePragma :: MaybePhaseControl -> Name -> TopLevelPragma
- pattern LinePragma :: Int -> MaybeStringNode -> TopLevelPragma
- pattern SpecializePragma :: MaybePhaseControl -> Name -> TypeList -> TopLevelPragma
- pattern PhaseControlFrom :: Integer -> PhaseControl
- pattern PhaseControlUntil :: Integer -> PhaseControl
- pattern RewriteRule :: String -> MaybePhaseControl -> RuleVarList -> Expr -> Expr -> Rule
- pattern NameAnnotation :: Name -> AnnotationSubject
- pattern TypeAnnotation :: Name -> AnnotationSubject
- pattern ModuleAnnotation :: AnnotationSubject
- pattern ConlikeAnnotation :: ConlikeAnnot
- pattern SimpleBind :: Pattern -> Rhs -> MaybeLocalBinds -> ValueBind
- pattern FunctionBind :: MatchList -> ValueBind
- pattern Match :: MatchLhs -> Rhs -> MaybeLocalBinds -> Match
- pattern MatchLhs :: Name -> PatternList -> MatchLhs
- pattern InfixLhs :: Pattern -> Operator -> Pattern -> PatternList -> MatchLhs
- pattern LocalBinds :: LocalBindList -> LocalBinds
- pattern LocalValBind :: ValueBind -> LocalBind
- pattern LocalTypeSig :: TypeSignature -> LocalBind
- pattern LocalFixity :: FixitySignature -> LocalBind
- pattern TypeSignature :: NameList -> Type -> TypeSignature
- pattern InfixL :: OperatorList -> FixitySignature
- pattern InfixR :: OperatorList -> FixitySignature
- pattern Infix :: OperatorList -> FixitySignature
- pattern UnguardedRhs :: Expr -> Rhs
- pattern GuardedRhss :: GuardedRhsList -> Rhs
- pattern GuardedRhs :: RhsGuardList -> Expr -> GuardedRhs
- pattern GuardBind :: Pattern -> Expr -> RhsGuard
- pattern GuardLet :: LocalBindList -> RhsGuard
- pattern GuardCheck :: Expr -> RhsGuard
- mkGuardCheck :: Expr -> RhsGuard
- mkGuardLet :: [LocalBind] -> RhsGuard
- mkGuardBind :: Pattern -> Expr -> RhsGuard
- mkGuardedRhs :: [RhsGuard] -> Expr -> GuardedRhs
- mkGuardedRhss :: [GuardedRhs] -> Rhs
- mkUnguardedRhs :: Expr -> Rhs
- mkInfix :: Int -> Operator -> FixitySignature
- mkInfixR :: Int -> Operator -> FixitySignature
- mkInfixL :: Int -> Operator -> FixitySignature
- mkTypeSignature :: Name -> Type -> TypeSignature
- mkLocalFixity :: FixitySignature -> LocalBind
- mkLocalTypeSig :: TypeSignature -> LocalBind
- mkLocalValBind :: ValueBind -> LocalBind
- mkLocalBinds' :: [LocalBind] -> LocalBinds
- mkLocalBinds :: [LocalBind] -> MaybeLocalBinds
- mkInfixLhs :: Pattern -> Operator -> Pattern -> [Pattern] -> MatchLhs
- mkMatchLhs :: Name -> [Pattern] -> MatchLhs
- mkMatch :: MatchLhs -> Rhs -> Maybe LocalBinds -> Match
- mkFunctionBind' :: Name -> [([Pattern], Expr)] -> ValueBind
- mkFunctionBind :: [Match] -> ValueBind
- mkSimpleBind :: Pattern -> Rhs -> Maybe LocalBinds -> ValueBind
- mkSimpleBind' :: Name -> Expr -> ValueBind
- mkConlikeAnnotation :: ConlikeAnnot
- mkModuleAnnotation :: AnnotationSubject
- mkTypeAnnotation :: Name -> AnnotationSubject
- mkNameAnnotation :: Name -> AnnotationSubject
- mkRuleVar :: Name -> RuleVar
- mkRewriteRule :: String -> Maybe PhaseControl -> [RuleVar] -> Expr -> Expr -> Rule
- mkPhaseControlUntil :: Integer -> PhaseControl
- mkPhaseControlFrom :: Integer -> PhaseControl
- mkSpecializePragma :: Maybe PhaseControl -> Name -> [Type] -> TopLevelPragma
- mkLinePragma :: Int -> Maybe StringNode -> TopLevelPragma
- mkInlinablePragma :: Maybe PhaseControl -> Name -> TopLevelPragma
- mkNoInlinePragma :: Name -> TopLevelPragma
- mkInlinePragma :: Maybe ConlikeAnnot -> Maybe PhaseControl -> Name -> TopLevelPragma
- mkAnnPragma :: AnnotationSubject -> Expr -> TopLevelPragma
- mkWarningPragma :: [Name] -> String -> TopLevelPragma
- mkDeprPragma :: [Name] -> String -> TopLevelPragma
- mkRulePragma :: [Rule] -> TopLevelPragma
- mkPragmaDecl :: TopLevelPragma -> Decl
- mkPatternSignature :: [Name] -> Type -> PatternSignature
- mkPatternSignatureDecl :: PatternSignature -> Decl
- mkTwoWayPatSyn :: Pattern -> [Match] -> PatSynRhs
- mkOneWayPatSyn :: Pattern -> PatSynRhs
- mkSymmetricPatSyn :: Pattern -> PatSynRhs
- mkRecordPatSyn :: Name -> [Name] -> PatSynLhs
- mkInfixPatSyn :: Name -> Operator -> Name -> PatSynLhs
- mkConPatSyn :: Name -> [Name] -> PatSynLhs
- mkPatternSynonym :: PatSynLhs -> PatSynRhs -> Decl
- mkGadtDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> Maybe KindConstraint -> [GadtConDecl] -> Decl
- mkDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> [ConDecl] -> [Deriving] -> Decl
- mkTypeInstance :: InstanceRule -> Type -> Decl
- mkTypeEqn :: Type -> Type -> TypeEqn
- mkTypeFamilyInjectivitySpec :: TyVar -> [Name] -> TypeFamilySpec
- mkTypeFamilyKindSpec :: KindConstraint -> TypeFamilySpec
- mkDataFamily :: DeclHead -> Maybe KindConstraint -> Decl
- mkClosedTypeFamily :: DeclHead -> Maybe TypeFamilySpec -> [TypeEqn] -> Decl
- mkTypeFamily :: DeclHead -> Maybe TypeFamilySpec -> Decl
- mkUnsafe :: Safety
- mkCApi :: CallConv
- mkCCall :: CallConv
- mkStdCall :: CallConv
- mkForeignExport :: CallConv -> Name -> Type -> Decl
- mkForeignImport :: CallConv -> Maybe Safety -> Name -> Type -> Decl
- mkPhantomRole :: Role
- mkRepresentationalRole :: Role
- mkNominalRole :: Role
- mkRoleDecl :: QualifiedName -> [Role] -> Decl
- mkIncoherentOverlap :: OverlapPragma
- mkOverlaps :: OverlapPragma
- mkOverlapping :: OverlapPragma
- mkOverlappable :: OverlapPragma
- mkDisableOverlap :: OverlapPragma
- mkEnableOverlap :: OverlapPragma
- mkInstanceSpecializePragma :: Type -> InstBodyDecl
- mkInstanceDataFamilyGADTDef :: DataOrNewtypeKeyword -> InstanceRule -> Maybe KindConstraint -> [GadtConDecl] -> [Deriving] -> InstBodyDecl
- mkInstanceDataFamilyDef :: DataOrNewtypeKeyword -> InstanceRule -> [ConDecl] -> [Deriving] -> InstBodyDecl
- mkInstanceTypeFamilyDef :: TypeEqn -> InstBodyDecl
- mkInstanceTypeSig :: TypeSignature -> InstBodyDecl
- mkInstanceBind :: ValueBind -> InstBodyDecl
- mkInstanceBody :: [InstBodyDecl] -> InstBody
- mkAppInstanceHead :: InstanceHead -> Type -> InstanceHead
- mkParenInstanceHead :: InstanceHead -> InstanceHead
- mkInfixInstanceHead :: Type -> Operator -> InstanceHead
- mkInstanceHead :: Name -> InstanceHead
- mkInstanceRule :: Maybe Context -> InstanceHead -> InstanceRule
- mkInstanceDecl :: Maybe OverlapPragma -> InstanceRule -> Maybe InstBody -> Decl
- mkInfixDeclHead :: TyVar -> Operator -> TyVar -> DeclHead
- mkDeclHeadApp :: DeclHead -> TyVar -> DeclHead
- mkParenDeclHead :: DeclHead -> DeclHead
- mkNameDeclHead :: Name -> DeclHead
- mkMinimalAnd :: [MinimalFormula] -> MinimalFormula
- mkMinimalOr :: [MinimalFormula] -> MinimalFormula
- mkMinimalParen :: MinimalFormula -> MinimalFormula
- mkMinimalName :: Name -> MinimalFormula
- mkClsMinimal :: MinimalFormula -> ClassElement
- mkFunDep :: [Name] -> [Name] -> FunDep
- mkClsDefaultSig :: Name -> Type -> ClassElement
- mkClsDefaultType :: DeclHead -> Type -> ClassElement
- mkClassElemDataFam :: DeclHead -> Maybe KindConstraint -> ClassElement
- mkClassElemTypeFam :: DeclHead -> Maybe TypeFamilySpec -> ClassElement
- mkClassElemDef :: ValueBind -> ClassElement
- mkClassElemSig :: TypeSignature -> ClassElement
- mkClassBody :: [ClassElement] -> ClassBody
- mkClassDecl :: Maybe Context -> DeclHead -> [FunDep] -> Maybe ClassBody -> Decl
- mkNewtypeKeyword :: DataOrNewtypeKeyword
- mkDataKeyword :: DataOrNewtypeKeyword
- mkDeriving :: [InstanceHead] -> Deriving
- mkFieldDecl :: [Name] -> Type -> FieldDecl
- mkInfixConDecl :: Type -> Operator -> Type -> ConDecl
- mkRecordConDecl :: Name -> [FieldDecl] -> ConDecl
- mkConDecl :: Name -> [Type] -> ConDecl
- mkGadtRecordConDecl :: [Name] -> [FieldDecl] -> Type -> GadtConDecl
- mkGadtConDecl :: [Name] -> Type -> GadtConDecl
- mkGADTDataDecl :: DataOrNewtypeKeyword -> Maybe Context -> DeclHead -> Maybe KindConstraint -> [GadtConDecl] -> [Deriving] -> Decl
- mkDataDecl :: DataOrNewtypeKeyword -> Maybe Context -> DeclHead -> [ConDecl] -> [Deriving] -> Decl
- mkSpliceDecl :: Splice -> Decl
- mkValueBinding :: ValueBind -> Decl
- mkTypeSigDecl :: TypeSignature -> Decl
- mkDefaultDecl :: [Type] -> Decl
- mkFixityDecl :: FixitySignature -> Decl
- mkStandaloneDeriving :: Maybe DeriveStrategy -> Maybe OverlapPragma -> InstanceRule -> Decl
- mkTypeDecl :: DeclHead -> Type -> Decl
- mkHole :: Expr
- mkRightHighAppl :: ArrowApp
- mkLeftHighAppl :: ArrowApp
- mkRightAppl :: ArrowApp
- mkLeftAppl :: ArrowApp
- mkDoCmd :: [CmdStmt] -> Cmd
- mkLetCmd :: [LocalBind] -> Cmd -> Cmd
- mkIfCmd :: Expr -> Cmd -> Cmd -> Cmd
- mkCaseCmd :: Expr -> [CmdAlt] -> Cmd
- mkParenCmd :: Cmd -> Cmd
- mkLambdaCmd :: [Pattern] -> Cmd -> Cmd
- mkInfixCmd :: Cmd -> Name -> Cmd -> Cmd
- mkAppCmd :: Cmd -> Expr -> Cmd
- mkArrowFromCmd :: Expr -> [Cmd] -> Cmd
- mkArrowAppCmd :: Expr -> ArrowApp -> Expr -> Cmd
- mkSourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange
- mkGeneratedPragma :: SourceRange -> ExprPragma
- mkSccPragma :: String -> ExprPragma
- mkCorePragma :: String -> ExprPragma
- mkGuardedCaseRhs :: [RhsGuard] -> Expr -> GuardedCaseRhs
- mkGuardedCaseRhss :: [GuardedCaseRhs] -> CaseRhs
- mkCaseRhs :: Expr -> CaseRhs
- mkAlt :: Pattern -> CaseRhs -> Maybe LocalBinds -> Alt
- mkFieldWildcard :: FieldUpdate
- mkFieldPun :: Name -> FieldUpdate
- mkFieldUpdate :: Name -> Expr -> FieldUpdate
- mkStaticPointer :: Expr -> Expr
- mkLambdaCase :: [Alt] -> Expr
- mkArrowApp :: Expr -> ArrowApp -> Expr -> Expr
- mkProcExpr :: Pattern -> Cmd -> Expr
- mkExprPragma :: ExprPragma -> Expr -> Expr
- mkQuasiQuoteExpr :: QuasiQuote -> Expr
- mkSpliceExpr :: Splice -> Expr
- mkBracketExpr :: Bracket -> Expr
- mkTypeQuote :: Name -> Expr
- mkVarQuote :: Name -> Expr
- mkExplicitTypeApp :: Expr -> Type -> Expr
- mkExprTypeSig :: Expr -> Type -> Expr
- mkParArrayComp :: Expr -> [ListCompBody] -> Expr
- mkListComp :: Expr -> [ListCompBody] -> Expr
- mkParArrayEnum :: Expr -> Maybe Expr -> Expr -> Expr
- mkEnum :: Expr -> Maybe Expr -> Maybe Expr -> Expr
- mkRecUpdate :: Expr -> [FieldUpdate] -> Expr
- mkRecCon :: Name -> [FieldUpdate] -> Expr
- mkRightSection :: Operator -> Expr -> Expr
- mkLeftSection :: Expr -> Operator -> Expr
- mkParen :: Expr -> Expr
- mkParArray :: [Expr] -> Expr
- mkList :: [Expr] -> Expr
- mkTupleUnboxedSection :: [Maybe Expr] -> Expr
- mkTupleSection :: [Maybe Expr] -> Expr
- mkUnboxedTuple :: [Expr] -> Expr
- mkTuple :: [Expr] -> Expr
- mkMDoBlock :: [Stmt] -> Expr
- mkDoBlock :: [Stmt] -> Expr
- mkCase :: Expr -> [Alt] -> Expr
- mkMultiIf :: [GuardedCaseRhs] -> Expr
- mkIf :: Expr -> Expr -> Expr -> Expr
- mkLet :: [LocalBind] -> Expr -> Expr
- mkLambda :: [Pattern] -> Expr -> Expr
- mkApp :: Expr -> Expr -> Expr
- mkPrefixApp :: Operator -> Expr -> Expr
- mkInfixApp :: Expr -> Operator -> Expr -> Expr
- mkLit :: Literal -> Expr
- mkVar :: Name -> Expr
- mkTupleAssertion :: [Assertion] -> Assertion
- mkImplicitAssert :: Name -> Type -> Assertion
- mkInfixAssert :: Type -> Operator -> Type -> Assertion
- mkClassAssert :: Name -> [Type] -> Assertion
- mkContext :: Assertion -> Context
- mkPromotedUnitType :: Type
- mkPromotedTupleType :: [Type] -> Type
- mkPromotedListType :: [Type] -> Type
- mkPromotedConType :: Name -> Type
- mkPromotedStringType :: String -> Type
- mkPromotedIntType :: Integer -> Type
- mkQuasiQuoteType :: QuasiQuote -> Type
- mkSpliceType :: Splice -> Type
- mkNamedWildcardType :: Name -> Type
- mkWildcardType :: Type
- mkNoUnpackType :: Type -> Type
- mkUnpackType :: Type -> Type
- mkLazyType :: Type -> Type
- mkBangType :: Type -> Type
- mkKindedType :: Type -> Kind -> Type
- mkVarType :: Name -> Type
- mkKindedTypeVar :: Name -> Kind -> TyVar
- mkTypeVar :: Name -> TyVar
- mkParenType :: Type -> Type
- mkInfixTypeApp :: Type -> Operator -> Type -> Type
- mkTypeApp :: Type -> Type -> Type
- mkParArrayType :: Type -> Type
- mkListType :: Type -> Type
- mkUnboxedTupleType :: [Type] -> Type
- mkTupleType :: [Type] -> Type
- mkFunctionType :: Type -> Type -> Type
- mkCtxType :: Context -> Type -> Type
- mkTypeVar' :: Name -> TyVar
- mkForallType :: [TyVar] -> Type -> Type
- mkUnitKind :: Kind
- mkTupleKind :: [Kind] -> Kind
- mkListKind :: [Kind] -> Kind
- mkConKind :: Name -> Kind
- mkStringKind :: String -> Kind
- mkIntKind :: Integer -> Kind
- mkKindList :: Kind -> Kind
- mkKindApp :: Kind -> Kind -> Kind
- mkKindVar :: Name -> Kind
- mkKindParen :: Kind -> Kind
- mkKindFun :: Kind -> Kind -> Kind
- mkKindUnbox :: Kind
- mkKindStar :: Kind
- mkKindConstraint :: Kind -> KindConstraint
- mkPrimStringLit :: String -> Literal
- mkPrimCharLit :: Char -> Literal
- mkPrimDoubleLit :: Rational -> Literal
- mkPrimFloatLit :: Rational -> Literal
- mkPrimWordLit :: Integer -> Literal
- mkPrimIntLit :: Integer -> Literal
- mkFracLit :: Rational -> Literal
- mkIntLit :: Integer -> Literal
- mkStringLit :: String -> Literal
- mkCharLit :: Char -> Literal
- mkModuleDeprecatedPragma :: [String] -> ModulePragma
- mkModuleWarningPragma :: [String] -> ModulePragma
- mkOptionsGHC :: String -> FilePragma
- mkLanguagePragma :: [String] -> FilePragma
- mkFilePragmas :: [FilePragma] -> FilePragmaList
- mkModuleName :: String -> ModuleName
- mkImportHidingList :: [IESpec] -> ImportSpec
- mkImportSpecList :: [IESpec] -> ImportSpec
- mkImportDecl :: Bool -> Bool -> Bool -> Maybe String -> ModuleName -> Maybe ModuleName -> Maybe ImportSpec -> ImportDecl
- mkSubAll :: SubSpec
- mkSubList :: [Name] -> SubSpec
- mkPatternIESpec :: Name -> IESpec
- mkIESpec :: Name -> Maybe SubSpec -> IESpec
- mkModuleExport :: ModuleName -> ExportSpec
- mkExportSpec :: IESpec -> ExportSpec
- mkExportSpecs :: [ExportSpec] -> ExportSpecs
- mkModuleHead :: ModuleName -> Maybe ModulePragma -> Maybe ExportSpecs -> ModuleHead
- mkModule :: [FilePragma] -> Maybe ModuleHead -> [ImportDecl] -> [Decl] -> Module
- mkStringNode :: String -> StringNode
- mkSimpleName :: String -> QualifiedName
- mkSimpleName' :: Name -> QualifiedName
- mkNamePart :: String -> NamePart
- mkQualifiedName :: [String] -> String -> QualifiedName
- mkQualifiedName' :: [String] -> Name -> QualifiedName
- mkImplicitName :: QualifiedName -> Name
- mkParenName :: QualifiedName -> Name
- mkNormalName :: QualifiedName -> Name
- mkUnqualName' :: Name -> Name
- mkQualName' :: [String] -> Name -> Name
- mkUnqualOp :: String -> Operator
- mkUnqualOp' :: Name -> Operator
- mkQualOp' :: [String] -> Name -> Operator
- mkBacktickOp :: [String] -> String -> Operator
- mkQualOp :: [String] -> String -> Operator
- mkName :: String -> Name
- mkFieldWildcardPattern :: PatternField
- mkFieldPunPattern :: Name -> PatternField
- mkPatternField :: Name -> Pattern -> PatternField
- mkQuasiQuotePat :: QuasiQuote -> Pattern
- mkSplicePat :: Splice -> Pattern
- mkViewPat :: Expr -> Pattern -> Pattern
- mkTypeSigPat :: Pattern -> Type -> Pattern
- mkBangPat :: Pattern -> Pattern
- mkIrrefutablePat :: Pattern -> Pattern
- mkWildPat :: Pattern
- mkAsPat :: Name -> Pattern -> Pattern
- mkRecPat :: Name -> [PatternField] -> Pattern
- mkParenPat :: Pattern -> Pattern
- mkParArrayPat :: [Pattern] -> Pattern
- mkListPat :: [Pattern] -> Pattern
- mkUnboxTuplePat :: [Pattern] -> Pattern
- mkTuplePat :: [Pattern] -> Pattern
- mkAppPat :: Name -> [Pattern] -> Pattern
- mkInfixAppPat :: Pattern -> Operator -> Pattern -> Pattern
- mkLitPat :: Literal -> Pattern
- mkVarPat :: Name -> Pattern
- mkRecCmd :: [CmdStmt] -> CmdStmt
- mkLetStmtCmd :: [LocalBind] -> CmdStmt
- mkExprCmd :: Cmd -> CmdStmt
- mkBindCmd :: Pattern -> Cmd -> CmdStmt
- mkGroupStmt :: Maybe Expr -> Maybe Expr -> CompStmt
- mkThenStmt :: Expr -> Maybe Expr -> CompStmt
- mkCompStmt :: Stmt -> CompStmt
- mkListCompBody :: [CompStmt] -> ListCompBody
- mkRecStmt :: [Stmt] -> Stmt
- mkLetStmt :: [LocalBind] -> Stmt
- mkExprStmt :: Expr -> Stmt
- mkBindStmt :: Pattern -> Expr -> Stmt
- mkDeclsBracket :: [Decl] -> Bracket
- mkTypeBracket :: Type -> Bracket
- mkPatternBracket :: Pattern -> Bracket
- mkExprBracket :: Expr -> Bracket
- mkQuasiQuote :: Name -> String -> QuasiQuote
- mkParenSplice :: Expr -> Splice
- mkIdSplice :: Name -> Splice
- type AnnList (node :: Type -> Type -> Type) = AnnListG node IdDom SrcTemplateStage
- type AnnMaybe (node :: Type -> Type -> Type) = AnnMaybeG node IdDom SrcTemplateStage
- type Module = Ann UModule IdDom SrcTemplateStage
- type ModuleHead = Ann UModuleHead IdDom SrcTemplateStage
- type ExportSpecs = Ann UExportSpecs IdDom SrcTemplateStage
- type ExportSpec = Ann UExportSpec IdDom SrcTemplateStage
- type IESpec = Ann UIESpec IdDom SrcTemplateStage
- type ImportModifier = Ann UImportModifier IdDom SrcTemplateStage
- type SubSpec = Ann USubSpec IdDom SrcTemplateStage
- type ModulePragma = Ann UModulePragma IdDom SrcTemplateStage
- type FilePragma = Ann UFilePragma IdDom SrcTemplateStage
- type ImportDecl = Ann UImportDecl IdDom SrcTemplateStage
- type ImportSpec = Ann UImportSpec IdDom SrcTemplateStage
- type ImportQualified = Ann UImportQualified IdDom SrcTemplateStage
- type ImportSource = Ann UImportSource IdDom SrcTemplateStage
- type ImportSafe = Ann UImportSafe IdDom SrcTemplateStage
- type TypeNamespace = Ann UTypeNamespace IdDom SrcTemplateStage
- type ImportRenaming = Ann UImportRenaming IdDom SrcTemplateStage
- type ModuleName = Ann UModuleName IdDom SrcTemplateStage
- type LanguageExtension = Ann ULanguageExtension IdDom SrcTemplateStage
- type Decl = Ann UDecl IdDom SrcTemplateStage
- type ClassBody = Ann UClassBody IdDom SrcTemplateStage
- type ClassElement = Ann UClassElement IdDom SrcTemplateStage
- type DeclHead = Ann UDeclHead IdDom SrcTemplateStage
- type InstBody = Ann UInstBody IdDom SrcTemplateStage
- type InstBodyDecl = Ann UInstBodyDecl IdDom SrcTemplateStage
- type GadtConDecl = Ann UGadtConDecl IdDom SrcTemplateStage
- type GadtConType = Ann UGadtConType IdDom SrcTemplateStage
- type FieldWildcard = Ann UFieldWildcard IdDom SrcTemplateStage
- type FunDeps = Ann UFunDeps IdDom SrcTemplateStage
- type FunDep = Ann UFunDep IdDom SrcTemplateStage
- type ConDecl = Ann UConDecl IdDom SrcTemplateStage
- type DataOrNewtypeKeyword = Ann UDataOrNewtypeKeyword IdDom SrcTemplateStage
- type FieldDecl = Ann UFieldDecl IdDom SrcTemplateStage
- type Deriving = Ann UDeriving IdDom SrcTemplateStage
- type DeriveStrategy = Ann UDeriveStrategy IdDom SrcTemplateStage
- type InstanceRule = Ann UInstanceRule IdDom SrcTemplateStage
- type InstanceHead = Ann UInstanceHead IdDom SrcTemplateStage
- type SpecializePragma = Ann USpecializePragma IdDom SrcTemplateStage
- type OverlapPragma = Ann UOverlapPragma IdDom SrcTemplateStage
- type TypeEqn = Ann UTypeEqn IdDom SrcTemplateStage
- type TopLevelPragma = Ann UTopLevelPragma IdDom SrcTemplateStage
- type Rule = Ann URule IdDom SrcTemplateStage
- type RuleVar = Ann URuleVar IdDom SrcTemplateStage
- type AnnotationSubject = Ann UAnnotationSubject IdDom SrcTemplateStage
- type MinimalFormula = Ann UMinimalFormula IdDom SrcTemplateStage
- type SourceRange = Ann USourceRange IdDom SrcTemplateStage
- type TypeFamily = Ann UTypeFamily IdDom SrcTemplateStage
- type TypeFamilySpec = Ann UTypeFamilySpec IdDom SrcTemplateStage
- type InjectivityAnn = Ann UInjectivityAnn IdDom SrcTemplateStage
- type PatternSynonym = Ann UPatternSynonym IdDom SrcTemplateStage
- type PatSynRhs = Ann UPatSynRhs IdDom SrcTemplateStage
- type PatSynLhs = Ann UPatSynLhs IdDom SrcTemplateStage
- type PatSynWhere = Ann UPatSynWhere IdDom SrcTemplateStage
- type PatternSignature = Ann UPatternTypeSignature IdDom SrcTemplateStage
- type Role = Ann URole IdDom SrcTemplateStage
- type CallConv = Ann UCallConv IdDom SrcTemplateStage
- type Safety = Ann USafety IdDom SrcTemplateStage
- type ConlikeAnnot = Ann UConlikeAnnot IdDom SrcTemplateStage
- type PhaseControl = Ann UPhaseControl IdDom SrcTemplateStage
- type ValueBind = Ann UValueBind IdDom SrcTemplateStage
- type Match = Ann UMatch IdDom SrcTemplateStage
- type MatchLhs = Ann UMatchLhs IdDom SrcTemplateStage
- type Rhs = Ann URhs IdDom SrcTemplateStage
- type GuardedRhs = Ann UGuardedRhs IdDom SrcTemplateStage
- type RhsGuard = Ann URhsGuard IdDom SrcTemplateStage
- type LocalBind = Ann ULocalBind IdDom SrcTemplateStage
- type LocalBinds = Ann ULocalBinds IdDom SrcTemplateStage
- type FixitySignature = Ann UFixitySignature IdDom SrcTemplateStage
- type TypeSignature = Ann UTypeSignature IdDom SrcTemplateStage
- type Type = Ann UType IdDom SrcTemplateStage
- type TyVar = Ann UTyVar IdDom SrcTemplateStage
- type Context = Ann UContext IdDom SrcTemplateStage
- type Assertion = Ann UAssertion IdDom SrcTemplateStage
- type KindConstraint = Ann UKindConstraint IdDom SrcTemplateStage
- type Kind = Ann UKind IdDom SrcTemplateStage
- type PromotedKind = Ann (UPromoted UKind) IdDom SrcTemplateStage
- type Expr = Ann UExpr IdDom SrcTemplateStage
- type Alt = Ann UAlt IdDom SrcTemplateStage
- type CaseRhs = Ann UCaseRhs IdDom SrcTemplateStage
- type GuardedCaseRhs = Ann UGuardedCaseRhs IdDom SrcTemplateStage
- type FieldUpdate = Ann UFieldUpdate IdDom SrcTemplateStage
- type TupSecElem = Ann UTupSecElem IdDom SrcTemplateStage
- type ExprPragma = Ann UExprPragma IdDom SrcTemplateStage
- type Cmd = Ann UCmd IdDom SrcTemplateStage
- type CmdAlt = Ann UCmdAlt IdDom SrcTemplateStage
- type ArrowApp = Ann UArrowAppl IdDom SrcTemplateStage
- type Stmt = Ann UStmt IdDom SrcTemplateStage
- type DoKind = Ann UDoKind IdDom SrcTemplateStage
- type CompStmt = Ann UCompStmt IdDom SrcTemplateStage
- type ListCompBody = Ann UListCompBody IdDom SrcTemplateStage
- type CmdStmt = Ann UCmdStmt IdDom SrcTemplateStage
- type Pattern = Ann UPattern IdDom SrcTemplateStage
- type PatternField = Ann UPatternField IdDom SrcTemplateStage
- type Splice = Ann USplice IdDom SrcTemplateStage
- type Bracket = Ann UBracket IdDom SrcTemplateStage
- type QuasiQuote = Ann UQuasiQuote IdDom SrcTemplateStage
- type Literal = Ann ULiteral IdDom SrcTemplateStage
- type Operator = Ann UOperator IdDom SrcTemplateStage
- type Name = Ann UName IdDom SrcTemplateStage
- type QualifiedName = Ann UQualifiedName IdDom SrcTemplateStage
- type NamePart = Ann UNamePart IdDom SrcTemplateStage
- type StringNode = Ann UStringNode IdDom SrcTemplateStage
- type MaybeContext = AnnMaybe UContext
- type MaybeDeriving = AnnMaybe UDeriving
- type MaybeDeriveStrategy = AnnMaybe UDeriveStrategy
- type MaybeLocalBinds = AnnMaybe ULocalBinds
- type MaybeTypeFamilySpec = AnnMaybe UTypeFamilySpec
- type MaybeKindConstraint = AnnMaybe UKindConstraint
- type MaybeClassBody = AnnMaybe UClassBody
- type MaybeInstBody = AnnMaybe UInstBody
- type MaybeExpr = AnnMaybe UExpr
- type MaybeExportSpecs = AnnMaybe UExportSpecs
- type MaybeImportQualified = AnnMaybe UImportQualified
- type MaybeImportSource = AnnMaybe UImportSource
- 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
- type MaybeImportRenaming = AnnMaybe UImportRenaming
- type MaybeSafety = AnnMaybe USafety
- type MaybePhaseControl = AnnMaybe UPhaseControl
- type MaybeConlikeAnnot = AnnMaybe UConlikeAnnot
- type MaybeFunDeps = AnnMaybe UFunDeps
- type MatchList = AnnList UMatch
- type DeclList = AnnList UDecl
- type PatternList = AnnList UPattern
- type OperatorList = AnnList UOperator
- type NameList = AnnList UName
- type LocalBindList = AnnList ULocalBind
- type IESpecList = AnnList UIESpec
- type RhsGuardList = AnnList URhsGuard
- type GuardedRhsList = AnnList UGuardedRhs
- type GuardedCaseRhsList = AnnList UGuardedCaseRhs
- type ConDeclList = AnnList UConDecl
- type TypeEqnList = AnnList UTypeEqn
- type TypeList = AnnList UType
- type FieldDeclList = AnnList UFieldDecl
- type ExprList = AnnList UExpr
- type FieldUpdateList = AnnList UFieldUpdate
- type GadtConDeclList = AnnList UGadtConDecl
- type ClassElementList = AnnList UClassElement
- type InstBodyDeclList = AnnList UInstBodyDecl
- type InstanceHeadList = AnnList UInstanceHead
- type AltList = AnnList UAlt
- type StmtList = AnnList UStmt
- type KindList = AnnList UKind
- type TyVarList = AnnList UTyVar
- type ListCompBodyList = AnnList UListCompBody
- type ExportSpecList = AnnList UExportSpec
- type FilePragmaList = AnnList UFilePragma
- type ImportDeclList = AnnList UImportDecl
- type PatternFieldList = AnnList UPatternField
- type AssertionList = AnnList UAssertion
- type CompStmtList = AnnList UCompStmt
- type RuleList = AnnList URule
- type RuleVarList = AnnList URuleVar
- type RoleList = AnnList URole
- type MinimalFormulaList = AnnList UMinimalFormula
- type FunDepList = AnnList UFunDep
- type TupSecElemList = AnnList UTupSecElem
- type CmdList = AnnList UCmd
- type CmdAltList = AnnList UCmdAlt
- type CmdStmtList = AnnList UCmdStmt
- type LanguageExtensionList = AnnList ULanguageExtension
- type StringNodeList = AnnList UStringNode
- type NamePartList = AnnList UNamePart
- type DerivingList = AnnList UDeriving
- data RefactorException
- data RefactorChange
- data SourceFileKey = SourceFileKey {}
- type ModuleDom = (SourceFileKey, UnnamedModule)
- type UnnamedModule = Ann UModule IdDom SrcTemplateStage
- moduleSourceFile :: String -> FilePath
- sourceFileModule :: FilePath -> String
- sfkFileName :: Lens SourceFileKey SourceFileKey FilePath FilePath
- sfkModuleName :: Lens SourceFileKey SourceFileKey String String
- data RefactorCtx = RefactorCtx {}
- newtype LocalRefactorT m a = LocalRefactorT {
- fromRefactorT :: WriterT [Either Name (SrcSpan, String, String)] (ReaderT RefactorCtx m) a
- type Refactor = ExceptT String Ghc
- type LocalRefactor = LocalRefactorT Refactor
- type ProjectRefactoring = [ModuleDom] -> Refactor [RefactorChange]
- type Refactoring = ModuleDom -> [ModuleDom] -> Refactor [RefactorChange]
- type LocalRefactoring = UnnamedModule -> LocalRefactor UnnamedModule
- class Monad m => RefactorMonad m where
- refactError :: String -> m a
- liftGhc :: Ghc a -> m a
- class NamedElement d => BindingElem d where
- sigBind :: Simple Partial (Ann d IdDom SrcTemplateStage) TypeSignature
- valBind :: Simple Partial (Ann d IdDom SrcTemplateStage) ValueBind
- fixitySig :: Simple Partial (Ann d IdDom SrcTemplateStage) FixitySignature
- createTypeSig :: TypeSignature -> Ann d IdDom SrcTemplateStage
- createBinding :: ValueBind -> Ann d IdDom SrcTemplateStage
- createFixitySig :: FixitySignature -> Ann d IdDom SrcTemplateStage
- isTypeSig :: Ann d IdDom SrcTemplateStage -> Bool
- isBinding :: Ann d IdDom SrcTemplateStage -> Bool
- isFixitySig :: Ann d IdDom SrcTemplateStage -> Bool
- getValBindInList :: BindingElem d => RealSrcSpan -> AnnList d -> Maybe ValueBind
- valBindsInList :: BindingElem d => Simple Traversal (AnnList d) ValueBind
- debugM :: (Monad m, Show a) => m a -> m a
- debug :: Show a => a -> a
- debugMaybeT :: Monad m => MaybeT m a -> MaybeT m a
- showOutputable :: Outputable a => a -> String
- showName :: Name -> String
- showOp :: Operator -> String
- setMinimalIndent :: SourceInfoTraversal elem => Int -> elem dom SrcTemplateStage -> elem dom SrcTemplateStage
- filterList :: SourceInfoTraversal e => (Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> AnnList e
- filterListIndexed :: SourceInfoTraversal e => (Int -> Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> AnnList e
- filterListSt :: SourceInfoTraversal e => (Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> LocalRefactor (AnnList e)
- filterListIndexedSt :: SourceInfoTraversal e => (Int -> Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> LocalRefactor (AnnList e)
- sublist :: [Int] -> [a] -> [a]
- notSublist :: [Int] -> [a] -> [a]
- insertWhere :: Bool -> Ann e IdDom SrcTemplateStage -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> AnnList e -> AnnList e
- insertIndex :: (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> [Ann e IdDom SrcTemplateStage] -> Maybe Int
- zipWithSeparators :: AnnList e -> [(([SourceTemplateTextElem], SrcSpan), Ann e IdDom SrcTemplateStage)]
- replaceWithJust :: Ann e IdDom SrcTemplateStage -> AnnMaybe e -> AnnMaybe e
- replaceWithNothing :: AnnMaybe e -> AnnMaybe e
- removeEmptyBnds :: Simple Traversal Module ValueBind -> Simple Traversal Module Expr -> Module -> Module
- normalizeElements :: [Ann e dom SrcTemplateStage] -> [Ann e dom SrcTemplateStage]
- groupElemsBy :: Ord k => (a -> k) -> [a] -> [[a]]
- reprElems :: [[a]] -> [(a, [a])]
- equivalenceGroupsBy :: Ord k => (a -> k) -> [a] -> [(a, [a])]
- isJustT :: Monad m => MaybeT m a -> m Bool
- isNothingT :: Monad m => MaybeT m a -> m Bool
- liftMaybe :: Monad m => Maybe a -> MaybeT m a
- fromMaybeT :: Monad m => a -> MaybeT m a -> m a
- fromMaybeTM :: Monad m => m a -> MaybeT m a -> m a
- maybeT :: Monad m => b -> (a -> b) -> MaybeT m a -> m b
- maybeTM :: Monad m => m b -> (a -> m b) -> MaybeT m a -> m b
- runRefactor :: ModuleDom -> [ModuleDom] -> Refactoring -> Ghc (Either String [RefactorChange])
- localRefactoring :: LocalRefactoring -> Refactoring
- localRefactoringRes :: ((UnnamedModule -> UnnamedModule) -> a -> a) -> UnnamedModule -> LocalRefactor a -> Refactor a
- insertText :: SourceInfoTraversal p => [(SrcSpan, String, String)] -> p dom SrcTemplateStage -> p dom SrcTemplateStage
- addGeneratedImports :: [Name] -> Module -> Module
- registeredNamesFromPrelude :: [Name]
- otherNamesFromPrelude :: [String]
- qualifiedName :: Name -> String
- referenceName :: Name -> LocalRefactor (Ann UName IdDom SrcTemplateStage)
- referenceOperator :: Name -> LocalRefactor (Ann UOperator IdDom SrcTemplateStage)
- referenceName' :: ([String] -> Name -> Ann nt IdDom SrcTemplateStage) -> Name -> LocalRefactor (Ann nt IdDom SrcTemplateStage)
- referenceBy :: ([String] -> Name -> Ann nt IdDom SrcTemplateStage) -> Name -> [Ann UImportDecl IdDom SrcTemplateStage] -> Ann nt IdDom SrcTemplateStage
- data UnsupportedExtension = UnsupportedExtension String
- type TypedModule = Ann UModule IdDom SrcTemplateStage
- tryRefactor :: (RealSrcSpan -> Refactoring) -> String -> ModuleName -> IO ()
- correctRefactorSpan :: UnnamedModule -> RealSrcSpan -> RealSrcSpan
- useFlags :: [String] -> Ghc ([String], DynFlags -> DynFlags)
- pprWarning :: Warn -> SDoc
- pprErr :: Err -> SDoc
- reloadPkgDb :: Ghc ()
- initGhcFlags :: Ghc ()
- initGhcFlagsForTest :: Ghc ()
- initGhcFlags' :: Bool -> Bool -> Ghc ()
- useDirs :: [FilePath] -> Ghc ()
- deregisterDirs :: [FilePath] -> Ghc ()
- toFileName :: FilePath -> ModuleName -> FilePath
- toBootFileName :: FilePath -> ModuleName -> FilePath
- getSourceDir :: ModSummary -> IO FilePath
- getModSumOrig :: ModSummary -> FilePath
- keyFromMS :: ModSummary -> SourceFileKey
- getModSumName :: ModSummary -> String
- loadModuleAST :: FilePath -> ModuleName -> Ghc TypedModule
- loadModule :: FilePath -> ModuleName -> Ghc ModSummary
- parseTyped :: ModSummary -> Ghc TypedModule
- trfProblem :: String -> a
- withAlteredDynFlags :: GhcMonad m => (DynFlags -> m DynFlags) -> m a -> m a
- forceCodeGen :: ModSummary -> ModSummary
- codeGenDfs :: DynFlags -> DynFlags
- forceAsmGen :: ModSummary -> ModSummary
- modSumNormalizeFlags :: ModSummary -> ModSummary
- normalizeFlags :: DynFlags -> DynFlags
- readSrcSpan :: String -> RealSrcSpan
- readSrcLoc :: String -> RealSrcLoc
- data RefactoringChoice
- = NamingRefactoring { }
- | NamingRefactoringIndent {
- refactoringName :: String
- namingRefactoringIndent :: RealSrcSpan -> String -> Maybe String -> Refactoring
- | SelectionRefactoring { }
- | ModuleRefactoring { }
- | ProjectRefactoring { }
- performCommand :: [RefactoringChoice] -> [String] -> Either FilePath ModuleDom -> [ModuleDom] -> Ghc (Either String [RefactorChange])
- refactorCommands :: [RefactoringChoice] -> [String]
- data Severity
- data Marker = Marker {}
- data QueryChoice
- = LocationQuery {
- queryName :: String
- locationQuery :: RealSrcSpan -> ModuleDom -> [ModuleDom] -> QueryMonad QueryValue
- | GlobalQuery {
- queryName :: String
- globalQuery :: ModuleDom -> [ModuleDom] -> QueryMonad QueryValue
- = LocationQuery {
- data QueryValue
- = GeneralQuery Value
- | MarkerQuery [Marker]
- type QueryMonad = ExceptT String Ghc
- type QueryType = String
- decompQuery :: QueryValue -> (QueryType, Value)
- queryCommands :: [QueryChoice] -> [String]
- queryError :: String -> QueryMonad a
- performQuery :: [QueryChoice] -> [String] -> Either FilePath ModuleDom -> [ModuleDom] -> Ghc (Either String (QueryType, Value))
- data NameClass
- classifyName :: RefactorMonad m => Name -> m NameClass
- validModuleName :: String -> Maybe String
- nameValid :: NameClass -> String -> Maybe String
- isIdChar :: Char -> Bool
- isOperatorChar :: Char -> Bool
- opSemName :: Operator -> Maybe Name
- declHeadQName :: DeclHead -> QualifiedName
- declHeadSemName :: DeclHead -> Maybe Name
- instHeadSemName :: InstanceHead -> Maybe Name
- assertionQNames :: Assertion -> [QualifiedName]
- assertionSemNames :: Assertion -> [Name]
- nameFromType :: Type -> Maybe Name
- typeExpr :: Expr -> Ghc Type
- literalType :: Literal -> Ghc Type
- appTypeMatches :: [ClsInst] -> Type -> [Type] -> Maybe (TCvSubst, Type)
- type ClosedTyFam = CoAxiom Branched
- hasConstraintKind :: Type -> Bool
- lookupTypeFromId :: (HasIdInfo' id, GhcMonad m) => id -> MaybeT m Type
- typeOrKindFromId :: HasIdInfo' id => id -> Type
- typeFromTyThing :: TyThing -> Maybe Type
- lookupTypeFromGlobalName :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Type
- lookupTypeSynRhs :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Type
- lookupSynDef :: TyThing -> Maybe TyCon
- tyconFromTyThing :: TyThing -> Maybe TyCon
- tyconFromGHCType :: Type -> Maybe TyCon
- isNewtype :: GhcMonad m => Type -> m Bool
- lookupType :: GhcMonad m => Type -> MaybeT m TyThing
- lookupClassWith :: GhcMonad m => (a -> MaybeT m Name) -> a -> MaybeT m Class
- lookupClass :: (GhcMonad m, HasNameInfo' n) => n -> MaybeT m Class
- lookupClassFromInstance :: GhcMonad m => InstanceHead -> MaybeT m Class
- lookupClassFromDeclHead :: GhcMonad m => DeclHead -> MaybeT m Class
- semanticsTypeSynRhs :: GhcMonad m => Type -> MaybeT m Type
- semanticsType :: GhcMonad m => Type -> MaybeT m Type
- isNewtypeTyCon :: TyThing -> Bool
- satisfies :: (HasNameInfo' n, GhcMonad m) => (TyThing -> Maybe a) -> (a -> Bool) -> n -> MaybeT m Bool
- isClassTyConNameM :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Bool
- isVanillaDataConNameM :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Bool
- lookupClosedTyFam :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m ClosedTyFam
- coAxiomFromTyThing :: TyThing -> Maybe (CoAxiom Branched)
- hasTyVarHead :: Type -> Bool
- data Ann (elem :: Type -> Type -> Type) dom stage
- class HasSourceInfo e where
- type SourceInfoType e :: Type
- srcInfo :: Simple Lens e (SourceInfoType e)
- class HasRange a where
- annListElems :: Lens (AnnListG elem dom stage) (AnnListG elem dom stage) [Ann elem dom stage] [Ann elem dom stage]
- annListAnnot :: Lens (AnnListG elem dom stage) (AnnListG elem dom stage) (NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage)) (NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage))
- annList :: Traversal (AnnListG e d s) (AnnListG e d s) (Ann e d s) (Ann e d s)
- annJust :: Partial (AnnMaybeG e d s) (AnnMaybeG e d s) (Ann e d s) (Ann e d s)
- annMaybe :: Lens (AnnMaybeG elem dom stage) (AnnMaybeG elem dom stage) (Maybe (Ann elem dom stage)) (Maybe (Ann elem dom stage))
- isAnnNothing :: AnnMaybeG e d s -> Bool
- type Domain d = (Typeable d, Data d, SemanticInfo' d SemaInfoDefaultCls ~ NoSemanticInfo, Data (SemanticInfo' d SemaInfoNameCls), Data (SemanticInfo' d SemaInfoLitCls), Data (SemanticInfo' d SemaInfoExprCls), Data (SemanticInfo' d SemaInfoImportCls), Data (SemanticInfo' d SemaInfoModuleCls), Data (SemanticInfo' d SemaInfoWildcardCls))
- data Dom name
- data IdDom
- shortShowSpan :: SrcSpan -> String
- shortShowSpanWithFile :: SrcSpan -> String
- data SrcTemplateStage
- class SourceInfoTraversal (a :: Type -> Type -> Type) where
- sourceInfoTraverseUp :: Monad f => SourceInfoTrf f st1 st2 -> f () -> f () -> a dom st1 -> f (a dom st2)
- sourceInfoTraverseDown :: Monad f => SourceInfoTrf f st1 st2 -> f () -> f () -> a dom st1 -> f (a dom st2)
- sourceInfoTraverse :: Monad f => SourceInfoTrf f st1 st2 -> a dom st1 -> f (a dom st2)
- data SourceTemplateTextElem
- = NormalText { }
- | StayingText { }
- data UnsupportedExtension = UnsupportedExtension String
- data SpliceInsertionProblem = SpliceInsertionProblem SrcSpan String
- data ConvertionProblem
- data TransformationProblem = TransformationProblem String
- data BreakUpProblem = BreakUpProblem {
- bupOuter :: RealSrcSpan
- bupInner :: SrcSpan
- bupSiblings :: [SrcSpan]
- data PrettyPrintProblem = PrettyPrintProblem String
Documentation
The trace
function outputs the trace message given as its first argument,
before returning the second argument as its result.
For example, this returns the value of f x
but first outputs the message.
>>>
let x = 123; f = show
>>>
trace ("calling f with x = " ++ show x) (f x)
"calling f with x = 123 123"
The trace
function should only be used for debugging, or for monitoring
execution. The function is not referentially transparent: its type indicates
that it is a pure function but it has the side effect of outputting the
trace message.
The Maybe
type encapsulates an optional value. A value of type
either contains a value of type Maybe
aa
(represented as
),
or it is empty (represented as Just
aNothing
). Using Maybe
is a good way to
deal with errors or exceptional cases without resorting to drastic
measures such as error
.
The Maybe
type is also a monad. It is a simple kind of error
monad, where all errors are represented by Nothing
. A richer
error monad can be built using the Either
type.
Instances
Monad Maybe | Since: base-2.1 |
Functor Maybe | Since: base-2.1 |
MonadFix Maybe | Since: base-2.1 |
Defined in Control.Monad.Fix | |
Applicative Maybe | Since: base-2.1 |
Foldable Maybe | Since: base-2.1 |
Defined in Data.Foldable Methods fold :: Monoid m => Maybe m -> m # foldMap :: Monoid m => (a -> m) -> Maybe a -> m # foldr :: (a -> b -> b) -> b -> Maybe a -> b # foldr' :: (a -> b -> b) -> b -> Maybe a -> b # foldl :: (b -> a -> b) -> b -> Maybe a -> b # foldl' :: (b -> a -> b) -> b -> Maybe a -> b # foldr1 :: (a -> a -> a) -> Maybe a -> a # foldl1 :: (a -> a -> a) -> Maybe a -> a # elem :: Eq a => a -> Maybe a -> Bool # maximum :: Ord a => Maybe a -> a # minimum :: Ord a => Maybe a -> a # | |
Traversable Maybe | Since: base-2.1 |
MonadPlus Maybe | Since: base-2.1 |
Alternative Maybe | Since: base-2.1 |
Eq1 Maybe | Since: base-4.9.0.0 |
Ord1 Maybe | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Read1 Maybe | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Show1 Maybe | Since: base-4.9.0.0 |
Hashable1 Maybe | |
Defined in Data.Hashable.Class | |
FromJSON1 Maybe | |
Defined in Data.Aeson.Types.FromJSON Methods liftParseJSON :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (Maybe a) liftParseJSONList :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [Maybe a] | |
ToJSON1 Maybe | |
Defined in Data.Aeson.Types.ToJSON Methods liftToJSON :: (a -> Value) -> ([a] -> Value) -> Maybe a -> Value liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [Maybe a] -> Value liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> Maybe a -> Encoding liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [Maybe a] -> Encoding | |
(Selector s, GToJSON enc arity (K1 i (Maybe a) :: Type -> Type), KeyValuePair enc pairs, Monoid pairs) => RecordToPairs enc pairs arity (S1 s (K1 i (Maybe a) :: Type -> Type)) | |
Defined in Data.Aeson.Types.ToJSON Methods recordToPairs :: Options -> ToArgs enc arity a0 -> S1 s (K1 i (Maybe a)) a0 -> pairs | |
(Selector s, FromJSON a) => FromRecord arity (S1 s (K1 i (Maybe a) :: Type -> Type)) | |
Defined in Data.Aeson.Types.FromJSON Methods parseRecord :: Options -> FromArgs arity a0 -> Object -> Parser (S1 s (K1 i (Maybe a)) a0) | |
Eq a => Eq (Maybe a) | Since: base-2.1 |
Data a => Data (Maybe a) | Since: base-4.0.0.0 |
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Maybe a -> c (Maybe a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Maybe a) # toConstr :: Maybe a -> Constr # dataTypeOf :: Maybe a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Maybe a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Maybe a)) # gmapT :: (forall b. Data b => b -> b) -> Maybe a -> Maybe a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Maybe a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Maybe a -> r # gmapQ :: (forall d. Data d => d -> u) -> Maybe a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Maybe a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Maybe a -> m (Maybe a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Maybe a -> m (Maybe a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Maybe a -> m (Maybe a) # | |
Ord a => Ord (Maybe a) | Since: base-2.1 |
Read a => Read (Maybe a) | Since: base-2.1 |
Show a => Show (Maybe a) | Since: base-2.1 |
Generic (Maybe a) | |
Semigroup a => Semigroup (Maybe a) | Since: base-4.9.0.0 |
Semigroup a => Monoid (Maybe a) | Lift a semigroup into Since 4.11.0: constraint on inner Since: base-2.1 |
Lift a => Lift (Maybe a) | |
SingKind a => SingKind (Maybe a) | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
Outputable a => Outputable (Maybe a) | |
Hashable a => Hashable (Maybe a) | |
Defined in Data.Hashable.Class | |
FromJSON a => FromJSON (Maybe a) | |
Defined in Data.Aeson.Types.FromJSON | |
ToJSON a => ToJSON (Maybe a) | |
Defined in Data.Aeson.Types.ToJSON Methods toEncoding :: Maybe a -> Encoding toJSONList :: [Maybe a] -> Value toEncodingList :: [Maybe a] -> Encoding | |
Generic1 Maybe | |
SingI (Nothing :: Maybe a) | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
SingI a2 => SingI (Just a2 :: Maybe a1) | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
Eq a => Association (a -> Maybe b) | |
Eq a => Mapping (a -> Maybe b) | |
type Rep (Maybe a) | Since: base-4.6.0.0 |
data Sing (b :: Maybe a) | |
type DemoteRep (Maybe a) | |
Defined in GHC.Generics | |
type IgnoredFields (Maybe a) | |
type Rep1 Maybe | Since: base-4.6.0.0 |
type AssocElem (a -> Maybe b) | |
Defined in Control.Reference.Predefined.Containers type AssocElem (a -> Maybe b) = b | |
type AssocIndex (a -> Maybe b) | |
Defined in Control.Reference.Predefined.Containers type AssocIndex (a -> Maybe b) = a |
maybe :: b -> (a -> b) -> Maybe a -> b #
The maybe
function takes a default value, a function, and a Maybe
value. If the Maybe
value is Nothing
, the function returns the
default value. Otherwise, it applies the function to the value inside
the Just
and returns the result.
Examples
Basic usage:
>>>
maybe False odd (Just 3)
True
>>>
maybe False odd Nothing
False
Read an integer from a string using readMaybe
. If we succeed,
return twice the integer; that is, apply (*2)
to it. If instead
we fail to parse an integer, return 0
by default:
>>>
import Text.Read ( readMaybe )
>>>
maybe 0 (*2) (readMaybe "5")
10>>>
maybe 0 (*2) (readMaybe "")
0
Apply show
to a Maybe Int
. If we have Just n
, we want to show
the underlying Int
n
. But if we have Nothing
, we return the
empty string instead of (for example) "Nothing":
>>>
maybe "" show (Just 5)
"5">>>
maybe "" show Nothing
""
fromMaybe :: a -> Maybe a -> a #
The fromMaybe
function takes a default value and and Maybe
value. If the Maybe
is Nothing
, it returns the default values;
otherwise, it returns the value contained in the Maybe
.
Examples
Basic usage:
>>>
fromMaybe "" (Just "Hello, World!")
"Hello, World!"
>>>
fromMaybe "" Nothing
""
Read an integer from a string using readMaybe
. If we fail to
parse an integer, we want to return 0
by default:
>>>
import Text.Read ( readMaybe )
>>>
fromMaybe 0 (readMaybe "5")
5>>>
fromMaybe 0 (readMaybe "")
0
maybeToList :: Maybe a -> [a] #
The maybeToList
function returns an empty list when given
Nothing
or a singleton list when not given Nothing
.
Examples
Basic usage:
>>>
maybeToList (Just 7)
[7]
>>>
maybeToList Nothing
[]
One can use maybeToList
to avoid pattern matching when combined
with a function that (safely) works on lists:
>>>
import Text.Read ( readMaybe )
>>>
sum $ maybeToList (readMaybe "3")
3>>>
sum $ maybeToList (readMaybe "")
0
listToMaybe :: [a] -> Maybe a #
The listToMaybe
function returns Nothing
on an empty list
or
where Just
aa
is the first element of the list.
Examples
Basic usage:
>>>
listToMaybe []
Nothing
>>>
listToMaybe [9]
Just 9
>>>
listToMaybe [1,2,3]
Just 1
Composing maybeToList
with listToMaybe
should be the identity
on singleton/empty lists:
>>>
maybeToList $ listToMaybe [5]
[5]>>>
maybeToList $ listToMaybe []
[]
But not on lists with more than one element:
>>>
maybeToList $ listToMaybe [1,2,3]
[1]
catMaybes :: [Maybe a] -> [a] #
The catMaybes
function takes a list of Maybe
s and returns
a list of all the Just
values.
Examples
Basic usage:
>>>
catMaybes [Just 1, Nothing, Just 3]
[1,3]
When constructing a list of Maybe
values, catMaybes
can be used
to return all of the "success" results (if the list is the result
of a map
, then mapMaybe
would be more appropriate):
>>>
import Text.Read ( readMaybe )
>>>
[readMaybe x :: Maybe Int | x <- ["1", "Foo", "3"] ]
[Just 1,Nothing,Just 3]>>>
catMaybes $ [readMaybe x :: Maybe Int | x <- ["1", "Foo", "3"] ]
[1,3]
mapMaybe :: (a -> Maybe b) -> [a] -> [b] #
The mapMaybe
function is a version of map
which can throw
out elements. In particular, the functional argument returns
something of type
. If this is Maybe
bNothing
, no element
is added on to the result list. If it is
, then Just
bb
is
included in the result list.
Examples
Using
is a shortcut for mapMaybe
f x
in most cases:catMaybes
$ map
f x
>>>
import Text.Read ( readMaybe )
>>>
let readMaybeInt = readMaybe :: String -> Maybe Int
>>>
mapMaybe readMaybeInt ["1", "Foo", "3"]
[1,3]>>>
catMaybes $ map readMaybeInt ["1", "Foo", "3"]
[1,3]
If we map the Just
constructor, the entire list should be returned:
>>>
mapMaybe Just [1,2,3]
[1,2,3]
traceMarkerIO :: String -> IO () #
The traceMarkerIO
function emits a marker to the eventlog, if eventlog
profiling is available and enabled at runtime.
Compared to traceMarker
, traceMarkerIO
sequences the event with respect to
other IO actions.
Since: base-4.7.0.0
traceMarker :: String -> a -> a #
The traceMarker
function emits a marker to the eventlog, if eventlog
profiling is available and enabled at runtime. The String
is the name of
the marker. The name is just used in the profiling tools to help you keep
clear which marker is which.
This function is suitable for use in pure code. In an IO context use
traceMarkerIO
instead.
Note that when using GHC's SMP runtime, it is possible (but rare) to get
duplicate events emitted if two CPUs simultaneously evaluate the same thunk
that uses traceMarker
.
Since: base-4.7.0.0
traceEventIO :: String -> IO () #
The traceEventIO
function emits a message to the eventlog, if eventlog
profiling is available and enabled at runtime.
Compared to traceEvent
, traceEventIO
sequences the event with respect to
other IO actions.
Since: base-4.5.0.0
traceEvent :: String -> a -> a #
The traceEvent
function behaves like trace
with the difference that
the message is emitted to the eventlog, if eventlog profiling is available
and enabled at runtime.
It is suitable for use in pure code. In an IO context use traceEventIO
instead.
Note that when using GHC's SMP runtime, it is possible (but rare) to get
duplicate events emitted if two CPUs simultaneously evaluate the same thunk
that uses traceEvent
.
Since: base-4.5.0.0
traceStack :: String -> a -> a #
like trace
, but additionally prints a call stack if one is
available.
In the current GHC implementation, the call stack is only
available if the program was compiled with -prof
; otherwise
traceStack
behaves exactly like trace
. Entries in the call
stack correspond to SCC
annotations, so it is a good idea to use
-fprof-auto
or -fprof-auto-calls
to add SCC annotations automatically.
Since: base-4.5.0.0
traceShowM :: (Show a, Applicative f) => a -> f () #
traceM :: Applicative f => String -> f () #
Like trace
but returning unit in an arbitrary Applicative
context. Allows
for convenient use in do-notation.
Note that the application of traceM
is not an action in the Applicative
context, as traceIO
is in the IO
type. While the fresh bindings in the
following example will force the traceM
expressions to be reduced every time
the do
-block is executed, traceM "not crashed"
would only be reduced once,
and the message would only be printed once. If your monad is in MonadIO
,
liftIO . traceIO
may be a better option.
>>>
:{
do x <- Just 3 traceM ("x: " ++ show x) y <- pure 12 traceM ("y: " ++ show y) pure (x*2 + y) :} x: 3 y: 12 Just 18
Since: base-4.7.0.0
traceShowId :: Show a => a -> a #
Like traceShow
but returns the shown value instead of a third value.
>>>
traceShowId (1+2+3, "hello" ++ "world")
(6,"helloworld") (6,"helloworld")
Since: base-4.7.0.0
Like trace
but returns the message instead of a third value.
>>>
traceId "hello"
"hello hello"
Since: base-4.7.0.0
putTraceMsg :: String -> IO () #
The traceIO
function outputs the trace message from the IO monad.
This sequences the output with respect to other IO actions.
Since: base-4.5.0.0
newtype MaybeT (m :: Type -> Type) a #
The parameterizable maybe monad, obtained by composing an arbitrary
monad with the Maybe
monad.
Computations are actions that may produce a value or exit.
The return
function yields a computation that produces that
value, while >>=
sequences two subcomputations, exiting if either
computation does.
Instances
compareRangeLength :: SrcSpan -> SrcSpan -> Ordering #
Compares two source spans based on their lengths. Can only used for NESTED spans.
getNodeContaining :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage, HasRange (Ann inner dom stage)) => RealSrcSpan -> Ann node dom stage -> Maybe (Ann inner dom stage) #
Get the shortest source range that contains the given
nodesWithRange :: (Biplate (Ann node dom stage) (Ann inner dom stage), SourceInfo stage) => RealSrcSpan -> Simple Traversal (Ann node dom stage) (Ann inner dom stage) #
Get the nodes that have exactly the given range
isContained :: HasRange (inner dom stage) => RealSrcSpan -> inner dom stage -> Bool #
Return true if the node contains a given range
nodesContained :: (HasRange (inner dom stage), Biplate (node dom stage) (inner dom stage)) => RealSrcSpan -> Simple Traversal (node dom stage) (inner dom stage) #
Get all nodes that are contained in a given source range
isInside :: HasRange (inner dom stage) => RealSrcSpan -> inner dom stage -> Bool #
Return true if the node contains a given range
nodesContaining :: (HasRange (inner dom stage), Biplate (node dom stage) (inner dom stage)) => RealSrcSpan -> Simple Traversal (node dom stage) (inner dom stage) #
Get all nodes that contain a given source range
semantics :: Simple Lens (Ann elem dom stage) (SemanticInfo dom elem) #
Access the semantic information of an AST node.
valBindPats :: Simple Traversal (Ann UValueBind dom stage) (Ann UPattern dom stage) #
typeParams :: Simple Traversal (Ann UType dom stage) (Ann UType dom stage) #
A reference to access type arguments to a type constructor call that may be universally qualified or parenthesized.
declHeadNames :: Simple Traversal (Ann UDeclHead dom stage) (Ann UQualifiedName dom stage) #
Accesses that name of a declaration through the declaration head.
bindingName :: Simple Traversal (Ann UValueBind dom stage) (Ann UQualifiedName dom stage) #
Accesses the name of a function or value binding
importIsHiding :: Ann UImportDecl dom stage -> Bool #
Does the import declaration import all elements that are not excluded explicitly?
importIsExact :: Ann UImportDecl dom stage -> Bool #
Does the import declaration import only the explicitly listed elements?
pattern AnnList :: forall (elem :: Type -> Type -> Type) dom stage. [Ann elem dom stage] -> AnnListG elem dom stage #
pattern AnnJust :: forall (elem :: Type -> Type -> Type) dom stage. Ann elem dom stage -> AnnMaybeG elem dom stage #
class NamedElement (elem :: Type -> Type -> Type) where #
A class to access the names of named elements. Have to locate where does the AST element store its name. The returned name will be the one that was marked isDefining.
Methods
elementName :: Simple Traversal (Ann elem dom st) (Ann UQualifiedName dom st) #
Instances
NamedElement UDecl | |
Defined in Language.Haskell.Tools.AST.Helpers Methods elementName :: Simple Traversal (Ann UDecl dom st) (Ann UQualifiedName dom st) # | |
NamedElement ULocalBind | |
Defined in Language.Haskell.Tools.AST.Helpers Methods elementName :: Simple Traversal (Ann ULocalBind dom st) (Ann UQualifiedName dom st) # |
stringNodeStr :: Lens (Ann UStringNode dom stage) (Ann UStringNode dom stage) String String #
unqualifiedName :: Lens (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) (Ann UNamePart dom stage) (Ann UNamePart dom stage) #
qualifiers :: Lens (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) (AnnListG UNamePart dom stage) (AnnListG UNamePart dom stage) #
simpleName :: Lens (Ann UName dom stage) (Ann UName dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) #
operatorName :: Lens (Ann UOperator dom stage) (Ann UOperator dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) #
promotedStringValue :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) String String #
promotedIntValue :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) Integer Integer #
promotedElements :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) (AnnListG t dom stage) (AnnListG t dom stage) #
promotedConName :: Partial (Ann (UPromoted t) dom stage) (Ann (UPromoted t) dom stage) (Ann UName dom stage) (Ann UName dom stage) #
bracketType :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UType dom stage) (Ann UType dom stage) #
bracketPattern :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
bracketExpr :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
bracketDecl :: Partial (Ann UBracket dom stage) (Ann UBracket dom stage) (AnnListG UDecl dom stage) (AnnListG UDecl dom stage) #
qqExprName :: Lens (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) (Ann UName dom stage) (Ann UName dom stage) #
qqExprBody :: Lens (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) (Ann QQString dom stage) (Ann QQString dom stage) #
spliceId :: Partial (Ann USplice dom stage) (Ann USplice dom stage) (Ann UName dom stage) (Ann UName dom stage) #
spliceExpr :: Partial (Ann USplice dom stage) (Ann USplice dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
fieldPatternWildcard :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UFieldWildcard dom stage) (Ann UFieldWildcard dom stage) #
fieldPatternName :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UName dom stage) (Ann UName dom stage) #
fieldPattern :: Partial (Ann UPatternField dom stage) (Ann UPatternField dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
patternType :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UType dom stage) (Ann UType dom stage) #
patternSumPlaceholdersBefore :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) #
patternSumPlaceholdersAfter :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) #
patternSplice :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann USplice dom stage) (Ann USplice dom stage) #
patternRhs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
patternOperator :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
patternName :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UName dom stage) (Ann UName dom stage) #
patternLiteral :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage) #
patternLit :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage) #
patternLhs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
patternInner :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
patternFields :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPatternField dom stage) (AnnListG UPatternField dom stage) #
patternExpr :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
patternElems :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage) #
patternArgs :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage) #
patQQ :: Partial (Ann UPattern dom stage) (Ann UPattern dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) #
cmdThen :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdStmts :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmdStmt dom stage) (AnnListG UCmdStmt dom stage) #
cmdRightCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdRhs :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
cmdOperator :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UName dom stage) (Ann UName dom stage) #
cmdLhs :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
cmdLeftCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdInnerCmds :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmd dom stage) (AnnListG UCmd dom stage) #
cmdInnerCmd :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdInner :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdExpr :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
cmdElse :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
cmdBinds :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage) #
cmdBindings :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage) #
cmdArrowOp :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UArrowAppl dom stage) (Ann UArrowAppl dom stage) #
cmdApplied :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
cmdAlts :: Partial (Ann UCmd dom stage) (Ann UCmd dom stage) (AnnListG UCmdAlt dom stage) (AnnListG UCmdAlt dom stage) #
compStmts :: Lens (Ann UListCompBody dom stage) (Ann UListCompBody dom stage) (AnnListG UCompStmt dom stage) (AnnListG UCompStmt dom stage) #
usingExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage) #
thenExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
compStmt :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (Ann UStmt dom stage) (Ann UStmt dom stage) #
byExpr :: Partial (Ann UCompStmt dom stage) (Ann UCompStmt dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage) #
stmtPattern :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
stmtExpr :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage) #
stmtBinds :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage) #
cmdStmtBinds :: Partial (Ann (UStmt' expr) dom stage) (Ann (UStmt' expr) dom stage) (AnnListG (UStmt' expr) dom stage) (AnnListG (UStmt' expr) dom stage) #
caseGuardStmts :: Lens (Ann (UGuardedCaseRhs' expr) dom stage) (Ann (UGuardedCaseRhs' expr) dom stage) (AnnListG URhsGuard dom stage) (AnnListG URhsGuard dom stage) #
caseGuardExpr :: Lens (Ann (UGuardedCaseRhs' expr) dom stage) (Ann (UGuardedCaseRhs' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage) #
rhsCaseGuards :: Partial (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (AnnListG (UGuardedCaseRhs' expr) dom stage) (AnnListG (UGuardedCaseRhs' expr) dom stage) #
rhsCaseExpr :: Partial (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (Ann expr dom stage) (Ann expr dom stage) #
pragmaStr :: Partial (Ann UExprPragma dom stage) (Ann UExprPragma dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage) #
pragmaSrcRange :: Partial (Ann UExprPragma dom stage) (Ann UExprPragma dom stage) (Ann USourceRange dom stage) (Ann USourceRange dom stage) #
tupSecExpr :: Partial (Ann UTupSecElem dom stage) (Ann UTupSecElem dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
fieldWildcard :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UFieldWildcard dom stage) (Ann UFieldWildcard dom stage) #
fieldValue :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
fieldUpdateName :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UName dom stage) (Ann UName dom stage) #
fieldName :: Partial (Ann UFieldUpdate dom stage) (Ann UFieldUpdate dom stage) (Ann UName dom stage) (Ann UName dom stage) #
altRhs :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) (Ann (UCaseRhs' expr) dom stage) #
altPattern :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
altBinds :: Lens (Ann (UAlt' expr) dom stage) (Ann (UAlt' expr) dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage) #
tupleSectionElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UTupSecElem dom stage) (AnnListG UTupSecElem dom stage) #
tupleElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UExpr dom stage) (AnnListG UExpr dom stage) #
quotedName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage) #
procPattern :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
procExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UCmd dom stage) (Ann UCmd dom stage) #
listElems :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UExpr dom stage) (AnnListG UExpr dom stage) #
innerExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprType :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UType dom stage) (Ann UType dom stage) #
exprThen :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprSumPlaceholdersBefore :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) #
exprSumPlaceholdersAfter :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) (AnnListG UUnboxedSumPlaceHolder dom stage) #
exprStmts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UStmt dom stage) (AnnListG UStmt dom stage) #
exprSplice :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann USplice dom stage) (Ann USplice dom stage) #
exprSig :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UType dom stage) (Ann UType dom stage) #
exprRhs :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprRecName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage) #
exprRecFields :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UFieldUpdate dom stage) (AnnListG UFieldUpdate dom stage) #
exprQQ :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) #
exprPragma :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExprPragma dom stage) (Ann UExprPragma dom stage) #
exprOperator :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
exprName :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UName dom stage) (Ann UName dom stage) #
exprLit :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann ULiteral dom stage) (Ann ULiteral dom stage) #
exprLhs :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprInner :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprIfAlts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UGuardedCaseRhs dom stage) (AnnListG UGuardedCaseRhs dom stage) #
exprFunBind :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage) #
exprFun :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprElse :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprCond :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprCase :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprBracket :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UBracket dom stage) (Ann UBracket dom stage) #
exprBindings :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage) #
exprArg :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
exprAlts :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UAlt dom stage) (AnnListG UAlt dom stage) #
enumToFix :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
enumTo :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage) #
enumThen :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnMaybeG UExpr dom stage) (AnnMaybeG UExpr dom stage) #
enumFrom :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
doKind :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UDoKind dom stage) (Ann UDoKind dom stage) #
compExpr :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
compBody :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (AnnListG UListCompBody dom stage) (AnnListG UListCompBody dom stage) #
arrowAppl :: Partial (Ann UExpr dom stage) (Ann UExpr dom stage) (Ann UArrowAppl dom stage) (Ann UArrowAppl dom stage) #
innerAsserts :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (AnnListG UAssertion dom stage) (AnnListG UAssertion dom stage) #
assertTypes :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage) #
assertRhs :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage) #
assertOp :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
assertLhs :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage) #
assertImplVar :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UName dom stage) (Ann UName dom stage) #
assertImplType :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UType dom stage) (Ann UType dom stage) #
assertClsName :: Partial (Ann UAssertion dom stage) (Ann UAssertion dom stage) (Ann UName dom stage) (Ann UName dom stage) #
contextAssertion :: Lens (Ann UContext dom stage) (Ann UContext dom stage) (Ann UAssertion dom stage) (Ann UAssertion dom stage) #
kindVar :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UName dom stage) (Ann UName dom stage) #
kindType :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UType dom stage) (Ann UType dom stage) #
kindRight :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindRhs :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindPromoted :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann (UPromoted UKind) dom stage) (Ann (UPromoted UKind) dom stage) #
kindParen :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindLhs :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindLeft :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindElems :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (AnnListG UKind dom stage) (AnnListG UKind dom stage) #
kindElem :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindAppOp :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
kindAppFun :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
kindAppArg :: Partial (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
typeWildcardName :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UName dom stage) (Ann UName dom stage) #
typeType :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeRight :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeResult :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeQQ :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UQuasiQuote dom stage) (Ann UQuasiQuote dom stage) #
typeParam :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeOperator :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
typeName :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UName dom stage) (Ann UName dom stage) #
typeLeft :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeKind :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
typeInner :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeElements :: Partial (Ann UType dom stage) (Ann UType dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage) #
typeElement :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeCtx :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UContext dom stage) (Ann UContext dom stage) #
typeCon :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
typeBounded :: Partial (Ann UType dom stage) (Ann UType dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage) #
typeArg :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
tsSplice :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann USplice dom stage) (Ann USplice dom stage) #
tpPromoted :: Partial (Ann UType dom stage) (Ann UType dom stage) (Ann (UPromoted UType) dom stage) (Ann (UPromoted UType) dom stage) #
tyVarName :: Lens (Ann UTyVar dom stage) (Ann UTyVar dom stage) (Ann UName dom stage) (Ann UName dom stage) #
tyVarKind :: Lens (Ann UTyVar dom stage) (Ann UTyVar dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage) #
valBindRhs :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (Ann URhs dom stage) (Ann URhs dom stage) #
valBindPat :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
valBindLocals :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage) #
funBindMatches :: Partial (Ann UValueBind dom stage) (Ann UValueBind dom stage) (AnnListG UMatch dom stage) (AnnListG UMatch dom stage) #
kindConstr :: Lens (Ann UKindConstraint dom stage) (Ann UKindConstraint dom stage) (Ann UKind dom stage) (Ann UKind dom stage) #
matchLhsRhs :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
matchLhsOperator :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
matchLhsName :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UName dom stage) (Ann UName dom stage) #
matchLhsLhs :: Partial (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
matchLhsArgs :: Lens (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) (AnnListG UPattern dom stage) (AnnListG UPattern dom stage) #
tsType :: Lens (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) (Ann UType dom stage) (Ann UType dom stage) #
tsName :: Lens (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
precedenceValue :: Lens (Ann Precedence dom stage) (Ann Precedence dom stage) Int Int #
fixityPrecedence :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (AnnMaybeG Precedence dom stage) (AnnMaybeG Precedence dom stage) #
fixityOperators :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (AnnListG UOperator dom stage) (AnnListG UOperator dom stage) #
fixityAssoc :: Lens (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) (Ann Assoc dom stage) (Ann Assoc dom stage) #
localBinds :: Lens (Ann ULocalBinds dom stage) (Ann ULocalBinds dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage) #
localVal :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage) #
localSig :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) #
localInline :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage) #
localFixity :: Partial (Ann ULocalBind dom stage) (Ann ULocalBind dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) #
guardRhs :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
guardPat :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
guardCheck :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
guardBinds :: Partial (Ann URhsGuard dom stage) (Ann URhsGuard dom stage) (AnnListG ULocalBind dom stage) (AnnListG ULocalBind dom stage) #
guardStmts :: Lens (Ann UGuardedRhs dom stage) (Ann UGuardedRhs dom stage) (AnnListG URhsGuard dom stage) (AnnListG URhsGuard dom stage) #
guardExpr :: Lens (Ann UGuardedRhs dom stage) (Ann UGuardedRhs dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
rhsGuards :: Partial (Ann URhs dom stage) (Ann URhs dom stage) (AnnListG UGuardedRhs dom stage) (AnnListG UGuardedRhs dom stage) #
rhsExpr :: Partial (Ann URhs dom stage) (Ann URhs dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
matchRhs :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (Ann URhs dom stage) (Ann URhs dom stage) #
matchLhs :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (Ann UMatchLhs dom stage) (Ann UMatchLhs dom stage) #
matchBinds :: Lens (Ann UMatch dom stage) (Ann UMatch dom stage) (AnnMaybeG ULocalBinds dom stage) (AnnMaybeG ULocalBinds dom stage) #
specializeType :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage) #
specializeDef :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (Ann UName dom stage) (Ann UName dom stage) #
pragmaPhase :: Lens (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) (AnnMaybeG UPhaseControl dom stage) (AnnMaybeG UPhaseControl dom stage) #
srToLine :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage) #
srToCol :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage) #
srFromLine :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage) #
srFromCol :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann Number dom stage) (Ann Number dom stage) #
srFileName :: Lens (Ann USourceRange dom stage) (Ann USourceRange dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage) #
minimalOrs :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) #
minimalName :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UName dom stage) (Ann UName dom stage) #
minimalInner :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) #
minimalAnds :: Partial (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) (AnnListG UMinimalFormula dom stage) #
annotateName :: Partial (Ann UAnnotationSubject dom stage) (Ann UAnnotationSubject dom stage) (Ann UName dom stage) (Ann UName dom stage) #
warnMessage :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage) #
specializePragma :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) #
pragmaSignature :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnMaybeG UName dom stage) (AnnMaybeG UName dom stage) #
pragmaRule :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG URule dom stage) (AnnListG URule dom stage) #
pragmaObjects :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
pragmaLineNum :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann LineNumber dom stage) (Ann LineNumber dom stage) #
pragmaInline :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage) #
pragmaFileName :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnMaybeG UStringNode dom stage) (AnnMaybeG UStringNode dom stage) #
deprMessage :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage) #
annotationSubject :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UAnnotationSubject dom stage) (Ann UAnnotationSubject dom stage) #
annotateExpr :: Partial (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
phaseNum :: Lens (Ann PhaseNumber dom stage) (Ann PhaseNumber dom stage) Integer Integer #
phaseUntil :: Lens (Ann UPhaseControl dom stage) (Ann UPhaseControl dom stage) (AnnMaybeG PhaseInvert dom stage) (AnnMaybeG PhaseInvert dom stage) #
phaseNumber :: Lens (Ann UPhaseControl dom stage) (Ann UPhaseControl dom stage) (AnnMaybeG PhaseNumber dom stage) (AnnMaybeG PhaseNumber dom stage) #
ruleVarType :: Partial (Ann URuleVar dom stage) (Ann URuleVar dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ruleVarName :: Lens (Ann URuleVar dom stage) (Ann URuleVar dom stage) (Ann UName dom stage) (Ann UName dom stage) #
ruleRhs :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
rulePhase :: Lens (Ann URule dom stage) (Ann URule dom stage) (AnnMaybeG UPhaseControl dom stage) (AnnMaybeG UPhaseControl dom stage) #
ruleName :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage) #
ruleLhs :: Lens (Ann URule dom stage) (Ann URule dom stage) (Ann UExpr dom stage) (Ann UExpr dom stage) #
ruleBounded :: Lens (Ann URule dom stage) (Ann URule dom stage) (AnnListG URuleVar dom stage) (AnnListG URuleVar dom stage) #
teRhs :: Lens (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage) (Ann UType dom stage) (Ann UType dom stage) #
teLhs :: Lens (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ihType :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ihOperator :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
ihLeftOp :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ihHead :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) #
ihFun :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) #
ihConName :: Partial (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) (Ann UName dom stage) (Ann UName dom stage) #
irVars :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (AnnMaybeG (AnnListG UTyVar) dom stage) (AnnMaybeG (AnnListG UTyVar) dom stage) #
irHead :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) #
irCtx :: Lens (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage) #
oneDerived :: Partial (Ann UDeriving dom stage) (Ann UDeriving dom stage) (Ann UInstanceHead dom stage) (Ann UInstanceHead dom stage) #
allDerived :: Partial (Ann UDeriving dom stage) (Ann UDeriving dom stage) (AnnListG UInstanceHead dom stage) (AnnListG UInstanceHead dom stage) #
deriveStrategy :: Lens (Ann UDeriving dom stage) (Ann UDeriving dom stage) (AnnMaybeG UDeriveStrategy dom stage) (AnnMaybeG UDeriveStrategy dom stage) #
fieldType :: Lens (Ann UFieldDecl dom stage) (Ann UFieldDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
fieldNames :: Lens (Ann UFieldDecl dom stage) (Ann UFieldDecl dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
conDeclRhs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
conDeclOp :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
conDeclName :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UName dom stage) (Ann UName dom stage) #
conDeclLhs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
conDeclFields :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UFieldDecl dom stage) (AnnListG UFieldDecl dom stage) #
conDeclArgs :: Partial (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage) #
conTypeCtx :: Lens (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage) #
conTypeArgs :: Lens (Ann UConDecl dom stage) (Ann UConDecl dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage) #
funDepRhs :: Lens (Ann UFunDep dom stage) (Ann UFunDep dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
funDepLhs :: Lens (Ann UFunDep dom stage) (Ann UFunDep dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
funDeps :: Lens (Ann UFunDeps dom stage) (Ann UFunDeps dom stage) (AnnListG UFunDep dom stage) (AnnListG UFunDep dom stage) #
patSigType :: Lens (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage) (Ann UType dom stage) (Ann UType dom stage) #
patSigName :: Lens (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
patOpposite :: Lens (Ann UPatSynWhere dom stage) (Ann UPatSynWhere dom stage) (AnnListG UMatch dom stage) (AnnListG UMatch dom stage) #
patSynRhs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage) #
patSynOp :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
patSynLhs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage) #
patName :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (Ann UName dom stage) (Ann UName dom stage) #
patArgs :: Partial (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
patRhsOpposite :: Partial (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage) (AnnMaybeG UPatSynWhere dom stage) (AnnMaybeG UPatSynWhere dom stage) #
patRhsPat :: Lens (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage) (Ann UPattern dom stage) (Ann UPattern dom stage) #
patRhs :: Lens (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage) (Ann UPatSynRhs dom stage) (Ann UPatSynRhs dom stage) #
patLhs :: Lens (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage) (Ann UPatSynLhs dom stage) (Ann UPatSynLhs dom stage) #
gadtConResultType :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
gadtConRecordFields :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (AnnListG UFieldDecl dom stage) (AnnListG UFieldDecl dom stage) #
gadtConNormalType :: Partial (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) (Ann UType dom stage) (Ann UType dom stage) #
gadtConTypeCtx :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage) #
gadtConTypeArgs :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnListG UTyVar dom stage) (AnnListG UTyVar dom stage) #
gadtConType :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (Ann UGadtConType dom stage) (Ann UGadtConType dom stage) #
gadtConNames :: Lens (Ann UGadtConDecl dom stage) (Ann UGadtConDecl dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
injAnnRes :: Lens (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage) #
injAnnDeps :: Lens (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
tfTypeVar :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage) #
tfSpecKind :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UKindConstraint dom stage) (Ann UKindConstraint dom stage) #
tfInjectivity :: Partial (Ann UTypeFamilySpec dom stage) (Ann UTypeFamilySpec dom stage) (Ann UInjectivityAnn dom stage) (Ann UInjectivityAnn dom stage) #
tfSpec :: Partial (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (AnnMaybeG UTypeFamilySpec dom stage) (AnnMaybeG UTypeFamilySpec dom stage) #
tfKind :: Partial (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage) #
tfHead :: Lens (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) #
specializeInstanceType :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
specializeInstance :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann USpecializePragma dom stage) (Ann USpecializePragma dom stage) #
instanceInline :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage) #
instBodyTypeSig :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) #
instBodyTypeEqn :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UTypeEqn dom stage) (Ann UTypeEqn dom stage) #
instBodyLhsType :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) #
instBodyGadtCons :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UGadtConDecl dom stage) (AnnListG UGadtConDecl dom stage) #
instBodyDerivings :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UDeriving dom stage) (AnnListG UDeriving dom stage) #
instBodyDeclFunbind :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage) #
instBodyDataNew :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (Ann UDataOrNewtypeKeyword dom stage) (Ann UDataOrNewtypeKeyword dom stage) #
instBodyDataKind :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage) #
instBodyDataCons :: Partial (Ann UInstBodyDecl dom stage) (Ann UInstBodyDecl dom stage) (AnnListG UConDecl dom stage) (AnnListG UConDecl dom stage) #
instBodyDecls :: Lens (Ann UInstBody dom stage) (Ann UInstBody dom stage) (AnnListG UInstBodyDecl dom stage) (AnnListG UInstBodyDecl dom stage) #
dhRight :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage) #
dhOperator :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UOperator dom stage) (Ann UOperator dom stage) #
dhName :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UName dom stage) (Ann UName dom stage) #
dhLeft :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage) #
dhBody :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) #
dhAppOperand :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UTyVar dom stage) (Ann UTyVar dom stage) #
dhAppFun :: Partial (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) #
pragmaFormula :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UMinimalFormula dom stage) (Ann UMinimalFormula dom stage) #
clsInline :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UInlinePragma dom stage) (Ann UInlinePragma dom stage) #
clsFixity :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) #
ceTypeSig :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) #
ceTypeFam :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) #
ceType :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ceName :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UName dom stage) (Ann UName dom stage) #
ceKind :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UType dom stage) (Ann UType dom stage) #
ceHead :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) #
ceBind :: Partial (Ann UClassElement dom stage) (Ann UClassElement dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage) #
cbElements :: Lens (Ann UClassBody dom stage) (Ann UClassBody dom stage) (AnnListG UClassElement dom stage) (AnnListG UClassElement dom stage) #
declValBind :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UValueBind dom stage) (Ann UValueBind dom stage) #
declTypes :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UType dom stage) (AnnListG UType dom stage) #
declTypeSig :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTypeSignature dom stage) (Ann UTypeSignature dom stage) #
declTypeFamily :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTypeFamily dom stage) (Ann UTypeFamily dom stage) #
declType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
declSplice :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann USplice dom stage) (Ann USplice dom stage) #
declSpec :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UTypeFamilySpec dom stage) (AnnMaybeG UTypeFamilySpec dom stage) #
declSafety :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG USafety dom stage) (AnnMaybeG USafety dom stage) #
declRoles :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG URole dom stage) (AnnListG URole dom stage) #
declRoleType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UQualifiedName dom stage) (Ann UQualifiedName dom stage) #
declPragma :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UTopLevelPragma dom stage) (Ann UTopLevelPragma dom stage) #
declPatTypeSig :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UPatternTypeSignature dom stage) (Ann UPatternTypeSignature dom stage) #
declPatSyn :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UPatternSynonym dom stage) (Ann UPatternSynonym dom stage) #
declOverlap :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UOverlapPragma dom stage) (AnnMaybeG UOverlapPragma dom stage) #
declNewtype :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UDataOrNewtypeKeyword dom stage) (Ann UDataOrNewtypeKeyword dom stage) #
declName :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UName dom stage) (Ann UName dom stage) #
declKind :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UKindConstraint dom stage) (AnnMaybeG UKindConstraint dom stage) #
declInstance :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) #
declInstRule :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UInstanceRule dom stage) (Ann UInstanceRule dom stage) #
declInstDecl :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UInstBody dom stage) (AnnMaybeG UInstBody dom stage) #
declHead :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UDeclHead dom stage) (Ann UDeclHead dom stage) #
declGadt :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UGadtConDecl dom stage) (AnnListG UGadtConDecl dom stage) #
declFunDeps :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UFunDeps dom stage) (AnnMaybeG UFunDeps dom stage) #
declForeignType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
declFixity :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UFixitySignature dom stage) (Ann UFixitySignature dom stage) #
declDeriving :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UDeriving dom stage) (AnnListG UDeriving dom stage) #
declDerivStrat :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UDeriveStrategy dom stage) (AnnMaybeG UDeriveStrategy dom stage) #
declDecl :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UTypeEqn dom stage) (AnnListG UTypeEqn dom stage) #
declCtx :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UContext dom stage) (AnnMaybeG UContext dom stage) #
declCons :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnListG UConDecl dom stage) (AnnListG UConDecl dom stage) #
declCallConv :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UCallConv dom stage) (Ann UCallConv dom stage) #
declBody :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (AnnMaybeG UClassBody dom stage) (AnnMaybeG UClassBody dom stage) #
declAssignedType :: Partial (Ann UDecl dom stage) (Ann UDecl dom stage) (Ann UType dom stage) (Ann UType dom stage) #
langExt :: Lens (Ann ULanguageExtension dom stage) (Ann ULanguageExtension dom stage) String String #
moduleNameString :: Lens (Ann UModuleName dom stage) (Ann UModuleName dom stage) String String #
importRename :: Lens (Ann UImportRenaming dom stage) (Ann UImportRenaming dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage) #
importSpecList :: Partial (Ann UImportSpec dom stage) (Ann UImportSpec dom stage) (AnnListG UIESpec dom stage) (AnnListG UIESpec dom stage) #
importSpecHiding :: Partial (Ann UImportSpec dom stage) (Ann UImportSpec dom stage) (AnnListG UIESpec dom stage) (AnnListG UIESpec dom stage) #
importSpec :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSpec dom stage) (AnnMaybeG UImportSpec dom stage) #
importSource :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSource dom stage) (AnnMaybeG UImportSource dom stage) #
importSafe :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportSafe dom stage) (AnnMaybeG UImportSafe dom stage) #
importQualified :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportQualified dom stage) (AnnMaybeG UImportQualified dom stage) #
importPkg :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UStringNode dom stage) (AnnMaybeG UStringNode dom stage) #
importModule :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage) #
importAs :: Lens (Ann UImportDecl dom stage) (Ann UImportDecl dom stage) (AnnMaybeG UImportRenaming dom stage) (AnnMaybeG UImportRenaming dom stage) #
opStr :: Partial (Ann UFilePragma dom stage) (Ann UFilePragma dom stage) (Ann UStringNode dom stage) (Ann UStringNode dom stage) #
lpPragmas :: Partial (Ann UFilePragma dom stage) (Ann UFilePragma dom stage) (AnnListG ULanguageExtension dom stage) (AnnListG ULanguageExtension dom stage) #
modWarningStr :: Partial (Ann UModulePragma dom stage) (Ann UModulePragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage) #
modDeprecatedPragma :: Partial (Ann UModulePragma dom stage) (Ann UModulePragma dom stage) (AnnListG UStringNode dom stage) (AnnListG UStringNode dom stage) #
essList :: Partial (Ann USubSpec dom stage) (Ann USubSpec dom stage) (AnnListG UName dom stage) (AnnListG UName dom stage) #
ieSubspec :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (AnnMaybeG USubSpec dom stage) (AnnMaybeG USubSpec dom stage) #
ieName :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (Ann UName dom stage) (Ann UName dom stage) #
ieModifier :: Lens (Ann UIESpec dom stage) (Ann UIESpec dom stage) (AnnMaybeG UImportModifier dom stage) (AnnMaybeG UImportModifier dom stage) #
exportModuleName :: Partial (Ann UExportSpec dom stage) (Ann UExportSpec dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage) #
exportDecl :: Partial (Ann UExportSpec dom stage) (Ann UExportSpec dom stage) (Ann UIESpec dom stage) (Ann UIESpec dom stage) #
espExports :: Lens (Ann UExportSpecs dom stage) (Ann UExportSpecs dom stage) (AnnListG UExportSpec dom stage) (AnnListG UExportSpec dom stage) #
mhPragma :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (AnnMaybeG UModulePragma dom stage) (AnnMaybeG UModulePragma dom stage) #
mhName :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (Ann UModuleName dom stage) (Ann UModuleName dom stage) #
mhExports :: Lens (Ann UModuleHead dom stage) (Ann UModuleHead dom stage) (AnnMaybeG UExportSpecs dom stage) (AnnMaybeG UExportSpecs dom stage) #
modImports :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UImportDecl dom stage) (AnnListG UImportDecl dom stage) #
modHead :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnMaybeG UModuleHead dom stage) (AnnMaybeG UModuleHead dom stage) #
modDecl :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UDecl dom stage) (AnnListG UDecl dom stage) #
filePragmas :: Lens (Ann UModule dom stage) (Ann UModule dom stage) (AnnListG UFilePragma dom stage) (AnnListG UFilePragma dom stage) #
type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName)) #
Domains that have semantic information for names
class HasNameInfo' si where #
Infos that may have a name that can be extracted
Methods
semanticsName :: si -> Maybe Name #
Instances
type HasLiteralInfo dom = (Domain dom, HasLiteralInfo' (SemanticInfo dom ULiteral)) #
Domains that have semantic information for literals
class HasLiteralInfo' si where #
Info of types
Methods
semanticsLiteralType :: si -> Type #
Instances
HasLiteralInfo' LiteralInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsLiteralType :: LiteralInfo -> Type # | |
HasLiteralInfo dom => HasLiteralInfo' (Ann ULiteral dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsLiteralType :: Ann ULiteral dom st -> Type # |
type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName)) #
class HasNameInfo' si => HasIdInfo' si where #
Infos that may have a typed name that can be extracted
Methods
semanticsId :: si -> Id #
Instances
HasIdInfo' CNameInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsId :: CNameInfo -> Id # | |
HasIdInfo dom => HasIdInfo' (Ann UName dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsId :: Ann UName dom st -> Id # | |
HasIdInfo dom => HasIdInfo' (Ann UQualifiedName dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsId :: Ann UQualifiedName dom st -> Id # |
type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName)) #
class HasFixityInfo' si where #
Infos that may have a fixity information
Methods
semanticsFixity :: si -> Maybe Fixity #
Instances
HasFixityInfo' CNameInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsFixity :: CNameInfo -> Maybe Fixity # | |
HasFixityInfo dom => HasFixityInfo' (Ann UQualifiedName dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsFixity :: Ann UQualifiedName dom st -> Maybe Fixity # |
type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr)) #
class HasScopeInfo' si where #
Infos that contain the names that are available in theirs scope
Methods
semanticsScope :: si -> Scope #
Instances
HasScopeInfo' ScopeInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsScope :: ScopeInfo -> Scope # | |
HasScopeInfo' CNameInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsScope :: CNameInfo -> Scope # | |
HasScopeInfo' (NameInfo n) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsScope :: NameInfo n -> Scope # | |
HasScopeInfo dom => HasScopeInfo' (Ann UQualifiedName dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsScope :: Ann UQualifiedName dom st -> Scope # | |
HasScopeInfo dom => HasScopeInfo' (Ann UExpr dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsScope :: Ann UExpr dom st -> Scope # |
type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName)) #
class HasDefiningInfo' si where #
Infos that store if they were used to define a name
Methods
semanticsDefining :: si -> Bool #
Instances
HasDefiningInfo' CNameInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsDefining :: CNameInfo -> Bool # | |
HasDefiningInfo' (NameInfo n) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsDefining :: NameInfo n -> Bool # | |
HasDefiningInfo dom => HasDefiningInfo' (Ann UQualifiedName dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsDefining :: Ann UQualifiedName dom st -> Bool # |
class HasSourceInfoInSema' si where #
Methods
semanticsSourceInfo :: si -> Maybe SrcSpan #
Instances
HasSourceInfoInSema' (NameInfo n) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsSourceInfo :: NameInfo n -> Maybe SrcSpan # |
type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule)) #
class HasModuleInfo' si where #
Methods
semanticsModule :: si -> Module #
semanticsDynFlags :: si -> DynFlags #
isBootModule :: si -> Bool #
semanticsImplicitImports :: si -> [Name] #
semanticsPrelTransMods :: si -> [Module] #
Instances
type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl)) #
class HasImportInfo' si where #
Methods
semanticsImportedModule :: si -> Module #
semanticsAvailable :: si -> [Name] #
semanticsImported :: si -> [Name] #
semanticsTransMods :: si -> [Module] #
Instances
HasImportInfo' (ImportInfo GhcRn) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsImportedModule :: ImportInfo GhcRn -> Module # semanticsAvailable :: ImportInfo GhcRn -> [Name] # semanticsImported :: ImportInfo GhcRn -> [Name] # semanticsTransMods :: ImportInfo GhcRn -> [Module] # | |
HasImportInfo' (ImportInfo GhcTc) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsImportedModule :: ImportInfo GhcTc -> Module # semanticsAvailable :: ImportInfo GhcTc -> [Name] # semanticsImported :: ImportInfo GhcTc -> [Name] # semanticsTransMods :: ImportInfo GhcTc -> [Module] # | |
HasImportInfo dom => HasImportInfo' (Ann UImportDecl dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsImportedModule :: Ann UImportDecl dom st -> Module # semanticsAvailable :: Ann UImportDecl dom st -> [Name] # semanticsImported :: Ann UImportDecl dom st -> [Name] # semanticsTransMods :: Ann UImportDecl dom st -> [Module] # |
type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom UFieldWildcard)) #
class HasImplicitFieldsInfo' si where #
Methods
semanticsImplicitFlds :: si -> [(Name, Name)] #
Instances
HasImplicitFieldsInfo' ImplicitFieldInfo | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsImplicitFlds :: ImplicitFieldInfo -> [(Name, Name)] # | |
HasImplicitFieldsInfo dom => HasImplicitFieldsInfo' (Ann UFieldWildcard dom st) | |
Defined in Language.Haskell.Tools.AST.SemaInfoClasses Methods semanticsImplicitFlds :: Ann UFieldWildcard dom st -> [(Name, Name)] # |
type HasNoSemanticInfo dom (si :: Type -> Type -> Type) = SemanticInfo dom si ~ NoSemanticInfo #
getInstances :: GhcMonad m => [Module] -> m ([ClsInst], [FamInst]) #
Gets the class and family instances from a module.
Constructors
UsageSpec | |
Fields
|
Instances
Data UsageSpec | |
Defined in Language.Haskell.Tools.AST.SemaInfoTypes Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UsageSpec -> c UsageSpec # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UsageSpec # toConstr :: UsageSpec -> Constr # dataTypeOf :: UsageSpec -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UsageSpec) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UsageSpec) # gmapT :: (forall b. Data b => b -> b) -> UsageSpec -> UsageSpec # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UsageSpec -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UsageSpec -> r # gmapQ :: (forall d. Data d => d -> u) -> UsageSpec -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UsageSpec -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UsageSpec -> m UsageSpec # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UsageSpec -> m UsageSpec # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UsageSpec -> m UsageSpec # |
after :: AfterBefore i => String -> i -> i #
Put the given string before the element if it is not empty
followedBy :: AfterBefore i => String -> i -> i #
The given string should follow the element if it is not empty
relativeIndented :: RelativeIndent i => Int -> i -> i #
The element should be indented relatively to its parent
minimumIndented :: MinimumIndent i => Int -> i -> i #
The elements should be indented at least to the given number of spaces
fixMainRange :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom RangeStage #
prepareASTCpp :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom SrcTemplateStage #
prepareAST :: StringBuffer -> Ann UModule dom RangeStage -> Ann UModule dom SrcTemplateStage #
Prepares the AST for pretty printing
indented :: ListInfo SrcTemplateStage -> ListInfo SrcTemplateStage #
The elements of the list should be indented on the same column
separatedBy :: String -> ListInfo SrcTemplateStage -> ListInfo SrcTemplateStage #
The elements of the list should be separated by the given string by default (might be overridden)
extractStayingElems :: SourceInfoTraversal node => Ann node dom SrcTemplateStage -> Ann node dom SrcTemplateStage #
Marks template elements in the AST that should always be present in the source code, regardless of their containing elements being deleted. Currently it recognizes CPP pragmas (lines starting with #) This function should only be applied to an AST if CPP is enabled.
mapLocIndices :: Ord k => StringBuffer -> Set (RealSrcLoc, k) -> Map k String #
Partitions the source file in the order where the parts are used in the AST
getLocIndices :: SourceInfoTraversal e => Ann e dom RngTemplateStage -> Set (RealSrcLoc, Int) #
Assigns an index (in the order they are used) for each range
rangeToSource :: SourceInfoTraversal node => StringBuffer -> Ann node dom RngTemplateStage -> Ann node dom SrcTemplateStage #
sourceTemplateTextElem :: Partial SourceTemplateElem SourceTemplateElem [SourceTemplateTextElem] [SourceTemplateTextElem] #
srcTmpOptMinimalIndent :: Simple Lens (OptionalInfo SrcTemplateStage) Int #
srcTmpOptAfter :: Simple Lens (OptionalInfo SrcTemplateStage) String #
srcTmpOptBefore :: Simple Lens (OptionalInfo SrcTemplateStage) String #
sourceTemplateOptRange :: Simple Lens (OptionalInfo SrcTemplateStage) SrcSpan #
srcTmpListMinimalIndent :: Simple Lens (ListInfo SrcTemplateStage) Int #
srcTmpSeparators :: Simple Lens (ListInfo SrcTemplateStage) [([SourceTemplateTextElem], SrcSpan)] #
srcTmpIndented :: Simple Lens (ListInfo SrcTemplateStage) (Maybe [Bool]) #
srcTmpDefaultSeparator :: Simple Lens (ListInfo SrcTemplateStage) String #
srcTmpListAfter :: Simple Lens (ListInfo SrcTemplateStage) String #
srcTmpListBefore :: Simple Lens (ListInfo SrcTemplateStage) String #
sourceTemplateListRange :: Simple Lens (ListInfo SrcTemplateStage) SrcSpan #
sourceTemplateMinimalIndent :: Simple Lens (SpanInfo SrcTemplateStage) Int #
sourceTemplateNodeElems :: Simple Lens (SpanInfo SrcTemplateStage) [SourceTemplateElem] #
sourceTemplateNodeRange :: Simple Lens (SpanInfo SrcTemplateStage) SrcSpan #
data SourceTemplateElem #
An element of a source template for a singleton AST node.
Constructors
TextElem | Source text belonging to the current node |
ChildElem | Placeholder for the next children of the node |
Instances
data SourceTemplateTextElem #
Constructors
NormalText | |
Fields | |
StayingText | |
Fields |
Instances
fixRanges :: SourceInfoTraversal node => Ann node dom RangeStage -> Ann node dom NormRangeStage #
Modifies ranges to contain their children
cutUpRanges :: SourceInfoTraversal node => Ann node dom NormRangeStage -> Ann node dom RngTemplateStage #
Creates a source template from the ranges and the input file. All source ranges must be good ranges.
data BreakUpProblem #
Constructors
BreakUpProblem | |
Fields
|
Instances
Show BreakUpProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeToRangeTemplate Methods showsPrec :: Int -> BreakUpProblem -> ShowS # show :: BreakUpProblem -> String # showList :: [BreakUpProblem] -> ShowS # | |
Exception BreakUpProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeToRangeTemplate Methods toException :: BreakUpProblem -> SomeException # |
data TransformationProblem #
Constructors
TransformationProblem String |
Instances
Show TransformationProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeTemplate Methods showsPrec :: Int -> TransformationProblem -> ShowS # show :: TransformationProblem -> String # showList :: [TransformationProblem] -> ShowS # | |
Exception TransformationProblem | |
placeComments :: RangeInfo stage => Map ApiAnnKey [SrcSpan] -> Map SrcSpan [Located AnnotationComment] -> Ann UModule dom stage -> Ann UModule dom stage #
Puts comments in the nodes they should be attached to. Watches for lexical tokens that may divide the comment and the supposed element. Leaves the AST in a state where parent nodes does not contain all of their children.
getPragmaComments :: Map SrcSpan [Located AnnotationComment] -> Map String [Located String] #
getNormalComments :: Map SrcSpan [Located AnnotationComment] -> Map SrcSpan [Located AnnotationComment] #
pattern ForallType :: TyVarList -> Type -> Type #
Forall types ( forall x y . type
)
pattern FunctionType :: Type -> Type -> Type #
Function types ( a -> b
)
pattern UnboxedTupleType :: TypeList -> Type #
Unboxed tuple types ( (#a,b#)
)
pattern ParArrayType :: Type -> Type #
Parallel array type ( [:a:]
)
pattern KindedType :: Type -> Kind -> Type #
Type with explicit kind signature ( a :: *
)
pattern LazyType :: Type -> Type #
Lazy type marked with ~
. (Should only be used if Strict
or StrictData
language extension is used)
pattern UnpackType :: Type -> Type #
Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
pattern NoUnpackType :: Type -> Type #
Strict type marked with NOUNPACK pragma. (Usually contains the bang mark.)
pattern WildcardType :: Type #
A wildcard type ( _
) with -XPartialTypeSignatures
pattern NamedWildcardType :: Name -> Type #
A named wildcard type ( _t
) with -XPartialTypeSignatures
pattern SpliceType :: Splice -> Type #
A Template Haskell splice type ( $(genType)
).
pattern QuasiQuoteType :: QuasiQuote -> Type #
A Template Haskell splice type ( $(genType)
).
pattern PromotedIntType :: Integer -> Type #
Numeric value promoted to the type level.
pattern PromotedStringType :: String -> Type #
String value promoted to the type level.
pattern PromotedConType :: Name -> Type #
A data constructor value promoted to the type level.
pattern PromotedListType :: TypeList -> Type #
A list of elements as a type.
pattern PromotedTupleType :: TypeList -> Type #
A tuple of elements as a type.
pattern PromotedUnitType :: Type #
Kind of the unit value ()
.
pattern UnboxedSumType :: TypeList -> Type #
An unboxed sum type.
pattern KindedTyVarDecl :: Name -> Kind -> TyVar #
Kinded type variable declaration ( v :: *
)
pattern ClassAssert :: Name -> TypeList -> Assertion #
Class assertion (Cls x
)
pattern InfixAssert :: Type -> Operator -> Type -> Assertion #
Infix class assertion, also contains type equations ( a ~ X y
)
pattern ImplicitAssert :: Name -> Type -> Assertion #
Assertion for implicit parameter binding ( ?cmp :: a -> a -> Bool
)
pattern TupleAssert :: [Assertion] -> Assertion #
A list of assertions ( (Eq a, Show a)
)
pattern ParenSplice :: Expr -> Splice #
A splice with parentheses: $(generate input)
pattern QuasiQuote :: Name -> String -> QuasiQuote #
Template haskell quasi-quotation: [quoter|str]
pattern ExprBracket :: Expr -> Bracket #
Expression bracket ( [| x + y |]
)
pattern PatternBracket :: Pattern -> Bracket #
Pattern bracket ( [p| Point x y |]
)
pattern TypeBracket :: Type -> Bracket #
Type bracket ( [t| (Int,Int) |]
)
pattern DeclsBracket :: DeclList -> Bracket #
Declaration bracket ( [d| f :: Int -> Int; f x = x*x |]
)
pattern Lambda :: PatternList -> Expr -> Expr #
Lambda expression ( \a b -> a + b
)
pattern Let :: LocalBindList -> Expr -> Expr #
Local binding ( let x = 2; y = 3 in e x y
)
pattern MultiIf :: GuardedCaseRhsList -> Expr #
Multi way if expressions with MultiWayIf
extension ( if | guard1 -> expr1; guard2 -> expr2
)
pattern Case :: Expr -> AltList -> Expr #
Pattern matching expression ( case expr of pat1 -> expr1; pat2 -> expr2
)
pattern ParArrayComp :: Expr -> ListCompBodyList -> Expr #
pattern UnboxedTuple :: ExprList -> Expr #
Unboxed tuple expression ( (# e1, e2, e3 #)
)
pattern TupleSection :: TupSecElemList -> Expr #
Tuple section, enabled with TupleSections
( (a,,b)
). One of the elements must be missing.
pattern UnboxedTupleSection :: TupSecElemList -> Expr #
pattern LeftSection :: Expr -> Operator -> Expr #
Left operator section: (1+)
pattern RightSection :: Operator -> Expr -> Expr #
Right operator section: (+1)
pattern RecCon :: Name -> FieldUpdateList -> Expr #
Record value construction: Point { x = 3, y = -2 }
pattern RecUpdate :: Expr -> FieldUpdateList -> Expr #
Record value update: p1 { x = 3, y = -2 }
pattern ParArrayEnum :: Expr -> MaybeExpr -> Expr -> Expr #
Parallel array enumeration ( [: 1,3 .. 10 :]
)
pattern ListComp :: Expr -> ListCompBodyList -> Expr #
List comprehension ( [ (x, y) | x <- xs | y <- ys ]
)
pattern ParArrayListComp :: Expr -> ListCompBodyList -> Expr #
Parallel array comprehensions [: (x, y) | x <- xs , y <- ys :]
enabled by ParallelArrays
pattern ExplicitTypeApp :: Expr -> Type -> Expr #
Explicit type application ( show @Integer (read "5")
)
pattern BracketExpr :: Bracket -> Expr #
Template haskell bracket expression
pattern SpliceExpr :: Splice -> Expr #
Template haskell splice expression, for example: $(gen a)
or $x
pattern QuasiQuoteExpr :: QuasiQuote -> Expr #
Template haskell quasi-quotation: [$quoter|str]
pattern ExprPragma :: ExprPragma -> Expr -> Expr #
Template haskell quasi-quotation: [$quoter|str]
pattern LambdaCase :: AltList -> Expr #
Lambda case ( case 0 -> 1; 1 -> 2
)
pattern StaticPointer :: Expr -> Expr #
Static pointer expression ( static e
). The inner expression must be closed (cannot have variables bound outside)
pattern NormalFieldUpdate :: Name -> Expr -> FieldUpdate #
Update of a field ( x = 1
)
pattern FieldPun :: Name -> FieldUpdate #
Update the field to the value of the same name ( x
)
pattern FieldWildcard :: FieldWildcard -> FieldUpdate #
Update the fields of the bounded names to their values ( ..
). Must be the last initializer. Cannot be used in a record update expression.
pattern TupSecPresent :: Expr -> TupSecElem #
An existing element in a tuple section
pattern TupSecMissing :: TupSecElem #
A missing element in a tuple section
pattern Alt :: Pattern -> CaseRhs -> MaybeLocalBinds -> Alt #
Clause of case expression ( Just x -> x + 1
)
pattern GuardedCaseRhss :: GuardedCaseRhsList -> CaseRhs #
Guarded right-hand sides of a pattern match ( | x == 1 -> 3; | otherwise -> 4
)
pattern GuardedCaseRhs :: RhsGuardList -> Expr -> GuardedCaseRhs #
A guarded right-hand side of pattern matches binding ( | x > 3 -> 2
)
pattern CorePragma :: String -> ExprPragma #
A CORE
pragma for adding notes to expressions.
pattern SccPragma :: String -> ExprPragma #
An SCC
pragma for defining cost centers for profiling
pattern GeneratedPragma :: SourceRange -> ExprPragma #
pattern SourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange #
In-AST source ranges (for generated pragmas)
pattern ArrowFormCmd :: Expr -> CmdList -> Cmd #
A form command ( (|untilA (increment -< x+y) (within 0.5 -< x)|)
)
pattern LambdaCmd :: PatternList -> Cmd -> Cmd #
An infix command application
pattern CaseCmd :: Expr -> CmdAltList -> Cmd #
A pattern match command
pattern LetCmd :: LocalBindList -> Cmd -> Cmd #
A local binding command ( let z = x+y
)
pattern DoCmd :: CmdStmtList -> Cmd #
A local binding command ( let z = x+y
)
pattern LeftHighApp :: ArrowApp #
Left arrow high application: -<<
pattern RightHighApp :: ArrowApp #
Right arrow high application: >>-
pattern LetStmt :: LocalBindList -> Stmt #
Let statement ( let x = 3; y = 4
)
pattern RecStmt :: StmtList -> Stmt #
A recursive binding statement with ( rec b <- f a c; c <- f b a
)
pattern MDoKeyword :: DoKind #
pattern ListCompBody :: CompStmtList -> ListCompBody #
Body of a list comprehension: ( | x <- [1..10]
)
pattern ThenStmt :: Expr -> MaybeExpr -> CompStmt #
Then statements by TransformListComp
( then sortWith by (x + y)
)
pattern GroupStmt :: MaybeExpr -> MaybeExpr -> CompStmt #
Grouping statements by TransformListComp
( then group by (x + y) using groupWith
)
pattern BindStmtCmd :: Pattern -> Cmd -> CmdStmt #
Binding statement command ( x <- action
)
pattern ExprStmtCmd :: Cmd -> CmdStmt #
Non-binding statement command ( action
)
pattern LetStmtCmd :: LocalBindList -> CmdStmt #
Let statement command ( let x = 3; y = 4
)
pattern RecStmtCmd :: CmdStmtList -> CmdStmt #
A recursive binding statement command with ( rec b <- f a c; c <- f b a
)
pattern InfixAppPat :: Pattern -> Operator -> Pattern -> Pattern #
Infix constructor application pattern ( a :+: b
)
pattern AppPat :: Name -> PatternList -> Pattern #
Constructor application pattern ( Point x y
)
pattern TuplePat :: PatternList -> Pattern #
Tuple pattern ( (x,y)
)
pattern UnboxTuplePat :: PatternList -> Pattern #
Unboxed tuple pattern ( (# x, y #)
)
pattern ListPat :: PatternList -> Pattern #
List pattern ( [1,2,a,x]
)
pattern ParArrayPat :: PatternList -> Pattern #
Parallel array pattern ( [:1,2,a,x:]
)
pattern RecPat :: Name -> PatternFieldList -> Pattern #
Record pattern ( Point { x = 3, y }
)
pattern IrrefutablePat :: Pattern -> Pattern #
Irrefutable pattern ( ~(x:_)
)
pattern TypeSigPat :: Pattern -> Type -> Pattern #
Pattern with explicit type signature ( x :: Int
)
pattern QuasiQuotePat :: QuasiQuote -> Pattern #
Quasi-quoted patterns: [| 1 + 2 |]
pattern FieldPattern :: Name -> Pattern -> PatternField #
Named field pattern ( p = Point 3 2
)
pattern FieldPunPattern :: Name -> PatternField #
Named field pun ( p
)
pattern FieldWildcardPattern :: FieldWildcard -> PatternField #
Wildcard field pattern ( ..
)
pattern NormalOp :: QualifiedName -> Operator #
A normal operator used as an operator.
pattern BacktickOp :: QualifiedName -> Operator #
A normal name used as an operator with backticks: a `mod` b
pattern NormalName :: QualifiedName -> Name #
A normal, non-operator name.
pattern ParenName :: QualifiedName -> Name #
Parenthesized name: foldl (+) 0
pattern ImplicitName :: QualifiedName -> Name #
Creates an implicit name: ?var
pattern StringNode :: String -> StringNode #
Program elements formatted as string literals (import packages, pragma texts)
pattern QualifiedName :: NamePartList -> NamePart -> QualifiedName #
Possibly qualified name.
pattern Module :: FilePragmaList -> MaybeModuleHead -> ImportDeclList -> DeclList -> Module #
The representation of a haskell module, that is a separate compilation unit. It may or may not have a header.
pattern ModuleHead :: ModuleName -> MaybeModulePragma -> MaybeExportSpecs -> ModuleHead #
Module declaration with name and (optional) exports
pattern ExportSpecs :: ExportSpecList -> ExportSpecs #
A list of export specifications surrounded by parentheses
pattern ExportSpec :: IESpec -> ExportSpec #
Export a name and related names
pattern ModuleExport :: ModuleName -> ExportSpec #
The export of an imported module ( module A
)
pattern IESpec :: MaybeImportModifier -> Name -> MaybeSubSpec -> IESpec #
Marks a name to be imported or exported with related names (subspecifier)
(..)
: a class exported with all of its methods, or a datatype exported with all of its constructors.
pattern SubList :: NameList -> SubSpec #
(a,b,c)
: a class exported with some of its methods, or a datatype exported with some of its constructors.
pattern ImportDecl :: MaybeImportSource -> MaybeImportQualified -> MaybeImportSafe -> MaybeStringNode -> ModuleName -> MaybeImportRenaming -> MaybeImportSpec -> ImportDecl #
pattern ImportRenaming :: ModuleName -> ImportRenaming #
pattern ImportSpecList :: IESpecList -> ImportSpec #
pattern ImportHidingList :: IESpecList -> ImportSpec #
pattern ModuleName :: String -> ModuleName #
pattern LanguagePragma :: LanguageExtensionList -> FilePragma #
LANGUAGE
pragma, listing the enabled language extensions in that file
pattern OptionsPragma :: String -> FilePragma #
OPTIONS
pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
pattern LanguageExtension :: String -> LanguageExtension #
The name of the enabled language extension, for example ( LambdaCase
)
pattern ModuleWarningPragma :: StringNodeList -> ModulePragma #
A warning pragma attached to the module
pattern ModuleDeprecatedPragma :: StringNodeList -> ModulePragma #
A deprecated pragma attached to the module
pattern PrimIntLit :: Integer -> Literal #
Primitive integer literal (of type Int#
): 32#
pattern PrimWordLit :: Integer -> Literal #
Primitive word literal (of type Word#
): 32##
pattern PrimFloatLit :: Rational -> Literal #
Primitive float literal (of type Float#
): 3.14#
pattern PrimDoubleLit :: Rational -> Literal #
Primitive double literal (of type Double#
): 3.14##
pattern PrimCharLit :: Char -> Literal #
Primitive character literal (of type Char#
): c
#
pattern PrimStringLit :: String -> Literal #
Primitive string literal (of type Addr#
): "xxx"#
pattern KindConstraint :: Kind -> KindConstraint #
Kind constraint ( :: * -> *
)
pattern StringKind :: String -> Kind #
String value promoted to the kind level.
pattern ListKindPromoted :: KindList -> Kind #
A list of elements as a kind.
pattern StandaloneDeriving :: Maybe DeriveStrategy -> Maybe OverlapPragma -> InstanceRule -> Decl #
Standalone deriving declaration ( deriving instance X T
)
pattern FixityDecl :: FixitySignature -> Decl #
Fixity declaration ( infixl 5 +, -
)
pattern DefaultDecl :: TypeList -> Decl #
Default types ( default (T1, T2)
)
pattern TypeSigDecl :: TypeSignature -> Decl #
Type signature declaration ( f :: Int -> Int
)
pattern ValueBinding :: ValueBind -> Decl #
Function or value binding ( f x = 12
)
pattern SpliceDecl :: Splice -> Decl #
A Template Haskell splice declaration ( $(generateDecls)
)
pattern DataDecl :: DataOrNewtypeKeyword -> MaybeContext -> DeclHead -> ConDeclList -> DerivingList -> Decl #
A data or newtype declaration. Empty data type declarations without where keyword are always belong to DataDecl.
pattern GADTDataDecl :: DataOrNewtypeKeyword -> MaybeContext -> DeclHead -> MaybeKindConstraint -> AnnList UGadtConDecl -> DerivingList -> Decl #
A GADT-style data or newtype declaration.
pattern GadtConDecl :: NameList -> Type -> GadtConDecl #
GADT constructor declaration ( D1 :: Int -> T String
)
pattern GadtRecordConDecl :: NameList -> FieldDeclList -> Type -> GadtConDecl #
GADT constructor declaration with record syntax ( D1 :: { val :: Int } -> T String
)
pattern RecordConDecl :: Name -> FieldDeclList -> ConDecl #
Creates a record data constructor ( Point { x :: Double, y :: Double }
)
pattern DerivingOne :: InstanceHead -> Deriving #
A deriving clause without parentheses ( deriving Show
.
pattern DerivingOne' :: MaybeDeriveStrategy -> InstanceHead -> Deriving #
A deriving clause without parentheses, with/witohut strategy ( deriving stock Show
.
pattern DerivingMulti :: InstanceHeadList -> Deriving #
A deriving clause with parentheses deriving (Show, Eq)
)
pattern DerivingMulti' :: MaybeDeriveStrategy -> InstanceHeadList -> Deriving #
A deriving clause with parentheses, with/witohut strategy ( deriving stock (Show, Eq)
.
pattern DataKeyword :: DataOrNewtypeKeyword #
pattern NewtypeKeyword :: DataOrNewtypeKeyword #
pattern FunDeps :: FunDepList -> FunDeps #
A list of functional dependencies: | a -> b, c -> d
separated by commas
pattern FunDep :: NameList -> NameList -> FunDep #
A functional dependency, given on the form l1 ... ln -> r1 ... rn
pattern ClassDecl :: MaybeContext -> DeclHead -> MaybeFunDeps -> MaybeClassBody -> Decl #
Type class declaration ( class X a [where f = ...]
)
pattern ClassBody :: ClassElementList -> ClassBody #
The list of declarations that can appear in a typeclass
pattern ClassElemSig :: TypeSignature -> ClassElement #
Type signature: f :: A -> B
as a class member
pattern ClassElemDef :: ValueBind -> ClassElement #
Default binding: f x = "aaa"
as a class member
pattern ClassElemTypeFam :: DeclHead -> MaybeTypeFamilySpec -> ClassElement #
Declaration of an associated type synonym: type T x :: *
in a class
pattern ClassElemDataFam :: DeclHead -> MaybeKindConstraint -> ClassElement #
Declaration of an associated data synonym: data T x :: *
in a class
pattern ClsDefaultType :: DeclHead -> Type -> ClassElement #
Default choice for type synonym: type T x = TE
or type instance T x = TE
in a class
pattern ClsDefaultSig :: Name -> Type -> ClassElement #
Default signature (by using DefaultSignatures
): default enum :: (Generic a, GEnum (Rep a)) => [a]
pattern ClsMinimal :: MinimalFormula -> ClassElement #
Minimal pragma: {-# MINIMAL (==) | (/=) #-}
in a class
pattern MinimalName :: Name -> MinimalFormula #
pattern MinimalParen :: MinimalFormula -> MinimalFormula #
pattern MinimalOr :: MinimalFormulaList -> MinimalFormula #
One of the minimal formulas are needed ( min1 | min2
)
pattern MinimalAnd :: MinimalFormulaList -> MinimalFormula #
Both of the minimal formulas are needed ( min1 , min2
)
pattern NameDeclHead :: Name -> DeclHead #
Type or class name as a declaration head
pattern ParenDeclHead :: DeclHead -> DeclHead #
Parenthesized type as a declaration head
pattern DeclHeadApp :: DeclHead -> TyVar -> DeclHead #
Type application as a declaration head
pattern InfixDeclHead :: TyVar -> Operator -> TyVar -> DeclHead #
Infix type application as a declaration head
pattern InstanceDecl :: InstanceRule -> MaybeInstBody -> Decl #
Instance declaration ( instance X T [where f = ...]
)
pattern InstanceBody :: InstBodyDeclList -> InstBody #
Instance body is the implementation of the class functions ( where a x = 1; b x = 2
)
pattern InstanceBind :: ValueBind -> InstBodyDecl #
A normal value binding ( f x = 12
) inside a class instance
pattern InstanceTypeSig :: TypeSignature -> InstBodyDecl #
Type signature in instance definition with InstanceSigs
pattern InstanceTypeFamilyDef :: TypeEqn -> InstBodyDecl #
An associated type definition ( type A X = B
) in a class instance
pattern InstanceDataFamilyDef :: DataOrNewtypeKeyword -> InstanceRule -> ConDeclList -> DerivingList -> InstBodyDecl #
An associated data definition ( data A X = B Int | C
) in a class instance
pattern InstanceDataFamilyGADTDef :: DataOrNewtypeKeyword -> InstanceRule -> MaybeKindConstraint -> AnnList UGadtConDecl -> DerivingList -> InstBodyDecl #
An associated data definition as a GADT ( data A X where B :: Int -> A X
) in a class instance
pattern InstanceSpecializePragma :: Type -> InstBodyDecl #
Specialize instance pragma in a class instance (no phase selection is allowed)
pattern InstanceRule :: AnnMaybe (AnnListG UTyVar) -> MaybeContext -> InstanceHead -> InstanceRule #
Instance head as an instance rule ( X a => Y a
)
pattern InstanceHead :: Name -> InstanceHead #
Type or class name as an instance head
pattern InfixInstanceHead :: Type -> Operator -> InstanceHead #
Infix application of the type/class name to the left operand as an instance head
pattern ParenInstanceHead :: InstanceHead -> InstanceHead #
Parenthesized instance head
pattern AppInstanceHead :: InstanceHead -> Type -> InstanceHead #
Type application as an instance head
pattern EnableOverlap :: OverlapPragma #
OVERLAP
pragma
pattern DisableOverlap :: OverlapPragma #
NO_OVERLAP
pragma
pattern Overlappable :: OverlapPragma #
OVERLAPPABLE
pragma
pattern Overlapping :: OverlapPragma #
OVERLAPPING
pragma
pattern Overlaps :: OverlapPragma #
OVERLAPS
pragma
pattern IncoherentOverlap :: OverlapPragma #
INCOHERENT
pragma
pattern RoleDecl :: QualifiedName -> RoleList -> Decl #
Role annotations ( type role Ptr representational
)
pattern NominalRole :: Role #
pattern RepresentationalRole :: Role #
pattern PhantomRole :: Role #
pattern ForeignImport :: CallConv -> MaybeSafety -> Name -> Type -> Decl #
Foreign import ( foreign import foo :: Int -> IO Int
)
pattern ForeignExport :: CallConv -> Name -> Type -> Decl #
Foreign export ( foreign export ccall foo :: Int -> IO Int
)
pattern PatternSynonym :: PatSynLhs -> PatSynRhs -> Decl #
Pattern synonyms ( pattern Arrow t1 t2 = App "->" [t1, t2]
)
pattern ConPatSyn :: Name -> NameList -> PatSynLhs #
A left hand side with a constructor name and arguments ( Arrow t1 t2
)
pattern InfixPatSyn :: Name -> Operator -> Name -> PatSynLhs #
An infix pattern synonym left-hand side ( t1 :+: t2
)
pattern RecordPatSyn :: Name -> NameList -> PatSynLhs #
A record-style pattern synonym left-hand side ( Arrow { arrowFrom, arrowTo }
)
pattern SymmetricPatSyn :: Pattern -> PatSynRhs #
An automatically two-way pattern synonym ( = App "Int" []
)
pattern OneWayPatSyn :: Pattern -> PatSynRhs #
A pattern synonym that can be only used for pattenr matching but not for combining ( <- App "Int" []
)
pattern TwoWayPatSyn :: Pattern -> MatchList -> PatSynRhs #
A pattern synonym with the other direction explicitly specified ( <- App "Int" [] where Int = App "Int" []
)
pattern PatternSignatureDecl :: PatternSignature -> Decl #
Pattern type signature declaration ( pattern Succ :: Int -> Int
)
pattern PatternSignature :: NameList -> Type -> PatternSignature #
pattern TypeFamily :: DeclHead -> MaybeTypeFamilySpec -> Decl #
Type family declaration ( type family A a :: * -> *
)
pattern DataFamily :: DeclHead -> MaybeKindConstraint -> Decl #
Data family declaration ( data family A a :: * -> *
)
pattern TypeInstance :: InstanceRule -> Type -> Decl #
Type family instance declaration ( type instance Fam T = AssignedT
)
pattern DataInstance :: DataOrNewtypeKeyword -> InstanceRule -> ConDeclList -> DerivingList -> Decl #
Data instance declaration ( data instance Fam T = Con1 | Con2
)
pattern GadtDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> MaybeKindConstraint -> GadtConDeclList -> Decl #
GADT-style data instance declaration ( data instance Fam T where ...
)
pattern ClosedTypeFamily :: DeclHead -> MaybeTypeFamilySpec -> TypeEqnList -> Decl #
A closed type family declaration
pattern TypeFamilyKindSpec :: KindConstraint -> TypeFamilySpec #
Specifies the kind of a type family ( :: * -> *
)
pattern TypeFamilyInjectivitySpec :: TyVar -> NameList -> TypeFamilySpec #
Specifies the injectivity of a type family ( = r | r -> a
)
pattern TypeEqn :: Type -> Type -> TypeEqn #
Type equations as found in closed type families ( T A = S
)
pattern PragmaDecl :: TopLevelPragma -> Decl #
Top-level pragmas
pattern RulePragma :: RuleList -> TopLevelPragma #
A pragma that introduces source rewrite rules ( {-# RULES "map/map" [2] forall f g xs. map f (map g xs) = map (f.g) xs #-}
)
pattern DeprPragma :: NameList -> String -> TopLevelPragma #
A pragma that marks definitions as deprecated ( {-# DEPRECATED f "f will be replaced by g" #-}
)
pattern WarningPragma :: NameList -> String -> TopLevelPragma #
A pragma that marks definitions as deprecated ( {-# WARNING unsafePerformIO "you should know what you are doing" #-}
)
pattern AnnPragma :: AnnotationSubject -> Expr -> TopLevelPragma #
A pragma that annotates a definition with an arbitrary value ( {-# ANN f 42 #-}
)
pattern InlinePragma :: MaybeConlikeAnnot -> MaybePhaseControl -> Name -> TopLevelPragma #
A pragma that marks a function for inlining to the compiler ( {-# INLINE thenUs #-}
)
pattern NoInlinePragma :: Name -> TopLevelPragma #
A pragma that forbids a function from being inlined by the compiler ( {-# NOINLINE f #-}
)
pattern InlinablePragma :: MaybePhaseControl -> Name -> TopLevelPragma #
A pragma that marks a function that it may be inlined by the compiler ( {-# INLINABLE thenUs #-}
)
pattern LinePragma :: Int -> MaybeStringNode -> TopLevelPragma #
A pragma for maintaining line numbers in generated sources ( {-# LINE 123 "somefile" #-}
)
pattern SpecializePragma :: MaybePhaseControl -> Name -> TypeList -> TopLevelPragma #
A pragma that tells the compiler that a polymorph function should be optimized for a given type ( {-# SPECIALISE f :: Int -> b -> b #-}
)
pattern PhaseControlFrom :: Integer -> PhaseControl #
Marks that the pragma should be applied from a given compile phase ( [2]
)
pattern PhaseControlUntil :: Integer -> PhaseControl #
Marks that the pragma should be applied until a given compile phase ( [~2]
)
pattern RewriteRule :: String -> MaybePhaseControl -> RuleVarList -> Expr -> Expr -> Rule #
A rewrite rule ( "map/map" forall f g xs. map f (map g xs) = map (f.g) xs
)
pattern NameAnnotation :: Name -> AnnotationSubject #
The definition with the given name is annotated
pattern TypeAnnotation :: Name -> AnnotationSubject #
A type with the given name is annotated
pattern ModuleAnnotation :: AnnotationSubject #
The whole module is annotated
pattern ConlikeAnnotation :: ConlikeAnnot #
A CONLIKE
modifier for an INLINE
pragma.
pattern SimpleBind :: Pattern -> Rhs -> MaybeLocalBinds -> ValueBind #
Non-function binding ( v = "12"
)
pattern FunctionBind :: MatchList -> ValueBind #
Function binding ( f 0 = 1; f x = x
). All matches must have the same name.
pattern MatchLhs :: Name -> PatternList -> MatchLhs #
A match lhs with the function name and parameter names ( f a b
)
pattern InfixLhs :: Pattern -> Operator -> Pattern -> PatternList -> MatchLhs #
An infix match lhs for an operator ( a + b
)
pattern LocalBinds :: LocalBindList -> LocalBinds #
Local bindings attached to a declaration ( where x = 42
)
pattern LocalValBind :: ValueBind -> LocalBind #
A local binding for a value
pattern LocalTypeSig :: TypeSignature -> LocalBind #
A local type signature
pattern LocalFixity :: FixitySignature -> LocalBind #
A local fixity declaration
pattern TypeSignature :: NameList -> Type -> TypeSignature #
A type signature ( f :: Int -> Int
)
pattern InfixL :: OperatorList -> FixitySignature #
A left-associative fixity declaration ( infixl 5 +, -
).
pattern InfixR :: OperatorList -> FixitySignature #
A right-associative fixity declaration ( infixr 5 +, -
).
pattern Infix :: OperatorList -> FixitySignature #
A non-associative fixity declaration ( infix 5 +, -
).
pattern UnguardedRhs :: Expr -> Rhs #
An unguarded right-hand-side ( = 3
)
pattern GuardedRhss :: GuardedRhsList -> Rhs #
An unguarded right-hand-side ( | x == 1 = 3; | otherwise = 4
)
pattern GuardedRhs :: RhsGuardList -> Expr -> GuardedRhs #
A guarded right-hand side of a value binding ( | x > 3 = 2
)
pattern GuardBind :: Pattern -> Expr -> RhsGuard #
A bind statement in a pattern guard ( Just v <- x
)
pattern GuardLet :: LocalBindList -> RhsGuard #
A let statement in a pattern guard ( let x = 3
)
pattern GuardCheck :: Expr -> RhsGuard #
An expression to check for a pattern guard
mkGuardCheck :: Expr -> RhsGuard #
Creates an expression to check for a pattern guard
mkGuardLet :: [LocalBind] -> RhsGuard #
Creates a let statement in a pattern guard ( let x = 3
)
mkGuardBind :: Pattern -> Expr -> RhsGuard #
Creates a bind statement in a pattern guard ( Just v <- x
)
mkGuardedRhs :: [RhsGuard] -> Expr -> GuardedRhs #
Creates a guarded right-hand side of a value binding ( | x > 3 = 2
)
mkGuardedRhss :: [GuardedRhs] -> Rhs #
Creates an unguarded right-hand-side ( | x == 1 = 3; | otherwise = 4
)
mkUnguardedRhs :: Expr -> Rhs #
Creates an unguarded right-hand-side ( = 3
)
mkInfix :: Int -> Operator -> FixitySignature #
Creates a non-associative fixity declaration ( infix 5 +, -
).
mkInfixR :: Int -> Operator -> FixitySignature #
Creates a right-associative fixity declaration ( infixr 5 +, -
).
mkInfixL :: Int -> Operator -> FixitySignature #
Creates a left-associative fixity declaration ( infixl 5 +, -
).
mkTypeSignature :: Name -> Type -> TypeSignature #
Creates a type signature ( f :: Int -> Int
)
mkLocalFixity :: FixitySignature -> LocalBind #
Creates a local fixity declaration
mkLocalTypeSig :: TypeSignature -> LocalBind #
Creates a local type signature
mkLocalValBind :: ValueBind -> LocalBind #
Creates a local binding for a value
mkLocalBinds' :: [LocalBind] -> LocalBinds #
mkLocalBinds :: [LocalBind] -> MaybeLocalBinds #
Local bindings attached to a declaration ( where x = 42
)
mkInfixLhs :: Pattern -> Operator -> Pattern -> [Pattern] -> MatchLhs #
Creates an infix match lhs for an operator ( a + b
)
mkMatchLhs :: Name -> [Pattern] -> MatchLhs #
Creates a match lhs with the function name and parameter names ( f a b
)
mkFunctionBind' :: Name -> [([Pattern], Expr)] -> ValueBind #
A simplified function for creating function bindings without local definitions or guards.
mkFunctionBind :: [Match] -> ValueBind #
Creates a function binding ( f 0 = 1; f x = x
). All matches must have the same name.
mkSimpleBind :: Pattern -> Rhs -> Maybe LocalBinds -> ValueBind #
Creates a value binding ( v = "12"
).
mkSimpleBind' :: Name -> Expr -> ValueBind #
A simplified function to generate simple value bindings without local definitions, guards or complex lhs.
mkConlikeAnnotation :: ConlikeAnnot #
A CONLIKE
modifier for an INLINE
pragma.
mkModuleAnnotation :: AnnotationSubject #
The whole module is annotated
mkTypeAnnotation :: Name -> AnnotationSubject #
A type with the given name is annotated
mkNameAnnotation :: Name -> AnnotationSubject #
The definition with the given name is annotated
mkRewriteRule :: String -> Maybe PhaseControl -> [RuleVar] -> Expr -> Expr -> Rule #
A rewrite rule ( "map/map" forall f g xs. map f (map g xs) = map (f.g) xs
)
mkPhaseControlUntil :: Integer -> PhaseControl #
Marks that the pragma should be applied until a given compile phase ( [~2]
)
mkPhaseControlFrom :: Integer -> PhaseControl #
Marks that the pragma should be applied from a given compile phase ( [2]
)
mkSpecializePragma :: Maybe PhaseControl -> Name -> [Type] -> TopLevelPragma #
A pragma that tells the compiler that a polymorph function should be optimized for a given type ( {-# SPECIALISE f :: Int -> b -> b #-}
)
mkLinePragma :: Int -> Maybe StringNode -> TopLevelPragma #
A pragma for maintaining line numbers in generated sources ( {-# LINE 123 "somefile" #-}
)
mkInlinablePragma :: Maybe PhaseControl -> Name -> TopLevelPragma #
A pragma that marks a function that it may be inlined by the compiler ( {-# INLINABLE thenUs #-}
)
mkNoInlinePragma :: Name -> TopLevelPragma #
A pragma that forbids a function from being inlined by the compiler ( {-# NOINLINE f #-}
)
mkInlinePragma :: Maybe ConlikeAnnot -> Maybe PhaseControl -> Name -> TopLevelPragma #
A pragma that marks a function for inlining to the compiler ( {-# INLINE thenUs #-}
)
mkAnnPragma :: AnnotationSubject -> Expr -> TopLevelPragma #
A pragma that annotates a definition with an arbitrary value ( {-# ANN f 42 #-}
)
mkWarningPragma :: [Name] -> String -> TopLevelPragma #
A pragma that marks definitions as deprecated ( {-# WARNING unsafePerformIO "you should know what you are doing" #-}
)
mkDeprPragma :: [Name] -> String -> TopLevelPragma #
A pragma that marks definitions as deprecated ( {-# DEPRECATED f "f will be replaced by g" #-}
)
mkRulePragma :: [Rule] -> TopLevelPragma #
A pragma that introduces source rewrite rules ( {-# RULES "map/map" [2] forall f g xs. map f (map g xs) = map (f.g) xs #-}
)
mkPragmaDecl :: TopLevelPragma -> Decl #
Creates a top-level pragmas
mkPatternSignature :: [Name] -> Type -> PatternSignature #
mkPatternSignatureDecl :: PatternSignature -> Decl #
Creates a pattern type signature declaration ( pattern Succ :: Int -> Int
)
mkTwoWayPatSyn :: Pattern -> [Match] -> PatSynRhs #
Creates a pattern synonym with the other direction explicitly specified ( <- App "Int" [] where Int = App "Int" []
)
mkOneWayPatSyn :: Pattern -> PatSynRhs #
Creates a pattern synonym that can be only used for pattenr matching but not for combining ( <- App "Int" []
)
mkSymmetricPatSyn :: Pattern -> PatSynRhs #
Creates an automatically two-way pattern synonym ( = App "Int" []
)
mkRecordPatSyn :: Name -> [Name] -> PatSynLhs #
Creates a record-style pattern synonym left-hand side ( Arrow { arrowFrom, arrowTo }
)
mkInfixPatSyn :: Name -> Operator -> Name -> PatSynLhs #
Creates an infix pattern synonym left-hand side ( t1 :+: t2
)
mkConPatSyn :: Name -> [Name] -> PatSynLhs #
Creates a left hand side of a pattern synonym with a constructor name and arguments ( Arrow t1 t2
)
mkPatternSynonym :: PatSynLhs -> PatSynRhs -> Decl #
Creates a pattern synonym ( pattern Arrow t1 t2 = App "->" [t1, t2]
)
mkGadtDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> Maybe KindConstraint -> [GadtConDecl] -> Decl #
Creates a GADT-style data instance declaration ( data instance Fam T where ...
)
mkDataInstance :: DataOrNewtypeKeyword -> InstanceRule -> [ConDecl] -> [Deriving] -> Decl #
Creates a data instance declaration ( data instance Fam T = Con1 | Con2
)
mkTypeInstance :: InstanceRule -> Type -> Decl #
Creates a type family instance declaration ( type instance Fam T = AssignedT
)
mkTypeFamilyInjectivitySpec :: TyVar -> [Name] -> TypeFamilySpec #
Specifies the injectivity of a type family ( = r | r -> a
)
mkTypeFamilyKindSpec :: KindConstraint -> TypeFamilySpec #
Specifies the kind of a type family ( :: * -> *
)
mkDataFamily :: DeclHead -> Maybe KindConstraint -> Decl #
Creates a data family declaration ( data family A a :: * -> *
)
mkClosedTypeFamily :: DeclHead -> Maybe TypeFamilySpec -> [TypeEqn] -> Decl #
Creates a closed type family declaration ( type family F x where F Int = (); F a = Int
)
mkTypeFamily :: DeclHead -> Maybe TypeFamilySpec -> Decl #
Creates a type family declaration ( type family F x
)
mkForeignExport :: CallConv -> Name -> Type -> Decl #
Creates a foreign export ( foreign export ccall foo :: Int -> IO Int
)
mkForeignImport :: CallConv -> Maybe Safety -> Name -> Type -> Decl #
Creates a foreign import ( foreign import foo :: Int -> IO Int
)
mkPhantomRole :: Role #
Marks a given type parameter as phantom
.
mkRepresentationalRole :: Role #
Marks a given type parameter as representational
.
mkNominalRole :: Role #
Marks a given type parameter as nominal
.
mkRoleDecl :: QualifiedName -> [Role] -> Decl #
Creates a role annotations ( type role Ptr representational
)
mkIncoherentOverlap :: OverlapPragma #
INCOHERENT
pragma for type instance definitions
OVERLAPS
pragma for type instance definitions
mkOverlapping :: OverlapPragma #
OVERLAPPING
pragma for type instance definitions
mkOverlappable :: OverlapPragma #
OVERLAPPABLE
pragma for type instance definitions
mkDisableOverlap :: OverlapPragma #
NO_OVERLAP
pragma for type instance definitions
mkEnableOverlap :: OverlapPragma #
OVERLAP
pragma for type instance definitions
mkInstanceSpecializePragma :: Type -> InstBodyDecl #
Specialize instance pragma (no phase selection is allowed) in a type class instance
mkInstanceDataFamilyGADTDef :: DataOrNewtypeKeyword -> InstanceRule -> Maybe KindConstraint -> [GadtConDecl] -> [Deriving] -> InstBodyDecl #
An associated data type implemented using GADT style int a type class instance
mkInstanceDataFamilyDef :: DataOrNewtypeKeyword -> InstanceRule -> [ConDecl] -> [Deriving] -> InstBodyDecl #
An associated data type implementation ( data A X = C1 | C2
) int a type class instance
mkInstanceTypeFamilyDef :: TypeEqn -> InstBodyDecl #
An associated type definition ( type A X = B
) in a type class instance
mkInstanceTypeSig :: TypeSignature -> InstBodyDecl #
Type signature in instance definition with InstanceSigs
mkInstanceBind :: ValueBind -> InstBodyDecl #
A normal declaration ( f x = 12
) in a type class instance
mkInstanceBody :: [InstBodyDecl] -> InstBody #
Instance body is the implementation of the class functions ( where a x = 1; b x = 2
)
mkAppInstanceHead :: InstanceHead -> Type -> InstanceHead #
Application to one more type as a part of the instance declaration
mkParenInstanceHead :: InstanceHead -> InstanceHead #
Parenthesized instance head as a part of the instance declaration
mkInfixInstanceHead :: Type -> Operator -> InstanceHead #
Infix application of the type/class name to the left operand as a part of the instance declaration
mkInstanceHead :: Name -> InstanceHead #
Type or class name as a part of the instance declaration
mkInstanceRule :: Maybe Context -> InstanceHead -> InstanceRule #
The instance declaration rule, which is, roughly, the part of the instance declaration before the where keyword.
mkInstanceDecl :: Maybe OverlapPragma -> InstanceRule -> Maybe InstBody -> Decl #
Creates a type class instance declaration ( instance X T [where f = ...]
)
mkInfixDeclHead :: TyVar -> Operator -> TyVar -> DeclHead #
Infix application of the type/class name to the left operand in a declaration head
mkDeclHeadApp :: DeclHead -> TyVar -> DeclHead #
Application in a declaration head
mkParenDeclHead :: DeclHead -> DeclHead #
Parenthesized type as a declaration head
mkNameDeclHead :: Name -> DeclHead #
Type or class name as a declaration head
mkMinimalAnd :: [MinimalFormula] -> MinimalFormula #
Both of the minimal formulas are needed ( min1 , min2
)
mkMinimalOr :: [MinimalFormula] -> MinimalFormula #
One of the minimal formulas are needed ( min1 | min2
)
mkMinimalName :: Name -> MinimalFormula #
mkClsMinimal :: MinimalFormula -> ClassElement #
Minimal pragma: {-# MINIMAL (==) | (/=) #-}
in a class
mkFunDep :: [Name] -> [Name] -> FunDep #
Creates a functional dependency, given on the form l1 ... ln -> r1 ... rn
mkClsDefaultSig :: Name -> Type -> ClassElement #
Creates a default signature (by using DefaultSignatures
) in class: default enum :: (Generic a, GEnum (Rep a)) => [a]
mkClsDefaultType :: DeclHead -> Type -> ClassElement #
Creates a default choice for type synonym in class: type T x = TE
or type instance T x = TE
mkClassElemDataFam :: DeclHead -> Maybe KindConstraint -> ClassElement #
Creates an associated data synonym in class: data T y :: *
mkClassElemTypeFam :: DeclHead -> Maybe TypeFamilySpec -> ClassElement #
Creates an associated type synonym in class: type T y :: *
mkClassElemDef :: ValueBind -> ClassElement #
Creates a default binding as class element: f x = "aaa"
mkClassElemSig :: TypeSignature -> ClassElement #
Creates a type signature as class element: f :: A -> B
mkClassBody :: [ClassElement] -> ClassBody #
Creates the list of declarations that can appear in a typeclass
mkClassDecl :: Maybe Context -> DeclHead -> [FunDep] -> Maybe ClassBody -> Decl #
Creates a type class declaration ( class X a where f = ...
)
mkNewtypeKeyword :: DataOrNewtypeKeyword #
The newtype
keyword in a type definition
mkDataKeyword :: DataOrNewtypeKeyword #
The data
keyword in a type definition
mkDeriving :: [InstanceHead] -> Deriving #
Creates a deriving clause following a data type declaration. ( deriving Show
or deriving (Show, Eq)
)
mkFieldDecl :: [Name] -> Type -> FieldDecl #
Creates a field declaration ( fld :: Int
) for a constructor
mkInfixConDecl :: Type -> Operator -> Type -> ConDecl #
Creates an infix data constructor ( t1 :+: t2
)
mkRecordConDecl :: Name -> [FieldDecl] -> ConDecl #
Creates a record data constructor ( Point { x :: Double, y :: Double }
)
mkGadtRecordConDecl :: [Name] -> [FieldDecl] -> Type -> GadtConDecl #
Creates a GADT constructor declaration with record syntax ( D1 :: { val :: Int } -> T String
)
mkGadtConDecl :: [Name] -> Type -> GadtConDecl #
Creates a GADT constructor declaration ( D1 :: Int -> T String
)
mkGADTDataDecl :: DataOrNewtypeKeyword -> Maybe Context -> DeclHead -> Maybe KindConstraint -> [GadtConDecl] -> [Deriving] -> Decl #
Creates a GADT-style data or newtype declaration.
mkDataDecl :: DataOrNewtypeKeyword -> Maybe Context -> DeclHead -> [ConDecl] -> [Deriving] -> Decl #
Creates a data or newtype declaration.
mkSpliceDecl :: Splice -> Decl #
Creates a Template Haskell splice declaration ( $(generateDecls)
)
mkValueBinding :: ValueBind -> Decl #
Creates a function or value binding ( f x = 12
)
mkTypeSigDecl :: TypeSignature -> Decl #
Creates type signature declaration ( f :: Int -> Int
)
mkDefaultDecl :: [Type] -> Decl #
Creates default types ( default (T1, T2)
)
mkFixityDecl :: FixitySignature -> Decl #
Creates a fixity declaration ( infixl 5 +, -
)
mkStandaloneDeriving :: Maybe DeriveStrategy -> Maybe OverlapPragma -> InstanceRule -> Decl #
Creates a standalone deriving declaration ( deriving instance X T
)
mkTypeDecl :: DeclHead -> Type -> Decl #
Creates a type synonym ( type String = [Char]
)
Right arrow high application: >>-
Left arrow high application: -<<
mkRightAppl :: ArrowApp #
Right arrow application: >-
mkLeftAppl :: ArrowApp #
Left arrow application: -<
mkParenCmd :: Cmd -> Cmd #
A parenthesized command
mkLambdaCmd :: [Pattern] -> Cmd -> Cmd #
A lambda command
mkArrowFromCmd :: Expr -> [Cmd] -> Cmd #
A form command ( (|untilA (increment -< x+y) (within 0.5 -< x)|)
)
mkSourceRange :: String -> Integer -> Integer -> Integer -> Integer -> SourceRange #
Create a in-AST source ranges (for generated pragmas)
mkGeneratedPragma :: SourceRange -> ExprPragma #
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 #-}
)
mkSccPragma :: String -> ExprPragma #
Creates an SCC
pragma for defining cost centers for profiling
mkCorePragma :: String -> ExprPragma #
Creates a CORE
pragma for adding notes to expressions.
mkGuardedCaseRhs :: [RhsGuard] -> Expr -> GuardedCaseRhs #
Creates a guarded right-hand side of pattern matches binding ( | x > 3 -> 2
)
mkGuardedCaseRhss :: [GuardedCaseRhs] -> CaseRhs #
Create a guarded right-hand sides of a pattern match ( | x == 1 -> 3; | otherwise -> 4
)
mkAlt :: Pattern -> CaseRhs -> Maybe LocalBinds -> Alt #
Create a clause of case expression ( Just x -> x + 1
)
mkFieldWildcard :: FieldUpdate #
Create a update the fields of the bounded names to their values ( ..
). Must be the last initializer. Cannot be used in a record update expression.
mkFieldPun :: Name -> FieldUpdate #
Create a update the field to the value of the same name ( x
)
mkFieldUpdate :: Name -> Expr -> FieldUpdate #
Create a update of a field ( x = 1
)
mkStaticPointer :: Expr -> Expr #
Create a static pointer expression ( static e
). The inner expression must be closed (cannot have variables bound outside)
mkLambdaCase :: [Alt] -> Expr #
Create a lambda case ( case 0 -> 1; 1 -> 2
)
mkProcExpr :: Pattern -> Cmd -> Expr #
Create a arrow definition: proc a -> f -< a+1
mkExprPragma :: ExprPragma -> Expr -> Expr #
Creates a pragma that marks an expression.
mkQuasiQuoteExpr :: QuasiQuote -> Expr #
Create a template haskell quasi quote expression, for example: [quoter| a + b ]
mkSpliceExpr :: Splice -> Expr #
Create a template haskell splice expression, for example: $(gen a)
or $x
mkBracketExpr :: Bracket -> Expr #
Create a template haskell bracket expression
mkTypeQuote :: Name -> Expr #
''T
for template haskell reifying of types
mkVarQuote :: Name -> Expr #
'x
for template haskell reifying of expressions
mkExplicitTypeApp :: Expr -> Type -> Expr #
Create a explicit type application ( show @Integer (read "5")
)
mkExprTypeSig :: Expr -> Type -> Expr #
Create a explicit type signature ( x :: Int
)
mkParArrayComp :: Expr -> [ListCompBody] -> Expr #
Create a parallel array comprehensions [: (x, y) | x <- xs , y <- ys :]
enabled by ParallelArrays
mkListComp :: Expr -> [ListCompBody] -> Expr #
Create a list comprehension ( [ (x, y) | x <- xs | y <- ys ]
)
mkParArrayEnum :: Expr -> Maybe Expr -> Expr -> Expr #
Create a parallel array enumeration ( [: 1,3 .. 10 :]
)
mkRecUpdate :: Expr -> [FieldUpdate] -> Expr #
Create a record value update: p1 { x = 3, y = -2 }
mkRecCon :: Name -> [FieldUpdate] -> Expr #
Create a record value construction: Point { x = 3, y = -2 }
mkRightSection :: Operator -> Expr -> Expr #
Create a right operator section: (+1)
mkLeftSection :: Expr -> Operator -> Expr #
Create a left operator section: (1+)
mkParArray :: [Expr] -> Expr #
Create a parallel array expression: [: 1,2,3 :]
mkTupleUnboxedSection :: [Maybe Expr] -> Expr #
Create a unboxed tuple section, enabled with TupleSections
( (#a,,b#)
). One of the elements must be missing.
mkTupleSection :: [Maybe Expr] -> Expr #
Create a tuple section, enabled with TupleSections
( (a,,b)
). One of the elements must be missing.
mkUnboxedTuple :: [Expr] -> Expr #
Create a unboxed tuple expression ( (# e1, e2, e3 #)
)
mkMDoBlock :: [Stmt] -> Expr #
Create a mdo-notation expressions ( mdo x <- act1; act2
)
mkCase :: Expr -> [Alt] -> Expr #
Create a pattern matching expression ( case expr of pat1 -> expr1; pat2 -> expr2
)
mkMultiIf :: [GuardedCaseRhs] -> Expr #
Create a multi way if expressions with MultiWayIf
extension ( if | guard1 -> expr1; guard2 -> expr2
)
mkPrefixApp :: Operator -> Expr -> Expr #
Create a prefix operator application expression ( -x
)
mkInfixApp :: Expr -> Operator -> Expr -> Expr #
Create a infix operator application expression ( a + b
)
mkTupleAssertion :: [Assertion] -> Assertion #
Creates a list of assertions ( (Eq a, Show a)
)
mkImplicitAssert :: Name -> Type -> Assertion #
Creates an assertion for implicit parameter binding ( ?cmp :: a -> a -> Bool
)
mkInfixAssert :: Type -> Operator -> Type -> Assertion #
Infix class assertion, also contains type equations ( a ~ X y
)
mkClassAssert :: Name -> [Type] -> Assertion #
Class assertion (Cls x
)
Kind of the unit value ()
.
mkPromotedTupleType :: [Type] -> Type #
A tuple of elements as a kind.
mkPromotedListType :: [Type] -> Type #
A list of elements as a kind.
mkPromotedConType :: Name -> Type #
A data constructor value promoted to the kind level.
mkPromotedStringType :: String -> Type #
String value promoted to the kind level.
mkPromotedIntType :: Integer -> Type #
Numeric value promoted to the kind level.
mkQuasiQuoteType :: QuasiQuote -> Type #
A Template Haskell quasi-quote type ( [quoter| ... ]
).
mkSpliceType :: Splice -> Type #
A Template Haskell splice type ( $(genType)
).
mkNamedWildcardType :: Name -> Type #
A named wildcard type ( _t
) with -XPartialTypeSignatures
mkWildcardType :: Type #
A wildcard type ( _
) with -XPartialTypeSignatures
mkNoUnpackType :: Type -> Type #
Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
mkUnpackType :: Type -> Type #
Strict type marked with UNPACK pragma. (Usually contains the bang mark.)
mkLazyType :: Type -> Type #
Lazy type marked with ~
. (Should only be used if Strict
or StrictData
language extension is used)
mkBangType :: Type -> Type #
Strict type marked with !
.
mkKindedType :: Type -> Kind -> Type #
Type with explicit kind signature ( a :: *
)
mkKindedTypeVar :: Name -> Kind -> TyVar #
Creates a type variable with kind specification ( t :: *
)
mkParenType :: Type -> Type #
Type surrounded by parentheses ( (T a)
)
mkParArrayType :: Type -> Type #
Parallel array type ( [:a:]
)
mkListType :: Type -> Type #
List type with special syntax ( [a]
)
mkUnboxedTupleType :: [Type] -> Type #
Unboxed tuple types ( (#a,b#)
)
mkTupleType :: [Type] -> Type #
Tuple types ( (a,b)
)
mkFunctionType :: Type -> Type -> Type #
Function types ( a -> b
)
mkTypeVar' :: Name -> TyVar #
Simplified creation of type variables
mkForallType :: [TyVar] -> Type -> Type #
Forall types ( forall x y . type
)
mkUnitKind :: Kind #
Kind of the unit value ()
.
mkTupleKind :: [Kind] -> Kind #
A tuple of elements as a kind.
mkListKind :: [Kind] -> Kind #
A list of elements as a kind.
mkStringKind :: String -> Kind #
String value promoted to the kind level.
mkKindList :: Kind -> Kind #
A list kind ( [k]
)
mkKindParen :: Kind -> Kind #
A parenthesised kind
mkKindUnbox :: Kind #
#
, the kind of unboxed types
mkKindStar :: Kind #
*
, the kind of types
mkKindConstraint :: Kind -> KindConstraint #
Kind constraint ( :: * -> *
)
mkPrimStringLit :: String -> Literal #
Primitive string literal (of type Addr#
): "xxx"#
mkPrimCharLit :: Char -> Literal #
Primitive character literal (of type Char#
): c
#
mkPrimDoubleLit :: Rational -> Literal #
Primitive double literal (of type Double#
): 3.14##
mkPrimFloatLit :: Rational -> Literal #
Primitive float literal (of type Float#
): 3.14#
mkPrimWordLit :: Integer -> Literal #
Primitive word literal (of type Word#
): 32##
mkPrimIntLit :: Integer -> Literal #
Primitive integer literal (of type Int#
): 32#
mkStringLit :: String -> Literal #
String literal: "abc"
mkModuleDeprecatedPragma :: [String] -> ModulePragma #
A deprecated pragma attached to the module
mkModuleWarningPragma :: [String] -> ModulePragma #
A warning pragma attached to the module
mkOptionsGHC :: String -> FilePragma #
OPTIONS
pragma, possibly qualified with a tool, e.g. OPTIONS_GHC
mkLanguagePragma :: [String] -> FilePragma #
LANGUAGE
pragma, listing the enabled language extensions in that file
mkFilePragmas :: [FilePragma] -> FilePragmaList #
mkModuleName :: String -> ModuleName #
The name of a module
mkImportHidingList :: [IESpec] -> ImportSpec #
Restrict the import definition to DONT import the listed names
mkImportSpecList :: [IESpec] -> ImportSpec #
Restrict the import definition to ONLY import the listed names
mkImportDecl :: Bool -> Bool -> Bool -> Maybe String -> ModuleName -> Maybe ModuleName -> Maybe ImportSpec -> ImportDecl #
An import declaration: import Module.Name
(..)
: a class exported with all of its methods, or a datatype exported with all of its constructors.
mkSubList :: [Name] -> SubSpec #
(a,b,c)
: a class exported with some of its methods, or a datatype exported with some of its constructors.
mkPatternIESpec :: Name -> IESpec #
Marks a pattern synonym to be imported or exported
mkIESpec :: Name -> Maybe SubSpec -> IESpec #
Marks a name to be imported or exported with related names (subspecifier)
mkModuleExport :: ModuleName -> ExportSpec #
The export of an imported module ( module A
)
mkExportSpec :: IESpec -> ExportSpec #
Export a name and related names
mkExportSpecs :: [ExportSpec] -> ExportSpecs #
A list of export specifications surrounded by parentheses
mkModuleHead :: ModuleName -> Maybe ModulePragma -> Maybe ExportSpecs -> ModuleHead #
Module declaration with name and (optional) exports
mkModule :: [FilePragma] -> Maybe ModuleHead -> [ImportDecl] -> [Decl] -> Module #
The representation of a haskell module, that is a separate compilation unit. It may or may not have a header.
mkStringNode :: String -> StringNode #
Creates a quoted text
mkSimpleName :: String -> QualifiedName #
Creates a simple (unqualified) name
mkSimpleName' :: Name -> QualifiedName #
Creates a simple (unqualified) name
mkNamePart :: String -> NamePart #
Creates a part of a qualified name.
mkQualifiedName :: [String] -> String -> QualifiedName #
mkQualifiedName' :: [String] -> Name -> QualifiedName #
Creates an annotated qualified simple name
mkImplicitName :: QualifiedName -> Name #
Creates an implicit name: ?var
mkParenName :: QualifiedName -> Name #
Creates a parenthesized name: foldl (+) 0
mkNormalName :: QualifiedName -> Name #
mkUnqualName' :: Name -> Name #
Creates an annotated unqualified (non-operator) binding name: f
or (+)
mkQualName' :: [String] -> Name -> Name #
Creates an annotated qualified (non-operator) binding name: A.B.f
or (A.B.+)
mkUnqualOp :: String -> Operator #
mkUnqualOp' :: Name -> Operator #
Creates an annotated unqualified operator: +
or `mod`
.
mkQualOp' :: [String] -> Name -> Operator #
Creates an annotated qualified operator: A.B.+
or `A.B.mod`
.
mkBacktickOp :: [String] -> String -> Operator #
mkFieldWildcardPattern :: PatternField #
Wildcard field pattern ( ..
)
mkFieldPunPattern :: Name -> PatternField #
Named field pun ( p
)
mkPatternField :: Name -> Pattern -> PatternField #
Named field pattern ( p = Point 3 2
)
mkQuasiQuotePat :: QuasiQuote -> Pattern #
Quasi-quoted patterns: [| 1 + 2 |]
mkSplicePat :: Splice -> Pattern #
Splice patterns: $(generateX inp)
mkTypeSigPat :: Pattern -> Type -> Pattern #
Pattern with explicit type signature ( x :: Int
)
mkIrrefutablePat :: Pattern -> Pattern #
Irrefutable pattern ( ~(x:_)
)
mkRecPat :: Name -> [PatternField] -> Pattern #
Record pattern ( Point { x = 3, y }
)
mkParenPat :: Pattern -> Pattern #
Parenthesised patterns
mkParArrayPat :: [Pattern] -> Pattern #
Parallel array pattern ( [:1,2,a,x:]
)
mkUnboxTuplePat :: [Pattern] -> Pattern #
Unboxed tuple pattern ( (# x, y #)
)
mkTuplePat :: [Pattern] -> Pattern #
Tuple pattern ( (x,y)
)
mkInfixAppPat :: Pattern -> Operator -> Pattern -> Pattern #
Infix constructor application pattern ( a :+: b
)
mkRecCmd :: [CmdStmt] -> CmdStmt #
Creates a recursive binding command with ( rec b <- f a c; c <- f b a
)
mkLetStmtCmd :: [LocalBind] -> CmdStmt #
Creates a let command ( let x = 3; y = 4
)
mkGroupStmt :: Maybe Expr -> Maybe Expr -> CompStmt #
Grouping statements by TransformListComp
( then group by (x + y) using groupWith
)
mkThenStmt :: Expr -> Maybe Expr -> CompStmt #
Then statements by TransformListComp
( then sortWith by (x + y)
)
mkCompStmt :: Stmt -> CompStmt #
Normal monadic statement of a list comprehension
mkListCompBody :: [CompStmt] -> ListCompBody #
Body of a list comprehension: ( | x <- [1..10]
)
Creates a recursive binding statement with ( rec b <- f a c; c <- f b a
)
mkExprStmt :: Expr -> Stmt #
Creates a non-binding statement ( action
)
mkBindStmt :: Pattern -> Expr -> Stmt #
Creates a binding statement ( x <- action
)
mkDeclsBracket :: [Decl] -> Bracket #
Declaration bracket ( [d| f :: Int -> Int; f x = x*x |]
)
mkTypeBracket :: Type -> Bracket #
Type bracket ( [t| (Int,Int) |]
)
mkPatternBracket :: Pattern -> Bracket #
Pattern bracket ( [p| Point x y |]
)
mkExprBracket :: Expr -> Bracket #
Expression bracket ( [| x + y |]
)
mkQuasiQuote :: Name -> String -> QuasiQuote #
Template haskell quasi-quotation: [quoter|str]
mkParenSplice :: Expr -> Splice #
A splice with parentheses: $(generate input)
mkIdSplice :: Name -> Splice #
A simple name splice: $generateX
type Module = Ann UModule IdDom SrcTemplateStage #
The representation of a haskell module, that is a separate compilation unit. It may or may not have a header.
type ModuleHead = Ann UModuleHead IdDom SrcTemplateStage #
Module declaration with name and (optional) exports
type ExportSpecs = Ann UExportSpecs IdDom SrcTemplateStage #
A list of export specifications surrounded by parentheses
type ExportSpec = Ann UExportSpec IdDom SrcTemplateStage #
Export specifier
type IESpec = Ann UIESpec IdDom SrcTemplateStage #
Marks a name to be imported or exported with related names (subspecifier)
type ImportModifier = Ann UImportModifier IdDom SrcTemplateStage #
Specifies the imported element
type SubSpec = Ann USubSpec IdDom SrcTemplateStage #
Marks how related names will be imported or exported with a given name
type ModulePragma = Ann UModulePragma IdDom SrcTemplateStage #
Pragmas that must be used after the module head
type FilePragma = Ann UFilePragma IdDom SrcTemplateStage #
Pragmas that must be used before defining the module
type ImportDecl = Ann UImportDecl IdDom SrcTemplateStage #
An import declaration: import Module.Name
type ImportSpec = Ann UImportSpec IdDom SrcTemplateStage #
Restriction on the imported names
type ImportQualified = Ann UImportQualified IdDom SrcTemplateStage #
Marks the import as qualified: qualified
type ImportSource = Ann UImportSource IdDom SrcTemplateStage #
Marks the import as source: {-# SOURCE #-}
type ImportSafe = Ann UImportSafe IdDom SrcTemplateStage #
Marks the import as safe: safe
type TypeNamespace = Ann UTypeNamespace IdDom SrcTemplateStage #
Marks an imported name to belong to the type namespace: type
type ImportRenaming = Ann UImportRenaming IdDom SrcTemplateStage #
Renaming imports ( as A
)
type ModuleName = Ann UModuleName IdDom SrcTemplateStage #
The name of a module
type LanguageExtension = Ann ULanguageExtension IdDom SrcTemplateStage #
The name of the enabled language extension, for example ( LambdaCase
)
type ClassBody = Ann UClassBody IdDom SrcTemplateStage #
The list of declarations that can appear in a typeclass
type ClassElement = Ann UClassElement IdDom SrcTemplateStage #
Members of a class declaration
type InstBody = Ann UInstBody IdDom SrcTemplateStage #
Instance body is the implementation of the class functions ( where a x = 1; b x = 2
)
type InstBodyDecl = Ann UInstBodyDecl IdDom SrcTemplateStage #
Declarations inside an instance declaration.
type GadtConDecl = Ann UGadtConDecl IdDom SrcTemplateStage #
GADT constructor declaration ( D1 :: { val :: Int } -> T String
)
type GadtConType = Ann UGadtConType IdDom SrcTemplateStage #
Type of GADT constructors (can be record types: { val :: Int }
)
type FieldWildcard = Ann UFieldWildcard IdDom SrcTemplateStage #
Marker for a field wildcard. Only needed to attach semantic information in a type-safe way.
type FunDeps = Ann UFunDeps IdDom SrcTemplateStage #
A list of functional dependencies: | a -> b, c -> d
separated by commas
type FunDep = Ann UFunDep IdDom SrcTemplateStage #
A functional dependency, given on the form l1 ... ln -> r1 ... rn
type DataOrNewtypeKeyword = Ann UDataOrNewtypeKeyword IdDom SrcTemplateStage #
The data
or the newtype
keyword to define ADTs.
type FieldDecl = Ann UFieldDecl IdDom SrcTemplateStage #
Field declaration ( fld :: Int
)
type Deriving = Ann UDeriving IdDom SrcTemplateStage #
A deriving clause following a data type declaration. ( deriving Show
or deriving (Show, Eq)
)
type DeriveStrategy = Ann UDeriveStrategy IdDom SrcTemplateStage #
A deriving strategy (stock
, newtype
or anyclass
)
type InstanceRule = Ann UInstanceRule IdDom SrcTemplateStage #
The instance declaration rule, which is, roughly, the part of the instance declaration before the where keyword.
type InstanceHead = Ann UInstanceHead IdDom SrcTemplateStage #
The specification of the class instance declaration
type OverlapPragma = Ann UOverlapPragma IdDom SrcTemplateStage #
Overlap pragmas. Can be applied to class declarations and class instance declarations.
type TypeEqn = Ann UTypeEqn IdDom SrcTemplateStage #
Type equations as found in closed type families ( T A = S
)
type TopLevelPragma = Ann UTopLevelPragma IdDom SrcTemplateStage #
Top level pragmas
type Rule = Ann URule IdDom SrcTemplateStage #
A rewrite rule ( "map/map" forall f g xs. map f (map g xs) = map (f.g) xs
)
type RuleVar = Ann URuleVar IdDom SrcTemplateStage #
A variable for a rewrite rule. With or without type signature.
type AnnotationSubject = Ann UAnnotationSubject IdDom SrcTemplateStage #
Annotation allows you to connect an expression to any declaration.
type MinimalFormula = Ann UMinimalFormula IdDom SrcTemplateStage #
Formulas of minimal annotations declaring which functions should be defined.
type SourceRange = Ann USourceRange IdDom SrcTemplateStage #
In-AST source ranges (for generated pragmas)
type TypeFamily = Ann UTypeFamily IdDom SrcTemplateStage #
Open type and data families
type TypeFamilySpec = Ann UTypeFamilySpec IdDom SrcTemplateStage #
Type family specification with kinds specification and injectivity.
type InjectivityAnn = Ann UInjectivityAnn IdDom SrcTemplateStage #
Injectivity annotation for type families ( = r | r -> a
)
type PatternSynonym = Ann UPatternSynonym IdDom SrcTemplateStage #
Pattern synonyms: pattern Arrow t1 t2 = App "->" [t1, t2]
type PatSynRhs = Ann UPatSynRhs IdDom SrcTemplateStage #
Right-hand side of pattern synonym
type PatSynLhs = Ann UPatSynLhs IdDom SrcTemplateStage #
Left hand side of a pattern synonym
type PatSynWhere = Ann UPatSynWhere IdDom SrcTemplateStage #
Where clause of pattern synonym (explicit expression direction)
type PatternSignature = Ann UPatternTypeSignature IdDom SrcTemplateStage #
Pattern type signature declaration ( pattern Succ :: Int -> Int
)
type ConlikeAnnot = Ann UConlikeAnnot IdDom SrcTemplateStage #
A CONLIKE
modifier for an INLINE
pragma.
type PhaseControl = Ann UPhaseControl IdDom SrcTemplateStage #
Controls the activation of a rewrite rule ( [1]
)
type ValueBind = Ann UValueBind IdDom SrcTemplateStage #
Value binding for top-level and local bindings
type Rhs = Ann URhs IdDom SrcTemplateStage #
Right hand side of a value binding (possible with guards): ( = 3
or | x == 1 = 3; | otherwise = 4
)
type GuardedRhs = Ann UGuardedRhs IdDom SrcTemplateStage #
A guarded right-hand side of a value binding ( | x > 3 = 2
)
type RhsGuard = Ann URhsGuard IdDom SrcTemplateStage #
Guards for value bindings and pattern matches ( Just v x, v 1
)
type LocalBind = Ann ULocalBind IdDom SrcTemplateStage #
Bindings that are enabled in local blocks (where or let).
type LocalBinds = Ann ULocalBinds IdDom SrcTemplateStage #
Local bindings attached to a declaration ( where x = 42
)
type FixitySignature = Ann UFixitySignature IdDom SrcTemplateStage #
A fixity signature ( infixl 5 +, -
).
type TypeSignature = Ann UTypeSignature IdDom SrcTemplateStage #
A type signature ( f :: Int -> Int
)
type TyVar = Ann UTyVar IdDom SrcTemplateStage #
Type variable declarations (with possible kind annotation)
type Assertion = Ann UAssertion IdDom SrcTemplateStage #
A single assertion in the context
type KindConstraint = Ann UKindConstraint IdDom SrcTemplateStage #
Kind constraint ( :: * -> *
)
type PromotedKind = Ann (UPromoted UKind) IdDom SrcTemplateStage #
Values promoted to the kind level
type CaseRhs = Ann UCaseRhs IdDom SrcTemplateStage #
Right hand side of a match (possible with guards): ( -> 3
or | x == 1 -> 3; | otherwise -> 4
)
type GuardedCaseRhs = Ann UGuardedCaseRhs IdDom SrcTemplateStage #
A guarded right-hand side of pattern matches binding ( | x > 3 -> 2
)
type FieldUpdate = Ann UFieldUpdate IdDom SrcTemplateStage #
Field update expressions
type TupSecElem = Ann UTupSecElem IdDom SrcTemplateStage #
An element of a tuple section that can be an expression or missing (indicating a value from a parameter)
type ExprPragma = Ann UExprPragma IdDom SrcTemplateStage #
Pragmas that can be applied to expressions
type ArrowApp = Ann UArrowAppl IdDom SrcTemplateStage #
Arrow directions
type ListCompBody = Ann UListCompBody IdDom SrcTemplateStage #
Body of a list comprehension: ( | x <- [1..10]
)
type QuasiQuote = Ann UQuasiQuote IdDom SrcTemplateStage #
Template haskell quasi-quotation: [quoter|str]
type QualifiedName = Ann UQualifiedName IdDom SrcTemplateStage #
Possible qualified names. Contains also implicit names.
Linear implicit parameter: %x
. Non-linear implicit parameter: ?x
.
type StringNode = Ann UStringNode IdDom SrcTemplateStage #
Program elements formatted as string literals (import packages, pragma texts)
type MaybeContext = AnnMaybe UContext #
type MaybeDeriving = AnnMaybe UDeriving #
type MaybeLocalBinds = AnnMaybe ULocalBinds #
type MaybeClassBody = AnnMaybe UClassBody #
type MaybeInstBody = AnnMaybe UInstBody #
type MaybeExportSpecs = AnnMaybe UExportSpecs #
type MaybeImportSource = AnnMaybe UImportSource #
type MaybeImportSafe = AnnMaybe UImportSafe #
type MaybeImportSpec = AnnMaybe UImportSpec #
type MaybeModuleHead = AnnMaybe UModuleHead #
type MaybeModulePragma = AnnMaybe UModulePragma #
type MaybeSubSpec = AnnMaybe USubSpec #
type MaybeStringNode = AnnMaybe UStringNode #
type MaybeSafety = AnnMaybe USafety #
type MaybePhaseControl = AnnMaybe UPhaseControl #
type MaybeConlikeAnnot = AnnMaybe UConlikeAnnot #
type MaybeFunDeps = AnnMaybe UFunDeps #
type PatternList = AnnList UPattern #
type OperatorList = AnnList UOperator #
type LocalBindList = AnnList ULocalBind #
type IESpecList = AnnList UIESpec #
type RhsGuardList = AnnList URhsGuard #
type GuardedRhsList = AnnList UGuardedRhs #
type ConDeclList = AnnList UConDecl #
type TypeEqnList = AnnList UTypeEqn #
type FieldDeclList = AnnList UFieldDecl #
type FieldUpdateList = AnnList UFieldUpdate #
type GadtConDeclList = AnnList UGadtConDecl #
type ClassElementList = AnnList UClassElement #
type InstBodyDeclList = AnnList UInstBodyDecl #
type InstanceHeadList = AnnList UInstanceHead #
type ListCompBodyList = AnnList UListCompBody #
type ExportSpecList = AnnList UExportSpec #
type FilePragmaList = AnnList UFilePragma #
type ImportDeclList = AnnList UImportDecl #
type PatternFieldList = AnnList UPatternField #
type AssertionList = AnnList UAssertion #
type CompStmtList = AnnList UCompStmt #
type RuleVarList = AnnList URuleVar #
type FunDepList = AnnList UFunDep #
type TupSecElemList = AnnList UTupSecElem #
type CmdAltList = AnnList UCmdAlt #
type CmdStmtList = AnnList UCmdStmt #
type StringNodeList = AnnList UStringNode #
type NamePartList = AnnList UNamePart #
type DerivingList = AnnList UDeriving #
data RefactorException Source #
Exceptions that can occur while loading modules or during internal operations (not during performing the refactor).
Constructors
IllegalExtensions [String] | |
SourceCodeProblem ErrorMessages | |
UnknownException String |
Instances
Show RefactorException Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods showsPrec :: Int -> RefactorException -> ShowS # show :: RefactorException -> String # showList :: [RefactorException] -> ShowS # | |
Exception RefactorException Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods toException :: RefactorException -> SomeException # |
data RefactorChange Source #
Change in the project, modification or removal of a module.
Constructors
ContentChanged | |
Fields | |
ModuleRemoved | |
Fields | |
ModuleCreated | |
Instances
Show RefactorChange Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods showsPrec :: Int -> RefactorChange -> ShowS # show :: RefactorChange -> String # showList :: [RefactorChange] -> ShowS # |
data SourceFileKey Source #
Module name and marker to separate .hs-boot module definitions. Specifies a source file in a working directory.
Constructors
SourceFileKey | |
Fields |
Instances
Eq SourceFileKey Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods (==) :: SourceFileKey -> SourceFileKey -> Bool # (/=) :: SourceFileKey -> SourceFileKey -> Bool # | |
Ord SourceFileKey Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods compare :: SourceFileKey -> SourceFileKey -> Ordering # (<) :: SourceFileKey -> SourceFileKey -> Bool # (<=) :: SourceFileKey -> SourceFileKey -> Bool # (>) :: SourceFileKey -> SourceFileKey -> Bool # (>=) :: SourceFileKey -> SourceFileKey -> Bool # max :: SourceFileKey -> SourceFileKey -> SourceFileKey # min :: SourceFileKey -> SourceFileKey -> SourceFileKey # | |
Show SourceFileKey Source # | |
Defined in Language.Haskell.Tools.Refactor.Representation Methods showsPrec :: Int -> SourceFileKey -> ShowS # show :: SourceFileKey -> String # showList :: [SourceFileKey] -> ShowS # |
type ModuleDom = (SourceFileKey, UnnamedModule) Source #
The name of the module and the AST
type UnnamedModule = Ann UModule IdDom SrcTemplateStage Source #
A type for the input and result of refactoring a module
moduleSourceFile :: String -> FilePath Source #
Transforms module name to a .hs file name relative to the source root directory.
sourceFileModule :: FilePath -> String Source #
Transforms a source root relative file name into module name.
data RefactorCtx Source #
The information a refactoring can use
Constructors
RefactorCtx | |
Fields
|
Instances
Monad m => MonadReader RefactorCtx (LocalRefactorT m) Source # | |
Defined in Language.Haskell.Tools.Refactor.Monad Methods ask :: LocalRefactorT m RefactorCtx # local :: (RefactorCtx -> RefactorCtx) -> LocalRefactorT m a -> LocalRefactorT m a # reader :: (RefactorCtx -> a) -> LocalRefactorT m a # |
newtype LocalRefactorT m a Source #
Input and output information for the refactoring TODO: use multiple states instead of Either
Constructors
LocalRefactorT | |
Fields
|
Instances
type LocalRefactor = LocalRefactorT Refactor Source #
The refactoring monad for a given module
type ProjectRefactoring = [ModuleDom] -> Refactor [RefactorChange] Source #
The type of a refactoring that affects the whole project.
type Refactoring = ModuleDom -> [ModuleDom] -> Refactor [RefactorChange] Source #
The type of a refactoring
type LocalRefactoring = UnnamedModule -> LocalRefactor UnnamedModule Source #
A refactoring that only affects one module
class Monad m => RefactorMonad m where Source #
A monad that can be used to refactor
Instances
RefactorMonad Refactor Source # | |
RefactorMonad LocalRefactor Source # | |
Defined in Language.Haskell.Tools.Refactor.Monad Methods refactError :: String -> LocalRefactor a Source # liftGhc :: Ghc a -> LocalRefactor a Source # | |
RefactorMonad m => RefactorMonad (StateT s m) Source # | |
RefactorMonad m => RefactorMonad (StateT s m) Source # | |
class NamedElement d => BindingElem d where Source #
A type class for handling definitions that can appear as both top-level and local definitions
Methods
sigBind :: Simple Partial (Ann d IdDom SrcTemplateStage) TypeSignature Source #
Accesses a type signature definition in a local or top-level definition
valBind :: Simple Partial (Ann d IdDom SrcTemplateStage) ValueBind Source #
Accesses a value or function definition in a local or top-level definition
fixitySig :: Simple Partial (Ann d IdDom SrcTemplateStage) FixitySignature Source #
Accesses a type signature definition in a local or top-level definition
createTypeSig :: TypeSignature -> Ann d IdDom SrcTemplateStage Source #
Creates a new definition from a type signature
createBinding :: ValueBind -> Ann d IdDom SrcTemplateStage Source #
Creates a new definition from a value or function definition
createFixitySig :: FixitySignature -> Ann d IdDom SrcTemplateStage Source #
Creates a new fixity signature
isTypeSig :: Ann d IdDom SrcTemplateStage -> Bool Source #
Checks if a given definition is a type signature
isBinding :: Ann d IdDom SrcTemplateStage -> Bool Source #
Checks if a given definition is a function or value binding
isFixitySig :: Ann d IdDom SrcTemplateStage -> Bool Source #
Checks if a given definition is a fixity signature
Instances
getValBindInList :: BindingElem d => RealSrcSpan -> AnnList d -> Maybe ValueBind Source #
valBindsInList :: BindingElem d => Simple Traversal (AnnList d) ValueBind Source #
debugMaybeT :: Monad m => MaybeT m a -> MaybeT m a Source #
Displays True iff the wrapped value is a Just
showOutputable :: Outputable a => a -> String Source #
setMinimalIndent :: SourceInfoTraversal elem => Int -> elem dom SrcTemplateStage -> elem dom SrcTemplateStage Source #
Set the minimal indentation recursively for a part of the AST
filterList :: SourceInfoTraversal e => (Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> AnnList e Source #
Filters the elements of the list. By default it removes the separator before the element. Of course, if the first element is removed, the following separator is removed as well.
filterListIndexed :: SourceInfoTraversal e => (Int -> Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> AnnList e Source #
filterListSt :: SourceInfoTraversal e => (Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> LocalRefactor (AnnList e) Source #
A version of filterList that cares about keeping non-removable code elements (like preprocessor pragmas)
filterListIndexedSt :: SourceInfoTraversal e => (Int -> Ann e IdDom SrcTemplateStage -> Bool) -> AnnList e -> LocalRefactor (AnnList e) Source #
A version of filterListIndexed that cares about keeping non-removable code elements (like preprocessor pragmas)
notSublist :: [Int] -> [a] -> [a] Source #
Selects all but the given indices from a list
insertWhere :: Bool -> Ann e IdDom SrcTemplateStage -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> AnnList e -> AnnList e Source #
Inserts the element in the places where the two positioning functions (one checks the element before, one the element after) allows the placement.
insertIndex :: (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> (Maybe (Ann e IdDom SrcTemplateStage) -> Bool) -> [Ann e IdDom SrcTemplateStage] -> Maybe Int Source #
Checks where the element will be inserted given the two positioning functions.
zipWithSeparators :: AnnList e -> [(([SourceTemplateTextElem], SrcSpan), Ann e IdDom SrcTemplateStage)] Source #
Gets the elements and separators from a list. The first separator is zipped to the second element. To the first element, the "" string is zipped.
replaceWithJust :: Ann e IdDom SrcTemplateStage -> AnnMaybe e -> AnnMaybe e Source #
replaceWithNothing :: AnnMaybe e -> AnnMaybe e Source #
removeEmptyBnds :: Simple Traversal Module ValueBind -> Simple Traversal Module Expr -> Module -> Module Source #
Remove the container (where or let) when the last binding is removed.
normalizeElements :: [Ann e dom SrcTemplateStage] -> [Ann e dom SrcTemplateStage] Source #
Puts the elements in the orginal order and remove duplicates (elements with the same source range)
groupElemsBy :: Ord k => (a -> k) -> [a] -> [[a]] Source #
Groups elements together into equivalence groups.
reprElems :: [[a]] -> [(a, [a])] Source #
Chooses a representative element for each equivalence group, and pairs them with their corresponding group.
equivalenceGroupsBy :: Ord k => (a -> k) -> [a] -> [(a, [a])] Source #
Sorts the elements of a list into equivalence groups based on a function, then chooses a representative element for each group, and pairs them with their corresponding group.
fromMaybeT :: Monad m => a -> MaybeT m a -> m a Source #
fromMaybeTM :: Monad m => m a -> MaybeT m a -> m a Source #
runRefactor :: ModuleDom -> [ModuleDom] -> Refactoring -> Ghc (Either String [RefactorChange]) Source #
Performs the given refactoring, transforming it into a Ghc action
localRefactoring :: LocalRefactoring -> Refactoring Source #
Wraps a refactoring that only affects one module. Performs the per-module finishing touches.
localRefactoringRes :: ((UnnamedModule -> UnnamedModule) -> a -> a) -> UnnamedModule -> LocalRefactor a -> Refactor a Source #
Transform the result of the local refactoring
insertText :: SourceInfoTraversal p => [(SrcSpan, String, String)] -> p dom SrcTemplateStage -> p dom SrcTemplateStage Source #
Re-inserts the elements removed from the AST that should be kept (for example preprocessor directives)
addGeneratedImports :: [Name] -> Module -> Module Source #
Adds the imports that bring names into scope that are needed by the refactoring
qualifiedName :: Name -> String Source #
referenceName' :: ([String] -> Name -> Ann nt IdDom SrcTemplateStage) -> Name -> LocalRefactor (Ann nt IdDom SrcTemplateStage) Source #
Create a name that references the definition. Generates an import if the definition is not yet imported.
referenceBy :: ([String] -> Name -> Ann nt IdDom SrcTemplateStage) -> Name -> [Ann UImportDecl IdDom SrcTemplateStage] -> Ann nt IdDom SrcTemplateStage Source #
Reference the name by the shortest suitable import
data UnsupportedExtension Source #
Constructors
UnsupportedExtension String |
Instances
Show UnsupportedExtension Source # | |
Defined in Language.Haskell.Tools.Refactor.Prepare Methods showsPrec :: Int -> UnsupportedExtension -> ShowS # show :: UnsupportedExtension -> String # showList :: [UnsupportedExtension] -> ShowS # | |
Exception UnsupportedExtension Source # | |
Defined in Language.Haskell.Tools.Refactor.Prepare Methods toException :: UnsupportedExtension -> SomeException # fromException :: SomeException -> Maybe UnsupportedExtension # |
type TypedModule = Ann UModule IdDom SrcTemplateStage Source #
The final version of our AST, with type infromation added
tryRefactor :: (RealSrcSpan -> Refactoring) -> String -> ModuleName -> IO () Source #
A quick function to try the refactorings
correctRefactorSpan :: UnnamedModule -> RealSrcSpan -> RealSrcSpan Source #
Adjust the source range to be applied to the refactored module
useFlags :: [String] -> Ghc ([String], DynFlags -> DynFlags) Source #
Set the given flags for the GHC session. Also gives back a change function that you can use to apply the settings to any flags. Prints out errors and warnings
pprWarning :: Warn -> SDoc Source #
reloadPkgDb :: Ghc () Source #
Reloads the package database based on the session flags
initGhcFlags :: Ghc () Source #
Initialize GHC flags to default values that support refactoring
initGhcFlagsForTest :: Ghc () Source #
useDirs :: [FilePath] -> Ghc () Source #
Use the given source directories when searching for imported modules
deregisterDirs :: [FilePath] -> Ghc () Source #
Don't use the given source directories when searching for imported modules
toFileName :: FilePath -> ModuleName -> FilePath Source #
Translates module name and working directory into the name of the file where the given module should be defined
toBootFileName :: FilePath -> ModuleName -> FilePath Source #
Translates module name and working directory into the name of the file where the boot module should be defined
getSourceDir :: ModSummary -> IO FilePath Source #
Get the source directory where the module is located.
getModSumOrig :: ModSummary -> FilePath Source #
Gets the path to the source file of the module.
keyFromMS :: ModSummary -> SourceFileKey Source #
getModSumName :: ModSummary -> String Source #
Gets the module name
loadModuleAST :: FilePath -> ModuleName -> Ghc TypedModule Source #
Load the AST of a module given by the working directory and module name.
loadModule :: FilePath -> ModuleName -> Ghc ModSummary Source #
Load the summary of a module given by the working directory and module name.
parseTyped :: ModSummary -> Ghc TypedModule Source #
Get the typed representation of a Haskell module.
trfProblem :: String -> a Source #
withAlteredDynFlags :: GhcMonad m => (DynFlags -> m DynFlags) -> m a -> m a Source #
Modifies the dynamic flags for performing a ghc task
forceCodeGen :: ModSummary -> ModSummary Source #
Forces the code generation for a given module
codeGenDfs :: DynFlags -> DynFlags Source #
forceAsmGen :: ModSummary -> ModSummary Source #
Forces ASM code generation for a given module
modSumNormalizeFlags :: ModSummary -> ModSummary Source #
Normalizes the flags for a module summary
normalizeFlags :: DynFlags -> DynFlags Source #
Removes all flags that are unintelligable for refactoring
readSrcSpan :: String -> RealSrcSpan Source #
Read a source range from our textual format: line:col-line:col
or line:col
readSrcLoc :: String -> RealSrcLoc Source #
Read a source location from our format: line:col
data RefactoringChoice Source #
The signature and behavior of one refactoring that can be executed.
Constructors
NamingRefactoring | |
Fields
| |
NamingRefactoringIndent | |
Fields
| |
SelectionRefactoring | |
Fields | |
ModuleRefactoring | |
Fields | |
ProjectRefactoring | |
Fields |
Arguments
:: [RefactoringChoice] | The set of available refactorings |
-> [String] | The refactoring command |
-> Either FilePath ModuleDom | The module in which the refactoring is performed |
-> [ModuleDom] | Other modules |
-> Ghc (Either String [RefactorChange]) |
Executes a given command (choosen from the set of available refactorings) on the selected module and given other modules.
refactorCommands :: [RefactoringChoice] -> [String] Source #
Gets the name of possible refactorings.
Instances
Eq Severity Source # | |
Show Severity Source # | |
Generic Severity Source # | |
ToJSON Severity Source # | |
Defined in Language.Haskell.Tools.Refactor.Querying Methods toEncoding :: Severity -> Encoding toJSONList :: [Severity] -> Value toEncodingList :: [Severity] -> Encoding | |
type Rep Severity Source # | |
Defined in Language.Haskell.Tools.Refactor.Querying type Rep Severity = D1 (MetaData "Severity" "Language.Haskell.Tools.Refactor.Querying" "haskell-tools-refactor-1.1.1.0-6rN5kFHgkT84ROl6XoQzhz" False) (C1 (MetaCons "Error" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Warning" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Info" PrefixI False) (U1 :: Type -> Type))) |
Instances
Eq Marker Source # | |
Show Marker Source # | |
Generic Marker Source # | |
ToJSON Marker Source # | |
Defined in Language.Haskell.Tools.Refactor.Querying Methods toEncoding :: Marker -> Encoding toJSONList :: [Marker] -> Value toEncodingList :: [Marker] -> Encoding | |
type Rep Marker Source # | |
Defined in Language.Haskell.Tools.Refactor.Querying type Rep Marker = D1 (MetaData "Marker" "Language.Haskell.Tools.Refactor.Querying" "haskell-tools-refactor-1.1.1.0-6rN5kFHgkT84ROl6XoQzhz" False) (C1 (MetaCons "Marker" PrefixI True) (S1 (MetaSel (Just "location") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: (S1 (MetaSel (Just "severity") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Severity) :*: S1 (MetaSel (Just "message") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))) |
data QueryChoice Source #
Constructors
LocationQuery | |
Fields
| |
GlobalQuery | |
Fields
|
data QueryValue Source #
Constructors
GeneralQuery Value | |
MarkerQuery [Marker] |
Instances
decompQuery :: QueryValue -> (QueryType, Value) Source #
queryCommands :: [QueryChoice] -> [String] Source #
queryError :: String -> QueryMonad a Source #
Different classes of definitions that have different kind of names.
Constructors
Variable | Normal value definitions: functions, variables |
Ctor | Data constructors |
ValueOperator | Functions with operator-like names |
DataCtorOperator | Constructors with operator-like names |
SynonymOperator | UType definitions with operator-like names |
classifyName :: RefactorMonad m => Name -> m NameClass Source #
Get which category does a given name belong to
nameValid :: NameClass -> String -> Maybe String Source #
Check if a given name is valid for a given kind of definition
isOperatorChar :: Char -> Bool Source #
instHeadSemName :: InstanceHead -> Maybe Name Source #
assertionQNames :: Assertion -> [QualifiedName] Source #
Collects the qualified names of the class heads in an assertion.
assertionSemNames :: Assertion -> [Name] Source #
Collects the semantic names of the class heads in an assertion.
nameFromType :: Type -> Maybe Name Source #
Extracts the name of a type. In case of a type application, it finds the type being applied. It works only for unambiguous types, so it won't work for tuples.
type ClosedTyFam = CoAxiom Branched Source #
hasConstraintKind :: Type -> Bool Source #
lookupTypeFromId :: (HasIdInfo' id, GhcMonad m) => id -> MaybeT m Type Source #
Looks up the Type of an entity with an Id of any locality. If the entity being scrutinised is a type variable, it fails.
typeOrKindFromId :: HasIdInfo' id => id -> Type Source #
Looks up the Type or the Kind of an entity that has an Id. Note: In some cases we only get the Kind of the Id (e.g. for type constructors)
lookupTypeFromGlobalName :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Type Source #
Looks up a GHC Type from a Haskell Tools Name (given the name is global) For an identifier, it returns its type. For a data constructor, it returns its type. For a pattern synonym, it returns its builder's type. For a type synonym constructor, it returns its right-hand side. For a coaxiom, it fails.
lookupTypeSynRhs :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Type Source #
Looks up the right-hand side (GHC representation) of a Haskell Tools Name corresponding to a type synonym
lookupClassWith :: GhcMonad m => (a -> MaybeT m Name) -> a -> MaybeT m Class Source #
Looks up a GHC.Class from something that has a type class constructor in it Fails if the argument does not contain a class type constructor
lookupClass :: (GhcMonad m, HasNameInfo' n) => n -> MaybeT m Class Source #
lookupClassFromInstance :: GhcMonad m => InstanceHead -> MaybeT m Class Source #
semanticsTypeSynRhs :: GhcMonad m => Type -> MaybeT m Type Source #
Looks up the right-hand side (GHC representation) of a Haskell Tools Type corresponding to a type synonym
semanticsType :: GhcMonad m => Type -> MaybeT m Type Source #
Converts a global Haskell Tools type to a GHC type
isNewtypeTyCon :: TyThing -> Bool Source #
satisfies :: (HasNameInfo' n, GhcMonad m) => (TyThing -> Maybe a) -> (a -> Bool) -> n -> MaybeT m Bool Source #
Looks up the given name, extracts something out of it. If the extraction is not succesful, it returns False, if it is successful, then checks the result against the predicate. The reasoning behind this, is that the predicate can only be satisfied by a proper name.
isClassTyConNameM :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Bool Source #
Decides whether a given name is a type family constructor. Fails if the lookup is not successful.
isVanillaDataConNameM :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m Bool Source #
Decides whether a given name is a standard Haskell98 data constructor. Fails if the lookup is not successful.
lookupClosedTyFam :: (HasNameInfo' n, GhcMonad m) => n -> MaybeT m ClosedTyFam Source #
Looks up a closed type family from a name.
coAxiomFromTyThing :: TyThing -> Maybe (CoAxiom Branched) Source #
Extract the CoAxioms from a TyThing representing a closed type family.
hasTyVarHead :: Type -> Bool Source #
Determines whether a Type itself has a type variable head.
data Ann (elem :: Type -> Type -> Type) dom stage #
An element of the AST keeping extra information.
Instances
class HasSourceInfo e where #
Associated Types
type SourceInfoType e :: Type #
Methods
srcInfo :: Simple Lens e (SourceInfoType e) #
Instances
HasSourceInfo (AnnMaybeG elem dom stage) | |
Defined in Language.Haskell.Tools.AST.Ann Associated Types type SourceInfoType (AnnMaybeG elem dom stage) :: Type # Methods srcInfo :: Simple Lens (AnnMaybeG elem dom stage) (SourceInfoType (AnnMaybeG elem dom stage)) # | |
HasSourceInfo (AnnListG elem dom stage) | |
Defined in Language.Haskell.Tools.AST.Ann Associated Types type SourceInfoType (AnnListG elem dom stage) :: Type # Methods srcInfo :: Simple Lens (AnnListG elem dom stage) (SourceInfoType (AnnListG elem dom stage)) # | |
HasSourceInfo (Ann elem dom stage) | |
Defined in Language.Haskell.Tools.AST.Ann Associated Types type SourceInfoType (Ann elem dom stage) :: Type # Methods srcInfo :: Simple Lens (Ann elem dom stage) (SourceInfoType (Ann elem dom stage)) # |
Extracts or modifies the concrete range corresponding to a given source info. In case of lists and optional elements, it may not contain the elements inside.
Instances
annListElems :: Lens (AnnListG elem dom stage) (AnnListG elem dom stage) [Ann elem dom stage] [Ann elem dom stage] #
annListAnnot :: Lens (AnnListG elem dom stage) (AnnListG elem dom stage) (NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage)) (NodeInfo (SemanticInfo dom (AnnListG elem)) (ListInfo stage)) #
annMaybe :: Lens (AnnMaybeG elem dom stage) (AnnMaybeG elem dom stage) (Maybe (Ann elem dom stage)) (Maybe (Ann elem dom stage)) #
isAnnNothing :: AnnMaybeG e d s -> Bool #
type Domain d = (Typeable d, Data d, SemanticInfo' d SemaInfoDefaultCls ~ NoSemanticInfo, Data (SemanticInfo' d SemaInfoNameCls), Data (SemanticInfo' d SemaInfoLitCls), Data (SemanticInfo' d SemaInfoExprCls), Data (SemanticInfo' d SemaInfoImportCls), Data (SemanticInfo' d SemaInfoModuleCls), Data (SemanticInfo' d SemaInfoWildcardCls)) #
A semantic domain for the AST. The semantic domain maps semantic information for the different types of nodes in the AST. The kind of semantic domain for an AST depends on which stages of the compilation it passed. However after transforming the GHC representation to our AST, the domain stays the same. The domain is not applied to the AST elements that are generated while refactoring.
With this domain, semantic information can be parameterized. In practice it is only used if the compilation cannot proceed past the type checking phase.
Instances
(Data name, Typeable name) => Data (Dom name) | |
Defined in Language.Haskell.Tools.AST.Ann Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dom name -> c (Dom name) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Dom name) # toConstr :: Dom name -> Constr # dataTypeOf :: Dom name -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Dom name)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Dom name)) # gmapT :: (forall b. Data b => b -> b) -> Dom name -> Dom name # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dom name -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dom name -> r # gmapQ :: (forall d. Data d => d -> u) -> Dom name -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Dom name -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dom name -> m (Dom name) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dom name -> m (Dom name) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dom name -> m (Dom name) # | |
type SemanticInfo' (Dom n) SemaInfoDefaultCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoWildcardCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoModuleCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoImportCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoExprCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoLitCls | |
Defined in Language.Haskell.Tools.AST.Ann | |
type SemanticInfo' (Dom n) SemaInfoNameCls | |
Defined in Language.Haskell.Tools.AST.Ann |
Instances
shortShowSpan :: SrcSpan -> String #
A short form of showing a range, without file name, for debugging purposes.
shortShowSpanWithFile :: SrcSpan -> String #
data SrcTemplateStage #
A stage where the annotation controls how the original source code can be retrieved from the AST. A source template is assigned to each node. It has holes where the content of an other node should be printed and ranges for the source code of the node.
Instances
class SourceInfoTraversal (a :: Type -> Type -> Type) where #
A class for traversing source information in an AST
Methods
sourceInfoTraverseUp :: Monad f => SourceInfoTrf f st1 st2 -> f () -> f () -> a dom st1 -> f (a dom st2) #
sourceInfoTraverseDown :: Monad f => SourceInfoTrf f st1 st2 -> f () -> f () -> a dom st1 -> f (a dom st2) #
sourceInfoTraverse :: Monad f => SourceInfoTrf f st1 st2 -> a dom st1 -> f (a dom st2) #
Instances
data SourceTemplateTextElem #
Constructors
NormalText | |
Fields | |
StayingText | |
Fields |
Instances
data UnsupportedExtension Source #
Constructors
UnsupportedExtension String |
Instances
Show UnsupportedExtension Source # | |
Defined in Language.Haskell.Tools.Refactor.Prepare Methods showsPrec :: Int -> UnsupportedExtension -> ShowS # show :: UnsupportedExtension -> String # showList :: [UnsupportedExtension] -> ShowS # | |
Exception UnsupportedExtension Source # | |
Defined in Language.Haskell.Tools.Refactor.Prepare Methods toException :: UnsupportedExtension -> SomeException # fromException :: SomeException -> Maybe UnsupportedExtension # |
data SpliceInsertionProblem #
Constructors
SpliceInsertionProblem SrcSpan String |
Instances
Show SpliceInsertionProblem | |
Defined in Language.Haskell.Tools.BackendGHC.Monad Methods showsPrec :: Int -> SpliceInsertionProblem -> ShowS # show :: SpliceInsertionProblem -> String # showList :: [SpliceInsertionProblem] -> ShowS # | |
Exception SpliceInsertionProblem | |
Defined in Language.Haskell.Tools.BackendGHC.Monad |
data ConvertionProblem #
Instances
Show ConvertionProblem | |
Defined in Language.Haskell.Tools.BackendGHC.Utils Methods showsPrec :: Int -> ConvertionProblem -> ShowS # show :: ConvertionProblem -> String # showList :: [ConvertionProblem] -> ShowS # | |
Exception ConvertionProblem | |
Defined in Language.Haskell.Tools.BackendGHC.Utils Methods toException :: ConvertionProblem -> SomeException # |
data TransformationProblem #
Constructors
TransformationProblem String |
Instances
Show TransformationProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeTemplate Methods showsPrec :: Int -> TransformationProblem -> ShowS # show :: TransformationProblem -> String # showList :: [TransformationProblem] -> ShowS # | |
Exception TransformationProblem | |
data BreakUpProblem #
Constructors
BreakUpProblem | |
Fields
|
Instances
Show BreakUpProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeToRangeTemplate Methods showsPrec :: Int -> BreakUpProblem -> ShowS # show :: BreakUpProblem -> String # showList :: [BreakUpProblem] -> ShowS # | |
Exception BreakUpProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.Prepare.RangeToRangeTemplate Methods toException :: BreakUpProblem -> SomeException # |
data PrettyPrintProblem #
Constructors
PrettyPrintProblem String |
Instances
Show PrettyPrintProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.RoseTree Methods showsPrec :: Int -> PrettyPrintProblem -> ShowS # show :: PrettyPrintProblem -> String # showList :: [PrettyPrintProblem] -> ShowS # | |
Exception PrettyPrintProblem | |
Defined in Language.Haskell.Tools.PrettyPrint.RoseTree Methods toException :: PrettyPrintProblem -> SomeException # fromException :: SomeException -> Maybe PrettyPrintProblem # |