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

Language.Fortran.Model.Op.Meta

Description

For expressions over normal Fortran values that are not representable in Fortran.

Documentation

data MetaOp t a where Source #

Constructors

MopWriteArr :: D (Array i v) -> t (Array i v) -> t i -> t v -> MetaOp t (Array i v) 
MopWriteData :: RElem '(fname, a) fields i => D (Record rname fields) -> SSymbol fname -> D a -> t (Record rname fields) -> t a -> MetaOp t (Record rname fields)

In MopWriteData recD fSymb valD recVal valVal:

  • recD is the type of the record we're writing to.
  • fSymb is the name of the field we're writing to.
  • valD is the type of the value we're writing to.
  • recVal is the original value of the record.
  • valVal is the new value of the field to write to.
MopCoercePrim :: Prim p k b -> t (PrimS a) -> MetaOp t (PrimS b) 

Instances

Instances details
HFunctor MetaOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.Meta

Methods

hmap :: forall t t' (a :: u). (forall (b :: u). t b -> t' b) -> MetaOp t a -> MetaOp t' a

HTraversable MetaOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.Meta

Methods

htraverse :: forall f t t' (a :: u). Applicative f => (forall (b :: u). t b -> f (t' b)) -> MetaOp t a -> f (MetaOp t' a)

hsequence :: forall f (t :: u -> Type) (a :: u). Applicative f => MetaOp (Compose f t) a -> f (MetaOp t a)

Pretty2 MetaOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.Meta

Methods

pretty2 :: forall (t :: k -> Type) (a :: k1). Pretty1 t => MetaOp t a -> String

prettys2Prec :: forall (t :: k -> Type) (a :: k1). Pretty1 t => Int -> MetaOp t a -> ShowS

MonadEvalFortran r m => HFoldableAt (Compose m HighRepr :: Type -> Type) MetaOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.Meta

Methods

hfoldMap :: forall t (a :: k). (forall (b :: k). t b -> Compose m HighRepr b) -> MetaOp t a -> Compose m HighRepr a

MonadEvalFortran r m => HFoldableAt (Compose m CoreRepr :: Type -> Type) MetaOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.Meta

Methods

hfoldMap :: forall t (a :: k). (forall (b :: k). t b -> Compose m CoreRepr b) -> MetaOp t a -> Compose m CoreRepr a