fortran-src-0.4.0: Parser and anlyses for Fortran standards 66, 77, 90 and 95.

Safe HaskellNone
LanguageHaskell2010

Language.Fortran.AST

Contents

Documentation

type A0 = () Source #

data AList t a Source #

Constructors

AList a SrcSpan [t a] 
Instances
Functor t => Functor (AList t) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> AList t a -> AList t b #

(<$) :: a -> AList t b -> AList t a #

Annotated (AList t) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

getAnnotation :: AList t a -> a Source #

setAnnotation :: a -> AList t a -> AList t a Source #

modifyAnnotation :: (a -> a) -> AList t a -> AList t a Source #

(Eq a, Eq (t a)) => Eq (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: AList t a -> AList t a -> Bool #

(/=) :: AList t a -> AList t a -> Bool #

(Typeable t, Data a, Data (t a)) => Data (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AList t a -> c (AList t a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (AList t a) #

toConstr :: AList t a -> Constr #

dataTypeOf :: AList t a -> DataType #

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (AList t a)) #

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (AList t a)) #

gmapT :: (forall b. Data b => b -> b) -> AList t a -> AList t a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AList t a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AList t a -> r #

gmapQ :: (forall d. Data d => d -> u) -> AList t a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AList t a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AList t a -> m (AList t a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AList t a -> m (AList t a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AList t a -> m (AList t a) #

(Show a, Show (t a)) => Show (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> AList t a -> ShowS #

show :: AList t a -> String #

showList :: [AList t a] -> ShowS #

Generic (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (AList t a) :: Type -> Type #

Methods

from :: AList t a -> Rep (AList t a) x #

to :: Rep (AList t a) x -> AList t a #

(Out a, Out (t a)) => Out (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> AList t a -> Doc #

doc :: AList t a -> Doc #

docList :: [AList t a] -> Doc #

(NFData a, NFData (t a)) => NFData (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: AList t a -> () #

Spanned (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

getSpan :: AList t a -> SrcSpan Source #

setSpan :: SrcSpan -> AList t a -> AList t a Source #

Pretty (e a) => Pretty (AList e a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

Methods

pprint' :: FortranVersion -> AList e a -> Doc Source #

FirstParameter (AList t a) a Source # 
Instance details

Defined in Language.Fortran.AST

Methods

getFirstParameter :: AList t a -> a Source #

setFirstParameter :: a -> AList t a -> AList t a Source #

SecondParameter (AList t a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (AList t a) Source # 
Instance details

Defined in Language.Fortran.AST

fromList :: Spanned (t a) => a -> [t a] -> AList t a Source #

fromList' :: Spanned (t a) => a -> [t a] -> Maybe (AList t a) Source #

fromReverseList :: Spanned (t ()) => [t ()] -> AList t () Source #

fromReverseList' :: Spanned (t ()) => [t ()] -> Maybe (AList t ()) Source #

aCons :: t a -> AList t a -> AList t a infixr 5 Source #

aReverse :: AList t a -> AList t a Source #

aStrip :: AList t a -> [t a] Source #

aStrip' :: Maybe (AList t a) -> [t a] Source #

aMap :: (t a -> r a) -> AList t a -> AList r a Source #

data BaseType Source #

Instances
Eq BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Data BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BaseType -> c BaseType #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BaseType #

toConstr :: BaseType -> Constr #

dataTypeOf :: BaseType -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BaseType) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BaseType) #

gmapT :: (forall b. Data b => b -> b) -> BaseType -> BaseType #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BaseType -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BaseType -> r #

gmapQ :: (forall d. Data d => d -> u) -> BaseType -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BaseType -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BaseType -> m BaseType #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BaseType -> m BaseType #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BaseType -> m BaseType #

Ord BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Show BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Generic BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep BaseType :: Type -> Type #

Methods

from :: BaseType -> Rep BaseType x #

to :: Rep BaseType x -> BaseType #

Out BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> BaseType -> Doc #

doc :: BaseType -> Doc #

docList :: [BaseType] -> Doc #

Binary BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Methods

put :: BaseType -> Put #

get :: Get BaseType #

putList :: [BaseType] -> Put #

NFData BaseType Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: BaseType -> () #

Pretty BaseType Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

type Rep BaseType Source # 
Instance details

Defined in Language.Fortran.AST

type Rep BaseType = D1 (MetaData "BaseType" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (((C1 (MetaCons "TypeInteger" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "TypeReal" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "TypeDoublePrecision" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "TypeComplex" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "TypeDoubleComplex" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "TypeLogical" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "TypeCharacter" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe CharacterLen)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String))) :+: C1 (MetaCons "TypeCustom" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))) :+: (C1 (MetaCons "ClassStar" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "ClassCustom" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) :+: C1 (MetaCons "TypeByte" PrefixI False) (U1 :: Type -> Type)))))

data CharacterLen Source #

Constructors

CharLenStar

specified with a *

CharLenColon

specified with a : (Fortran2003) FIXME, possibly, with a more robust const-exp:

CharLenExp

specified with a non-trivial expression

CharLenInt Int

specified with a constant integer

Instances
Eq CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Data CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CharacterLen -> c CharacterLen #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CharacterLen #

toConstr :: CharacterLen -> Constr #

dataTypeOf :: CharacterLen -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CharacterLen) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CharacterLen) #

gmapT :: (forall b. Data b => b -> b) -> CharacterLen -> CharacterLen #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CharacterLen -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CharacterLen -> r #

gmapQ :: (forall d. Data d => d -> u) -> CharacterLen -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> CharacterLen -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> CharacterLen -> m CharacterLen #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CharacterLen -> m CharacterLen #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CharacterLen -> m CharacterLen #

Ord CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Show CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Generic CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep CharacterLen :: Type -> Type #

Out CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Binary CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

NFData CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: CharacterLen -> () #

Pretty CharacterLen Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

type Rep CharacterLen Source # 
Instance details

Defined in Language.Fortran.AST

type Rep CharacterLen = D1 (MetaData "CharacterLen" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) ((C1 (MetaCons "CharLenStar" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CharLenColon" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CharLenExp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CharLenInt" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int))))

data TypeSpec a Source #

Constructors

TypeSpec a SrcSpan BaseType (Maybe (Selector a)) 
Instances
Functor TypeSpec Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> TypeSpec a -> TypeSpec b #

(<$) :: a -> TypeSpec b -> TypeSpec a #

Annotated TypeSpec Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: TypeSpec a -> TypeSpec a -> Bool #

(/=) :: TypeSpec a -> TypeSpec a -> Bool #

Data a => Data (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeSpec a -> c (TypeSpec a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (TypeSpec a) #

toConstr :: TypeSpec a -> Constr #

dataTypeOf :: TypeSpec a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (TypeSpec a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (TypeSpec a)) #

gmapT :: (forall b. Data b => b -> b) -> TypeSpec a -> TypeSpec a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeSpec a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeSpec a -> r #

gmapQ :: (forall d. Data d => d -> u) -> TypeSpec a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeSpec a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeSpec a -> m (TypeSpec a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeSpec a -> m (TypeSpec a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeSpec a -> m (TypeSpec a) #

Show a => Show (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> TypeSpec a -> ShowS #

show :: TypeSpec a -> String #

showList :: [TypeSpec a] -> ShowS #

Generic (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (TypeSpec a) :: Type -> Type #

Methods

from :: TypeSpec a -> Rep (TypeSpec a) x #

to :: Rep (TypeSpec a) x -> TypeSpec a #

Out a => Out (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> TypeSpec a -> Doc #

doc :: TypeSpec a -> Doc #

docList :: [TypeSpec a] -> Doc #

NFData a => NFData (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: TypeSpec a -> () #

Spanned (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (TypeSpec a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (TypeSpec a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (TypeSpec a) Source # 
Instance details

Defined in Language.Fortran.AST

data Selector a Source #

Constructors

Selector a SrcSpan (Maybe (Expression a)) (Maybe (Expression a)) 
Instances
Functor Selector Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Selector a -> Selector b #

(<$) :: a -> Selector b -> Selector a #

Annotated Selector Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Selector a -> Selector a -> Bool #

(/=) :: Selector a -> Selector a -> Bool #

Data a => Data (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Selector a -> c (Selector a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Selector a) #

toConstr :: Selector a -> Constr #

dataTypeOf :: Selector a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Selector a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Selector a)) #

gmapT :: (forall b. Data b => b -> b) -> Selector a -> Selector a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Selector a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Selector a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Selector a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Selector a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Selector a -> m (Selector a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Selector a -> m (Selector a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Selector a -> m (Selector a) #

Show a => Show (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Selector a -> ShowS #

show :: Selector a -> String #

showList :: [Selector a] -> ShowS #

Generic (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Selector a) :: Type -> Type #

Methods

from :: Selector a -> Rep (Selector a) x #

to :: Rep (Selector a) x -> Selector a #

Out a => Out (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Selector a -> Doc #

doc :: Selector a -> Doc #

docList :: [Selector a] -> Doc #

NFData a => NFData (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Selector a -> () #

Spanned (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (Selector a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (Selector a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (Selector a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Selector a) Source # 
Instance details

Defined in Language.Fortran.AST

data MetaInfo Source #

Constructors

MetaInfo 
Instances
Eq MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Data MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MetaInfo -> c MetaInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MetaInfo #

toConstr :: MetaInfo -> Constr #

dataTypeOf :: MetaInfo -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c MetaInfo) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MetaInfo) #

gmapT :: (forall b. Data b => b -> b) -> MetaInfo -> MetaInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MetaInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MetaInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> MetaInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> MetaInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> MetaInfo -> m MetaInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MetaInfo -> m MetaInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MetaInfo -> m MetaInfo #

Show MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Generic MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep MetaInfo :: Type -> Type #

Methods

from :: MetaInfo -> Rep MetaInfo x #

to :: Rep MetaInfo x -> MetaInfo #

Out MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> MetaInfo -> Doc #

doc :: MetaInfo -> Doc #

docList :: [MetaInfo] -> Doc #

NFData MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: MetaInfo -> () #

type Rep MetaInfo Source # 
Instance details

Defined in Language.Fortran.AST

type Rep MetaInfo = D1 (MetaData "MetaInfo" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (C1 (MetaCons "MetaInfo" PrefixI True) (S1 (MetaSel (Just "miVersion") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FortranVersion) :*: S1 (MetaSel (Just "miFilename") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data ProgramFile a Source #

Constructors

ProgramFile MetaInfo [ProgramUnit a] 
Instances
Functor ProgramFile Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> ProgramFile a -> ProgramFile b #

(<$) :: a -> ProgramFile b -> ProgramFile a #

Eq a => Eq (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Data a => Data (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProgramFile a -> c (ProgramFile a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProgramFile a) #

toConstr :: ProgramFile a -> Constr #

dataTypeOf :: ProgramFile a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProgramFile a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProgramFile a)) #

gmapT :: (forall b. Data b => b -> b) -> ProgramFile a -> ProgramFile a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProgramFile a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProgramFile a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ProgramFile a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ProgramFile a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProgramFile a -> m (ProgramFile a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProgramFile a -> m (ProgramFile a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProgramFile a -> m (ProgramFile a) #

Show a => Show (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Generic (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (ProgramFile a) :: Type -> Type #

Methods

from :: ProgramFile a -> Rep (ProgramFile a) x #

to :: Rep (ProgramFile a) x -> ProgramFile a #

Out a => Out (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> ProgramFile a -> Doc #

doc :: ProgramFile a -> Doc #

docList :: [ProgramFile a] -> Doc #

NFData a => NFData (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: ProgramFile a -> () #

Spanned (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

IndentablePretty (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

type Rep (ProgramFile a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ProgramFile a) = D1 (MetaData "ProgramFile" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (C1 (MetaCons "ProgramFile" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 MetaInfo) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ProgramUnit a])))

data ProgramUnit a Source #

Instances
Functor ProgramUnit Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> ProgramUnit a -> ProgramUnit b #

(<$) :: a -> ProgramUnit b -> ProgramUnit a #

Annotated ProgramUnit Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Data a => Data (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProgramUnit a -> c (ProgramUnit a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProgramUnit a) #

toConstr :: ProgramUnit a -> Constr #

dataTypeOf :: ProgramUnit a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProgramUnit a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProgramUnit a)) #

gmapT :: (forall b. Data b => b -> b) -> ProgramUnit a -> ProgramUnit a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProgramUnit a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProgramUnit a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ProgramUnit a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ProgramUnit a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProgramUnit a -> m (ProgramUnit a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProgramUnit a -> m (ProgramUnit a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProgramUnit a -> m (ProgramUnit a) #

Show a => Show (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Generic (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (ProgramUnit a) :: Type -> Type #

Methods

from :: ProgramUnit a -> Rep (ProgramUnit a) x #

to :: Rep (ProgramUnit a) x -> ProgramUnit a #

Out a => Out (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> ProgramUnit a -> Doc #

doc :: ProgramUnit a -> Doc #

docList :: [ProgramUnit a] -> Doc #

NFData a => NFData (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: ProgramUnit a -> () #

Spanned (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

Named (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

IndentablePretty [ProgramUnit a] Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

IndentablePretty (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (ProgramUnit a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (ProgramUnit a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ProgramUnit a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ProgramUnit a) = D1 (MetaData "ProgramUnit" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) ((C1 (MetaCons "PUMain" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Name)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [ProgramUnit a]))))) :+: (C1 (MetaCons "PUModule" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Name) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [ProgramUnit a]))))) :+: C1 (MetaCons "PUSubroutine" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (PrefixSuffix a)))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Name) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [ProgramUnit a]))))))) :+: (C1 (MetaCons "PUFunction" PrefixI False) (((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (TypeSpec a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (PrefixSuffix a)))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Name) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [ProgramUnit a])))))) :+: (C1 (MetaCons "PUBlockData" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Name)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]))) :+: C1 (MetaCons "PUComment" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comment a)))))))

data Prefix a Source #

Instances
Functor Prefix Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Prefix a -> Prefix b #

(<$) :: a -> Prefix b -> Prefix a #

Eq a => Eq (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Prefix a -> Prefix a -> Bool #

(/=) :: Prefix a -> Prefix a -> Bool #

Data a => Data (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Prefix a -> c (Prefix a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Prefix a) #

toConstr :: Prefix a -> Constr #

dataTypeOf :: Prefix a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Prefix a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Prefix a)) #

gmapT :: (forall b. Data b => b -> b) -> Prefix a -> Prefix a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Prefix a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Prefix a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Prefix a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Prefix a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Prefix a -> m (Prefix a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Prefix a -> m (Prefix a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Prefix a -> m (Prefix a) #

Show a => Show (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Prefix a -> ShowS #

show :: Prefix a -> String #

showList :: [Prefix a] -> ShowS #

Generic (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Prefix a) :: Type -> Type #

Methods

from :: Prefix a -> Rep (Prefix a) x #

to :: Rep (Prefix a) x -> Prefix a #

Out a => Out (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Prefix a -> Doc #

doc :: Prefix a -> Doc #

docList :: [Prefix a] -> Doc #

NFData a => NFData (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Prefix a -> () #

Spanned (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

FirstParameter (Prefix a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (Prefix a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Prefix a) Source # 
Instance details

Defined in Language.Fortran.AST

data Suffix a Source #

Constructors

SfxBind a SrcSpan (Maybe (Expression a)) 
Instances
Functor Suffix Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Suffix a -> Suffix b #

(<$) :: a -> Suffix b -> Suffix a #

Eq a => Eq (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Suffix a -> Suffix a -> Bool #

(/=) :: Suffix a -> Suffix a -> Bool #

Data a => Data (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Suffix a -> c (Suffix a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Suffix a) #

toConstr :: Suffix a -> Constr #

dataTypeOf :: Suffix a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Suffix a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Suffix a)) #

gmapT :: (forall b. Data b => b -> b) -> Suffix a -> Suffix a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Suffix a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Suffix a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Suffix a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Suffix a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Suffix a -> m (Suffix a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Suffix a -> m (Suffix a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Suffix a -> m (Suffix a) #

Show a => Show (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Suffix a -> ShowS #

show :: Suffix a -> String #

showList :: [Suffix a] -> ShowS #

Generic (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Suffix a) :: Type -> Type #

Methods

from :: Suffix a -> Rep (Suffix a) x #

to :: Rep (Suffix a) x -> Suffix a #

Out a => Out (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Suffix a -> Doc #

doc :: Suffix a -> Doc #

docList :: [Suffix a] -> Doc #

NFData a => NFData (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Suffix a -> () #

Spanned (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (Suffix a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (Suffix a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (Suffix a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Suffix a) Source # 
Instance details

Defined in Language.Fortran.AST

newtype Comment a Source #

Constructors

Comment String 
Instances
Functor Comment Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Comment a -> Comment b #

(<$) :: a -> Comment b -> Comment a #

Eq (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Comment a -> Comment a -> Bool #

(/=) :: Comment a -> Comment a -> Bool #

Data a => Data (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Comment a -> c (Comment a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Comment a) #

toConstr :: Comment a -> Constr #

dataTypeOf :: Comment a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Comment a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Comment a)) #

gmapT :: (forall b. Data b => b -> b) -> Comment a -> Comment a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Comment a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Comment a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Comment a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Comment a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Comment a -> m (Comment a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Comment a -> m (Comment a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Comment a -> m (Comment a) #

Show (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Comment a -> ShowS #

show :: Comment a -> String #

showList :: [Comment a] -> ShowS #

Generic (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Comment a) :: Type -> Type #

Methods

from :: Comment a -> Rep (Comment a) x #

to :: Rep (Comment a) x -> Comment a #

Out a => Out (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Comment a -> Doc #

doc :: Comment a -> Doc #

docList :: [Comment a] -> Doc #

NFData a => NFData (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Comment a -> () #

type Rep (Comment a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Comment a) = D1 (MetaData "Comment" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" True) (C1 (MetaCons "Comment" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)))

data Block a Source #

Instances
Functor Block Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Block a -> Block b #

(<$) :: a -> Block b -> Block a #

Conditioned Block Source # 
Instance details

Defined in Language.Fortran.AST

Labeled Block Source # 
Instance details

Defined in Language.Fortran.AST

Annotated Block Source # 
Instance details

Defined in Language.Fortran.AST

Methods

getAnnotation :: Block a -> a Source #

setAnnotation :: a -> Block a -> Block a Source #

modifyAnnotation :: (a -> a) -> Block a -> Block a Source #

Eq a => Eq (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Block a -> Block a -> Bool #

(/=) :: Block a -> Block a -> Bool #

Data a => Data (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Block a -> c (Block a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Block a) #

toConstr :: Block a -> Constr #

dataTypeOf :: Block a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Block a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Block a)) #

gmapT :: (forall b. Data b => b -> b) -> Block a -> Block a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Block a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Block a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Block a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Block a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Block a -> m (Block a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Block a -> m (Block a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Block a -> m (Block a) #

Show a => Show (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Block a -> ShowS #

show :: Block a -> String #

showList :: [Block a] -> ShowS #

Generic (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Block a) :: Type -> Type #

Methods

from :: Block a -> Rep (Block a) x #

to :: Rep (Block a) x -> Block a #

Out a => Out (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Block a -> Doc #

doc :: Block a -> Doc #

docList :: [Block a] -> Doc #

NFData a => NFData (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Block a -> () #

Spanned (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

IndentablePretty [Block a] Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

IndentablePretty (Block a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (Block a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (Block a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Block a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Block a) = D1 (MetaData "Block" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (((C1 (MetaCons "BlStatement" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Statement a)))) :+: C1 (MetaCons "BlForall" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ForallHeader a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))))) :+: (C1 (MetaCons "BlIf" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Maybe (Expression a)])) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [[Block a]]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a)))))) :+: C1 (MetaCons "BlCase" PrefixI False) (((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Maybe (AList Index a)])) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [[Block a]]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a)))))))) :+: ((C1 (MetaCons "BlDo" PrefixI False) (((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (DoSpecification a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a)))))) :+: C1 (MetaCons "BlDoWhile" PrefixI False) (((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :*: ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))))) :+: (C1 (MetaCons "BlInterface" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ProgramUnit a]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Block a])))) :+: C1 (MetaCons "BlComment" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comment a)))))))

data Statement a Source #

Constructors

StDeclaration a SrcSpan (TypeSpec a) (Maybe (AList Attribute a)) (AList Declarator a) 
StStructure a SrcSpan (Maybe String) (AList StructureItem a) 
StIntent a SrcSpan Intent (AList Expression a) 
StOptional a SrcSpan (AList Expression a) 
StPublic a SrcSpan (Maybe (AList Expression a)) 
StPrivate a SrcSpan (Maybe (AList Expression a)) 
StProtected a SrcSpan (Maybe (AList Expression a)) 
StSave a SrcSpan (Maybe (AList Expression a)) 
StDimension a SrcSpan (AList Declarator a) 
StAllocatable a SrcSpan (AList Declarator a) 
StAsynchronous a SrcSpan (AList Declarator a) 
StPointer a SrcSpan (AList Declarator a) 
StTarget a SrcSpan (AList Declarator a) 
StValue a SrcSpan (AList Declarator a) 
StVolatile a SrcSpan (AList Declarator a) 
StData a SrcSpan (AList DataGroup a) 
StAutomatic a SrcSpan (AList Declarator a) 
StNamelist a SrcSpan (AList Namelist a) 
StParameter a SrcSpan (AList Declarator a) 
StExternal a SrcSpan (AList Expression a) 
StIntrinsic a SrcSpan (AList Expression a) 
StCommon a SrcSpan (AList CommonGroup a) 
StEquivalence a SrcSpan (AList (AList Expression) a) 
StFormat a SrcSpan (AList FormatItem a) 
StImplicit a SrcSpan (Maybe (AList ImpList a)) 
StEntry a SrcSpan (Expression a) (Maybe (AList Expression a)) (Maybe (Expression a)) 
StInclude a SrcSpan (Expression a) (Maybe [Block a]) 
StDo a SrcSpan (Maybe String) (Maybe (Expression a)) (Maybe (DoSpecification a)) 
StDoWhile a SrcSpan (Maybe String) (Maybe (Expression a)) (Expression a) 
StEnddo a SrcSpan (Maybe String) 
StCycle a SrcSpan (Maybe (Expression a)) 
StExit a SrcSpan (Maybe (Expression a)) 
StIfLogical a SrcSpan (Expression a) (Statement a) 
StIfArithmetic a SrcSpan (Expression a) (Expression a) (Expression a) (Expression a) 
StIfThen a SrcSpan (Maybe String) (Expression a) 
StElse a SrcSpan (Maybe String) 
StElsif a SrcSpan (Maybe String) (Expression a) 
StEndif a SrcSpan (Maybe String) 
StSelectCase a SrcSpan (Maybe String) (Expression a) 
StCase a SrcSpan (Maybe String) (Maybe (AList Index a)) 
StEndcase a SrcSpan (Maybe String) 
StFunction a SrcSpan (Expression a) (AList Expression a) (Expression a) 
StExpressionAssign a SrcSpan (Expression a) (Expression a) 
StPointerAssign a SrcSpan (Expression a) (Expression a) 
StLabelAssign a SrcSpan (Expression a) (Expression a) 
StGotoUnconditional a SrcSpan (Expression a) 
StGotoAssigned a SrcSpan (Expression a) (Maybe (AList Expression a)) 
StGotoComputed a SrcSpan (AList Expression a) (Expression a) 
StCall a SrcSpan (Expression a) (Maybe (AList Argument a)) 
StReturn a SrcSpan (Maybe (Expression a)) 
StContinue a SrcSpan 
StStop a SrcSpan (Maybe (Expression a)) 
StPause a SrcSpan (Maybe (Expression a)) 
StRead a SrcSpan (AList ControlPair a) (Maybe (AList Expression a)) 
StRead2 a SrcSpan (Expression a) (Maybe (AList Expression a)) 
StWrite a SrcSpan (AList ControlPair a) (Maybe (AList Expression a)) 
StPrint a SrcSpan (Expression a) (Maybe (AList Expression a)) 
StTypePrint a SrcSpan (Expression a) (Maybe (AList Expression a)) 
StOpen a SrcSpan (AList ControlPair a) 
StClose a SrcSpan (AList ControlPair a) 
StFlush a SrcSpan (AList FlushSpec a) 
StInquire a SrcSpan (AList ControlPair a) 
StRewind a SrcSpan (AList ControlPair a) 
StRewind2 a SrcSpan (Expression a) 
StBackspace a SrcSpan (AList ControlPair a) 
StBackspace2 a SrcSpan (Expression a) 
StEndfile a SrcSpan (AList ControlPair a) 
StEndfile2 a SrcSpan (Expression a) 
StAllocate a SrcSpan (Maybe (TypeSpec a)) (AList Expression a) (Maybe (AList AllocOpt a)) 
StNullify a SrcSpan (AList Expression a) 
StDeallocate a SrcSpan (AList Expression a) (Maybe (AList AllocOpt a)) 
StWhere a SrcSpan (Expression a) (Statement a) 
StWhereConstruct a SrcSpan (Maybe String) (Expression a) 
StElsewhere a SrcSpan (Maybe String) (Maybe (Expression a)) 
StEndWhere a SrcSpan (Maybe String) 
StUse a SrcSpan (Expression a) (Maybe ModuleNature) Only (Maybe (AList Use a)) 
StModuleProcedure a SrcSpan (AList Expression a) 
StProcedure a SrcSpan (Maybe (ProcInterface a)) (Maybe (Attribute a)) (AList ProcDecl a) 
StType a SrcSpan (Maybe (AList Attribute a)) String 
StEndType a SrcSpan (Maybe String) 
StSequence a SrcSpan 
StForall a SrcSpan (Maybe String) (ForallHeader a) 
StForallStatement a SrcSpan (ForallHeader a) (Statement a) 
StEndForall a SrcSpan (Maybe String) 
StImport a SrcSpan (AList Expression a) 
StEnum a SrcSpan 
StEnumerator a SrcSpan (AList Declarator a) 
StEndEnum a SrcSpan 
StFormatBogus a SrcSpan String 
Instances
Functor Statement Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> Statement a -> Statement b #

(<$) :: a -> Statement b -> Statement a #

Conditioned Statement Source # 
Instance details

Defined in Language.Fortran.AST

Annotated Statement Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Statement a -> Statement a -> Bool #

(/=) :: Statement a -> Statement a -> Bool #

Data a => Data (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Statement a -> c (Statement a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Statement a) #

toConstr :: Statement a -> Constr #

dataTypeOf :: Statement a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Statement a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Statement a)) #

gmapT :: (forall b. Data b => b -> b) -> Statement a -> Statement a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Statement a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Statement a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Statement a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Statement a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Statement a -> m (Statement a) #

Show a => Show (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Generic (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (Statement a) :: Type -> Type #

Methods

from :: Statement a -> Rep (Statement a) x #

to :: Rep (Statement a) x -> Statement a #

Out a => Out (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Statement a -> Doc #

doc :: Statement a -> Doc #

docList :: [Statement a] -> Doc #

NFData a => NFData (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Statement a -> () #

Spanned (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (Statement a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (Statement a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (Statement a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Statement a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (Statement a) = D1 (MetaData "Statement" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) ((((((C1 (MetaCons "StDeclaration" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (TypeSpec a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Attribute a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a))))) :+: C1 (MetaCons "StStructure" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList StructureItem a))))) :+: (C1 (MetaCons "StIntent" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Intent) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: (C1 (MetaCons "StOptional" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: C1 (MetaCons "StPublic" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a)))))))) :+: ((C1 (MetaCons "StPrivate" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: (C1 (MetaCons "StProtected" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: C1 (MetaCons "StSave" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))))) :+: (C1 (MetaCons "StDimension" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: (C1 (MetaCons "StAllocatable" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: C1 (MetaCons "StAsynchronous" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))))))) :+: (((C1 (MetaCons "StPointer" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: C1 (MetaCons "StTarget" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a))))) :+: (C1 (MetaCons "StValue" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: (C1 (MetaCons "StVolatile" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: C1 (MetaCons "StData" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList DataGroup a))))))) :+: ((C1 (MetaCons "StAutomatic" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: (C1 (MetaCons "StNamelist" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Namelist a)))) :+: C1 (MetaCons "StParameter" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))))) :+: (C1 (MetaCons "StExternal" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: (C1 (MetaCons "StIntrinsic" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: C1 (MetaCons "StCommon" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList CommonGroup a))))))))) :+: ((((C1 (MetaCons "StEquivalence" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList (AList Expression) a)))) :+: C1 (MetaCons "StFormat" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList FormatItem a))))) :+: (C1 (MetaCons "StImplicit" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList ImpList a))))) :+: (C1 (MetaCons "StEntry" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a)))))) :+: C1 (MetaCons "StInclude" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe [Block a]))))))) :+: ((C1 (MetaCons "StDo" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (DoSpecification a)))))) :+: (C1 (MetaCons "StDoWhile" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: C1 (MetaCons "StEnddo" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))))) :+: (C1 (MetaCons "StCycle" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :+: (C1 (MetaCons "StExit" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :+: C1 (MetaCons "StIfLogical" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Statement a)))))))) :+: (((C1 (MetaCons "StIfArithmetic" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: C1 (MetaCons "StIfThen" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: (C1 (MetaCons "StElse" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :+: (C1 (MetaCons "StElsif" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: C1 (MetaCons "StEndif" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String))))))) :+: ((C1 (MetaCons "StSelectCase" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: (C1 (MetaCons "StCase" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Index a))))) :+: C1 (MetaCons "StEndcase" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))))) :+: (C1 (MetaCons "StFunction" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: (C1 (MetaCons "StExpressionAssign" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: C1 (MetaCons "StPointerAssign" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))))))))) :+: (((((C1 (MetaCons "StLabelAssign" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: C1 (MetaCons "StGotoUnconditional" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: (C1 (MetaCons "StGotoAssigned" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: (C1 (MetaCons "StGotoComputed" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: C1 (MetaCons "StCall" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Argument a)))))))) :+: ((C1 (MetaCons "StReturn" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :+: (C1 (MetaCons "StContinue" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :+: C1 (MetaCons "StStop" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))))) :+: (C1 (MetaCons "StPause" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))) :+: (C1 (MetaCons "StRead" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: C1 (MetaCons "StRead2" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))))))) :+: (((C1 (MetaCons "StWrite" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: C1 (MetaCons "StPrint" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a)))))) :+: (C1 (MetaCons "StTypePrint" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Expression a))))) :+: (C1 (MetaCons "StOpen" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)))) :+: C1 (MetaCons "StClose" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a))))))) :+: ((C1 (MetaCons "StFlush" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList FlushSpec a)))) :+: (C1 (MetaCons "StInquire" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)))) :+: C1 (MetaCons "StRewind" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)))))) :+: (C1 (MetaCons "StRewind2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: (C1 (MetaCons "StBackspace" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)))) :+: C1 (MetaCons "StBackspace2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))))))) :+: ((((C1 (MetaCons "StEndfile" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ControlPair a)))) :+: C1 (MetaCons "StEndfile2" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a))))) :+: (C1 (MetaCons "StAllocate" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (TypeSpec a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList AllocOpt a)))))) :+: (C1 (MetaCons "StNullify" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: C1 (MetaCons "StDeallocate" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList AllocOpt a)))))))) :+: ((C1 (MetaCons "StWhere" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Statement a)))) :+: (C1 (MetaCons "StWhereConstruct" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :+: C1 (MetaCons "StElsewhere" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a))))))) :+: (C1 (MetaCons "StEndWhere" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :+: (C1 (MetaCons "StUse" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expression a)))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ModuleNature)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Only) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Use a)))))) :+: C1 (MetaCons "StModuleProcedure" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))))))) :+: (((C1 (MetaCons "StProcedure" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (ProcInterface a))) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Attribute a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList ProcDecl a))))) :+: (C1 (MetaCons "StType" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (AList Attribute a))) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))) :+: C1 (MetaCons "StEndType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))))) :+: (C1 (MetaCons "StSequence" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :+: (C1 (MetaCons "StForall" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ForallHeader a)))) :+: C1 (MetaCons "StForallStatement" PrefixI False) ((S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ForallHeader a)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Statement a))))))) :+: ((C1 (MetaCons "StEndForall" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe String)))) :+: (C1 (MetaCons "StImport" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Expression a)))) :+: C1 (MetaCons "StEnum" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)))) :+: (C1 (MetaCons "StEnumerator" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (AList Declarator a)))) :+: (C1 (MetaCons "StEndEnum" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan)) :+: C1 (MetaCons "StFormatBogus" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 SrcSpan) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))))))))))

data ProcDecl a Source #

Constructors

ProcDecl a SrcSpan (Expression a) (Maybe (Expression a)) 
Instances
Functor ProcDecl Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> ProcDecl a -> ProcDecl b #

(<$) :: a -> ProcDecl b -> ProcDecl a #

Annotated ProcDecl Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: ProcDecl a -> ProcDecl a -> Bool #

(/=) :: ProcDecl a -> ProcDecl a -> Bool #

Data a => Data (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProcDecl a -> c (ProcDecl a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProcDecl a) #

toConstr :: ProcDecl a -> Constr #

dataTypeOf :: ProcDecl a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProcDecl a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProcDecl a)) #

gmapT :: (forall b. Data b => b -> b) -> ProcDecl a -> ProcDecl a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProcDecl a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProcDecl a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ProcDecl a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ProcDecl a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProcDecl a -> m (ProcDecl a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcDecl a -> m (ProcDecl a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcDecl a -> m (ProcDecl a) #

Show a => Show (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> ProcDecl a -> ShowS #

show :: ProcDecl a -> String #

showList :: [ProcDecl a] -> ShowS #

Generic (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (ProcDecl a) :: Type -> Type #

Methods

from :: ProcDecl a -> Rep (ProcDecl a) x #

to :: Rep (ProcDecl a) x -> ProcDecl a #

Out a => Out (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> ProcDecl a -> Doc #

doc :: ProcDecl a -> Doc #

docList :: [ProcDecl a] -> Doc #

NFData a => NFData (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: ProcDecl a -> () #

Spanned (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (ProcDecl a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (ProcDecl a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ProcDecl a) Source # 
Instance details

Defined in Language.Fortran.AST

data ProcInterface a Source #

Instances
Functor ProcInterface Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> ProcInterface a -> ProcInterface b #

(<$) :: a -> ProcInterface b -> ProcInterface a #

Annotated ProcInterface Source # 
Instance details

Defined in Language.Fortran.AST

Eq a => Eq (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Data a => Data (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ProcInterface a -> c (ProcInterface a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ProcInterface a) #

toConstr :: ProcInterface a -> Constr #

dataTypeOf :: ProcInterface a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ProcInterface a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ProcInterface a)) #

gmapT :: (forall b. Data b => b -> b) -> ProcInterface a -> ProcInterface a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ProcInterface a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ProcInterface a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ProcInterface a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ProcInterface a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ProcInterface a -> m (ProcInterface a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcInterface a -> m (ProcInterface a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ProcInterface a -> m (ProcInterface a) #

Show a => Show (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Generic (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (ProcInterface a) :: Type -> Type #

Out a => Out (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

NFData a => NFData (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: ProcInterface a -> () #

Spanned (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

Pretty (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

FirstParameter (ProcInterface a) a Source # 
Instance details

Defined in Language.Fortran.AST

SecondParameter (ProcInterface a) SrcSpan Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ProcInterface a) Source # 
Instance details

Defined in Language.Fortran.AST

data ForallHeader a Source #

Instances
Functor ForallHeader Source # 
Instance details

Defined in Language.Fortran.AST

Methods

fmap :: (a -> b) -> ForallHeader a -> ForallHeader b #

(<$) :: a -> ForallHeader b -> ForallHeader a #

Eq a => Eq (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Data a => Data (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForallHeader a -> c (ForallHeader a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ForallHeader a) #

toConstr :: ForallHeader a -> Constr #

dataTypeOf :: ForallHeader a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ForallHeader a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ForallHeader a)) #

gmapT :: (forall b. Data b => b -> b) -> ForallHeader a -> ForallHeader a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForallHeader a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForallHeader a -> r #

gmapQ :: (forall d. Data d => d -> u) -> ForallHeader a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ForallHeader a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForallHeader a -> m (ForallHeader a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForallHeader a -> m (ForallHeader a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForallHeader a -> m (ForallHeader a) #

Show a => Show (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Generic (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep (ForallHeader a) :: Type -> Type #

Methods

from :: ForallHeader a -> Rep (ForallHeader a) x #

to :: Rep (ForallHeader a) x -> ForallHeader a #

Out a => Out (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> ForallHeader a -> Doc #

doc :: ForallHeader a -> Doc #

docList :: [ForallHeader a] -> Doc #

NFData a => NFData (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: ForallHeader a -> () #

type Rep (ForallHeader a) Source # 
Instance details

Defined in Language.Fortran.AST

type Rep (ForallHeader a) = D1 (MetaData "ForallHeader" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (C1 (MetaCons "ForallHeader" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Name, Expression a, Expression a, Maybe (Expression a))]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Expression a)))))

data Only Source #

Constructors

Exclusive 
Permissive 
Instances
Eq Only Source # 
Instance details

Defined in Language.Fortran.AST

Methods

(==) :: Only -> Only -> Bool #

(/=) :: Only -> Only -> Bool #

Data Only Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Only -> c Only #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Only #

toConstr :: Only -> Constr #

dataTypeOf :: Only -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Only) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Only) #

gmapT :: (forall b. Data b => b -> b) -> Only -> Only #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Only -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Only -> r #

gmapQ :: (forall d. Data d => d -> u) -> Only -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Only -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Only -> m Only #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Only -> m Only #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Only -> m Only #

Show Only Source # 
Instance details

Defined in Language.Fortran.AST

Methods

showsPrec :: Int -> Only -> ShowS #

show :: Only -> String #

showList :: [Only] -> ShowS #

Generic Only Source # 
Instance details

Defined in Language.Fortran.AST

Associated Types

type Rep Only :: Type -> Type #

Methods

from :: Only -> Rep Only x #

to :: Rep Only x -> Only #

Out Only Source # 
Instance details

Defined in Language.Fortran.AST

Methods

docPrec :: Int -> Only -> Doc #

doc :: Only -> Doc #

docList :: [Only] -> Doc #

NFData Only Source # 
Instance details

Defined in Language.Fortran.AST

Methods

rnf :: Only -> () #

Pretty Only Source # 
Instance details

Defined in Language.Fortran.PrettyPrint

type Rep Only Source # 
Instance details

Defined in Language.Fortran.AST

type Rep Only = D1 (MetaData "Only" "Language.Fortran.AST" "fortran-src-0.4.0-6iUwcUBJgeJJnlH0SPB9We" False) (C1 (MetaCons "Exclusive" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Permissive" PrefixI False) (U1 :: Type -> Type))

data ModuleNature Source #

Instances
Eq ModuleNature Source # 
Instance details

Defined in Language.Fortran.AST

Data ModuleNature Source # 
Instance details

Defined in Language.Fortran.AST

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleNature -> c ModuleNature #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) ->