ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

IfaceSyn

Synopsis

Documentation

module IfaceType

data IfaceDecl Source

data IfaceBang Source

This corresponds to an HsImplBang; that is, the final implementation decision about the data constructor arg

data SrcUnpackedness Source

What unpackedness the user requested

Constructors

SrcUnpack

{--} specified

SrcNoUnpack

{--} specified

NoSrcUnpack

no unpack pragma

Instances

Eq SrcUnpackedness 
Data SrcUnpackedness 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcUnpackedness -> c SrcUnpackedness Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcUnpackedness Source

toConstr :: SrcUnpackedness -> Constr Source

dataTypeOf :: SrcUnpackedness -> DataType Source

dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c SrcUnpackedness) Source

dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcUnpackedness) Source

gmapT :: (forall b. Data b => b -> b) -> SrcUnpackedness -> SrcUnpackedness Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r Source

gmapQ :: (forall d. Data d => d -> u) -> SrcUnpackedness -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcUnpackedness -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source

Outputable SrcUnpackedness 
Binary SrcUnpackedness 

data SrcStrictness Source

What strictness annotation the user wrote

Constructors

SrcLazy

Lazy, ie '~'

SrcStrict

Strict, ie !

NoSrcStrict

no strictness annotation

Instances

Eq SrcStrictness 
Data SrcStrictness 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcStrictness -> c SrcStrictness Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcStrictness Source

toConstr :: SrcStrictness -> Constr Source

dataTypeOf :: SrcStrictness -> DataType Source

dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c SrcStrictness) Source

dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcStrictness) Source

gmapT :: (forall b. Data b => b -> b) -> SrcStrictness -> SrcStrictness Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r Source

gmapQ :: (forall d. Data d => d -> u) -> SrcStrictness -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcStrictness -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source

Outputable SrcStrictness 
Binary SrcStrictness 

pprIfaceExpr :: (SDoc -> SDoc) -> IfaceExpr -> SDoc Source

Pretty Print an IfaceExpre

The first argument should be a function that adds parens in context that need an atomic value (e.g. function args)