UMinho Haskell Libraries (1.0)ContentsIndex
Language.VDM_SL.Optimize
Portability portable
Stability experimental
Maintainer joost.visser@di.uminho.pt
Description
This module defines optimizing transformations for VDM_SL.
Synopsis
optimizeTables :: [Field] -> [Field]
unifyCompose :: [Type] -> Type
composeFusion :: Type -> Type -> Type
compareCompose :: Type -> Type -> Bool
collectUniqueKeys :: [Field] -> [(Name, Type)]
findKeys :: [Field] -> [(Name, Type)]
collectRng :: Term r => Type -> r -> [Type]
optimizeComposes :: [Field] -> [Field]
composeMerge :: Field -> [Field]
Documentation
optimizeTables :: [Field] -> [Field]
??
unifyCompose :: [Type] -> Type
??
composeFusion :: Type -> Type -> Type

Function that makes the fusion of two composes

Case 1: (A1 * A2 * ...) nil = (A1 * A2 * ...)

Case 2: nil (B1 * B2 * ...) = (B1 * B2 * ...)

Case 3: (A1 * A2 * ...) (B1 * B2 * ...) = (A1 * A2 * ... * B1 * B2 * ...)

compareCompose :: Type -> Type -> Bool
Function that compare two composes. Two composes are equal if their FIELD_LIST are equal. This ignores the compose identifier, that haves no meaning here.
collectUniqueKeys :: [Field] -> [(Name, Type)]
??
findKeys :: [Field] -> [(Name, Type)]
??
collectRng :: Term r => Type -> r -> [Type]
??
optimizeComposes :: [Field] -> [Field]
Optmize nested composes.
composeMerge :: Field -> [Field]
Merge the outer compose with the inner one if they exist.
Produced by Haddock version 0.6