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

Safe HaskellNone
LanguageHaskell2010

Language.Expression.Pretty

Contents

Description

Pretty printing for expressions.

Synopsis

Classes

class Pretty a where Source #

Minimal complete definition

pretty | prettysPrec

Methods

pretty :: a -> String Source #

prettysPrec :: Int -> a -> ShowS Source #

Instances
Pretty () Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty :: () -> String Source #

prettysPrec :: Int -> () -> ShowS Source #

Pretty String Source # 
Instance details

Defined in Language.Expression.Pretty

Pretty a => Pretty [a] Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty :: [a] -> String Source #

prettysPrec :: Int -> [a] -> ShowS Source #

Pretty a => Pretty (Maybe a) Source # 
Instance details

Defined in Language.Expression.Pretty

Pretty1 t => Pretty (t a) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty :: t a -> String Source #

prettysPrec :: Int -> t a -> ShowS Source #

(Pretty l, Pretty a) => Pretty (Command l a) Source # 
Instance details

Defined in Language.While.Syntax

(Pretty l, Pretty a) => Pretty (PropAnn l a) Source # 
Instance details

Defined in Language.While.Hoare

(Pretty2 expr, Pretty1 var, Pretty cmd) => Pretty (AnnSeq expr var cmd) Source # 
Instance details

Defined in Language.Verification.Conditions

Methods

pretty :: AnnSeq expr var cmd -> String Source #

prettysPrec :: Int -> AnnSeq expr var cmd -> ShowS Source #

(Pretty1 var, Pretty2 expr) => Pretty (Assignment expr var) Source # 
Instance details

Defined in Language.Verification.Conditions

Methods

pretty :: Assignment expr var -> String Source #

prettysPrec :: Int -> Assignment expr var -> ShowS Source #

prettys :: Pretty a => a -> ShowS Source #

class Pretty1 t where Source #

Minimal complete definition

pretty1 | prettys1Prec

Methods

pretty1 :: t a -> String Source #

prettys1Prec :: Int -> t a -> ShowS Source #

Instances
(Pretty2 f, Pretty1 t) => Pretty1 (f t :: k2 -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty1 :: f t a -> String Source #

prettys1Prec :: Int -> f t a -> ShowS Source #

Pretty1 (Const String :: k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Pretty l => Pretty1 (WhileVar l :: Type -> Type) Source # 
Instance details

Defined in Language.While.Syntax

prettys1 :: Pretty1 t => t a -> ShowS Source #

class Pretty2 op where Source #

Minimal complete definition

pretty2 | prettys2Prec

Methods

pretty2 :: Pretty1 t => op t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> op t a -> ShowS Source #

Instances
(Pretty3 h, Pretty2 s) => Pretty2 (h s :: (k3 -> Type) -> k4 -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => h s t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> h s t a -> ShowS Source #

Pretty1 t => Pretty2 (BV t :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t0 => BV t t0 a -> String Source #

prettys2Prec :: Pretty1 t0 => Int -> BV t t0 a -> ShowS Source #

Pretty2 op => Pretty2 (HFree op :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => HFree op t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> HFree op t a -> ShowS Source #

Pretty3 h => Pretty2 (SFree h :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => SFree h t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> SFree h t a -> ShowS Source #

(Pretty2 h, Pretty1 t) => Pretty2 (Scoped h t :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t0 => Scoped h t t0 a -> String Source #

prettys2Prec :: Pretty1 t0 => Int -> Scoped h t t0 a -> ShowS Source #

(Pretty2 h, Pretty1 t) => Pretty2 (Scope t h :: (k -> Type) -> k -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t0 => Scope t h t0 a -> String Source #

prettys2Prec :: Pretty1 t0 => Int -> Scope t h t0 a -> ShowS Source #

PrettyOp op => Pretty2 (GeneralOp op :: (k1 -> Type) -> k2 -> Type) Source # 
Instance details

Defined in Language.Expression.GeneralOp

Methods

pretty2 :: Pretty1 t => GeneralOp op t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> GeneralOp op t a -> ShowS Source #

Pretty2 LogicOp Source # 
Instance details

Defined in Language.Expression.Prop

Methods

pretty2 :: Pretty1 t => LogicOp t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> LogicOp t a -> ShowS Source #

(Pretty2 op, Pretty2 (OpChoice ops)) => Pretty2 (OpChoice (op ': ops) :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => OpChoice (op ': ops) t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> OpChoice (op ': ops) t a -> ShowS Source #

Pretty2 (OpChoice ([] :: [(Type -> Type) -> Type -> Type])) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => OpChoice [] t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> OpChoice [] t a -> ShowS Source #

Pretty2 (OpChoice ops) => Pretty2 (HFree' ops :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Language.Expression.Pretty

Methods

pretty2 :: Pretty1 t => HFree' ops t a -> String Source #

prettys2Prec :: Pretty1 t => Int -> HFree' ops t a -> ShowS Source #

prettys2 :: (Pretty2 op, Pretty1 t) => op t a -> ShowS Source #

class Pretty3 h where Source #

Minimal complete definition

pretty3 | prettys3Prec

Methods

pretty3 :: (Pretty2 s, Pretty1 t) => h s t a -> String Source #

prettys3Prec :: (Pretty2 s, Pretty1 t) => Int -> h s t a -> ShowS Source #

prettys3 :: (Pretty3 h, Pretty2 s, Pretty1 t) => h s t a -> ShowS Source #

Combinators

putPretty :: Pretty a => a -> IO () Source #

prettys1PrecBinop :: (Pretty1 f, Pretty1 g) => Int -> String -> Int -> f a -> g b -> ShowS Source #