ajhc-0.8.0.7: Haskell compiler that produce binary through C language

Safe HaskellNone

Fixer.Fixer

Synopsis

Documentation

class Fixable a whereSource

Fixable class, must satisfy the following rules

isBottom bottom == True x lub x == x x lub y == y lub x x lub bottom == x x minus bottom == x bottom minus x == bottom x minus y == z --> y lub z == x

Methods

bottom :: aSource

isBottom :: a -> BoolSource

lub :: a -> a -> aSource

minus :: a -> a -> aSource

lte :: a -> a -> BoolSource

showFixable :: a -> StringSource

Instances

Fixable Bool 
Fixable Int 
Fixable a => Fixable (Maybe a) 
Ord n => Fixable (Set n) 
(Fixable a, Fixable b) => Fixable (a, b) 
(Show p, Show n, Ord p, Ord n) => Fixable (VMap p n) 

data Value a Source

Instances

addRule :: MonadIO m => Rule -> m ()Source

add a rule to the current set

ioToRule :: IO () -> RuleSource

turn an IO action into a Rule

conditionalRule :: Fixable a => (a -> Bool) -> Value a -> Rule -> RuleSource

the function must satisfy the rule that if a >= b then f(a) implies f(b)

dynamicRule :: Fixable a => Value a -> (a -> Rule) -> RuleSource

findFixpoint :: MonadIO m => Maybe (String, Handle) -> Fixer -> m ()Source

find fixpoint, perhaps printing debugging information to specified handle. will not print anything if no calculation needed.

modifiedSuperSetOf :: (Fixable a, Fixable b) => Value b -> Value a -> (a -> b) -> RuleSource

the function must satisfy the rule that if a >= b then f(a) >= f(b)

ioValue :: IO (Value a) -> Value aSource

mainly for internal use

newValue :: (MonadIO m, Fixable a) => Fixer -> a -> m (Value a)Source

readValue :: (Fixable a, MonadIO m) => Value a -> m aSource

read result, calculating fixpoint if needed

readRawValue :: (Fixable a, MonadIO m) => Value a -> m aSource

value :: a -> Value aSource