verifiable-expressions-0.4.0: An intermediate language for Hoare logic style verification.

Safe HaskellNone
LanguageHaskell2010

Language.Expression.GeneralOp

Documentation

data GeneralOp op t a where Source #

Constructors

Op :: op as r -> Rec t as -> GeneralOp op t r 

Instances

EvalOpAt k1 k2 op => HFoldableAt k1 k2 (GeneralOp k1 k1 op) Source # 

Methods

hfoldMap :: (forall (b :: k2). t b -> GeneralOp k1 k1 op b) -> h t a -> GeneralOp k1 k1 op a Source #

PrettyOp k1 k2 op => Pretty2 k1 k2 (GeneralOp k1 k2 op) Source # 

Methods

pretty2 :: Pretty1 (GeneralOp k1 k2 op) t => op t a -> String Source #

prettys2Prec :: Pretty1 (GeneralOp k1 k2 op) t => Int -> op t a -> ShowS Source #

HTraversable u (GeneralOp u u op) Source # 

Methods

htraverse :: Applicative f => (forall (b :: GeneralOp u u op). t b -> f (t' b)) -> h t a -> f (h t' a) Source #

hsequence :: Applicative f => h (Compose * (GeneralOp u u op) f t) a -> f (h t a) Source #

HFunctor u (GeneralOp u u op) Source # 

Methods

hmap :: (forall (b :: GeneralOp u u op). t b -> t' b) -> h t a -> h t' a Source #

Num (WhileExpr l AlgReal) # 
IsString s => IsString (WhileExpr s AlgReal) # 

class EvalOpAt k op where Source #

Minimal complete definition

evalMany

Methods

evalMany :: op as r -> Rec k as -> k r Source #

class PrettyOp op where Source #

Minimal complete definition

prettysPrecOp

Methods

prettysPrecOp :: Pretty1 t => Int -> op as a -> Rec t as -> ShowS Source #

Instances