| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Liquid.GHC.API.Extra
Synopsis
- module Liquid.GHC.API.StableModule
- data ApiComment
- addNoInlinePragmasToBinds :: TcGblEnv -> TcGblEnv
- apiComments :: HsParsedModule -> [Located ApiComment]
- apiCommentsParsedSource :: Located (HsModule GhcPs) -> [Located ApiComment]
- dataConSig :: DataCon -> ([TyCoVar], ThetaType, [Type], Type)
- directImports :: TcGblEnv -> [Module]
- fsToUnitId :: FastString -> UnitId
- isPatErrorAlt :: CoreAlt -> Bool
- minus_RDR :: RdrName
- qualifiedNameFS :: Name -> FastString
- renderWithStyle :: DynFlags -> SDoc -> PprStyle -> String
- showPprQualified :: Outputable a => a -> String
- showPprDebug :: Outputable a => a -> String
- showSDocQualified :: SDoc -> String
- splitDollarApp :: CoreExpr -> Maybe (CoreExpr, CoreExpr)
- strictNothing :: Maybe a
- thisPackage :: DynFlags -> UnitId
- tyConRealArity :: TyCon -> Int
- untick :: CoreExpr -> CoreExpr
- withTimingWallClock :: MonadIO m => Logger -> SDoc -> (a -> ()) -> m a -> m a
Documentation
module Liquid.GHC.API.StableModule
data ApiComment Source #
Abstraction of EpaComment.
Constructors
| ApiLineComment String | |
| ApiBlockComment String |
Instances
| Eq ApiComment Source # | |
Defined in Liquid.GHC.API.Extra | |
| Show ApiComment Source # | |
Defined in Liquid.GHC.API.Extra Methods showsPrec :: Int -> ApiComment -> ShowS # show :: ApiComment -> String # showList :: [ApiComment] -> ShowS # | |
addNoInlinePragmasToBinds :: TcGblEnv -> TcGblEnv Source #
Adds NOINLINE pragmas to all bindings in the module and sets them as exported identifiers.
This prevents the simple optimizer from inlining such bindings which might have specs that would otherwise be left dangling.
Setting the exported flag prevents both inlining and removal of dead bindings in the simple optimizer. NOINLINE is redundant with this, but it expresseses the intent more clearly. Note also that Language.Haskell.Liquid.Transform.Rewrite.inlineLoopBreaker depends at the moment on NOINLINE being inserted to tell appart bindings in the original program from generated bindings.
apiComments :: HsParsedModule -> [Located ApiComment] Source #
Extract top-level comments from a module.
apiCommentsParsedSource :: Located (HsModule GhcPs) -> [Located ApiComment] Source #
directImports :: TcGblEnv -> [Module] Source #
Extracts the direct imports of a module.
fsToUnitId :: FastString -> UnitId Source #
isPatErrorAlt :: CoreAlt -> Bool Source #
Tells if a case alternative calls to patError
qualifiedNameFS :: Name -> FastString Source #
showPprQualified :: Outputable a => a -> String Source #
showPprDebug :: Outputable a => a -> String Source #
showSDocQualified :: SDoc -> String Source #
strictNothing :: Maybe a Source #
thisPackage :: DynFlags -> UnitId Source #
tyConRealArity :: TyCon -> Int Source #
Arguments
| :: MonadIO m | |
| => Logger | |
| -> SDoc | The name of the phase |
| -> (a -> ()) | A function to force the result
(often either |
| -> m a | The body of the phase to be timed |
| -> m a |
A version of withTiming that uses wall clock time instead of CPU time.
This version is copied and modified from GHC's withTiming