Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data LiteralsOpt
- data UnitOpts = UnitOpts {}
- data UnitEnv = UnitEnv {
- unitOpts :: UnitOpts
- unitProgramFile :: ProgramFile Annotation
- type TemplateMap = Map Name Constraints
- data NameParamKey
- = NPKParam PP Int
- | NPKVariable VV
- type NameParamMap = Map ProgramUnitName (Map NameParamKey [UnitInfo])
- type VarUnitMap = Map VV UnitInfo
- type GivenVarSet = Set Name
- type UnitAliasMap = Map String UnitInfo
- type CallIdMap = IntMap Int
- data UnitState = UnitState {}
- type UnitAnalysis = ReaderT UnitEnv (AnalysisT () () IO)
- type UnitSolver = StateT UnitState UnitAnalysis
Documentation
data LiteralsOpt Source #
Some options about how to handle literals.
LitPoly | All literals are polymorphic. |
LitUnitless | All literals are unitless. |
LitMixed | The literal "0" or "0.0" is fully parametric polymorphic. All other literals are monomorphic, possibly unitless. |
Instances
Options for the unit solver
UnitOpts | |
|
Instances
Eq UnitOpts Source # | |
Data UnitOpts Source # | |
Defined in Camfort.Specification.Units.MonadTypes gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnitOpts -> c UnitOpts # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnitOpts # toConstr :: UnitOpts -> Constr # dataTypeOf :: UnitOpts -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnitOpts) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnitOpts) # gmapT :: (forall b. Data b => b -> b) -> UnitOpts -> UnitOpts # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnitOpts -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnitOpts -> r # gmapQ :: (forall d. Data d => d -> u) -> UnitOpts -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UnitOpts -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnitOpts -> m UnitOpts # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitOpts -> m UnitOpts # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitOpts -> m UnitOpts # | |
Ord UnitOpts Source # | |
Defined in Camfort.Specification.Units.MonadTypes | |
Show UnitOpts Source # | |
UnitEnv | |
|
type TemplateMap = Map Name Constraints Source #
Function/subroutine name -> associated, parametric polymorphic constraints
data NameParamKey Source #
Things that can be exported from modules
NPKParam PP Int | Function/subroutine name, position of parameter |
NPKVariable VV | variable |
Instances
type NameParamMap = Map ProgramUnitName (Map NameParamKey [UnitInfo]) Source #
mapped to a list of units (to be multiplied together)
type GivenVarSet = Set Name Source #
Set of variables given explicit unit annotations
Working state for the monad
UnitState | |
|
Instances
Data UnitState Source # | |
Defined in Camfort.Specification.Units.MonadTypes gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnitState -> c UnitState # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnitState # toConstr :: UnitState -> Constr # dataTypeOf :: UnitState -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnitState) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnitState) # gmapT :: (forall b. Data b => b -> b) -> UnitState -> UnitState # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnitState -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnitState -> r # gmapQ :: (forall d. Data d => d -> u) -> UnitState -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UnitState -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnitState -> m UnitState # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitState -> m UnitState # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitState -> m UnitState # | |
Show UnitState Source # | |
type UnitAnalysis = ReaderT UnitEnv (AnalysisT () () IO) Source #
Analysis with access to UnitEnv
information.
type UnitSolver = StateT UnitState UnitAnalysis Source #
UnitSolvers are analyses annotated with unit information.