module Language.Haskell.Tools.AST.Gen.Utils where
import Control.Reference
import Language.Haskell.Tools.AST
import Language.Haskell.Tools.AnnTrf.SourceTemplate
import Language.Haskell.Tools.AnnTrf.SourceTemplateHelpers
fromTemplate :: src -> NodeInfo sema src
fromTemplate = NodeInfo (error "The newly generated AST fragments have no semantic info")
emptyList :: AnnList e dom SrcTemplateStage
emptyList = AnnList (fromTemplate list) []
replaceWithJust :: Ann e dom SrcTemplateStage -> AnnMaybe e dom SrcTemplateStage -> AnnMaybe e dom SrcTemplateStage
replaceWithJust e (AnnMaybe temp _) = AnnMaybe temp (Just e)
justVal :: Ann e dom SrcTemplateStage -> AnnMaybe e dom SrcTemplateStage
justVal e = AnnMaybe (fromTemplate opt) (Just e)
noth :: AnnMaybe e dom SrcTemplateStage
noth = AnnMaybe (fromTemplate opt) Nothing
mkAnn :: SpanInfo SrcTemplateStage -> e dom SrcTemplateStage -> Ann e dom SrcTemplateStage
mkAnn temp = Ann (fromTemplate temp)
wrapperAnn :: e dom SrcTemplateStage -> Ann e dom SrcTemplateStage
wrapperAnn = mkAnn child
mkAnnList :: ListInfo SrcTemplateStage -> [Ann e dom SrcTemplateStage] -> AnnList e dom SrcTemplateStage
mkAnnList temp = AnnList (fromTemplate temp)
mkAnnMaybe :: OptionalInfo SrcTemplateStage -> Maybe (Ann e dom SrcTemplateStage) -> AnnMaybe e dom SrcTemplateStage
mkAnnMaybe temp = AnnMaybe (fromTemplate temp)