camfort-1.0.1: CamFort - Cambridge Fortran infrastructure
Safe HaskellNone
LanguageHaskell2010

Language.Fortran.Model.Vars

Description

Defines a strongly-typed representation of Fortran variables.

Synopsis

Variables

data FortranVar a where Source #

A variable representing a value of type a. Contains a D a as proof that the type has a corresponding Fortran type, and the variable name.

Constructors

FortranVar :: D a -> NamePair -> FortranVar a 

Instances

Instances details
VerifiableVar FortranVar Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Associated Types

type VarKey FortranVar

type VarSym FortranVar :: Type -> Type

type VarEnv FortranVar

Methods

symForVar :: FortranVar a -> VarEnv FortranVar -> Symbolic (VarSym FortranVar a)

varKey :: FortranVar a -> VarKey FortranVar

eqVarTypes :: FortranVar a -> FortranVar b -> Maybe (a :~: b)

castVarSym :: FortranVar a -> VarSym FortranVar b -> Maybe (VarSym FortranVar a)

Pretty1 FortranVar Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Methods

pretty1 :: forall (a :: k). FortranVar a -> String

prettys1Prec :: forall (a :: k). Int -> FortranVar a -> ShowS

type VarEnv FortranVar Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type VarKey FortranVar Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type VarKey FortranVar = UniqueName
type VarSym FortranVar Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type VarSym FortranVar = CoreRepr

Names

data NamePair Source #

A NamePair represents the name of some part of a Fortran program, including the human-readable source name and the unique name.

Constructors

NamePair 

Instances

Instances details
Eq NamePair Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Ord NamePair Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Show NamePair Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Pretty NamePair Source #

The pretty version of a NamePair is its source name.

Instance details

Defined in Language.Fortran.Model.Vars

newtype SourceName Source #

Newtype wrapper for source-level variable names.

Constructors

SourceName 

Fields

Instances

Instances details
Eq SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Ord SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Show SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Wrapped SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Associated Types

type Unwrapped SourceName

Methods

_Wrapped' :: Iso' SourceName (Unwrapped SourceName)

Pretty SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

SourceName ~ t => Rewrapped SourceName t Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type Unwrapped SourceName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type Unwrapped SourceName = Name

newtype UniqueName Source #

Newtype wrapper for unique variable names.

Constructors

UniqueName 

Fields

Instances

Instances details
Eq UniqueName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Ord UniqueName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Show UniqueName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Wrapped UniqueName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

Associated Types

type Unwrapped UniqueName

Methods

_Wrapped' :: Iso' UniqueName (Unwrapped UniqueName)

UniqueName ~ t => Rewrapped UniqueName t Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type Unwrapped UniqueName Source # 
Instance details

Defined in Language.Fortran.Model.Vars

type Unwrapped UniqueName = Name