definition:
|
class (Read a, Show a, Eq a, ReadWrite a) => TermDomain a where
--- Abstract representation of no possible value.
emptyType :: a
--- Does an abstract type represent no value?
isEmptyType :: a -> Bool
--- Abstract representation of the type of all values.
anyType :: a
--- Does an abstract type represent any value?
isAnyType :: a -> Bool
--- The representation of a constructor application to a list of
--- abstract argument types.
aCons :: QName -> [a] -> a
-- The representation of a literal in the abstract type domain.
aLit :: Literal -> a
--- The list of top-level constructors covered by an abstract type.
--- The list is empty for `anyType`.
consOfType :: a -> [QName]
--- The argument types of an abstract type (given as the last argument)
--- when it matches a given constructor/arity.
argTypesOfCons :: QName -> Int -> a -> [a]
--- Least upper bound of abstract values.
lubType :: a -> a -> a
--- Join two abstract values.
--- The result is `emptyType` if they are not compatible.
joinType :: a -> a -> a
--- Shows an abstract value.
showType :: a -> String
|
methods:
|
["emptyType :: a","isEmptyType :: a -> Prelude.Bool","anyType :: a","isAnyType :: a -> Prelude.Bool","aCons :: (String, String) -> [a] -> a","aLit :: FlatCurry.Types.Literal -> a","consOfType :: a -> [(String, String)]","argTypesOfCons :: (String, String) -> Prelude.Int -> a -> [a]","lubType :: a -> a -> a","joinType :: a -> a -> a","showType :: a -> String"]
|