haskell-tools-ast-0.2.0.0: Haskell AST for efficient tooling

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.Base

Description

Simple AST elements of Haskell

Synopsis

Documentation

data Operator dom stage Source #

Constructors

BacktickOp

Backtick operator name: a mod b

Fields

NormalOp 

Fields

Instances

type Rep (Operator dom stage) Source # 
type Rep (Operator dom stage) = D1 (MetaData "Operator" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "BacktickOp" PrefixI True) (S1 (MetaSel (Just Symbol "_operatorName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QualifiedName dom stage)))) (C1 (MetaCons "NormalOp" PrefixI True) (S1 (MetaSel (Just Symbol "_operatorName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QualifiedName dom stage)))))

data Name dom stage Source #

Constructors

ParenName

Parenthesized name: foldl (+) 0

Fields

NormalName 

Fields

ImplicitName

Implicit name: ?var

Fields

Instances

type Rep (Name dom stage) Source # 
type Rep (Name dom stage) = D1 (MetaData "Name" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "ParenName" PrefixI True) (S1 (MetaSel (Just Symbol "_simpleName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QualifiedName dom stage)))) ((:+:) (C1 (MetaCons "NormalName" PrefixI True) (S1 (MetaSel (Just Symbol "_simpleName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QualifiedName dom stage)))) (C1 (MetaCons "ImplicitName" PrefixI True) (S1 (MetaSel (Just Symbol "_simpleName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann QualifiedName dom stage))))))

data QualifiedName dom stage Source #

Possible qualified names. Contains also implicit names. Linear implicit parameter: %x. Non-linear implicit parameter: ?x.

Constructors

QualifiedName 

Fields

Instances

type Rep (QualifiedName dom stage) Source # 
type Rep (QualifiedName dom stage) = D1 (MetaData "QualifiedName" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "QualifiedName" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_qualifiers") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnList UnqualName dom stage))) (S1 (MetaSel (Just Symbol "_unqualifiedName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann UnqualName dom stage)))))

data UnqualName dom stage Source #

Parts of a qualified name.

Constructors

UnqualName 

Instances

type Rep (UnqualName dom stage) Source # 
type Rep (UnqualName dom stage) = D1 (MetaData "UnqualName" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "UnqualName" PrefixI True) (S1 (MetaSel (Just Symbol "_simpleNameStr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data StringNode dom stage Source #

Program elements formatted as string literals (import packages, pragma texts)

Constructors

StringNode 

Instances

type Rep (StringNode dom stage) Source # 
type Rep (StringNode dom stage) = D1 (MetaData "StringNode" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "StringNode" PrefixI True) (S1 (MetaSel (Just Symbol "_stringNodeStr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data ModuleName dom stage Source #

The name of a module

Constructors

ModuleName 

Instances

type Rep (ModuleName dom stage) Source # 
type Rep (ModuleName dom stage) = D1 (MetaData "ModuleName" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ModuleName" PrefixI True) (S1 (MetaSel (Just Symbol "_moduleNameString") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data DataOrNewtypeKeyword dom stage Source #

The data or the newtype keyword to define ADTs.

Instances

type Rep (DataOrNewtypeKeyword dom stage) Source # 
type Rep (DataOrNewtypeKeyword dom stage) = D1 (MetaData "DataOrNewtypeKeyword" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "DataKeyword" PrefixI False) U1) (C1 (MetaCons "NewtypeKeyword" PrefixI False) U1))

data DoKind dom stage Source #

Keywords do or mdo to start a do-block

Constructors

DoKeyword 
MDoKeyword 

Instances

type Rep (DoKind dom stage) Source # 
type Rep (DoKind dom stage) = D1 (MetaData "DoKind" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "DoKeyword" PrefixI False) U1) (C1 (MetaCons "MDoKeyword" PrefixI False) U1))

data TypeKeyword dom stage Source #

The type keyword used to qualify that the type and not the constructor of the same name is referred

Constructors

TypeKeyword 

Instances

type Rep (TypeKeyword dom stage) Source # 
type Rep (TypeKeyword dom stage) = D1 (MetaData "TypeKeyword" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "TypeKeyword" PrefixI False) U1)

data OverlapPragma dom stage Source #

Recognised overlaps for overlap pragmas. Can be applied to class declarations and class instance declarations.

Constructors

EnableOverlap

OVERLAP pragma

DisableOverlap

NO_OVERLAP pragma

Overlappable

OVERLAPPABLE pragma

Overlapping

OVERLAPPING pragma

Overlaps

OVERLAPS pragma

IncoherentOverlap

INCOHERENT pragma

Instances

type Rep (OverlapPragma dom stage) Source # 
type Rep (OverlapPragma dom stage) = D1 (MetaData "OverlapPragma" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) ((:+:) (C1 (MetaCons "EnableOverlap" PrefixI False) U1) ((:+:) (C1 (MetaCons "DisableOverlap" PrefixI False) U1) (C1 (MetaCons "Overlappable" PrefixI False) U1))) ((:+:) (C1 (MetaCons "Overlapping" PrefixI False) U1) ((:+:) (C1 (MetaCons "Overlaps" PrefixI False) U1) (C1 (MetaCons "IncoherentOverlap" PrefixI False) U1))))

data CallConv dom stage Source #

Call conventions of foreign functions

Instances

type Rep (CallConv dom stage) Source # 
type Rep (CallConv dom stage) = D1 (MetaData "CallConv" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "StdCall" PrefixI False) U1) (C1 (MetaCons "CCall" PrefixI False) U1)) ((:+:) (C1 (MetaCons "CPlusPlus" PrefixI False) U1) (C1 (MetaCons "DotNet" PrefixI False) U1))) ((:+:) ((:+:) (C1 (MetaCons "Jvm" PrefixI False) U1) (C1 (MetaCons "Js" PrefixI False) U1)) ((:+:) (C1 (MetaCons "JavaScript" PrefixI False) U1) (C1 (MetaCons "CApi" PrefixI False) U1))))

data ArrowAppl dom stage Source #

Constructors

LeftAppl

Left arrow application: -<

RightAppl

Right arrow application: >-

LeftHighApp

Left arrow high application: -<<

RightHighApp

Right arrow high application: >>-

Instances

type Rep (ArrowAppl dom stage) Source # 
type Rep (ArrowAppl dom stage) = D1 (MetaData "ArrowAppl" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) ((:+:) (C1 (MetaCons "LeftAppl" PrefixI False) U1) (C1 (MetaCons "RightAppl" PrefixI False) U1)) ((:+:) (C1 (MetaCons "LeftHighApp" PrefixI False) U1) (C1 (MetaCons "RightHighApp" PrefixI False) U1)))

data Safety dom stage Source #

Safety annotations for foreign calls

Instances

type Rep (Safety dom stage) Source # 
type Rep (Safety dom stage) = D1 (MetaData "Safety" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) ((:+:) (C1 (MetaCons "Safe" PrefixI False) U1) (C1 (MetaCons "ThreadSafe" PrefixI False) U1)) ((:+:) (C1 (MetaCons "Unsafe" PrefixI False) U1) (C1 (MetaCons "Interruptible" PrefixI False) U1)))

data Assoc dom stage Source #

Associativity of an operator.

Constructors

AssocNone

non-associative operator (declared with infix)

AssocLeft

left-associative operator (declared with infixl)

AssocRight

right-associative operator (declared with infixr)

Instances

type Rep (Assoc dom stage) Source # 
type Rep (Assoc dom stage) = D1 (MetaData "Assoc" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "AssocNone" PrefixI False) U1) ((:+:) (C1 (MetaCons "AssocLeft" PrefixI False) U1) (C1 (MetaCons "AssocRight" PrefixI False) U1)))

data Role dom stage Source #

Instances

type Rep (Role dom stage) Source # 
type Rep (Role dom stage) = D1 (MetaData "Role" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) ((:+:) (C1 (MetaCons "Nominal" PrefixI False) U1) ((:+:) (C1 (MetaCons "Representational" PrefixI False) U1) (C1 (MetaCons "Phantom" PrefixI False) U1)))

data ConlikeAnnot dom stage Source #

Constructors

ConlikeAnnot 

Instances

type Rep (ConlikeAnnot dom stage) Source # 
type Rep (ConlikeAnnot dom stage) = D1 (MetaData "ConlikeAnnot" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "ConlikeAnnot" PrefixI False) U1)

data Precedence dom stage Source #

Numeric precedence of an operator

Constructors

Precedence 

Instances

type Rep (Precedence dom stage) Source # 
type Rep (Precedence dom stage) = D1 (MetaData "Precedence" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "Precedence" PrefixI True) (S1 (MetaSel (Just Symbol "_precedenceValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

data LineNumber dom stage Source #

Constructors

LineNumber 

Fields

Instances

type Rep (LineNumber dom stage) Source # 
type Rep (LineNumber dom stage) = D1 (MetaData "LineNumber" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "LineNumber" PrefixI True) (S1 (MetaSel (Just Symbol "_lineNumber") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))

data PhaseControl dom stage Source #

Controls the activation of a rewrite rule ( [1] )

Constructors

PhaseControl 

Fields

Instances

type Rep (PhaseControl dom stage) Source # 
type Rep (PhaseControl dom stage) = D1 (MetaData "PhaseControl" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "PhaseControl" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_phaseUntil") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AnnMaybe PhaseInvert dom stage))) (S1 (MetaSel (Just Symbol "_phaseNumber") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann PhaseNumber dom stage)))))

data PhaseNumber dom stage Source #

Phase number for rewrite rules

Constructors

PhaseNumber 

Fields

Instances

type Rep (PhaseNumber dom stage) Source # 
type Rep (PhaseNumber dom stage) = D1 (MetaData "PhaseNumber" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "PhaseNumber" PrefixI True) (S1 (MetaSel (Just Symbol "_phaseNum") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Integer)))

data PhaseInvert dom stage Source #

A tilde that marks the inversion of the phase number

Constructors

PhaseInvert 

Instances

type Rep (PhaseInvert dom stage) Source # 
type Rep (PhaseInvert dom stage) = D1 (MetaData "PhaseInvert" "Language.Haskell.Tools.AST.Base" "haskell-tools-ast-0.2.0.0-5y5XIph7fmGIUhHQZ35OfD" False) (C1 (MetaCons "PhaseInvert" PrefixI False) U1)