camfort-0.802: CamFort - Cambridge Fortran infrastructure

Safe HaskellNone
LanguageHaskell98

Camfort.Specification.Units.Environment

Contents

Synopsis

Documentation

data UnitInfo Source #

Instances

Eq UnitInfo Source # 
Data UnitInfo Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnitInfo -> c UnitInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnitInfo #

toConstr :: UnitInfo -> Constr #

dataTypeOf :: UnitInfo -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c UnitInfo) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnitInfo) #

gmapT :: (forall b. Data b => b -> b) -> UnitInfo -> UnitInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnitInfo -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnitInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> UnitInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UnitInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnitInfo -> m UnitInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitInfo -> m UnitInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitInfo -> m UnitInfo #

Ord UnitInfo Source # 
Show UnitInfo Source # 

data Solver Source #

Constructors

LAPACK 
Custom 

Instances

Eq Solver Source # 

Methods

(==) :: Solver -> Solver -> Bool #

(/=) :: Solver -> Solver -> Bool #

Data Solver Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Solver -> c Solver #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Solver #

toConstr :: Solver -> Constr #

dataTypeOf :: Solver -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Solver) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Solver) #

gmapT :: (forall b. Data b => b -> b) -> Solver -> Solver #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Solver -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Solver -> r #

gmapQ :: (forall d. Data d => d -> u) -> Solver -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Solver -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Solver -> m Solver #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Solver -> m Solver #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Solver -> m Solver #

Read Solver Source # 
Show Solver Source # 

data AssumeLiterals Source #

Constructors

Poly 
Unitless 
Mixed 

Instances

Eq AssumeLiterals Source # 
Data AssumeLiterals Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AssumeLiterals -> c AssumeLiterals #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AssumeLiterals #

toConstr :: AssumeLiterals -> Constr #

dataTypeOf :: AssumeLiterals -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c AssumeLiterals) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AssumeLiterals) #

gmapT :: (forall b. Data b => b -> b) -> AssumeLiterals -> AssumeLiterals #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AssumeLiterals -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AssumeLiterals -> r #

gmapQ :: (forall d. Data d => d -> u) -> AssumeLiterals -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AssumeLiterals -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AssumeLiterals -> m AssumeLiterals #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AssumeLiterals -> m AssumeLiterals #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AssumeLiterals -> m AssumeLiterals #

Read AssumeLiterals Source # 
Show AssumeLiterals Source # 

data UnitConstant Source #

Constructors

Unitful [(Name, Rational)] 
UnitlessC Rational 

Instances

Eq UnitConstant Source # 
Fractional UnitConstant Source # 
Data UnitConstant Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnitConstant -> c UnitConstant #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnitConstant #

toConstr :: UnitConstant -> Constr #

dataTypeOf :: UnitConstant -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c UnitConstant) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnitConstant) #

gmapT :: (forall b. Data b => b -> b) -> UnitConstant -> UnitConstant #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnitConstant -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnitConstant -> r #

gmapQ :: (forall d. Data d => d -> u) -> UnitConstant -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UnitConstant -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnitConstant -> m UnitConstant #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitConstant -> m UnitConstant #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitConstant -> m UnitConstant #

Num UnitConstant Source # 
Show UnitConstant Source # 

newtype VarBinder Source #

Constructors

VarBinder (Name, SrcSpan) 

type ProcedureNames = (String, Maybe Name, [Name]) Source #

type Row = Int Source #

type Col = Int Source #

type DebugInfo = [(Col, (SrcSpan, String))] Source #

data UnitAnnotation a Source #

Constructors

UnitAnnotation 

Instances

Data a => Data (UnitAnnotation a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnitAnnotation a -> c (UnitAnnotation a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UnitAnnotation a) #

toConstr :: UnitAnnotation a -> Constr #

dataTypeOf :: UnitAnnotation a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (UnitAnnotation a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UnitAnnotation a)) #

gmapT :: (forall b. Data b => b -> b) -> UnitAnnotation a -> UnitAnnotation a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnitAnnotation a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnitAnnotation a -> r #

gmapQ :: (forall d. Data d => d -> u) -> UnitAnnotation a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UnitAnnotation a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnitAnnotation a -> m (UnitAnnotation a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitAnnotation a -> m (UnitAnnotation a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnitAnnotation a -> m (UnitAnnotation a) #

Show a => Show (UnitAnnotation a) Source # 

varColEnv :: forall cat. ArrowApply cat => Lens cat UnitEnv VarColEnv Source #

underdeterminedCols :: forall cat. ArrowApply cat => Lens cat UnitEnv [Int] Source #

tmpRowsAdded :: forall cat. ArrowApply cat => Lens cat UnitEnv [Int] Source #

tmpColsAdded :: forall cat. ArrowApply cat => Lens cat UnitEnv [Int] Source #

success :: forall cat. ArrowApply cat => Lens cat UnitEnv Bool Source #

report :: forall cat. ArrowApply cat => Lens cat UnitEnv [String] Source #

reorderedCols :: forall cat. ArrowApply cat => Lens cat UnitEnv [Int] Source #

puname :: forall cat. ArrowApply cat => Lens cat UnitEnv (Maybe ProgramUnitName) Source #

hasDeclaration :: forall cat. ArrowApply cat => Lens cat UnitEnv [Name] Source #

evUnitsAdded :: forall cat. ArrowApply cat => Lens cat UnitEnv (Int, [String]) Source #

evCriticals :: forall cat. ArrowApply cat => Lens cat UnitEnv [Int] Source #

debugInfo :: forall cat. ArrowApply cat => Lens cat UnitEnv DebugInfo Source #

calls :: forall cat. ArrowApply cat => Lens cat UnitEnv ProcedureEnv Source #

(<<) :: MonadState f m => Lens (->) f [o] -> o -> m () infix 2 Source #

(<<++) :: MonadState f m => Lens (->) f [a] -> a -> m () infix 2 Source #

Operations on unit environments

lookupWithSrcSpan :: Name -> SrcSpan -> [(VarBinder, a)] -> Maybe a Source #

trim :: [(t, Rational)] -> [(t, Rational)] Source #

data Consistency a Source #

Constructors

Ok a 
Bad a Int (UnitConstant, [Rational]) 

Instances

efmap :: (a -> a) -> Consistency a -> Consistency a Source #

ifDebug :: (?debug :: Bool, Monad m) => m a -> m () Source #