verifiable-expressions-0.4.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 # 

Methods

pretty :: () -> String Source #

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

Pretty String Source # 
Pretty a => Pretty [a] Source # 

Methods

pretty :: [a] -> String Source #

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

Pretty a => Pretty (Maybe a) Source # 
Pretty1 k t => Pretty (t a) Source # 

Methods

pretty :: t a -> String Source #

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

(Pretty l, Pretty a) => Pretty (Command l a) Source # 
(Pretty l, Pretty a) => Pretty (PropAnn l a) Source # 
(Pretty2 * * expr, Pretty1 * var, Pretty cmd) => Pretty (AnnSeq expr var cmd) Source # 

Methods

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

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

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

Methods

pretty :: Assignment k expr var -> String Source #

prettysPrec :: Int -> Assignment k 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 k1 k2 f, Pretty1 k1 t) => Pretty1 k2 (f t) Source # 

Methods

pretty1 :: t a -> String Source #

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

Pretty1 k (Const k String) Source # 

Methods

pretty1 :: t a -> String Source #

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

Pretty l => Pretty1 * (WhileVar l) Source # 

Methods

pretty1 :: t a -> String Source #

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

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

Pretty2 * * (OpChoice ops) => Pretty2 * * (HFree' ops) Source # 

Methods

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

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

(Pretty3 k1 k2 k3 k4 h, Pretty2 k1 k2 s) => Pretty2 k3 k4 (h s) Source # 

Methods

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

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

Pretty1 k t => Pretty2 k k (BV k t) Source # 

Methods

pretty2 :: Pretty1 (BV k t) t => op t a -> String Source #

prettys2Prec :: Pretty1 (BV k t) t => Int -> op t a -> ShowS Source #

Pretty2 k k op => Pretty2 k k (HFree k op) Source # 

Methods

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

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

Pretty3 k k k k h => Pretty2 k k (SFree k h) Source # 

Methods

pretty2 :: Pretty1 (SFree k h) t => op t a -> String Source #

prettys2Prec :: Pretty1 (SFree k h) t => Int -> op t a -> ShowS Source #

(Pretty2 k k h, Pretty1 k t) => Pretty2 k k (Scoped k h t) Source # 

Methods

pretty2 :: Pretty1 (Scoped k h t) t => op t a -> String Source #

prettys2Prec :: Pretty1 (Scoped k h t) t => Int -> op t a -> ShowS Source #

(Pretty2 k k h, Pretty1 k t) => Pretty2 k k (Scope k t h) Source # 

Methods

pretty2 :: Pretty1 (Scope k t h) t => op t a -> String Source #

prettys2Prec :: Pretty1 (Scope k t h) t => Int -> op t a -> ShowS 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 #

(Pretty2 * * op, Pretty2 * * (OpChoice ops)) => Pretty2 * * (OpChoice ((:) ((* -> *) -> * -> *) op ops)) Source # 

Methods

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

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

Pretty2 * * (OpChoice ([] ((* -> *) -> * -> *))) Source # 

Methods

pretty2 :: Pretty1 (OpChoice [(* -> *) -> * -> *]) t => op t a -> String Source #

prettys2Prec :: Pretty1 (OpChoice [(* -> *) -> * -> *]) t => Int -> op t a -> ShowS Source #

Pretty2 * * LogicOp Source # 

Methods

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

prettys2Prec :: Pretty1 LogicOp t => Int -> op 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 #