fortran-src-0.15.1: Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial).
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.Fortran.Repr.Value.Scalar.Int.Machine

Description

Machine Fortran INTEGER values.

This module stores Fortran INTEGER values in a matching Haskell machine integer type. For example, an INT(4) would be stored in an Int32. This way, we get both efficient operations and common overflow behaviour (which hopefully matches most Fortran compilers), and explicitly encode kinding semantics via promoting integral types.

Synopsis

Documentation

data FInt Source #

A Fortran integer value, type INTEGER(k).

Constructors

FInt1 Int8
INTEGER(1)
FInt2 Int16
INTEGER(2)
FInt4 Int32
INTEGER(4)
FInt8 Int64
INTEGER(8)

Instances

Instances details
Out FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Methods

docPrec :: Int -> FInt -> Doc #

doc :: FInt -> Doc #

docList :: [FInt] -> Doc #

Data FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Methods

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

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

toConstr :: FInt -> Constr #

dataTypeOf :: FInt -> DataType #

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

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

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

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

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

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

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

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

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

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

Generic FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Associated Types

type Rep FInt :: Type -> Type #

Methods

from :: FInt -> Rep FInt x #

to :: Rep FInt x -> FInt #

Show FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Methods

showsPrec :: Int -> FInt -> ShowS #

show :: FInt -> String #

showList :: [FInt] -> ShowS #

Binary FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Methods

put :: FInt -> Put #

get :: Get FInt #

putList :: [FInt] -> Put #

FKinded FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Associated Types

type FKindedT FInt Source #

type FKindedC FInt b Source #

Eq FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

Methods

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

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

type Rep FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

type FKindedT FInt Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

type FKindedC FInt a Source # 
Instance details

Defined in Language.Fortran.Repr.Value.Scalar.Int.Machine

type FKindedC FInt a = (Integral a, Bits a)

withFInt :: Num a => FInt -> a Source #

fIntUOp' :: (Int8 -> r) -> (Int16 -> r) -> (Int32 -> r) -> (Int64 -> r) -> FInt -> r Source #

fIntBOp' :: (Int8 -> Int8 -> r) -> (Int16 -> Int16 -> r) -> (Int32 -> Int32 -> r) -> (Int64 -> Int64 -> r) -> FInt -> FInt -> r Source #

fIntUOpInplace' :: (Int8 -> Int8) -> (Int16 -> Int16) -> (Int32 -> Int32) -> (Int64 -> Int64) -> FInt -> FInt Source #

fIntBOpInplace' :: (Int8 -> Int8 -> Int8) -> (Int16 -> Int16 -> Int16) -> (Int32 -> Int32 -> Int32) -> (Int64 -> Int64 -> Int64) -> FInt -> FInt -> FInt Source #

fIntUOp :: (forall a. FKindedC FInt a => a -> r) -> FInt -> r Source #

fIntUOpInplace :: (forall a. FKindedC FInt a => a -> a) -> FInt -> FInt Source #

fIntBOp :: (forall a. FKindedC FInt a => a -> a -> r) -> FInt -> FInt -> r Source #

fIntBOpInplace :: (forall a. FKindedC FInt a => a -> a -> a) -> FInt -> FInt -> FInt Source #