ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.

Portabilityportable
Stabilityexperimental
Maintainerforsyde-dev@ict.kth.se

ForSyDe.AbsentExt

Description

The AbstExt is used to extend existing data types with the value 'absent', which models the absence of a value.

Synopsis

Documentation

data AbstExt a Source

The data type AbstExt has two constructors. The constructor Abst is used to model the absence of a value, while the constructor Prst is used to model present values.

Constructors

Abst 
Prst a 

Instances

Typeable1 AbstExt 
Eq a => Eq (AbstExt a) 
Data a => Data (AbstExt a) 
Read a => Read (AbstExt a) 
Show a => Show (AbstExt a)

The data type AbstExt is defined as an instance of Show and Read. '_' represents the value Abst while a present value is represented with its value, e.g. Prst 1 is represented as '1'.

Lift a[a8cpC] => Lift (AbstExt a[a8cpC]) 
ProcType a => ProcType (AbstExt a) 

fromAbstExtSource

Arguments

:: a

Default value returned if the input is Abst

-> AbstExt a 
-> a 

The function fromAbstExt extracts the inner value contained in AbstExt

unsafeFromAbstExt :: AbstExt a -> aSource

Similar to fromAbstExt, but without default value

abstExt :: a -> AbstExt aSource

The function abstExt converts a usual value to a present value.

psi :: (a -> b) -> AbstExt a -> AbstExt bSource

The function psi is identical to abstExtFunc and should be used in future.

isAbsent :: AbstExt a -> BoolSource

The functions isAbsent checks for the absence of a value.

isPresent :: AbstExt a -> BoolSource

The functions isPresent checks for the presence of a value.

abstExtFunc :: (a -> b) -> AbstExt a -> AbstExt bSource

The function abstExtFunc extends a function in order to process absent extended values. If the input is ("bottom"), the output will also be ("bottom").