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

Language.Fortran.Model.Op.High

Description

Operators for expressions over lifted values

  • Lifting Fortran types to higher-level representations
  • Folds over arrays (sum, product)
  • High-level mathematical functions (factorial...)

Documentation

data HighOp t a where Source #

Constructors

HopLift :: LiftDOp t a -> HighOp t a 

Instances

Instances details
HFunctor HighOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

HTraversable HighOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

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

Pretty2 HighOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

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

(MonadReader r m, HasPrimReprHandlers r) => HFoldableAt (Compose m HighRepr :: Type -> Type) HighOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

data LiftDOp t a where Source #

Constructors

LiftDOp :: LiftD b a => t b -> LiftDOp t a 

Instances

Instances details
HFunctor LiftDOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

HTraversable LiftDOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

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

Pretty2 LiftDOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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

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

(MonadReader r m, HasPrimReprHandlers r) => HFoldableAt (Compose m HighRepr :: Type -> Type) LiftDOp Source # 
Instance details

Defined in Language.Fortran.Model.Op.High

Methods

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