BasicTypes

ghc-8.0.0.20160204: The GHC API

Safe Haskell | None
Language | Haskell2010

BasicTypes

Contents

- The OneShotInfo type

Synopsis

- type Version = Int
- bumpVersion :: Version -> Version
- initialVersion :: Version
- type ConTag = Int
- fIRST_TAG :: ConTag
- type Arity = Int
- type RepArity = Int
- type Alignment = Int
- data FunctionOrData
  - = IsFunction
  - | IsData
- data WarningTxt
  - = WarningTxt (Located SourceText) [Located StringLiteral]
  - | DeprecatedTxt (Located SourceText) [Located StringLiteral]
- data StringLiteral = StringLiteral {
  - sl_st :: SourceText
  - sl_fs :: FastString
  }
- data Fixity = Fixity SourceText Int FixityDirection
- data FixityDirection
  - = InfixL
  - | InfixR
  - | InfixN
- defaultFixity :: Fixity
- maxPrecedence :: Int
- minPrecedence :: Int
- negateFixity :: Fixity
- funTyFixity :: Fixity
- compareFixity :: Fixity -> Fixity -> (Bool, Bool)
- data RecFlag
  - = Recursive
  - | NonRecursive
- isRec :: RecFlag -> Bool
- isNonRec :: RecFlag -> Bool
- boolToRecFlag :: Bool -> RecFlag
- data Origin
  - = FromSource
  - | Generated
- isGenerated :: Origin -> Bool
- type RuleName = FastString
- pprRuleName :: RuleName -> SDoc
- data TopLevelFlag
  - = TopLevel
  - | NotTopLevel
- isTopLevel :: TopLevelFlag -> Bool
- isNotTopLevel :: TopLevelFlag -> Bool
- data OverlapFlag = OverlapFlag {
  - overlapMode :: OverlapMode
  - isSafeOverlap :: Bool
  }
- data OverlapMode
  - = NoOverlap SourceText
  - | Overlappable SourceText
  - | Overlapping SourceText
  - | Overlaps SourceText
  - | Incoherent SourceText
- setOverlapModeMaybe :: OverlapFlag -> Maybe OverlapMode -> OverlapFlag
- hasOverlappingFlag :: OverlapMode -> Bool
- hasOverlappableFlag :: OverlapMode -> Bool
- data Boxity
  - = Boxed
  - | Unboxed
- isBoxed :: Boxity -> Bool
- data TupleSort
  - = BoxedTuple
  - | UnboxedTuple
  - | ConstraintTuple
- tupleSortBoxity :: TupleSort -> Boxity
- boxityTupleSort :: Boxity -> TupleSort
- tupleParens :: TupleSort -> SDoc -> SDoc
- data OneShotInfo
  - = NoOneShotInfo
  - | ProbOneShot
  - | OneShotLam
- noOneShotInfo :: OneShotInfo
- hasNoOneShotInfo :: OneShotInfo -> Bool
- isOneShotInfo :: OneShotInfo -> Bool
- bestOneShot :: OneShotInfo -> OneShotInfo -> OneShotInfo
- worstOneShot :: OneShotInfo -> OneShotInfo -> OneShotInfo
- data OccInfo
  - = NoOccInfo
  - | IAmDead
  - | OneOcc !InsideLam !OneBranch !InterestingCxt
  - | IAmALoopBreaker !RulesOnly
- seqOccInfo :: OccInfo -> ()
- zapFragileOcc :: OccInfo -> OccInfo
- isOneOcc :: OccInfo -> Bool
- isDeadOcc :: OccInfo -> Bool
- isStrongLoopBreaker :: OccInfo -> Bool
- isWeakLoopBreaker :: OccInfo -> Bool
- isNoOcc :: OccInfo -> Bool
- strongLoopBreaker :: OccInfo
- weakLoopBreaker :: OccInfo
- type InsideLam = Bool
- insideLam :: InsideLam
- notInsideLam :: InsideLam
- type OneBranch = Bool
- oneBranch :: OneBranch
- notOneBranch :: OneBranch
- type InterestingCxt = Bool
- data EP a = EP {
  - fromEP :: a
  - toEP :: a
  }
- data DefMethSpec ty
  - = VanillaDM
  - | GenericDM ty
- data SwapFlag
  - = NotSwapped
  - | IsSwapped
- flipSwap :: SwapFlag -> SwapFlag
- unSwap :: SwapFlag -> (a -> a -> b) -> a -> a -> b
- isSwapped :: SwapFlag -> Bool
- data CompilerPhase
  - = Phase PhaseNum
  - | InitialPhase
- type PhaseNum = Int
- data Activation
  - = NeverActive
  - | AlwaysActive
  - | ActiveBefore SourceText PhaseNum
  - | ActiveAfter SourceText PhaseNum
- isActive :: CompilerPhase -> Activation -> Bool
- isActiveIn :: PhaseNum -> Activation -> Bool
- competesWith :: Activation -> Activation -> Bool
- isNeverActive :: Activation -> Bool
- isAlwaysActive :: Activation -> Bool
- isEarlyActive :: Activation -> Bool
- data RuleMatchInfo
  - = ConLike
  - | FunLike
- isConLike :: RuleMatchInfo -> Bool
- isFunLike :: RuleMatchInfo -> Bool
- data InlineSpec
  - = Inline
  - | Inlinable
  - | NoInline
  - | EmptyInlineSpec
- isEmptyInlineSpec :: InlineSpec -> Bool
- data InlinePragma = InlinePragma {
  - inl_src :: SourceText
  - inl_inline :: InlineSpec
  - inl_sat :: Maybe Arity
  - inl_act :: Activation
  - inl_rule :: RuleMatchInfo
  }
- defaultInlinePragma :: InlinePragma
- alwaysInlinePragma :: InlinePragma
- neverInlinePragma :: InlinePragma
- dfunInlinePragma :: InlinePragma
- isDefaultInlinePragma :: InlinePragma -> Bool
- isInlinePragma :: InlinePragma -> Bool
- isInlinablePragma :: InlinePragma -> Bool
- isAnyInlinePragma :: InlinePragma -> Bool
- inlinePragmaSpec :: InlinePragma -> InlineSpec
- inlinePragmaSat :: InlinePragma -> Maybe Arity
- inlinePragmaActivation :: InlinePragma -> Activation
- inlinePragmaRuleMatchInfo :: InlinePragma -> RuleMatchInfo
- setInlinePragmaActivation :: InlinePragma -> Activation -> InlinePragma
- setInlinePragmaRuleMatchInfo :: InlinePragma -> RuleMatchInfo -> InlinePragma
- data SuccessFlag
  - = Succeeded
  - | Failed
- succeeded :: SuccessFlag -> Bool
- failed :: SuccessFlag -> Bool
- successIf :: Bool -> SuccessFlag
- data FractionalLit = FL {
  - fl_text :: String
  - fl_value :: Rational
  }
- negateFractionalLit :: FractionalLit -> FractionalLit
- integralFractionalLit :: Integer -> FractionalLit
- type SourceText = String
- data IntWithInf
- infinity :: IntWithInf
- treatZeroAsInf :: Int -> IntWithInf
- mkIntWithInf :: Int -> IntWithInf
- intGtLimit :: Int -> IntWithInf -> Bool

# Documentation

type Version = Int Source

bumpVersion :: Version -> Version Source

initialVersion :: Version Source

type ConTag = Int Source

Type of the tags associated with each constructor possibility or superclass selector

fIRST_TAG :: ConTag Source

Tags are allocated from here for real constructors or for superclass selectors

type Arity = Int Source

The number of value arguments that can be applied to a value before it does "real work". So: fib 100 has arity 0 x -> fib x has arity 1

type RepArity = Int Source

The number of represented arguments that can be applied to a value before it does "real work". So: fib 100 has representation arity 0 x -> fib x has representation arity 1 () -> fib (x + y) has representation arity 2

type Alignment = Int Source

data FunctionOrData Source

Constructors

IsFunction |
IsData |

Instances

Eq FunctionOrData |
Methods (==) :: FunctionOrData -> FunctionOrData -> Bool (/=) :: FunctionOrData -> FunctionOrData -> Bool
Data FunctionOrData |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FunctionOrData -> c FunctionOrData Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FunctionOrData Source toConstr :: FunctionOrData -> Constr Source dataTypeOf :: FunctionOrData -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c FunctionOrData) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FunctionOrData) Source gmapT :: (forall b. Data b => b -> b) -> FunctionOrData -> FunctionOrData Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FunctionOrData -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FunctionOrData -> r Source gmapQ :: (forall d. Data d => d -> u) -> FunctionOrData -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> FunctionOrData -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> FunctionOrData -> m FunctionOrData Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FunctionOrData -> m FunctionOrData Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FunctionOrData -> m FunctionOrData Source
Ord FunctionOrData |
Methods compare :: FunctionOrData -> FunctionOrData -> Ordering (<) :: FunctionOrData -> FunctionOrData -> Bool (<=) :: FunctionOrData -> FunctionOrData -> Bool (>) :: FunctionOrData -> FunctionOrData -> Bool (>=) :: FunctionOrData -> FunctionOrData -> Bool max :: FunctionOrData -> FunctionOrData -> FunctionOrData min :: FunctionOrData -> FunctionOrData -> FunctionOrData
Outputable FunctionOrData |
Methods ppr :: FunctionOrData -> SDoc Source pprPrec :: Rational -> FunctionOrData -> SDoc Source
Binary FunctionOrData |
Methods put_ :: BinHandle -> FunctionOrData -> IO () Source put :: BinHandle -> FunctionOrData -> IO (Bin FunctionOrData) Source get :: BinHandle -> IO FunctionOrData Source

data WarningTxt Source

Constructors

WarningTxt (Located SourceText) [Located StringLiteral] |
DeprecatedTxt (Located SourceText) [Located StringLiteral] |

Instances

Eq WarningTxt |
Methods (==) :: WarningTxt -> WarningTxt -> Bool (/=) :: WarningTxt -> WarningTxt -> Bool
Data WarningTxt |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> WarningTxt -> c WarningTxt Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c WarningTxt Source toConstr :: WarningTxt -> Constr Source dataTypeOf :: WarningTxt -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c WarningTxt) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c WarningTxt) Source gmapT :: (forall b. Data b => b -> b) -> WarningTxt -> WarningTxt Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> WarningTxt -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> WarningTxt -> r Source gmapQ :: (forall d. Data d => d -> u) -> WarningTxt -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> WarningTxt -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> WarningTxt -> m WarningTxt Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> WarningTxt -> m WarningTxt Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> WarningTxt -> m WarningTxt Source
Outputable WarningTxt |
Methods ppr :: WarningTxt -> SDoc Source pprPrec :: Rational -> WarningTxt -> SDoc Source
Binary WarningTxt |
Methods put_ :: BinHandle -> WarningTxt -> IO () Source put :: BinHandle -> WarningTxt -> IO (Bin WarningTxt) Source get :: BinHandle -> IO WarningTxt Source

data StringLiteral Source

A String Literal in the source, including its original raw format for use by source to source manipulation tools.

Constructors

StringLiteral |
Fields sl_st :: SourceText sl_fs :: FastString

Instances

Eq StringLiteral |
Methods (==) :: StringLiteral -> StringLiteral -> Bool (/=) :: StringLiteral -> StringLiteral -> Bool
Data StringLiteral |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StringLiteral -> c StringLiteral Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StringLiteral Source toConstr :: StringLiteral -> Constr Source dataTypeOf :: StringLiteral -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c StringLiteral) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StringLiteral) Source gmapT :: (forall b. Data b => b -> b) -> StringLiteral -> StringLiteral Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StringLiteral -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StringLiteral -> r Source gmapQ :: (forall d. Data d => d -> u) -> StringLiteral -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> StringLiteral -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> StringLiteral -> m StringLiteral Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StringLiteral -> m StringLiteral Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StringLiteral -> m StringLiteral Source
Binary StringLiteral |
Methods put_ :: BinHandle -> StringLiteral -> IO () Source put :: BinHandle -> StringLiteral -> IO (Bin StringLiteral) Source get :: BinHandle -> IO StringLiteral Source

data Fixity Source

Constructors

Fixity SourceText Int FixityDirection |

Instances

Eq Fixity |
Methods (==) :: Fixity -> Fixity -> Bool (/=) :: Fixity -> Fixity -> Bool
Data Fixity |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity Source toConstr :: Fixity -> Constr Source dataTypeOf :: Fixity -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) Source gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Source gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source
Outputable Fixity |
Methods ppr :: Fixity -> SDoc Source pprPrec :: Rational -> Fixity -> SDoc Source
Binary Fixity |
Methods put_ :: BinHandle -> Fixity -> IO () Source put :: BinHandle -> Fixity -> IO (Bin Fixity) Source get :: BinHandle -> IO Fixity Source

data FixityDirection Source

Constructors

InfixL |
InfixR |
InfixN |

Instances

Eq FixityDirection |
Methods (==) :: FixityDirection -> FixityDirection -> Bool (/=) :: FixityDirection -> FixityDirection -> Bool
Data FixityDirection |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FixityDirection -> c FixityDirection Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FixityDirection Source toConstr :: FixityDirection -> Constr Source dataTypeOf :: FixityDirection -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c FixityDirection) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FixityDirection) Source gmapT :: (forall b. Data b => b -> b) -> FixityDirection -> FixityDirection Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Source gmapQ :: (forall d. Data d => d -> u) -> FixityDirection -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> FixityDirection -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source
Outputable FixityDirection |
Methods ppr :: FixityDirection -> SDoc Source pprPrec :: Rational -> FixityDirection -> SDoc Source
Binary FixityDirection |
Methods put_ :: BinHandle -> FixityDirection -> IO () Source put :: BinHandle -> FixityDirection -> IO (Bin FixityDirection) Source get :: BinHandle -> IO FixityDirection Source

defaultFixity :: Fixity Source

maxPrecedence :: Int Source

minPrecedence :: Int Source

negateFixity :: Fixity Source

funTyFixity :: Fixity Source

compareFixity :: Fixity -> Fixity -> (Bool, Bool) Source

data RecFlag Source

Constructors

Recursive |
NonRecursive |

Instances

Eq RecFlag |
Methods (==) :: RecFlag -> RecFlag -> Bool (/=) :: RecFlag -> RecFlag -> Bool
Data RecFlag |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecFlag -> c RecFlag Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecFlag Source toConstr :: RecFlag -> Constr Source dataTypeOf :: RecFlag -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c RecFlag) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecFlag) Source gmapT :: (forall b. Data b => b -> b) -> RecFlag -> RecFlag Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecFlag -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecFlag -> r Source gmapQ :: (forall d. Data d => d -> u) -> RecFlag -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> RecFlag -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecFlag -> m RecFlag Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFlag -> m RecFlag Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecFlag -> m RecFlag Source
Outputable RecFlag |
Methods ppr :: RecFlag -> SDoc Source pprPrec :: Rational -> RecFlag -> SDoc Source
Binary RecFlag |
Methods put_ :: BinHandle -> RecFlag -> IO () Source put :: BinHandle -> RecFlag -> IO (Bin RecFlag) Source get :: BinHandle -> IO RecFlag Source

isRec :: RecFlag -> Bool Source

isNonRec :: RecFlag -> Bool Source

boolToRecFlag :: Bool -> RecFlag Source

data Origin Source

Constructors

FromSource |
Generated |

Instances

Eq Origin |
Methods (==) :: Origin -> Origin -> Bool (/=) :: Origin -> Origin -> Bool
Data Origin |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Origin -> c Origin Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Origin Source toConstr :: Origin -> Constr Source dataTypeOf :: Origin -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Origin) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Origin) Source gmapT :: (forall b. Data b => b -> b) -> Origin -> Origin Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Origin -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Origin -> r Source gmapQ :: (forall d. Data d => d -> u) -> Origin -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Origin -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Origin -> m Origin Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Origin -> m Origin Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Origin -> m Origin Source
Outputable Origin |
Methods ppr :: Origin -> SDoc Source pprPrec :: Rational -> Origin -> SDoc Source

isGenerated :: Origin -> Bool Source

type RuleName = FastString Source

pprRuleName :: RuleName -> SDoc Source

data TopLevelFlag Source

Constructors

TopLevel |
NotTopLevel |

Instances

Outputable TopLevelFlag |
Methods ppr :: TopLevelFlag -> SDoc Source pprPrec :: Rational -> TopLevelFlag -> SDoc Source

isTopLevel :: TopLevelFlag -> Bool Source

isNotTopLevel :: TopLevelFlag -> Bool Source

data OverlapFlag Source

The semantics allowed for overlapping instances for a particular instance. See Note [Safe Haskell isSafeOverlap] (in `hs`) for a explanation of the `isSafeOverlap` field.

- `AnnKeywordId` : `AnnOpen` `'{-# OVERLAPPABLE'` or `'{-# OVERLAPPING'` or `'{-# OVERLAPS'` or `'{-# INCOHERENT'`, `AnnClose` ``#-}``,

Constructors

OverlapFlag |
Fields overlapMode :: OverlapMode isSafeOverlap :: Bool

Instances

Eq OverlapFlag |
Methods (==) :: OverlapFlag -> OverlapFlag -> Bool (/=) :: OverlapFlag -> OverlapFlag -> Bool
Data OverlapFlag |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OverlapFlag -> c OverlapFlag Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OverlapFlag Source toConstr :: OverlapFlag -> Constr Source dataTypeOf :: OverlapFlag -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c OverlapFlag) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OverlapFlag) Source gmapT :: (forall b. Data b => b -> b) -> OverlapFlag -> OverlapFlag Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OverlapFlag -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OverlapFlag -> r Source gmapQ :: (forall d. Data d => d -> u) -> OverlapFlag -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> OverlapFlag -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> OverlapFlag -> m OverlapFlag Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OverlapFlag -> m OverlapFlag Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OverlapFlag -> m OverlapFlag Source
Outputable OverlapFlag |
Methods ppr :: OverlapFlag -> SDoc Source pprPrec :: Rational -> OverlapFlag -> SDoc Source
Binary OverlapFlag |
Methods put_ :: BinHandle -> OverlapFlag -> IO () Source put :: BinHandle -> OverlapFlag -> IO (Bin OverlapFlag) Source get :: BinHandle -> IO OverlapFlag Source

data OverlapMode Source

Constructors

NoOverlap SourceText | This instance must not overlap another `NoOverlap` instance. However, it may be overlapped by `Overlapping` instances, and it may overlap `Overlappable` instances.
Overlappable SourceText | Silently ignore this instance if you find a more specific one that matches the constraint you are trying to resolve Example: constraint (Foo [Int]) instance Foo [Int] instance {--} Foo [a] Since the second instance has the Overlappable flag, the first instance will be chosen (otherwise its ambiguous which to choose)
Overlapping SourceText | Silently ignore any more general instances that may be used to solve the constraint. Example: constraint (Foo [Int]) instance {--} Foo [Int] instance Foo [a] Since the first instance has the Overlapping flag, the second---more general---instance will be ignored (otherwise it is ambiguous which to choose)
Overlaps SourceText | Equivalent to having both `Overlapping` and `Overlappable` flags.
Incoherent SourceText | Behave like Overlappable and Overlapping, and in addition pick an an arbitrary one if there are multiple matching candidates, and don't worry about later instantiation Example: constraint (Foo [b]) instance {-# INCOHERENT -} Foo [Int] instance Foo [a] Without the Incoherent flag, we'd complain that instantiating `b` would change which instance was chosen. See also note [Incoherent instances] in InstEnv

Instances

Eq OverlapMode |
Methods (==) :: OverlapMode -> OverlapMode -> Bool (/=) :: OverlapMode -> OverlapMode -> Bool
Data OverlapMode |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OverlapMode -> c OverlapMode Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OverlapMode Source toConstr :: OverlapMode -> Constr Source dataTypeOf :: OverlapMode -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c OverlapMode) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OverlapMode) Source gmapT :: (forall b. Data b => b -> b) -> OverlapMode -> OverlapMode Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OverlapMode -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OverlapMode -> r Source gmapQ :: (forall d. Data d => d -> u) -> OverlapMode -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> OverlapMode -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> OverlapMode -> m OverlapMode Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OverlapMode -> m OverlapMode Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OverlapMode -> m OverlapMode Source
Outputable OverlapMode |
Methods ppr :: OverlapMode -> SDoc Source pprPrec :: Rational -> OverlapMode -> SDoc Source
Binary OverlapMode |
Methods put_ :: BinHandle -> OverlapMode -> IO () Source put :: BinHandle -> OverlapMode -> IO (Bin OverlapMode) Source get :: BinHandle -> IO OverlapMode Source

setOverlapModeMaybe :: OverlapFlag -> Maybe OverlapMode -> OverlapFlag Source

hasOverlappingFlag :: OverlapMode -> Bool Source

hasOverlappableFlag :: OverlapMode -> Bool Source

data Boxity Source

Constructors

Boxed |
Unboxed |

Instances

Eq Boxity |
Methods (==) :: Boxity -> Boxity -> Bool (/=) :: Boxity -> Boxity -> Bool
Data Boxity |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Boxity -> c Boxity Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Boxity Source toConstr :: Boxity -> Constr Source dataTypeOf :: Boxity -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Boxity) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Boxity) Source gmapT :: (forall b. Data b => b -> b) -> Boxity -> Boxity Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Boxity -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Boxity -> r Source gmapQ :: (forall d. Data d => d -> u) -> Boxity -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Boxity -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Boxity -> m Boxity Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Boxity -> m Boxity Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Boxity -> m Boxity Source
Outputable Boxity |
Methods ppr :: Boxity -> SDoc Source pprPrec :: Rational -> Boxity -> SDoc Source

isBoxed :: Boxity -> Bool Source

data TupleSort Source

Constructors

BoxedTuple |
UnboxedTuple |
ConstraintTuple |

Instances

Eq TupleSort |
Methods (==) :: TupleSort -> TupleSort -> Bool (/=) :: TupleSort -> TupleSort -> Bool
Data TupleSort |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TupleSort -> c TupleSort Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TupleSort Source toConstr :: TupleSort -> Constr Source dataTypeOf :: TupleSort -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c TupleSort) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TupleSort) Source gmapT :: (forall b. Data b => b -> b) -> TupleSort -> TupleSort Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TupleSort -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TupleSort -> r Source gmapQ :: (forall d. Data d => d -> u) -> TupleSort -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> TupleSort -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> TupleSort -> m TupleSort Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TupleSort -> m TupleSort Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TupleSort -> m TupleSort Source
Binary TupleSort |
Methods put_ :: BinHandle -> TupleSort -> IO () Source put :: BinHandle -> TupleSort -> IO (Bin TupleSort) Source get :: BinHandle -> IO TupleSort Source

tupleSortBoxity :: TupleSort -> Boxity Source

boxityTupleSort :: Boxity -> TupleSort Source

tupleParens :: TupleSort -> SDoc -> SDoc Source

## The OneShotInfo type

data OneShotInfo Source

If the `Id` is a lambda-bound variable then it may have lambda-bound variable info. Sometimes we know whether the lambda binding this variable is a "one-shot" lambda; that is, whether it is applied at most once.

This information may be useful in optimisation, as computations may safely be floated inside such a lambda without risk of duplicating work.

Constructors

NoOneShotInfo | No information
ProbOneShot | The lambda is probably applied at most once See Note [Computing one-shot info, and ProbOneShot] in Demand
OneShotLam | The lambda is applied at most once.

Instances

Eq OneShotInfo |
Methods (==) :: OneShotInfo -> OneShotInfo -> Bool (/=) :: OneShotInfo -> OneShotInfo -> Bool
Outputable OneShotInfo |
Methods ppr :: OneShotInfo -> SDoc Source pprPrec :: Rational -> OneShotInfo -> SDoc Source

noOneShotInfo :: OneShotInfo Source

It is always safe to assume that an `Id` has no lambda-bound variable information

hasNoOneShotInfo :: OneShotInfo -> Bool Source

isOneShotInfo :: OneShotInfo -> Bool Source

bestOneShot :: OneShotInfo -> OneShotInfo -> OneShotInfo Source

worstOneShot :: OneShotInfo -> OneShotInfo -> OneShotInfo Source

data OccInfo Source

Identifier occurrence information

Constructors

NoOccInfo | There are many occurrences, or unknown occurrences
IAmDead | Marks unused variables. Sometimes useful for lambda and case-bound variables.
OneOcc !InsideLam !OneBranch !InterestingCxt | Occurs exactly once, not inside a rule
IAmALoopBreaker !RulesOnly | This identifier breaks a loop of mutually recursive functions. The field marks whether it is only a loop breaker due to a reference in a rule

Instances

Eq OccInfo |
Methods (==) :: OccInfo -> OccInfo -> Bool (/=) :: OccInfo -> OccInfo -> Bool
Outputable OccInfo |
Methods ppr :: OccInfo -> SDoc Source pprPrec :: Rational -> OccInfo -> SDoc Source

seqOccInfo :: OccInfo -> () Source

zapFragileOcc :: OccInfo -> OccInfo Source

isOneOcc :: OccInfo -> Bool Source

isDeadOcc :: OccInfo -> Bool Source

isStrongLoopBreaker :: OccInfo -> Bool Source

isWeakLoopBreaker :: OccInfo -> Bool Source

isNoOcc :: OccInfo -> Bool Source

strongLoopBreaker :: OccInfo Source

weakLoopBreaker :: OccInfo Source

type InsideLam = Bool Source

insideLam :: InsideLam Source

notInsideLam :: InsideLam Source

type OneBranch = Bool Source

oneBranch :: OneBranch Source

notOneBranch :: OneBranch Source

type InterestingCxt = Bool Source

data EP a Source

Constructors

EP |
Fields fromEP :: a toEP :: a

data DefMethSpec ty Source

Constructors

VanillaDM |
GenericDM ty |

Instances

Outputable (DefMethSpec ty) |
Methods ppr :: DefMethSpec ty -> SDoc Source pprPrec :: Rational -> DefMethSpec ty -> SDoc Source
Binary (DefMethSpec IfaceType) |
Methods put_ :: BinHandle -> DefMethSpec IfaceType -> IO () Source put :: BinHandle -> DefMethSpec IfaceType -> IO (Bin (DefMethSpec IfaceType)) Source get :: BinHandle -> IO (DefMethSpec IfaceType) Source

data SwapFlag Source

Constructors

NotSwapped |
IsSwapped |

Instances

Outputable SwapFlag |
Methods ppr :: SwapFlag -> SDoc Source pprPrec :: Rational -> SwapFlag -> SDoc Source

flipSwap :: SwapFlag -> SwapFlag Source

unSwap :: SwapFlag -> (a -> a -> b) -> a -> a -> b Source

isSwapped :: SwapFlag -> Bool Source

data CompilerPhase Source

Constructors

Phase PhaseNum |
InitialPhase |

Instances

Outputable CompilerPhase |
Methods ppr :: CompilerPhase -> SDoc Source pprPrec :: Rational -> CompilerPhase -> SDoc Source

type PhaseNum = Int Source

data Activation Source

Constructors

NeverActive |
AlwaysActive |
ActiveBefore SourceText PhaseNum |
ActiveAfter SourceText PhaseNum |

Instances

Eq Activation |
Methods (==) :: Activation -> Activation -> Bool (/=) :: Activation -> Activation -> Bool
Data Activation |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Activation -> c Activation Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Activation Source toConstr :: Activation -> Constr Source dataTypeOf :: Activation -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c Activation) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Activation) Source gmapT :: (forall b. Data b => b -> b) -> Activation -> Activation Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Activation -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Activation -> r Source gmapQ :: (forall d. Data d => d -> u) -> Activation -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Activation -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Activation -> m Activation Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Activation -> m Activation Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Activation -> m Activation Source
Outputable Activation |
Methods ppr :: Activation -> SDoc Source pprPrec :: Rational -> Activation -> SDoc Source
Binary Activation |
Methods put_ :: BinHandle -> Activation -> IO () Source put :: BinHandle -> Activation -> IO (Bin Activation) Source get :: BinHandle -> IO Activation Source

isActive :: CompilerPhase -> Activation -> Bool Source

isActiveIn :: PhaseNum -> Activation -> Bool Source

competesWith :: Activation -> Activation -> Bool Source

isNeverActive :: Activation -> Bool Source

isAlwaysActive :: Activation -> Bool Source

isEarlyActive :: Activation -> Bool Source

data RuleMatchInfo Source

Constructors

ConLike |
FunLike |

Instances

Eq RuleMatchInfo |
Methods (==) :: RuleMatchInfo -> RuleMatchInfo -> Bool (/=) :: RuleMatchInfo -> RuleMatchInfo -> Bool
Data RuleMatchInfo |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RuleMatchInfo -> c RuleMatchInfo Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RuleMatchInfo Source toConstr :: RuleMatchInfo -> Constr Source dataTypeOf :: RuleMatchInfo -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c RuleMatchInfo) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RuleMatchInfo) Source gmapT :: (forall b. Data b => b -> b) -> RuleMatchInfo -> RuleMatchInfo Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatchInfo -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatchInfo -> r Source gmapQ :: (forall d. Data d => d -> u) -> RuleMatchInfo -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> RuleMatchInfo -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> RuleMatchInfo -> m RuleMatchInfo Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatchInfo -> m RuleMatchInfo Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatchInfo -> m RuleMatchInfo Source
Show RuleMatchInfo |
Methods showsPrec :: Int -> RuleMatchInfo -> ShowS Source show :: RuleMatchInfo -> String Source showList :: [RuleMatchInfo] -> ShowS Source
Outputable RuleMatchInfo |
Methods ppr :: RuleMatchInfo -> SDoc Source pprPrec :: Rational -> RuleMatchInfo -> SDoc Source
Binary RuleMatchInfo |
Methods put_ :: BinHandle -> RuleMatchInfo -> IO () Source put :: BinHandle -> RuleMatchInfo -> IO (Bin RuleMatchInfo) Source get :: BinHandle -> IO RuleMatchInfo Source

isConLike :: RuleMatchInfo -> Bool Source

isFunLike :: RuleMatchInfo -> Bool Source

data InlineSpec Source

Constructors

Inline |
Inlinable |
NoInline |
EmptyInlineSpec |

Instances

Eq InlineSpec |
Methods (==) :: InlineSpec -> InlineSpec -> Bool (/=) :: InlineSpec -> InlineSpec -> Bool
Data InlineSpec |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InlineSpec -> c InlineSpec Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InlineSpec Source toConstr :: InlineSpec -> Constr Source dataTypeOf :: InlineSpec -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c InlineSpec) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InlineSpec) Source gmapT :: (forall b. Data b => b -> b) -> InlineSpec -> InlineSpec Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InlineSpec -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InlineSpec -> r Source gmapQ :: (forall d. Data d => d -> u) -> InlineSpec -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> InlineSpec -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> InlineSpec -> m InlineSpec Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InlineSpec -> m InlineSpec Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InlineSpec -> m InlineSpec Source
Show InlineSpec |
Methods showsPrec :: Int -> InlineSpec -> ShowS Source show :: InlineSpec -> String Source showList :: [InlineSpec] -> ShowS Source
Outputable InlineSpec |
Methods ppr :: InlineSpec -> SDoc Source pprPrec :: Rational -> InlineSpec -> SDoc Source
Binary InlineSpec |
Methods put_ :: BinHandle -> InlineSpec -> IO () Source put :: BinHandle -> InlineSpec -> IO (Bin InlineSpec) Source get :: BinHandle -> IO InlineSpec Source

isEmptyInlineSpec :: InlineSpec -> Bool Source

data InlinePragma Source

Constructors

InlinePragma |
Fields inl_src :: SourceText inl_inline :: InlineSpec inl_sat :: Maybe Arity inl_act :: Activation inl_rule :: RuleMatchInfo

Instances

Eq InlinePragma |
Methods (==) :: InlinePragma -> InlinePragma -> Bool (/=) :: InlinePragma -> InlinePragma -> Bool
Data InlinePragma |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InlinePragma -> c InlinePragma Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InlinePragma Source toConstr :: InlinePragma -> Constr Source dataTypeOf :: InlinePragma -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c InlinePragma) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InlinePragma) Source gmapT :: (forall b. Data b => b -> b) -> InlinePragma -> InlinePragma Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InlinePragma -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InlinePragma -> r Source gmapQ :: (forall d. Data d => d -> u) -> InlinePragma -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> InlinePragma -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> InlinePragma -> m InlinePragma Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InlinePragma -> m InlinePragma Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InlinePragma -> m InlinePragma Source
Outputable InlinePragma |
Methods ppr :: InlinePragma -> SDoc Source pprPrec :: Rational -> InlinePragma -> SDoc Source
Binary InlinePragma |
Methods put_ :: BinHandle -> InlinePragma -> IO () Source put :: BinHandle -> InlinePragma -> IO (Bin InlinePragma) Source get :: BinHandle -> IO InlinePragma Source

defaultInlinePragma :: InlinePragma Source

alwaysInlinePragma :: InlinePragma Source

neverInlinePragma :: InlinePragma Source

dfunInlinePragma :: InlinePragma Source

isDefaultInlinePragma :: InlinePragma -> Bool Source

isInlinePragma :: InlinePragma -> Bool Source

isInlinablePragma :: InlinePragma -> Bool Source

isAnyInlinePragma :: InlinePragma -> Bool Source

inlinePragmaSpec :: InlinePragma -> InlineSpec Source

inlinePragmaSat :: InlinePragma -> Maybe Arity Source

inlinePragmaActivation :: InlinePragma -> Activation Source

inlinePragmaRuleMatchInfo :: InlinePragma -> RuleMatchInfo Source

setInlinePragmaActivation :: InlinePragma -> Activation -> InlinePragma Source

setInlinePragmaRuleMatchInfo :: InlinePragma -> RuleMatchInfo -> InlinePragma Source

data SuccessFlag Source

Constructors

Succeeded |
Failed |

Instances

Outputable SuccessFlag |
Methods ppr :: SuccessFlag -> SDoc Source pprPrec :: Rational -> SuccessFlag -> SDoc Source

succeeded :: SuccessFlag -> Bool Source

failed :: SuccessFlag -> Bool Source

successIf :: Bool -> SuccessFlag Source

data FractionalLit Source

Constructors

FL |
Fields fl_text :: String fl_value :: Rational

Instances

Eq FractionalLit |
Methods (==) :: FractionalLit -> FractionalLit -> Bool (/=) :: FractionalLit -> FractionalLit -> Bool
Data FractionalLit |
Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FractionalLit -> c FractionalLit Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FractionalLit Source toConstr :: FractionalLit -> Constr Source dataTypeOf :: FractionalLit -> DataType Source dataCast1 :: Typeable (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c FractionalLit) Source dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FractionalLit) Source gmapT :: (forall b. Data b => b -> b) -> FractionalLit -> FractionalLit Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FractionalLit -> r Source gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FractionalLit -> r Source gmapQ :: (forall d. Data d => d -> u) -> FractionalLit -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> FractionalLit -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> FractionalLit -> m FractionalLit Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FractionalLit -> m FractionalLit Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FractionalLit -> m FractionalLit Source
Ord FractionalLit |
Methods compare :: FractionalLit -> FractionalLit -> Ordering (<) :: FractionalLit -> FractionalLit -> Bool (<=) :: FractionalLit -> FractionalLit -> Bool (>) :: FractionalLit -> FractionalLit -> Bool (>=) :: FractionalLit -> FractionalLit -> Bool max :: FractionalLit -> FractionalLit -> FractionalLit min :: FractionalLit -> FractionalLit -> FractionalLit
Show FractionalLit |
Methods showsPrec :: Int -> FractionalLit -> ShowS Source show :: FractionalLit -> String Source showList :: [FractionalLit] -> ShowS Source
Outputable FractionalLit |
Methods ppr :: FractionalLit -> SDoc Source pprPrec :: Rational -> FractionalLit -> SDoc Source

negateFractionalLit :: FractionalLit -> FractionalLit Source

integralFractionalLit :: Integer -> FractionalLit Source

type SourceText = String Source

data IntWithInf Source

An integer or infinity

Instances

Eq IntWithInf |
Methods (==) :: IntWithInf -> IntWithInf -> Bool (/=) :: IntWithInf -> IntWithInf -> Bool
Num IntWithInf |
Methods (+) :: IntWithInf -> IntWithInf -> IntWithInf Source (-) :: IntWithInf -> IntWithInf -> IntWithInf Source (*) :: IntWithInf -> IntWithInf -> IntWithInf Source negate :: IntWithInf -> IntWithInf Source abs :: IntWithInf -> IntWithInf Source signum :: IntWithInf -> IntWithInf Source fromInteger :: Integer -> IntWithInf Source
Ord IntWithInf |
Methods compare :: IntWithInf -> IntWithInf -> Ordering (<) :: IntWithInf -> IntWithInf -> Bool (<=) :: IntWithInf -> IntWithInf -> Bool (>) :: IntWithInf -> IntWithInf -> Bool (>=) :: IntWithInf -> IntWithInf -> Bool max :: IntWithInf -> IntWithInf -> IntWithInf min :: IntWithInf -> IntWithInf -> IntWithInf
Outputable IntWithInf |
Methods ppr :: IntWithInf -> SDoc Source pprPrec :: Rational -> IntWithInf -> SDoc Source

infinity :: IntWithInf Source

A representation of infinity

treatZeroAsInf :: Int -> IntWithInf Source

Turn a positive number into an `IntWithInf`, where 0 represents infinity

mkIntWithInf :: Int -> IntWithInf Source

Inject any integer into an `IntWithInf`

intGtLimit :: Int -> IntWithInf -> Bool Source