improve-0.0.6: An imperative, verifiable programming language for high assurance applications.

Language.ImProve.Core

Documentation

data E a whereSource

Constructors

Ref :: AllE a => V a -> E a 
Const :: AllE a => a -> E a 
Add :: NumE a => E a -> E a -> E a 
Sub :: NumE a => E a -> E a -> E a 
Mul :: NumE a => E a -> a -> E a 
Div :: NumE a => E a -> a -> E a 
Mod :: E Int -> Int -> E Int 
Not :: E Bool -> E Bool 
And :: E Bool -> E Bool -> E Bool 
Or :: E Bool -> E Bool -> E Bool 
Eq :: AllE a => E a -> E a -> E Bool 
Lt :: NumE a => E a -> E a -> E Bool 
Gt :: NumE a => E a -> E a -> E Bool 
Le :: NumE a => E a -> E a -> E Bool 
Ge :: NumE a => E a -> E a -> E Bool 
Mux :: AllE a => E Bool -> E a -> E a -> E a 

Instances

Eq (E a) 
Fractional (E Float) 
(Num a, AllE a, NumE a) => Num (E a) 
Show (E a) 

data V a Source

Constructors

V Bool [Name] a 

Instances

Eq a => Eq (V a) 
PathName (V a) 

type Path = [Name]Source

class PathName a whereSource

Methods

pathName :: a -> StringSource

class AllE a whereSource

Methods

zero :: (Name -> a -> m (V a)) -> aSource

const' :: a -> ConstSource

Instances

class AllE a => NumE a Source

Instances

data Const Source

Constructors

Bool Bool 
Int Int 
Float Float 

Instances