Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
-
12f64118
by Wolfgang Jeltsch at 2026-08-15T06:31:12-04:00
16 changed files:
- + changelog.d/show-byte-code
- compiler/GHC/ByteCode/Serialize.hs
- + compiler/GHC/ByteCode/Show.hs
- compiler/ghc.cabal.in
- docs/users_guide/using.rst
- ghc/GHC/Driver/Session/Mode.hs
- ghc/Main.hs
- + testsuite/tests/show-bytecode/Example.hs
- + testsuite/tests/show-bytecode/Makefile
- + testsuite/tests/show-bytecode/all.T
- + testsuite/tests/show-bytecode/normalize
- + testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout
- + testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout-javascript-unknown-ghcjs
- + testsuite/tests/show-bytecode/show-bytecode-hpc.stdout
- + testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout
- + testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout-javascript-unknown-ghcjs
Changes:
| 1 | +section: bytecode
|
|
| 2 | +synopsis: Add support for textual output of bytecode file content
|
|
| 3 | +issues: #26909
|
|
| 4 | +mrs: !16386
|
|
| 5 | +description: {
|
|
| 6 | + There is now an option `--show-byte-code` for outputting relevant
|
|
| 7 | + content of a bytecode file in textual form.
|
|
| 8 | +} |
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | {- | This module implements the serialization of bytecode objects to and from disk.
|
| 7 | 7 | -}
|
| 8 | 8 | module GHC.ByteCode.Serialize
|
| 9 | - ( writeBinByteCode, readBinByteCode
|
|
| 9 | + ( writeBinByteCode, readBinByteCode, readOnDiskModuleByteCode
|
|
| 10 | 10 | , ModuleByteCode(..)
|
| 11 | 11 | , BytecodeLibX(..)
|
| 12 | 12 | , BytecodeLib
|
| 1 | +{-# LANGUAGE MagicHash #-}
|
|
| 2 | +{-# LANGUAGE ImportQualifiedPost #-}
|
|
| 3 | +{-# LANGUAGE RecordWildCards #-}
|
|
| 4 | + |
|
| 5 | +-- | This module implements the output of textual information about the contents
|
|
| 6 | +-- of bytecode files. It is the backbone of the @--show-byte-code@ option.
|
|
| 7 | +module GHC.ByteCode.Show (showByteCode) where
|
|
| 8 | + |
|
| 9 | +-- The output generated by 'showByteCode' shall follow some general guidelines.
|
|
| 10 | +-- See Note [Guidelines for the output of @--show-byte-code@] for details.
|
|
| 11 | + |
|
| 12 | +-- Prelude
|
|
| 13 | +import GHC.Prelude
|
|
| 14 | + |
|
| 15 | +-- Bytecode
|
|
| 16 | +import GHC.ByteCode.Types
|
|
| 17 | + (
|
|
| 18 | + FFIInfo (..),
|
|
| 19 | + BCONPtr (..),
|
|
| 20 | + BCOPtr (..),
|
|
| 21 | + UnlinkedBCO (..),
|
|
| 22 | + ByteCodeHpcInfo (..),
|
|
| 23 | + CompiledByteCode (..)
|
|
| 24 | + )
|
|
| 25 | +import GHC.ByteCode.Breakpoints
|
|
| 26 | + (
|
|
| 27 | + InternalBreakpointId (..),
|
|
| 28 | + InternalBreakLoc (..),
|
|
| 29 | + CgBreakInfo (..),
|
|
| 30 | + InternalModBreaks (..)
|
|
| 31 | + )
|
|
| 32 | +import GHC.ByteCode.Binary (OnDiskModuleByteCode (..))
|
|
| 33 | +import GHC.ByteCode.Serialize (readOnDiskModuleByteCode)
|
|
| 34 | + |
|
| 35 | +-- GHC apart from bytecode
|
|
| 36 | +import GHC.Data.Strict qualified as Strict (Maybe, maybe)
|
|
| 37 | +import GHC.Data.FastString (unpackFS)
|
|
| 38 | +import GHC.Data.FlatBag (FlatBag, elemsFlatBag)
|
|
| 39 | +import GHC.Fingerprint (Fingerprint)
|
|
| 40 | +import GHC.Types.SrcLoc (noSrcSpan)
|
|
| 41 | +import GHC.Types.Name (Name)
|
|
| 42 | +import GHC.Types.Name.Occurrence (OccName, HasOccName, occName, parenSymOcc)
|
|
| 43 | +import GHC.Types.Tickish (BreakTickIndex, BreakpointId (..))
|
|
| 44 | +import GHC.Types.SptEntry (SptEntry (..))
|
|
| 45 | +import GHC.Types.Error (MessageClass (MCDump))
|
|
| 46 | +import GHC.Utils.Panic.Plain (assert)
|
|
| 47 | +import GHC.Utils.Encoding.UTF8 (utf8DecodeShortByteString, utf8DecodeByteString)
|
|
| 48 | +import GHC.Utils.Logger (Logger, logMsg)
|
|
| 49 | +import GHC.Utils.Binary (BinSrcSpan (..))
|
|
| 50 | +import GHC.Utils.Outputable
|
|
| 51 | + (
|
|
| 52 | + Outputable,
|
|
| 53 | + defaultDumpStyle,
|
|
| 54 | + SDoc,
|
|
| 55 | + text,
|
|
| 56 | + (<>),
|
|
| 57 | + (<+>),
|
|
| 58 | + hsep,
|
|
| 59 | + quotes,
|
|
| 60 | + vcat,
|
|
| 61 | + hang,
|
|
| 62 | + ppr,
|
|
| 63 | + withPprStyle
|
|
| 64 | + )
|
|
| 65 | +import GHC.Unit.Types (Module, moduleName)
|
|
| 66 | +import GHC.Iface.Type (IfaceType, IfaceTvBndr, IfaceIdBndr)
|
|
| 67 | +import GHC.HsToCore.Breakpoints (ModBreaks (..))
|
|
| 68 | +import GHC.Driver.Env.Types (HscEnv)
|
|
| 69 | +import GHCi.FFI (FFIType)
|
|
| 70 | +import GHCi.Message (ConInfoTable (..))
|
|
| 71 | +import Language.Haskell.Syntax.Module.Name (moduleNameString)
|
|
| 72 | + |
|
| 73 | +-- Basic things
|
|
| 74 | +import Control.Arrow ((>>>))
|
|
| 75 | +import Data.Bool (bool)
|
|
| 76 | +import Data.List (zipWith4)
|
|
| 77 | +import Data.ByteString (ByteString)
|
|
| 78 | +import Data.ByteString.Short (ShortByteString)
|
|
| 79 | +import Data.IntMap (IntMap)
|
|
| 80 | +import Data.IntMap qualified as IntMap (toList)
|
|
| 81 | +import Data.Array (bounds, indices, elems)
|
|
| 82 | +import Numeric (showHex)
|
|
| 83 | +import GHC.Exts (Int (I#), Word (W#), int2Word#)
|
|
| 84 | + |
|
| 85 | +{-
|
|
| 86 | + |
|
| 87 | +Note [Guidelines for the output of @--show-byte-code@]
|
|
| 88 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
| 89 | + |
|
| 90 | +The output of @--show-byte-code@ shall be shaped according to the following
|
|
| 91 | +rules:
|
|
| 92 | + |
|
| 93 | + * The output is not a complete textual representation of the contents of a
|
|
| 94 | + bytecode file. Parts that are likely of little or no interest to a human
|
|
| 95 | + reader are left out. An example of such a “missing” part is the array of
|
|
| 96 | + instructions in a bytecode object.
|
|
| 97 | + |
|
| 98 | + * The shape of the output corresponds to a forest, whose structure closely
|
|
| 99 | + follows the structure of the bytecode representation within the compiler.
|
|
| 100 | + The textual representation of each subtree of this forest is generated using
|
|
| 101 | + the 'entry' operation defined in this module.
|
|
| 102 | + |
|
| 103 | + * Single quotes are put around items (using the 'quotes' operation) where this
|
|
| 104 | + makes it easier to distinguish the items from surrounding text. Examples of
|
|
| 105 | + items with quotes around them are names and types. Integer and string
|
|
| 106 | + literals are output without quotes, because they stick out by themselves.
|
|
| 107 | + |
|
| 108 | + * Infix operators are output with parentheses around them. To ensure that this
|
|
| 109 | + is always the case, all textual representations of 'OccName' and 'Name'
|
|
| 110 | + values are generated using the 'pprNameProperly' operation, defined in this
|
|
| 111 | + module, instead of the 'pprNameProperly' operation.
|
|
| 112 | + |
|
| 113 | +-}
|
|
| 114 | + |
|
| 115 | +-- | Outputs textual information about the contents of a bytecode file.
|
|
| 116 | +showByteCode :: Logger -> HscEnv -> FilePath -> IO ()
|
|
| 117 | +showByteCode logger env path = do
|
|
| 118 | + byteCode <- readOnDiskModuleByteCode env path
|
|
| 119 | + logMsg logger
|
|
| 120 | + MCDump
|
|
| 121 | + noSrcSpan
|
|
| 122 | + (withPprStyle defaultDumpStyle $ pprOnDiskModuleByteCode byteCode)
|
|
| 123 | + |
|
| 124 | +-- | Constructs textual information about the contents of a bytecode file.
|
|
| 125 | +pprOnDiskModuleByteCode :: OnDiskModuleByteCode -> SDoc
|
|
| 126 | +pprOnDiskModuleByteCode OnDiskModuleByteCode {..}
|
|
| 127 | + = vcat [
|
|
| 128 | + pprModule $ odgbc_module,
|
|
| 129 | + pprOnDiskModuleByteCodeHash $ odgbc_hash,
|
|
| 130 | + pprCompiledByteCode odgbc_module $ odgbc_compiled_byte_code
|
|
| 131 | + ]
|
|
| 132 | + |
|
| 133 | +-- | Constructs textual information about a module.
|
|
| 134 | +pprModule :: Module -> SDoc
|
|
| 135 | +pprModule = entry (text "module") . ppr
|
|
| 136 | + |
|
| 137 | +-- | Constructs textual information about the hash of a module.
|
|
| 138 | +pprOnDiskModuleByteCodeHash :: Fingerprint -> SDoc
|
|
| 139 | +pprOnDiskModuleByteCodeHash = entry (text "hash") . ppr
|
|
| 140 | + |
|
| 141 | +-- | Constructs textual information about bytecode.
|
|
| 142 | +pprCompiledByteCode :: Module -- ^ The enclosing module
|
|
| 143 | + -> CompiledByteCode -- ^ The bytecode
|
|
| 144 | + -> SDoc -- ^ The textual information
|
|
| 145 | +pprCompiledByteCode enclosing_module CompiledByteCode {..}
|
|
| 146 | + = vcat [
|
|
| 147 | + pprByteCodeObjects enclosing_module $ bc_bcos,
|
|
| 148 | + pprDataConstructorInfoTables $ bc_itbls,
|
|
| 149 | + pprTopLevelStrings $ bc_strs,
|
|
| 150 | + pprBreakpoints enclosing_module $ bc_breaks,
|
|
| 151 | + pprStaticPointerTableEntries $ bc_spt_entries,
|
|
| 152 | + pprHPCInfo enclosing_module $ bc_hpc_info
|
|
| 153 | + ]
|
|
| 154 | + |
|
| 155 | +-- | Constructs textual information about bytecode objects.
|
|
| 156 | +pprByteCodeObjects :: Module -- ^ The enlosing module
|
|
| 157 | + -> FlatBag UnlinkedBCO -- ^ The bytecode objects
|
|
| 158 | + -> SDoc -- ^ The textual information
|
|
| 159 | +pprByteCodeObjects enclosing_module = entry (text "objects") .
|
|
| 160 | + vcatOrNone .
|
|
| 161 | + map (pprByteCodeObject enclosing_module) .
|
|
| 162 | + elemsFlatBag
|
|
| 163 | + |
|
| 164 | +-- | Constructs textual information about a single bytecode object.
|
|
| 165 | +pprByteCodeObject :: Module -- ^ The enclosing module
|
|
| 166 | + -> UnlinkedBCO -- ^ The bytecode object
|
|
| 167 | + -> SDoc -- ^ The textual information
|
|
| 168 | +pprByteCodeObject enclosing_module byte_code_object = case byte_code_object of
|
|
| 169 | + UnlinkedBCO {..}
|
|
| 170 | + -> entry (text "object" <+> quotes (pprNameProperly unlinkedBCOName)) $
|
|
| 171 | + vcat [
|
|
| 172 | + pprArity $ unlinkedBCOArity,
|
|
| 173 | + pprLiterals enclosing_module $ unlinkedBCOLits,
|
|
| 174 | + pprUsedItems enclosing_module $ unlinkedBCOPtrs
|
|
| 175 | + ]
|
|
| 176 | + UnlinkedStaticCon {..}
|
|
| 177 | + -> entry (
|
|
| 178 | + text "static-construction object" <+>
|
|
| 179 | + quotes (pprNameProperly unlinkedStaticConName)
|
|
| 180 | + )
|
|
| 181 | + $
|
|
| 182 | + vcat [
|
|
| 183 | + pprDataConstructor $ unlinkedStaticConDataConName,
|
|
| 184 | + pprLiftedness $ not unlinkedStaticConIsUnlifted,
|
|
| 185 | + pprLiterals enclosing_module $ unlinkedStaticConLits,
|
|
| 186 | + pprUsedItems enclosing_module $ unlinkedStaticConPtrs
|
|
| 187 | + ]
|
|
| 188 | + |
|
| 189 | +-- | Constructs textual information about the arity of a bytecode object.
|
|
| 190 | +pprArity :: Int -> SDoc
|
|
| 191 | +pprArity = entry (text "arity") . ppr
|
|
| 192 | + |
|
| 193 | +-- | Constructs textual information about the data constructor of a
|
|
| 194 | +-- static-construction bytecode object.
|
|
| 195 | +pprDataConstructor :: Name -> SDoc
|
|
| 196 | +pprDataConstructor = entry (text "data constructor") . pprNameProperly
|
|
| 197 | + |
|
| 198 | +-- | Constructs textual information about the liftedness of a
|
|
| 199 | +-- static-construction bytecode object.
|
|
| 200 | +pprLiftedness :: Bool -> SDoc
|
|
| 201 | +pprLiftedness = entry (text "lifted") . noOrYes
|
|
| 202 | + |
|
| 203 | +-- | Constructs textual information about literals.
|
|
| 204 | +pprLiterals :: Module -- ^ The enclosing module
|
|
| 205 | + -> FlatBag BCONPtr -- ^ The literals
|
|
| 206 | + -> SDoc -- ^ The textual information
|
|
| 207 | +pprLiterals enclosing_module = entry (text "literals") .
|
|
| 208 | + vcatOrNone .
|
|
| 209 | + map (pprLiteral enclosing_module) .
|
|
| 210 | + elemsFlatBag
|
|
| 211 | + |
|
| 212 | +-- | Constructs textual information about a single literal.
|
|
| 213 | +pprLiteral :: Module -- ^ The enclosing module
|
|
| 214 | + -> BCONPtr -- ^ The literal
|
|
| 215 | + -> SDoc -- ^ The textual information
|
|
| 216 | +pprLiteral enclosing_module literal = case literal of
|
|
| 217 | + BCONPtrWord word
|
|
| 218 | + -> text "word" <+>
|
|
| 219 | + ppr word
|
|
| 220 | + BCONPtrLbl label
|
|
| 221 | + -> text "label" <+>
|
|
| 222 | + quotes (ppr label)
|
|
| 223 | + BCONPtrItbl infoTableName
|
|
| 224 | + -> text "info table of" <+>
|
|
| 225 | + quotes (pprNameProperly infoTableName)
|
|
| 226 | + BCONPtrAddr addrName
|
|
| 227 | + -> text "address" <+>
|
|
| 228 | + quotes (pprNameProperly addrName)
|
|
| 229 | + BCONPtrStr encoded_string
|
|
| 230 | + -> text "top-level string" <+>
|
|
| 231 | + text (show (utf8DecodeByteString encoded_string))
|
|
| 232 | + BCONPtrFS string
|
|
| 233 | + -> text "top-level string" <+>
|
|
| 234 | + text (show (unpackFS string))
|
|
| 235 | + BCONPtrFFIInfo ffiInfo
|
|
| 236 | + -> text "foreign function of type" <+>
|
|
| 237 | + quotes (pprFFIInfo ffiInfo)
|
|
| 238 | + BCONPtrCostCentre breakpointID
|
|
| 239 | + -> text "cost center of breakpoint" <+>
|
|
| 240 | + pprInternalBreakpointID enclosing_module breakpointID
|
|
| 241 | + |
|
| 242 | +-- | Constructs textual information about FFI info.
|
|
| 243 | +pprFFIInfo :: FFIInfo -> SDoc
|
|
| 244 | +pprFFIInfo FFIInfo {..}
|
|
| 245 | + = hsep (map (pprFFIType >>> (<+> text "->")) ffiInfoArgs) <+>
|
|
| 246 | + pprFFIType ffiInfoRet
|
|
| 247 | + |
|
| 248 | +-- | Constructs textual information about an FFI type.
|
|
| 249 | +pprFFIType :: FFIType -> SDoc
|
|
| 250 | +pprFFIType ffi_type = assert (take 3 ident == "FFI") $ text (drop 3 ident) where
|
|
| 251 | + |
|
| 252 | + ident :: String
|
|
| 253 | + ident = show ffi_type
|
|
| 254 | + |
|
| 255 | +-- | Constructs textual information about the ID of a bytecode breakpoint.
|
|
| 256 | +pprInternalBreakpointID
|
|
| 257 | + :: Module -- ^ The enclosing module
|
|
| 258 | + -> InternalBreakpointId -- ^ The ID of the bytecode breakpoint
|
|
| 259 | + -> SDoc -- ^ The textual information
|
|
| 260 | +pprInternalBreakpointID enclosing_module InternalBreakpointId {..}
|
|
| 261 | + | ibi_info_mod == enclosing_module = index_doc
|
|
| 262 | + | otherwise = index_doc <+>
|
|
| 263 | + text "in" <+>
|
|
| 264 | + quotes (ppr ibi_info_mod)
|
|
| 265 | + where
|
|
| 266 | + |
|
| 267 | + index_doc :: SDoc
|
|
| 268 | + index_doc = ppr ibi_info_index
|
|
| 269 | + |
|
| 270 | +-- | Constructs textual information about used items.
|
|
| 271 | +pprUsedItems :: Module -- ^ The enclosing module
|
|
| 272 | + -> FlatBag BCOPtr -- ^ The used items
|
|
| 273 | + -> SDoc -- ^ The textual information
|
|
| 274 | +pprUsedItems enclosing_module = entry (text "used items") .
|
|
| 275 | + vcatOrNone .
|
|
| 276 | + map (pprUsedItem enclosing_module) .
|
|
| 277 | + elemsFlatBag
|
|
| 278 | + |
|
| 279 | +-- | Constructs textual information about a single used item.
|
|
| 280 | +pprUsedItem :: Module -- ^ The enclosing module
|
|
| 281 | + -> BCOPtr -- ^ The used item
|
|
| 282 | + -> SDoc -- ^ The textual information
|
|
| 283 | +pprUsedItem enclosing_module used_item = case used_item of
|
|
| 284 | + BCOPtrName name
|
|
| 285 | + -> text "named item" <+> quotes (pprNameProperly name)
|
|
| 286 | + BCOPtrPrimOp primOp
|
|
| 287 | + -> text "primitive operation" <+> quotes (ppr primOp)
|
|
| 288 | + BCOPtrBCO byte_code_object
|
|
| 289 | + -> pprByteCodeObject enclosing_module byte_code_object
|
|
| 290 | + BCOPtrBreakArray breakArrayModule
|
|
| 291 | + -> text "break array of module" <+> quotes (ppr breakArrayModule)
|
|
| 292 | + |
|
| 293 | +-- | Constructs textual information about data constructor info tables.
|
|
| 294 | +pprDataConstructorInfoTables :: [(Name, ConInfoTable)] -> SDoc
|
|
| 295 | +pprDataConstructorInfoTables = entry (text "data constructor info tables") .
|
|
| 296 | + vcatOrNone .
|
|
| 297 | + map (uncurry pprDataConstructorInfoTable)
|
|
| 298 | + |
|
| 299 | +-- | Constructs textual information about a single data constructor info table.
|
|
| 300 | +pprDataConstructorInfoTable :: Name -> ConInfoTable -> SDoc
|
|
| 301 | +pprDataConstructorInfoTable data_constr_name ConInfoTable {..}
|
|
| 302 | + = entry (text "info table of" <+> quotes (pprNameProperly data_constr_name)) $
|
|
| 303 | + vcat [
|
|
| 304 | + pprPointerWordCount $ conItblPtrs,
|
|
| 305 | + pprNonPointerWordCount $ conItblNPtrs
|
|
| 306 | + ]
|
|
| 307 | + |
|
| 308 | +-- | Constructs textual information about a number of pointer words.
|
|
| 309 | +pprPointerWordCount :: Int -> SDoc
|
|
| 310 | +pprPointerWordCount = entry (text "number of words for pointers") . ppr
|
|
| 311 | + |
|
| 312 | +-- | Constructs textual information about a number of non-pointer words.
|
|
| 313 | +pprNonPointerWordCount :: Int -> SDoc
|
|
| 314 | +pprNonPointerWordCount = entry (text "number of words for non-pointers") . ppr
|
|
| 315 | + |
|
| 316 | +-- | Constructs textual information about top-level strings.
|
|
| 317 | +pprTopLevelStrings :: [(Name, ByteString)] -> SDoc
|
|
| 318 | +pprTopLevelStrings = entry (text "top-level strings") .
|
|
| 319 | + vcatOrNone .
|
|
| 320 | + map (uncurry pprTopLevelString)
|
|
| 321 | + |
|
| 322 | +-- | Constructs textual information about a single top-level string.
|
|
| 323 | +pprTopLevelString :: Name -> ByteString -> SDoc
|
|
| 324 | +pprTopLevelString string_name encoded_string
|
|
| 325 | + = entry (pprNameProperly string_name) $
|
|
| 326 | + text $
|
|
| 327 | + show $
|
|
| 328 | + utf8DecodeByteString $
|
|
| 329 | + encoded_string
|
|
| 330 | + |
|
| 331 | +-- | Constructs textual information about breakpoints.
|
|
| 332 | +pprBreakpoints :: Module -- ^ The enclosing module
|
|
| 333 | + -> Maybe InternalModBreaks -- ^ The breakpoints
|
|
| 334 | + -> SDoc -- ^ The textual information
|
|
| 335 | +pprBreakpoints enclosing_module
|
|
| 336 | + = entry (text "breakpoints") .
|
|
| 337 | + maybe (text "<none>") (pprActualBreakpoints enclosing_module)
|
|
| 338 | + |
|
| 339 | +-- | Constructs textual information about actual breakpoints.
|
|
| 340 | +pprActualBreakpoints :: Module -- ^ The enclosing module
|
|
| 341 | + -> InternalModBreaks -- ^ The actual breakpoints
|
|
| 342 | + -> SDoc -- ^ The textual information
|
|
| 343 | +pprActualBreakpoints enclosing_module InternalModBreaks {..}
|
|
| 344 | + = vcat [
|
|
| 345 | + pprSourceBreakpoints enclosing_module $ imodBreaks_modBreaks,
|
|
| 346 | + pprByteCodeBreakpoints enclosing_module $ imodBreaks_breakInfo
|
|
| 347 | + ]
|
|
| 348 | + |
|
| 349 | +-- | Constructs textual information about source breakpoints.
|
|
| 350 | +pprSourceBreakpoints :: Module -- ^ The enclosing module
|
|
| 351 | + -> ModBreaks -- ^ The source breakpoints
|
|
| 352 | + -> SDoc -- ^ The textual information
|
|
| 353 | +pprSourceBreakpoints enclosing_module ModBreaks {..}
|
|
| 354 | + = entry (text "source breakpoints") $
|
|
| 355 | + assert (modBreaks_module == enclosing_module) $
|
|
| 356 | + assert (bounds modBreaks_locs_ == bounds modBreaks_decls) $
|
|
| 357 | + assert (bounds modBreaks_locs_ == bounds modBreaks_vars) $
|
|
| 358 | + vcatOrNone $
|
|
| 359 | + zipWith4 pprSourceBreakpoint (indices modBreaks_locs_)
|
|
| 360 | + (elems modBreaks_locs_)
|
|
| 361 | + (elems modBreaks_decls)
|
|
| 362 | + (elems modBreaks_vars)
|
|
| 363 | + -- The cost center infos in 'modBreaks_ccs', when present, just contain
|
|
| 364 | + -- textual representations of the declaration paths in 'modBreaks_decls' and
|
|
| 365 | + -- the source spans in 'modBreaks_locs_' and are therefore never shown.
|
|
| 366 | + |
|
| 367 | +-- | Constructs textual information about a single source breakpoint.
|
|
| 368 | +pprSourceBreakpoint
|
|
| 369 | + :: BreakTickIndex -- ^ The index of the source breakpoint
|
|
| 370 | + -> BinSrcSpan -- ^ The source span of the source breakpoint
|
|
| 371 | + -> [String] -- ^ The names declared by the surrounding declarations
|
|
| 372 | + -> [OccName] -- ^ The free variables of the source breakpoint
|
|
| 373 | + -> SDoc -- ^ The textual information
|
|
| 374 | +pprSourceBreakpoint ix src_span declaration_path free_vars
|
|
| 375 | + = entry (text "source breakpoint" <+> ppr ix) $
|
|
| 376 | + vcat [
|
|
| 377 | + pprSrcSpan $ src_span,
|
|
| 378 | + pprDeclarationPath $ declaration_path,
|
|
| 379 | + pprFreeVariables $ free_vars
|
|
| 380 | + ]
|
|
| 381 | + |
|
| 382 | +-- | Constructs textual information about a source span.
|
|
| 383 | +pprSrcSpan :: BinSrcSpan -> SDoc
|
|
| 384 | +pprSrcSpan = entry (text "source span") . ppr . unBinSrcSpan
|
|
| 385 | + |
|
| 386 | +-- | Constructs textual information about a declaration path, which is the list
|
|
| 387 | +-- of names declared by the declarations surrounding a source breakpoint.
|
|
| 388 | +pprDeclarationPath :: [String] -> SDoc
|
|
| 389 | +pprDeclarationPath = entry (text "declaration path") . vcatOrEmpty . map text
|
|
| 390 | + |
|
| 391 | +-- | Constructs textual information about free variables.
|
|
| 392 | +pprFreeVariables :: [OccName] -> SDoc
|
|
| 393 | +pprFreeVariables = entry (text "free variables") .
|
|
| 394 | + vcatOrNone .
|
|
| 395 | + map pprNameProperly
|
|
| 396 | + |
|
| 397 | +-- | Constructs textual information about bytecode breakpoints.
|
|
| 398 | +pprByteCodeBreakpoints :: Module -- ^ The enclosing module
|
|
| 399 | + -> IntMap CgBreakInfo -- ^ The bytecode breakpoints
|
|
| 400 | + -> SDoc -- ^ The textual information
|
|
| 401 | +pprByteCodeBreakpoints enclosing_module
|
|
| 402 | + = entry (text "bytecode breakpoints") .
|
|
| 403 | + vcatOrNone .
|
|
| 404 | + map (uncurry (pprByteCodeBreakpoint enclosing_module)) .
|
|
| 405 | + IntMap.toList
|
|
| 406 | + |
|
| 407 | +-- | Constructs textual information about a single bytecode breakpoint.
|
|
| 408 | +pprByteCodeBreakpoint :: Module -- ^ The enclosing module
|
|
| 409 | + -> Int -- ^ The index of the bytecode breakpoint
|
|
| 410 | + -> CgBreakInfo -- ^ The bytecode breakpoint
|
|
| 411 | + -> SDoc -- ^ The textual information
|
|
| 412 | +pprByteCodeBreakpoint enclosing_module ix CgBreakInfo {..}
|
|
| 413 | + = entry (text "bytecode breakpoint" <+> ppr ix) $
|
|
| 414 | + vcat [
|
|
| 415 | + pprType $ cgb_resty,
|
|
| 416 | + pprTypeVariables $ cgb_tyvars,
|
|
| 417 | + pprVariables $ cgb_vars,
|
|
| 418 | + pprCorrespondingSourceBreakpoint enclosing_module $ cgb_tick_id
|
|
| 419 | + ]
|
|
| 420 | + -- That the 'cgb_resty' field holds the type of the breakpoint is apparent
|
|
| 421 | + -- from the fact that this field is set by
|
|
| 422 | + -- 'GHC.StgToByteCode.dehydrateCgBreakInfo' using one of its arguments and
|
|
| 423 | + -- 'GHC.StgToByteCode.dehydrateCgBreakInfo' is always invoked with this
|
|
| 424 | + -- argument set to the extension field of 'Breakpoint', which in turn holds
|
|
| 425 | + -- the type of the breakpoint according to Note [Tickish passes] and the
|
|
| 426 | + -- comment on the instance declaration of @XBreakpoint 'TickishPassStg@.
|
|
| 427 | + |
|
| 428 | +-- | Constructs textual information about a type.
|
|
| 429 | +pprType :: IfaceType -> SDoc
|
|
| 430 | +pprType = entry (text "type") . ppr
|
|
| 431 | + |
|
| 432 | +-- | Constructs textual information about type variables.
|
|
| 433 | +pprTypeVariables :: [IfaceTvBndr] -> SDoc
|
|
| 434 | +pprTypeVariables = entry (text "type variables") .
|
|
| 435 | + vcatOrNone .
|
|
| 436 | + map pprTypeVariableBinder
|
|
| 437 | + |
|
| 438 | +-- | Constructs textual information about a type variable binder.
|
|
| 439 | +pprTypeVariableBinder :: IfaceTvBndr -> SDoc
|
|
| 440 | +pprTypeVariableBinder (name, kind) = ppr name <+> text "::" <+> ppr kind
|
|
| 441 | + |
|
| 442 | +-- | Constructs textual information about variables.
|
|
| 443 | +pprVariables :: [Maybe (IfaceIdBndr, Word)] -> SDoc
|
|
| 444 | +pprVariables = entry (text "variables") . vcatOrNone . map pprVariable
|
|
| 445 | + |
|
| 446 | +-- | Constructs textual information about a single variable.
|
|
| 447 | +pprVariable :: Maybe (IfaceIdBndr, Word) -> SDoc
|
|
| 448 | +pprVariable = maybe (text "<unknown>") (pprVariableBinder . fst)
|
|
| 449 | + |
|
| 450 | +-- | Constructs textual information about a variable binder.
|
|
| 451 | +pprVariableBinder :: IfaceIdBndr -> SDoc
|
|
| 452 | +pprVariableBinder (multiplicity, name, type_)
|
|
| 453 | + = text "%" <> ppr multiplicity <+>
|
|
| 454 | + ppr name <+> text "::" <+> ppr type_
|
|
| 455 | + |
|
| 456 | +-- | Constructs textual information about a source breakpoint corresponding to a
|
|
| 457 | +-- bytecode breakpoint.
|
|
| 458 | +pprCorrespondingSourceBreakpoint :: Module
|
|
| 459 | + -- ^ The enclosing module
|
|
| 460 | + -> Either InternalBreakLoc BreakpointId
|
|
| 461 | + -- ^ A reference to the source breakpoint
|
|
| 462 | + -> SDoc
|
|
| 463 | + -- ^ The textual information
|
|
| 464 | +pprCorrespondingSourceBreakpoint enclosing_module
|
|
| 465 | + = entry (text "corresponding source breakpoint") .
|
|
| 466 | + pprBreakpointID enclosing_module .
|
|
| 467 | + either internalBreakLoc id
|
|
| 468 | + |
|
| 469 | +-- | Constructs textual information about the ID of a source breakpoint.
|
|
| 470 | +pprBreakpointID :: Module -- ^ The enclosing module
|
|
| 471 | + -> BreakpointId -- ^ The ID of the source breakpoint
|
|
| 472 | + -> SDoc -- ^ The textual information
|
|
| 473 | +pprBreakpointID enclosing_module BreakpointId {..}
|
|
| 474 | + | bi_tick_mod == enclosing_module = index_doc
|
|
| 475 | + | otherwise = index_doc <+>
|
|
| 476 | + text "in" <+>
|
|
| 477 | + quotes (ppr bi_tick_mod)
|
|
| 478 | + where
|
|
| 479 | + |
|
| 480 | + index_doc :: SDoc
|
|
| 481 | + index_doc = ppr bi_tick_index
|
|
| 482 | + |
|
| 483 | +-- | Constructs textual information about static-pointer table entries.
|
|
| 484 | +pprStaticPointerTableEntries :: [SptEntry] -> SDoc
|
|
| 485 | +pprStaticPointerTableEntries = entry (text "static-pointer table entries") .
|
|
| 486 | + vcatOrNone .
|
|
| 487 | + map pprStaticPointerTableEntry
|
|
| 488 | + |
|
| 489 | +-- | Constructs textual information about a single static-pointer table entry.
|
|
| 490 | +pprStaticPointerTableEntry :: SptEntry -> SDoc
|
|
| 491 | +pprStaticPointerTableEntry (SptEntry name fingerprint)
|
|
| 492 | + = entry (ppr fingerprint) (pprNameProperly name)
|
|
| 493 | + |
|
| 494 | +-- | Constructs textual information about HPC info.
|
|
| 495 | +pprHPCInfo :: Module -- ^ The enclosing module
|
|
| 496 | + -> Strict.Maybe ByteCodeHpcInfo -- ^ The HPC info
|
|
| 497 | + -> SDoc -- ^ The textual information
|
|
| 498 | +pprHPCInfo enclosing_module
|
|
| 499 | + = entry (text "HPC information") .
|
|
| 500 | + Strict.maybe (text "<none>") (pprActualHPCInfo enclosing_module)
|
|
| 501 | + |
|
| 502 | +-- | Constructs textual information about actual HPC info.
|
|
| 503 | +pprActualHPCInfo :: Module -- ^ The enclosing module
|
|
| 504 | + -> ByteCodeHpcInfo -- ^ The actual HPC info
|
|
| 505 | + -> SDoc -- ^ The textual information
|
|
| 506 | +pprActualHPCInfo enclosing_module ByteCodeHpcInfo {..}
|
|
| 507 | + = assert (
|
|
| 508 | + utf8DecodeShortByteString bchi_module_name
|
|
| 509 | + ==
|
|
| 510 | + moduleNameString (moduleName enclosing_module)
|
|
| 511 | + )
|
|
| 512 | + $
|
|
| 513 | + vcat [
|
|
| 514 | + pprHPCInfoHash $ bchi_hash,
|
|
| 515 | + pprTickBox $ bchi_tickbox_name,
|
|
| 516 | + pprTickCount $ bchi_tick_count
|
|
| 517 | + ]
|
|
| 518 | + |
|
| 519 | +-- | Constructs textual information about the hash of HPC info.
|
|
| 520 | +pprHPCInfoHash :: Int -> SDoc
|
|
| 521 | +pprHPCInfoHash = entry (text "hash") . pprFixedSizeNatural . intToWord
|
|
| 522 | + |
|
| 523 | +-- | Constructs textual information about a tick box.
|
|
| 524 | +pprTickBox :: ShortByteString -> SDoc
|
|
| 525 | +pprTickBox = entry (text "tick box") . text . utf8DecodeShortByteString
|
|
| 526 | + |
|
| 527 | +-- | Constructs textual information about a number of ticks.
|
|
| 528 | +pprTickCount :: Int -> SDoc
|
|
| 529 | +pprTickCount = entry (text "number of ticks") . ppr
|
|
| 530 | + |
|
| 531 | +-- | Constructs the Haskell representation of a name. This includes putting
|
|
| 532 | +-- parentheses around operators. The given name is supposed to be of type
|
|
| 533 | +-- 'OccName' or 'Name'.
|
|
| 534 | +pprNameProperly :: (HasOccName a, Outputable a) => a -> SDoc
|
|
| 535 | +pprNameProperly name = parenSymOcc (occName name) (ppr name)
|
|
| 536 | + |
|
| 537 | +-- | Constructs a hexadecimal representation of a natural number such that the
|
|
| 538 | +-- number of hexadecimal digits fits the number of bits used to represent the
|
|
| 539 | +-- natural number.
|
|
| 540 | +pprFixedSizeNatural :: (Integral a, FiniteBits a) => a -> SDoc
|
|
| 541 | +pprFixedSizeNatural num
|
|
| 542 | + = assert (num >= 0) $
|
|
| 543 | + text $ replicate (digit_count - length unpadded) '0' ++ unpadded
|
|
| 544 | + where
|
|
| 545 | + |
|
| 546 | + digit_count :: Int
|
|
| 547 | + digit_count = (finiteBitSize num + 3) `div` 4
|
|
| 548 | + |
|
| 549 | + unpadded :: String
|
|
| 550 | + unpadded = showHex num ""
|
|
| 551 | + |
|
| 552 | +-- | Turns an 'Int' value into the 'Word' value with the same representation.
|
|
| 553 | +intToWord :: Int -> Word
|
|
| 554 | +intToWord (I# int#) = W# (int2Word# int#)
|
|
| 555 | + |
|
| 556 | +-- | Constructs a textual representation of a boolean, interpreting 'True' and
|
|
| 557 | +-- 'False' as “yes” and “no”, respectively.
|
|
| 558 | +noOrYes :: Bool -> SDoc
|
|
| 559 | +noOrYes = text . bool "no" "yes"
|
|
| 560 | + |
|
| 561 | +-- | Constructs an entry in a list of textual data representations.
|
|
| 562 | +entry :: SDoc -- ^ The title of the entry
|
|
| 563 | + -> SDoc -- ^ The contents of the entry
|
|
| 564 | + -> SDoc -- ^ The entry
|
|
| 565 | +entry title contents = hang (title <> text ":") 2 contents
|
|
| 566 | + |
|
| 567 | +-- | Composes documents vertically in general, but presents an empty document
|
|
| 568 | +-- list as @<none>@.
|
|
| 569 | +vcatOrNone :: [SDoc] -> SDoc
|
|
| 570 | +vcatOrNone [] = text "<none>"
|
|
| 571 | +vcatOrNone docs = vcat docs
|
|
| 572 | + |
|
| 573 | +-- | Composes documents vertically in general, but presents an empty document
|
|
| 574 | +-- list as @<empty>@.
|
|
| 575 | +vcatOrEmpty :: [SDoc] -> SDoc
|
|
| 576 | +vcatOrEmpty [] = text "<empty>"
|
|
| 577 | +vcatOrEmpty docs = vcat docs |
| ... | ... | @@ -220,6 +220,7 @@ Library |
| 220 | 220 | GHC.ByteCode.Linker
|
| 221 | 221 | GHC.ByteCode.Recomp.Binary
|
| 222 | 222 | GHC.ByteCode.Serialize
|
| 223 | + GHC.ByteCode.Show
|
|
| 223 | 224 | GHC.ByteCode.Types
|
| 224 | 225 | GHC.Cmm
|
| 225 | 226 | GHC.Cmm.BlockId
|
| ... | ... | @@ -453,6 +453,13 @@ The available mode flags are: |
| 453 | 453 | |
| 454 | 454 | Read an interface file and dump relevent parts of it as text to ``stdout``.
|
| 455 | 455 | |
| 456 | +.. ghc-flag:: --show-byte-code ⟨file⟩
|
|
| 457 | + :shortdesc: display contents of a bytecode file.
|
|
| 458 | + :type: mode
|
|
| 459 | + :category: modes
|
|
| 460 | + |
|
| 461 | + Read a bytecode file and dump relevant parts of it as text to ``stdout``.
|
|
| 462 | + |
|
| 456 | 463 | .. ghc-flag:: --supported-extensions
|
| 457 | 464 | --supported-languages
|
| 458 | 465 | :shortdesc: display the supported language extensions
|
| ... | ... | @@ -77,6 +77,7 @@ isShowGhciUsageMode _ = False |
| 77 | 77 | |
| 78 | 78 | data PostLoadMode
|
| 79 | 79 | = ShowInterface FilePath -- ghc --show-iface
|
| 80 | + | ShowByteCode FilePath -- ghc --show-byte-code
|
|
| 80 | 81 | | DoMkDependHS -- ghc -M
|
| 81 | 82 | | StopBefore StopPhase -- ghc -E | -C | -S
|
| 82 | 83 | -- StopBefore StopLn is the default
|
| ... | ... | @@ -101,6 +102,9 @@ showUnitsMode = mkPostLoadMode ShowPackages |
| 101 | 102 | showInterfaceMode :: FilePath -> Mode
|
| 102 | 103 | showInterfaceMode fp = mkPostLoadMode (ShowInterface fp)
|
| 103 | 104 | |
| 105 | +showByteCodeMode :: FilePath -> Mode
|
|
| 106 | +showByteCodeMode fp = mkPostLoadMode (ShowByteCode fp)
|
|
| 107 | + |
|
| 104 | 108 | stopBeforeMode :: StopPhase -> Mode
|
| 105 | 109 | stopBeforeMode phase = mkPostLoadMode (StopBefore phase)
|
| 106 | 110 | |
| ... | ... | @@ -231,9 +235,11 @@ mode_flags = |
| 231 | 235 | replaceSpace ' ' = '-'
|
| 232 | 236 | replaceSpace c = c
|
| 233 | 237 | ] ++
|
| 234 | - ------- interfaces ----------------------------------------------------
|
|
| 235 | - [ defFlag "-show-iface" (HasArg (\f -> setMode (showInterfaceMode f)
|
|
| 238 | + ------- textual output of generated data -----------------------------
|
|
| 239 | + [ defFlag "-show-iface" (HasArg (\f -> setMode (showInterfaceMode f)
|
|
| 236 | 240 | "--show-iface"))
|
| 241 | + , defFlag "-show-byte-code" (HasArg (\f -> setMode (showByteCodeMode f)
|
|
| 242 | + "--show-byte-code"))
|
|
| 237 | 243 | |
| 238 | 244 | ------- primary modes ------------------------------------------------
|
| 239 | 245 | , defFlag "c" (PassFlag (\f -> do setMode (stopBeforeMode NoStop) f
|
| ... | ... | @@ -73,6 +73,8 @@ import GHC.SysTools.BaseDir |
| 73 | 73 | import GHC.Iface.Load
|
| 74 | 74 | import GHC.Iface.Recomp.Binary ( fingerprintBinMem )
|
| 75 | 75 | |
| 76 | +import GHC.ByteCode.Show ( showByteCode )
|
|
| 77 | + |
|
| 76 | 78 | import GHC.Tc.Utils.Monad ( initIfaceCheck )
|
| 77 | 79 | import GHC.Iface.Errors.Ppr
|
| 78 | 80 | |
| ... | ... | @@ -267,6 +269,7 @@ main' postLoadMode units dflags0 args flagWarnings = do |
| 267 | 269 | (hsc_units hsc_env)
|
| 268 | 270 | (hsc_NC hsc_env)
|
| 269 | 271 | f
|
| 272 | + ShowByteCode f -> liftIO $ showByteCode logger hsc_env f
|
|
| 270 | 273 | DoMake -> doMake units srcs
|
| 271 | 274 | DoMkDependHS -> doMkDependHS (map fst srcs)
|
| 272 | 275 | StopBefore p -> liftIO (oneShot hsc_env p srcs)
|
| 1 | +{-# LANGUAGE StaticPointers #-}
|
|
| 2 | + |
|
| 3 | +-- | This module uses in particular the following features:
|
|
| 4 | +--
|
|
| 5 | +-- * Local variables defined in `where` clauses
|
|
| 6 | +-- * Integer literals
|
|
| 7 | +-- * Infix operators
|
|
| 8 | +-- * Recursion
|
|
| 9 | +-- * Static pointers
|
|
| 10 | +-- * Algebraic-datatype declarations
|
|
| 11 | +-- * Foreign import declarations
|
|
| 12 | +module Example where
|
|
| 13 | + |
|
| 14 | +import Numeric.Natural (Natural)
|
|
| 15 | +import Foreign.Ptr (Ptr)
|
|
| 16 | +import Foreign.C.Types (CChar, CSize (CSize))
|
|
| 17 | +import GHC.StaticPtr (StaticPtr)
|
|
| 18 | + |
|
| 19 | +fibonaccis :: [Natural]
|
|
| 20 | +fibonaccis = 0 : positiveFibonaccis where
|
|
| 21 | + |
|
| 22 | + positiveFibonaccis :: [Natural]
|
|
| 23 | + positiveFibonaccis = 1 : zipWith (+) fibonaccis positiveFibonaccis
|
|
| 24 | + |
|
| 25 | +fibonaccisPtr :: StaticPtr [Natural]
|
|
| 26 | +fibonaccisPtr = static fibonaccis
|
|
| 27 | + |
|
| 28 | +divides :: Integral a => a -> a -> Bool
|
|
| 29 | +k `divides` n = n `mod` k == 0
|
|
| 30 | + |
|
| 31 | +primes :: [Natural]
|
|
| 32 | +primes = 2 : filter isPrime [3 ..] where
|
|
| 33 | + |
|
| 34 | + isPrime :: Natural -> Bool
|
|
| 35 | + isPrime n = not (any (`divides` n) (takeWhile ((<= n) . (^ 2)) primes))
|
|
| 36 | + |
|
| 37 | +primesPtr :: StaticPtr [Natural]
|
|
| 38 | +primesPtr = static primes
|
|
| 39 | + |
|
| 40 | +data BinTree a b = Leaf a | Node (BinTree a b) b (BinTree a b)
|
|
| 41 | + |
|
| 42 | +data PerfectTree a = PerfectTree a | Nested (PerfectTree (a, a))
|
|
| 43 | + |
|
| 44 | +foreign import ccall "string.h strlen"
|
|
| 45 | + cstrlen :: Ptr CChar -> IO CSize |
| 1 | +TOP=../..
|
|
| 2 | +include $(TOP)/mk/boilerplate.mk
|
|
| 3 | +include $(TOP)/mk/test.mk
|
|
| 4 | + |
|
| 5 | +compile = '$(TEST_HC)' $(TEST_HC_OPTS) -fbyte-code -fwrite-byte-code -no-link
|
|
| 6 | +show = '$(TEST_HC)' $(TEST_HC_OPTS) --show-byte-code
|
|
| 7 | + |
|
| 8 | +show-bytecode-vanilla:
|
|
| 9 | + $(compile) Example.hs
|
|
| 10 | + $(show) Example.gbc | ./normalize
|
|
| 11 | + |
|
| 12 | +show-bytecode-breakpoints:
|
|
| 13 | + $(compile) -fbreak-points Example.hs
|
|
| 14 | + $(show) Example.gbc | ./normalize
|
|
| 15 | + |
|
| 16 | +show-bytecode-hpc:
|
|
| 17 | + $(compile) -fhpc Example.hs
|
|
| 18 | + $(show) Example.gbc | ./normalize |
| 1 | +test(
|
|
| 2 | + 'show-bytecode-vanilla',
|
|
| 3 | + extra_files(['Example.hs', 'normalize']),
|
|
| 4 | + makefile_test,
|
|
| 5 | + []
|
|
| 6 | +)
|
|
| 7 | +test(
|
|
| 8 | + 'show-bytecode-breakpoints',
|
|
| 9 | + extra_files(['Example.hs', 'normalize']),
|
|
| 10 | + makefile_test,
|
|
| 11 | + []
|
|
| 12 | +)
|
|
| 13 | +test(
|
|
| 14 | + 'show-bytecode-hpc',
|
|
| 15 | + [js_skip, extra_files(['Example.hs', 'normalize'])],
|
|
| 16 | + makefile_test,
|
|
| 17 | + []
|
|
| 18 | +) |
| 1 | +#!/usr/bin/env bash
|
|
| 2 | + |
|
| 3 | +set -e -o pipefail
|
|
| 4 | + |
|
| 5 | +# Make the test output independent of unstable compiler-generated data
|
|
| 6 | +stabilize ()
|
|
| 7 | +{
|
|
| 8 | + sed -E -e '
|
|
| 9 | + s/_r[[:alnum:]]+/_@name_suffix@/g
|
|
| 10 | + s/^( *hash: )[[:xdigit:]]+/\1@hash@/
|
|
| 11 | + s/^( *)[[:xdigit:]]+:/\1@hash@:/
|
|
| 12 | + s/word [[:digit:]]{2}[[:digit:]]*/word @large_word@/g
|
|
| 13 | + '
|
|
| 14 | +}
|
|
| 15 | + |
|
| 16 | +# Make the test output independent of the word size
|
|
| 17 | +universalize ()
|
|
| 18 | +{
|
|
| 19 | + sed -E -e '
|
|
| 20 | + s/W[[:digit:]]+#/W@word_size@#/
|
|
| 21 | + s/UInt[[:digit:]]+/UInt@word_size@/
|
|
| 22 | + ' |
|
|
| 23 | + uniq
|
|
| 24 | + # The invocation of `uniq` is merely for collapsing adjacent entries of
|
|
| 25 | + # `word @large_word@`, whose number may depend on the word size.
|
|
| 26 | +}
|
|
| 27 | + |
|
| 28 | +# Run all phases
|
|
| 29 | +stabilize | universalize |
| 1 | +[1 of 1] Compiling Example ( Example.hs, Example.gbc )
|
|
| 2 | +module: Example
|
|
| 3 | +hash: @hash@
|
|
| 4 | +objects:
|
|
| 5 | + object ‘primesPtr’:
|
|
| 6 | + arity: 0
|
|
| 7 | + literals:
|
|
| 8 | + top-level string "Example"
|
|
| 9 | + top-level string "main"
|
|
| 10 | + cost center of breakpoint 0
|
|
| 11 | + used items:
|
|
| 12 | + break array of module ‘Example’
|
|
| 13 | + named item ‘static_ptr1’
|
|
| 14 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 15 | + named item ‘$fIsStaticStaticPtr’
|
|
| 16 | + static-construction object ‘static_ptr1’:
|
|
| 17 | + data constructor: StaticPtr
|
|
| 18 | + lifted: yes
|
|
| 19 | + literals:
|
|
| 20 | + word @large_word@
|
|
| 21 | + used items:
|
|
| 22 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 23 | + named item ‘primes’
|
|
| 24 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 25 | + data constructor: StaticPtrInfo
|
|
| 26 | + lifted: yes
|
|
| 27 | + literals: <none>
|
|
| 28 | + used items:
|
|
| 29 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 30 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 31 | + arity: 0
|
|
| 32 | + literals: top-level string "main"
|
|
| 33 | + used items:
|
|
| 34 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 35 | + arity: 0
|
|
| 36 | + literals: <none>
|
|
| 37 | + used items: named item ‘unpackCString#’
|
|
| 38 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 39 | + arity: 0
|
|
| 40 | + literals: top-level string "Example"
|
|
| 41 | + used items:
|
|
| 42 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 43 | + arity: 0
|
|
| 44 | + literals: <none>
|
|
| 45 | + used items: named item ‘unpackCString#’
|
|
| 46 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 47 | + data constructor: (,)
|
|
| 48 | + lifted: yes
|
|
| 49 | + literals: <none>
|
|
| 50 | + used items:
|
|
| 51 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 52 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 53 | + data constructor: I#
|
|
| 54 | + lifted: yes
|
|
| 55 | + literals: word @large_word@
|
|
| 56 | + used items: <none>
|
|
| 57 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 58 | + data constructor: I#
|
|
| 59 | + lifted: yes
|
|
| 60 | + literals: word @large_word@
|
|
| 61 | + used items: <none>
|
|
| 62 | + object ‘primes’:
|
|
| 63 | + arity: 0
|
|
| 64 | + literals:
|
|
| 65 | + top-level string "Example"
|
|
| 66 | + top-level string "main"
|
|
| 67 | + cost center of breakpoint 2
|
|
| 68 | + info table of ‘(:)’
|
|
| 69 | + used items:
|
|
| 70 | + break array of module ‘Example’
|
|
| 71 | + object ‘primes_sat_@name_suffix@’:
|
|
| 72 | + arity: 0
|
|
| 73 | + literals:
|
|
| 74 | + top-level string "Example"
|
|
| 75 | + top-level string "main"
|
|
| 76 | + cost center of breakpoint 1
|
|
| 77 | + used items:
|
|
| 78 | + break array of module ‘Example’
|
|
| 79 | + object ‘primes_sat_@name_suffix@’:
|
|
| 80 | + arity: 0
|
|
| 81 | + literals: <none>
|
|
| 82 | + used items:
|
|
| 83 | + object ‘primes_sat_@name_suffix@’:
|
|
| 84 | + arity: 0
|
|
| 85 | + literals:
|
|
| 86 | + word 3
|
|
| 87 | + info table of ‘IS’
|
|
| 88 | + used items:
|
|
| 89 | + named item ‘$fNumNatural’
|
|
| 90 | + named item ‘fromInteger’
|
|
| 91 | + named item ‘$fEnumNatural’
|
|
| 92 | + named item ‘enumFrom’
|
|
| 93 | + named item ‘isPrime_@name_suffix@’
|
|
| 94 | + named item ‘filter’
|
|
| 95 | + object ‘primes_sat_@name_suffix@’:
|
|
| 96 | + arity: 0
|
|
| 97 | + literals:
|
|
| 98 | + word 2
|
|
| 99 | + info table of ‘IS’
|
|
| 100 | + used items:
|
|
| 101 | + named item ‘$fNumNatural’
|
|
| 102 | + named item ‘fromInteger’
|
|
| 103 | + object ‘isPrime_@name_suffix@’:
|
|
| 104 | + arity: 1
|
|
| 105 | + literals:
|
|
| 106 | + top-level string "Example"
|
|
| 107 | + top-level string "main"
|
|
| 108 | + cost center of breakpoint 9
|
|
| 109 | + used items:
|
|
| 110 | + break array of module ‘Example’
|
|
| 111 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 112 | + arity: 1
|
|
| 113 | + literals:
|
|
| 114 | + top-level string "Example"
|
|
| 115 | + top-level string "main"
|
|
| 116 | + cost center of breakpoint 8
|
|
| 117 | + used items:
|
|
| 118 | + break array of module ‘Example’
|
|
| 119 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 120 | + arity: 1
|
|
| 121 | + literals:
|
|
| 122 | + top-level string "Example"
|
|
| 123 | + top-level string "main"
|
|
| 124 | + cost center of breakpoint 7
|
|
| 125 | + used items:
|
|
| 126 | + break array of module ‘Example’
|
|
| 127 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 128 | + arity: 1
|
|
| 129 | + literals:
|
|
| 130 | + top-level string "Example"
|
|
| 131 | + top-level string "main"
|
|
| 132 | + cost center of breakpoint 6
|
|
| 133 | + used items:
|
|
| 134 | + break array of module ‘Example’
|
|
| 135 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 136 | + arity: 0
|
|
| 137 | + literals:
|
|
| 138 | + top-level string "Example"
|
|
| 139 | + top-level string "main"
|
|
| 140 | + cost center of breakpoint 5
|
|
| 141 | + word 2
|
|
| 142 | + info table of ‘IS’
|
|
| 143 | + used items:
|
|
| 144 | + break array of module ‘Example’
|
|
| 145 | + object ‘v_@name_suffix@’:
|
|
| 146 | + arity: 0
|
|
| 147 | + literals: <none>
|
|
| 148 | + used items:
|
|
| 149 | + named item ‘$fIntegralInteger’
|
|
| 150 | + named item ‘$fNumNatural’
|
|
| 151 | + named item ‘(^)’
|
|
| 152 | + object ‘pap_@name_suffix@’:
|
|
| 153 | + arity: 3
|
|
| 154 | + literals: <none>
|
|
| 155 | + used items: <none>
|
|
| 156 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 157 | + arity: 1
|
|
| 158 | + literals:
|
|
| 159 | + top-level string "Example"
|
|
| 160 | + top-level string "main"
|
|
| 161 | + cost center of breakpoint 4
|
|
| 162 | + used items:
|
|
| 163 | + break array of module ‘Example’
|
|
| 164 | + object ‘v_@name_suffix@’:
|
|
| 165 | + arity: 0
|
|
| 166 | + literals: <none>
|
|
| 167 | + used items:
|
|
| 168 | + named item ‘$fOrdNatural’
|
|
| 169 | + named item ‘(<=)’
|
|
| 170 | + object ‘pap_@name_suffix@’:
|
|
| 171 | + arity: 3
|
|
| 172 | + literals: <none>
|
|
| 173 | + used items: <none>
|
|
| 174 | + named item ‘(.)’
|
|
| 175 | + named item ‘primes’
|
|
| 176 | + named item ‘takeWhile’
|
|
| 177 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 178 | + arity: 1
|
|
| 179 | + literals:
|
|
| 180 | + top-level string "Example"
|
|
| 181 | + top-level string "main"
|
|
| 182 | + cost center of breakpoint 3
|
|
| 183 | + used items:
|
|
| 184 | + break array of module ‘Example’
|
|
| 185 | + object ‘pap_@name_suffix@’:
|
|
| 186 | + arity: 2
|
|
| 187 | + literals: <none>
|
|
| 188 | + used items:
|
|
| 189 | + named item ‘$fIntegralNatural’
|
|
| 190 | + named item ‘divides’
|
|
| 191 | + named item ‘$fFoldableList’
|
|
| 192 | + named item ‘any’
|
|
| 193 | + named item ‘not’
|
|
| 194 | + object ‘fibonaccisPtr’:
|
|
| 195 | + arity: 0
|
|
| 196 | + literals:
|
|
| 197 | + top-level string "Example"
|
|
| 198 | + top-level string "main"
|
|
| 199 | + cost center of breakpoint 10
|
|
| 200 | + used items:
|
|
| 201 | + break array of module ‘Example’
|
|
| 202 | + named item ‘static_ptr’
|
|
| 203 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 204 | + named item ‘$fIsStaticStaticPtr’
|
|
| 205 | + static-construction object ‘static_ptr’:
|
|
| 206 | + data constructor: StaticPtr
|
|
| 207 | + lifted: yes
|
|
| 208 | + literals:
|
|
| 209 | + word @large_word@
|
|
| 210 | + used items:
|
|
| 211 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 212 | + named item ‘fibonaccis’
|
|
| 213 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 214 | + data constructor: StaticPtrInfo
|
|
| 215 | + lifted: yes
|
|
| 216 | + literals: <none>
|
|
| 217 | + used items:
|
|
| 218 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 219 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 220 | + arity: 0
|
|
| 221 | + literals: top-level string "main"
|
|
| 222 | + used items:
|
|
| 223 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 224 | + arity: 0
|
|
| 225 | + literals: <none>
|
|
| 226 | + used items: named item ‘unpackCString#’
|
|
| 227 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 228 | + arity: 0
|
|
| 229 | + literals: top-level string "Example"
|
|
| 230 | + used items:
|
|
| 231 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 232 | + arity: 0
|
|
| 233 | + literals: <none>
|
|
| 234 | + used items: named item ‘unpackCString#’
|
|
| 235 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 236 | + data constructor: (,)
|
|
| 237 | + lifted: yes
|
|
| 238 | + literals: <none>
|
|
| 239 | + used items:
|
|
| 240 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 241 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 242 | + data constructor: I#
|
|
| 243 | + lifted: yes
|
|
| 244 | + literals: word @large_word@
|
|
| 245 | + used items: <none>
|
|
| 246 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 247 | + data constructor: I#
|
|
| 248 | + lifted: yes
|
|
| 249 | + literals: word @large_word@
|
|
| 250 | + used items: <none>
|
|
| 251 | + object ‘fibonaccis’:
|
|
| 252 | + arity: 0
|
|
| 253 | + literals:
|
|
| 254 | + top-level string "Example"
|
|
| 255 | + top-level string "main"
|
|
| 256 | + cost center of breakpoint 11
|
|
| 257 | + info table of ‘(:)’
|
|
| 258 | + used items:
|
|
| 259 | + break array of module ‘Example’
|
|
| 260 | + object ‘fibonaccis_sat_@name_suffix@’:
|
|
| 261 | + arity: 0
|
|
| 262 | + literals:
|
|
| 263 | + word 0
|
|
| 264 | + info table of ‘IS’
|
|
| 265 | + used items:
|
|
| 266 | + named item ‘$fNumNatural’
|
|
| 267 | + named item ‘fromInteger’
|
|
| 268 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 269 | + object ‘positiveFibonaccis_@name_suffix@’:
|
|
| 270 | + arity: 0
|
|
| 271 | + literals:
|
|
| 272 | + top-level string "Example"
|
|
| 273 | + top-level string "main"
|
|
| 274 | + cost center of breakpoint 13
|
|
| 275 | + info table of ‘(:)’
|
|
| 276 | + used items:
|
|
| 277 | + break array of module ‘Example’
|
|
| 278 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 279 | + arity: 0
|
|
| 280 | + literals:
|
|
| 281 | + top-level string "Example"
|
|
| 282 | + top-level string "main"
|
|
| 283 | + cost center of breakpoint 12
|
|
| 284 | + used items:
|
|
| 285 | + break array of module ‘Example’
|
|
| 286 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 287 | + arity: 0
|
|
| 288 | + literals: <none>
|
|
| 289 | + used items:
|
|
| 290 | + named item ‘$fNumNatural’
|
|
| 291 | + named item ‘(+)’
|
|
| 292 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 293 | + named item ‘fibonaccis’
|
|
| 294 | + named item ‘zipWith’
|
|
| 295 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 296 | + arity: 0
|
|
| 297 | + literals:
|
|
| 298 | + word 1
|
|
| 299 | + info table of ‘IS’
|
|
| 300 | + used items:
|
|
| 301 | + named item ‘$fNumNatural’
|
|
| 302 | + named item ‘fromInteger’
|
|
| 303 | + object ‘$dTypeable2_@name_suffix@’:
|
|
| 304 | + arity: 0
|
|
| 305 | + literals: <none>
|
|
| 306 | + used items:
|
|
| 307 | + named item ‘$dTypeable_@name_suffix@’
|
|
| 308 | + named item ‘$dTypeable1_@name_suffix@’
|
|
| 309 | + named item ‘mkTrAppChecked’
|
|
| 310 | + object ‘$dTypeable1_@name_suffix@’:
|
|
| 311 | + arity: 0
|
|
| 312 | + literals: info table of ‘[]’
|
|
| 313 | + used items:
|
|
| 314 | + named item ‘$tcList’
|
|
| 315 | + named item ‘mkTrCon’
|
|
| 316 | + object ‘$dTypeable_@name_suffix@’:
|
|
| 317 | + arity: 0
|
|
| 318 | + literals: info table of ‘[]’
|
|
| 319 | + used items:
|
|
| 320 | + named item ‘$tcNatural’
|
|
| 321 | + named item ‘mkTrCon’
|
|
| 322 | + object ‘cstrlen’:
|
|
| 323 | + arity: 2
|
|
| 324 | + literals: <none>
|
|
| 325 | + used items:
|
|
| 326 | + object ‘ds1_@name_suffix@’:
|
|
| 327 | + arity: 0
|
|
| 328 | + literals:
|
|
| 329 | + label ‘strlen’
|
|
| 330 | + word 0
|
|
| 331 | + foreign function of type ‘Pointer -> UInt@word_size@’
|
|
| 332 | + used items:
|
|
| 333 | + object ‘wild_@name_suffix@’:
|
|
| 334 | + arity: 0
|
|
| 335 | + literals: info table of ‘W@word_size@#’
|
|
| 336 | + used items: <none>
|
|
| 337 | + static-construction object ‘$tc'Nested’:
|
|
| 338 | + data constructor: TyCon
|
|
| 339 | + lifted: yes
|
|
| 340 | + literals:
|
|
| 341 | + word @large_word@
|
|
| 342 | + word 1
|
|
| 343 | + used items:
|
|
| 344 | + named item ‘$trModule’
|
|
| 345 | + named item ‘$tc'Nested2_@name_suffix@’
|
|
| 346 | + named item ‘$krep17_@name_suffix@’
|
|
| 347 | + static-construction object ‘$tc'Nested2_@name_suffix@’:
|
|
| 348 | + data constructor: TrNameS
|
|
| 349 | + lifted: yes
|
|
| 350 | + literals: address ‘$tc'Nested1_@name_suffix@’
|
|
| 351 | + used items: <none>
|
|
| 352 | + static-construction object ‘$krep17_@name_suffix@’:
|
|
| 353 | + data constructor: KindRepFun
|
|
| 354 | + lifted: yes
|
|
| 355 | + literals: <none>
|
|
| 356 | + used items:
|
|
| 357 | + named item ‘$krep16_@name_suffix@’
|
|
| 358 | + named item ‘$krep13_@name_suffix@’
|
|
| 359 | + static-construction object ‘$krep16_@name_suffix@’:
|
|
| 360 | + data constructor: KindRepTyConApp
|
|
| 361 | + lifted: yes
|
|
| 362 | + literals: <none>
|
|
| 363 | + used items:
|
|
| 364 | + named item ‘$tcPerfectTree’
|
|
| 365 | + named item ‘$krep15_@name_suffix@’
|
|
| 366 | + static-construction object ‘$krep15_@name_suffix@’:
|
|
| 367 | + data constructor: (:)
|
|
| 368 | + lifted: yes
|
|
| 369 | + literals: <none>
|
|
| 370 | + used items:
|
|
| 371 | + named item ‘$krep4_@name_suffix@’
|
|
| 372 | + named item ‘[]’
|
|
| 373 | + static-construction object ‘$tc'PerfectTree’:
|
|
| 374 | + data constructor: TyCon
|
|
| 375 | + lifted: yes
|
|
| 376 | + literals:
|
|
| 377 | + word @large_word@
|
|
| 378 | + word 1
|
|
| 379 | + used items:
|
|
| 380 | + named item ‘$trModule’
|
|
| 381 | + named item ‘$tc'PerfectTree2_@name_suffix@’
|
|
| 382 | + named item ‘$krep14_@name_suffix@’
|
|
| 383 | + static-construction object ‘$tc'PerfectTree2_@name_suffix@’:
|
|
| 384 | + data constructor: TrNameS
|
|
| 385 | + lifted: yes
|
|
| 386 | + literals: address ‘$tc'PerfectTree1_@name_suffix@’
|
|
| 387 | + used items: <none>
|
|
| 388 | + static-construction object ‘$krep14_@name_suffix@’:
|
|
| 389 | + data constructor: KindRepFun
|
|
| 390 | + lifted: yes
|
|
| 391 | + literals: <none>
|
|
| 392 | + used items:
|
|
| 393 | + named item ‘$krep1_@name_suffix@’
|
|
| 394 | + named item ‘$krep13_@name_suffix@’
|
|
| 395 | + static-construction object ‘$krep13_@name_suffix@’:
|
|
| 396 | + data constructor: KindRepTyConApp
|
|
| 397 | + lifted: yes
|
|
| 398 | + literals: <none>
|
|
| 399 | + used items:
|
|
| 400 | + named item ‘$tcPerfectTree’
|
|
| 401 | + named item ‘$krep12_@name_suffix@’
|
|
| 402 | + static-construction object ‘$krep12_@name_suffix@’:
|
|
| 403 | + data constructor: (:)
|
|
| 404 | + lifted: yes
|
|
| 405 | + literals: <none>
|
|
| 406 | + used items:
|
|
| 407 | + named item ‘$krep1_@name_suffix@’
|
|
| 408 | + named item ‘[]’
|
|
| 409 | + static-construction object ‘$tcPerfectTree’:
|
|
| 410 | + data constructor: TyCon
|
|
| 411 | + lifted: yes
|
|
| 412 | + literals:
|
|
| 413 | + word @large_word@
|
|
| 414 | + word 0
|
|
| 415 | + used items:
|
|
| 416 | + named item ‘$trModule’
|
|
| 417 | + named item ‘$tcPerfectTree2_@name_suffix@’
|
|
| 418 | + named item ‘krepStarArr’
|
|
| 419 | + static-construction object ‘$tcPerfectTree2_@name_suffix@’:
|
|
| 420 | + data constructor: TrNameS
|
|
| 421 | + lifted: yes
|
|
| 422 | + literals: address ‘$tcPerfectTree1_@name_suffix@’
|
|
| 423 | + used items: <none>
|
|
| 424 | + static-construction object ‘$tc'Node’:
|
|
| 425 | + data constructor: TyCon
|
|
| 426 | + lifted: yes
|
|
| 427 | + literals:
|
|
| 428 | + word @large_word@
|
|
| 429 | + word 2
|
|
| 430 | + used items:
|
|
| 431 | + named item ‘$trModule’
|
|
| 432 | + named item ‘$tc'Node2_@name_suffix@’
|
|
| 433 | + named item ‘$krep11_@name_suffix@’
|
|
| 434 | + static-construction object ‘$tc'Node2_@name_suffix@’:
|
|
| 435 | + data constructor: TrNameS
|
|
| 436 | + lifted: yes
|
|
| 437 | + literals: address ‘$tc'Node1_@name_suffix@’
|
|
| 438 | + used items: <none>
|
|
| 439 | + static-construction object ‘$krep11_@name_suffix@’:
|
|
| 440 | + data constructor: KindRepFun
|
|
| 441 | + lifted: yes
|
|
| 442 | + literals: <none>
|
|
| 443 | + used items:
|
|
| 444 | + named item ‘$krep7_@name_suffix@’
|
|
| 445 | + named item ‘$krep10_@name_suffix@’
|
|
| 446 | + static-construction object ‘$krep10_@name_suffix@’:
|
|
| 447 | + data constructor: KindRepFun
|
|
| 448 | + lifted: yes
|
|
| 449 | + literals: <none>
|
|
| 450 | + used items:
|
|
| 451 | + named item ‘$krep_@name_suffix@’
|
|
| 452 | + named item ‘$krep9_@name_suffix@’
|
|
| 453 | + static-construction object ‘$krep9_@name_suffix@’:
|
|
| 454 | + data constructor: KindRepFun
|
|
| 455 | + lifted: yes
|
|
| 456 | + literals: <none>
|
|
| 457 | + used items:
|
|
| 458 | + named item ‘$krep7_@name_suffix@’
|
|
| 459 | + static-construction object ‘$tc'Leaf’:
|
|
| 460 | + data constructor: TyCon
|
|
| 461 | + lifted: yes
|
|
| 462 | + literals:
|
|
| 463 | + word @large_word@
|
|
| 464 | + word 2
|
|
| 465 | + used items:
|
|
| 466 | + named item ‘$trModule’
|
|
| 467 | + named item ‘$tc'Leaf2_@name_suffix@’
|
|
| 468 | + named item ‘$krep8_@name_suffix@’
|
|
| 469 | + static-construction object ‘$tc'Leaf2_@name_suffix@’:
|
|
| 470 | + data constructor: TrNameS
|
|
| 471 | + lifted: yes
|
|
| 472 | + literals: address ‘$tc'Leaf1_@name_suffix@’
|
|
| 473 | + used items: <none>
|
|
| 474 | + static-construction object ‘$krep8_@name_suffix@’:
|
|
| 475 | + data constructor: KindRepFun
|
|
| 476 | + lifted: yes
|
|
| 477 | + literals: <none>
|
|
| 478 | + used items:
|
|
| 479 | + named item ‘$krep1_@name_suffix@’
|
|
| 480 | + named item ‘$krep7_@name_suffix@’
|
|
| 481 | + static-construction object ‘$krep7_@name_suffix@’:
|
|
| 482 | + data constructor: KindRepTyConApp
|
|
| 483 | + lifted: yes
|
|
| 484 | + literals: <none>
|
|
| 485 | + used items:
|
|
| 486 | + named item ‘$tcBinTree’
|
|
| 487 | + named item ‘$krep6_@name_suffix@’
|
|
| 488 | + static-construction object ‘$krep6_@name_suffix@’:
|
|
| 489 | + data constructor: (:)
|
|
| 490 | + lifted: yes
|
|
| 491 | + literals: <none>
|
|
| 492 | + used items:
|
|
| 493 | + named item ‘$krep1_@name_suffix@’
|
|
| 494 | + named item ‘$krep5_@name_suffix@’
|
|
| 495 | + static-construction object ‘$krep5_@name_suffix@’:
|
|
| 496 | + data constructor: (:)
|
|
| 497 | + lifted: yes
|
|
| 498 | + literals: <none>
|
|
| 499 | + used items:
|
|
| 500 | + named item ‘$krep_@name_suffix@’
|
|
| 501 | + named item ‘[]’
|
|
| 502 | + static-construction object ‘$tcBinTree’:
|
|
| 503 | + data constructor: TyCon
|
|
| 504 | + lifted: yes
|
|
| 505 | + literals:
|
|
| 506 | + word @large_word@
|
|
| 507 | + word 0
|
|
| 508 | + used items:
|
|
| 509 | + named item ‘$trModule’
|
|
| 510 | + named item ‘$tcBinTree2_@name_suffix@’
|
|
| 511 | + named item ‘krepStarArrStarArr’
|
|
| 512 | + static-construction object ‘$tcBinTree2_@name_suffix@’:
|
|
| 513 | + data constructor: TrNameS
|
|
| 514 | + lifted: yes
|
|
| 515 | + literals: address ‘$tcBinTree1_@name_suffix@’
|
|
| 516 | + used items: <none>
|
|
| 517 | + static-construction object ‘$krep4_@name_suffix@’:
|
|
| 518 | + data constructor: KindRepTyConApp
|
|
| 519 | + lifted: yes
|
|
| 520 | + literals: <none>
|
|
| 521 | + used items:
|
|
| 522 | + named item ‘$tcTuple2’
|
|
| 523 | + named item ‘$krep3_@name_suffix@’
|
|
| 524 | + static-construction object ‘$krep3_@name_suffix@’:
|
|
| 525 | + data constructor: (:)
|
|
| 526 | + lifted: yes
|
|
| 527 | + literals: <none>
|
|
| 528 | + used items:
|
|
| 529 | + named item ‘$krep1_@name_suffix@’
|
|
| 530 | + named item ‘$krep2_@name_suffix@’
|
|
| 531 | + static-construction object ‘$krep2_@name_suffix@’:
|
|
| 532 | + data constructor: (:)
|
|
| 533 | + lifted: yes
|
|
| 534 | + literals: <none>
|
|
| 535 | + used items:
|
|
| 536 | + named item ‘$krep1_@name_suffix@’
|
|
| 537 | + named item ‘[]’
|
|
| 538 | + static-construction object ‘$krep1_@name_suffix@’:
|
|
| 539 | + data constructor: KindRepVar
|
|
| 540 | + lifted: yes
|
|
| 541 | + literals: word 0
|
|
| 542 | + used items: <none>
|
|
| 543 | + static-construction object ‘$krep_@name_suffix@’:
|
|
| 544 | + data constructor: KindRepVar
|
|
| 545 | + lifted: yes
|
|
| 546 | + literals: word 1
|
|
| 547 | + used items: <none>
|
|
| 548 | + static-construction object ‘$trModule’:
|
|
| 549 | + data constructor: Module
|
|
| 550 | + lifted: yes
|
|
| 551 | + literals: <none>
|
|
| 552 | + used items:
|
|
| 553 | + named item ‘$trModule2_@name_suffix@’
|
|
| 554 | + named item ‘$trModule4_@name_suffix@’
|
|
| 555 | + static-construction object ‘$trModule4_@name_suffix@’:
|
|
| 556 | + data constructor: TrNameS
|
|
| 557 | + lifted: yes
|
|
| 558 | + literals: address ‘$trModule3_@name_suffix@’
|
|
| 559 | + used items: <none>
|
|
| 560 | + static-construction object ‘$trModule2_@name_suffix@’:
|
|
| 561 | + data constructor: TrNameS
|
|
| 562 | + lifted: yes
|
|
| 563 | + literals: address ‘$trModule1_@name_suffix@’
|
|
| 564 | + used items: <none>
|
|
| 565 | + object ‘divides’:
|
|
| 566 | + arity: 3
|
|
| 567 | + literals: <none>
|
|
| 568 | + used items:
|
|
| 569 | + object ‘$dReal_@name_suffix@’:
|
|
| 570 | + arity: 0
|
|
| 571 | + literals: <none>
|
|
| 572 | + used items:
|
|
| 573 | + object ‘$dNum_@name_suffix@’:
|
|
| 574 | + arity: 0
|
|
| 575 | + literals: <none>
|
|
| 576 | + used items:
|
|
| 577 | + object ‘$dEq_@name_suffix@’:
|
|
| 578 | + arity: 0
|
|
| 579 | + literals: <none>
|
|
| 580 | + used items:
|
|
| 581 | + object ‘$dEq1_@name_suffix@’:
|
|
| 582 | + arity: 0
|
|
| 583 | + literals: <none>
|
|
| 584 | + used items:
|
|
| 585 | + object ‘bcprep_@name_suffix@’:
|
|
| 586 | + arity: 5
|
|
| 587 | + literals:
|
|
| 588 | + top-level string "Example"
|
|
| 589 | + top-level string "main"
|
|
| 590 | + cost center of breakpoint 15
|
|
| 591 | + used items:
|
|
| 592 | + break array of module ‘Example’
|
|
| 593 | + object ‘divides_sat_@name_suffix@’:
|
|
| 594 | + arity: 1
|
|
| 595 | + literals:
|
|
| 596 | + word 0
|
|
| 597 | + info table of ‘IS’
|
|
| 598 | + used items: named item ‘fromInteger’
|
|
| 599 | + object ‘divides_sat_@name_suffix@’:
|
|
| 600 | + arity: 3
|
|
| 601 | + literals:
|
|
| 602 | + top-level string "Example"
|
|
| 603 | + top-level string "main"
|
|
| 604 | + cost center of breakpoint 14
|
|
| 605 | + used items:
|
|
| 606 | + break array of module ‘Example’
|
|
| 607 | + named item ‘mod’
|
|
| 608 | + named item ‘(==)’
|
|
| 609 | + named item ‘$p1Ord’
|
|
| 610 | + named item ‘$p2Real’
|
|
| 611 | + named item ‘$p1Real’
|
|
| 612 | + named item ‘$p1Integral’
|
|
| 613 | + object ‘Node’:
|
|
| 614 | + arity: 3
|
|
| 615 | + literals: info table of ‘Node’
|
|
| 616 | + used items: <none>
|
|
| 617 | + object ‘Leaf’:
|
|
| 618 | + arity: 1
|
|
| 619 | + literals: info table of ‘Leaf’
|
|
| 620 | + used items: <none>
|
|
| 621 | + object ‘Nested’:
|
|
| 622 | + arity: 1
|
|
| 623 | + literals: info table of ‘Nested’
|
|
| 624 | + used items: <none>
|
|
| 625 | + object ‘PerfectTree’:
|
|
| 626 | + arity: 1
|
|
| 627 | + literals: info table of ‘PerfectTree’
|
|
| 628 | + used items: <none>
|
|
| 629 | +data constructor info tables:
|
|
| 630 | + info table of ‘PerfectTree’:
|
|
| 631 | + number of words for pointers: 1
|
|
| 632 | + number of words for non-pointers: 0
|
|
| 633 | + info table of ‘Nested’:
|
|
| 634 | + number of words for pointers: 1
|
|
| 635 | + number of words for non-pointers: 0
|
|
| 636 | + info table of ‘Leaf’:
|
|
| 637 | + number of words for pointers: 1
|
|
| 638 | + number of words for non-pointers: 0
|
|
| 639 | + info table of ‘Node’:
|
|
| 640 | + number of words for pointers: 3
|
|
| 641 | + number of words for non-pointers: 0
|
|
| 642 | +top-level strings:
|
|
| 643 | + $tc'Nested1_@name_suffix@: "'Nested"
|
|
| 644 | + $tc'PerfectTree1_@name_suffix@: "'PerfectTree"
|
|
| 645 | + $tcPerfectTree1_@name_suffix@: "PerfectTree"
|
|
| 646 | + $tc'Node1_@name_suffix@: "'Node"
|
|
| 647 | + $tc'Leaf1_@name_suffix@: "'Leaf"
|
|
| 648 | + $tcBinTree1_@name_suffix@: "BinTree"
|
|
| 649 | + $trModule3_@name_suffix@: "Example"
|
|
| 650 | + $trModule1_@name_suffix@: "main"
|
|
| 651 | +breakpoints:
|
|
| 652 | + source breakpoints:
|
|
| 653 | + source breakpoint 0:
|
|
| 654 | + source span: Example.hs:29:17-25
|
|
| 655 | + declaration path: divides
|
|
| 656 | + free variables:
|
|
| 657 | + k
|
|
| 658 | + n
|
|
| 659 | + source breakpoint 1:
|
|
| 660 | + source span: Example.hs:29:17-30
|
|
| 661 | + declaration path: divides
|
|
| 662 | + free variables:
|
|
| 663 | + k
|
|
| 664 | + n
|
|
| 665 | + source breakpoint 2:
|
|
| 666 | + source span: Example.hs:35:27-37
|
|
| 667 | + declaration path:
|
|
| 668 | + primes
|
|
| 669 | + isPrime
|
|
| 670 | + free variables: n
|
|
| 671 | + source breakpoint 3:
|
|
| 672 | + source span: Example.hs:35:53-56
|
|
| 673 | + declaration path:
|
|
| 674 | + primes
|
|
| 675 | + isPrime
|
|
| 676 | + free variables: n
|
|
| 677 | + source breakpoint 4:
|
|
| 678 | + source span: Example.hs:35:62-64
|
|
| 679 | + declaration path:
|
|
| 680 | + primes
|
|
| 681 | + isPrime
|
|
| 682 | + free variables: <none>
|
|
| 683 | + source breakpoint 5:
|
|
| 684 | + source span: Example.hs:35:52-65
|
|
| 685 | + declaration path:
|
|
| 686 | + primes
|
|
| 687 | + isPrime
|
|
| 688 | + free variables: n
|
|
| 689 | + source breakpoint 6:
|
|
| 690 | + source span: Example.hs:35:41-73
|
|
| 691 | + declaration path:
|
|
| 692 | + primes
|
|
| 693 | + isPrime
|
|
| 694 | + free variables: n
|
|
| 695 | + source breakpoint 7:
|
|
| 696 | + source span: Example.hs:35:22-74
|
|
| 697 | + declaration path:
|
|
| 698 | + primes
|
|
| 699 | + isPrime
|
|
| 700 | + free variables: n
|
|
| 701 | + source breakpoint 8:
|
|
| 702 | + source span: Example.hs:35:17-75
|
|
| 703 | + declaration path:
|
|
| 704 | + primes
|
|
| 705 | + isPrime
|
|
| 706 | + free variables: n
|
|
| 707 | + source breakpoint 9:
|
|
| 708 | + source span: Example.hs:32:14-34
|
|
| 709 | + declaration path: primes
|
|
| 710 | + free variables: isPrime
|
|
| 711 | + source breakpoint 10:
|
|
| 712 | + source span: Example.hs:32:10-34
|
|
| 713 | + declaration path: primes
|
|
| 714 | + free variables: isPrime
|
|
| 715 | + source breakpoint 11:
|
|
| 716 | + source span: Example.hs:38:13-25
|
|
| 717 | + declaration path: primesPtr
|
|
| 718 | + free variables: <none>
|
|
| 719 | + source breakpoint 12:
|
|
| 720 | + source span: Example.hs:23:30-70
|
|
| 721 | + declaration path:
|
|
| 722 | + fibonaccis
|
|
| 723 | + positiveFibonaccis
|
|
| 724 | + free variables: positiveFibonaccis
|
|
| 725 | + source breakpoint 13:
|
|
| 726 | + source span: Example.hs:23:26-70
|
|
| 727 | + declaration path:
|
|
| 728 | + fibonaccis
|
|
| 729 | + positiveFibonaccis
|
|
| 730 | + free variables: positiveFibonaccis
|
|
| 731 | + source breakpoint 14:
|
|
| 732 | + source span: Example.hs:20:14-35
|
|
| 733 | + declaration path: fibonaccis
|
|
| 734 | + free variables: positiveFibonaccis
|
|
| 735 | + source breakpoint 15:
|
|
| 736 | + source span: Example.hs:26:17-33
|
|
| 737 | + declaration path: fibonaccisPtr
|
|
| 738 | + free variables: <none>
|
|
| 739 | + bytecode breakpoints:
|
|
| 740 | + bytecode breakpoint 0:
|
|
| 741 | + type: StaticPtr [Natural]
|
|
| 742 | + type variables: <none>
|
|
| 743 | + variables: <none>
|
|
| 744 | + corresponding source breakpoint: 11
|
|
| 745 | + bytecode breakpoint 1:
|
|
| 746 | + type: [Natural]
|
|
| 747 | + type variables: <none>
|
|
| 748 | + variables: <unknown>
|
|
| 749 | + corresponding source breakpoint: 9
|
|
| 750 | + bytecode breakpoint 2:
|
|
| 751 | + type: [Natural]
|
|
| 752 | + type variables: <none>
|
|
| 753 | + variables: <unknown>
|
|
| 754 | + corresponding source breakpoint: 10
|
|
| 755 | + bytecode breakpoint 3:
|
|
| 756 | + type: Natural -> Bool
|
|
| 757 | + type variables: <none>
|
|
| 758 | + variables: %'Many n :: Natural
|
|
| 759 | + corresponding source breakpoint: 2
|
|
| 760 | + bytecode breakpoint 4:
|
|
| 761 | + type: Natural -> Bool
|
|
| 762 | + type variables: <none>
|
|
| 763 | + variables: %'Many n :: Natural
|
|
| 764 | + corresponding source breakpoint: 3
|
|
| 765 | + bytecode breakpoint 5:
|
|
| 766 | + type: Natural -> Natural
|
|
| 767 | + type variables: <none>
|
|
| 768 | + variables: <none>
|
|
| 769 | + corresponding source breakpoint: 4
|
|
| 770 | + bytecode breakpoint 6:
|
|
| 771 | + type: Natural -> Bool
|
|
| 772 | + type variables: <none>
|
|
| 773 | + variables: %'Many n :: Natural
|
|
| 774 | + corresponding source breakpoint: 5
|
|
| 775 | + bytecode breakpoint 7:
|
|
| 776 | + type: [Natural]
|
|
| 777 | + type variables: <none>
|
|
| 778 | + variables: %'Many n :: Natural
|
|
| 779 | + corresponding source breakpoint: 6
|
|
| 780 | + bytecode breakpoint 8:
|
|
| 781 | + type: Bool
|
|
| 782 | + type variables: <none>
|
|
| 783 | + variables: %'Many n :: Natural
|
|
| 784 | + corresponding source breakpoint: 7
|
|
| 785 | + bytecode breakpoint 9:
|
|
| 786 | + type: Bool
|
|
| 787 | + type variables: <none>
|
|
| 788 | + variables: %'Many n :: Natural
|
|
| 789 | + corresponding source breakpoint: 8
|
|
| 790 | + bytecode breakpoint 10:
|
|
| 791 | + type: StaticPtr [Natural]
|
|
| 792 | + type variables: <none>
|
|
| 793 | + variables: <none>
|
|
| 794 | + corresponding source breakpoint: 15
|
|
| 795 | + bytecode breakpoint 11:
|
|
| 796 | + type: [Natural]
|
|
| 797 | + type variables: <none>
|
|
| 798 | + variables: <unknown>
|
|
| 799 | + corresponding source breakpoint: 14
|
|
| 800 | + bytecode breakpoint 12:
|
|
| 801 | + type: [Natural]
|
|
| 802 | + type variables: <none>
|
|
| 803 | + variables: <unknown>
|
|
| 804 | + corresponding source breakpoint: 12
|
|
| 805 | + bytecode breakpoint 13:
|
|
| 806 | + type: [Natural]
|
|
| 807 | + type variables: <none>
|
|
| 808 | + variables: <unknown>
|
|
| 809 | + corresponding source breakpoint: 13
|
|
| 810 | + bytecode breakpoint 14:
|
|
| 811 | + type: a
|
|
| 812 | + type variables: a :: *
|
|
| 813 | + variables:
|
|
| 814 | + %'Many eta :: a
|
|
| 815 | + %'Many eta1 :: a
|
|
| 816 | + corresponding source breakpoint: 0
|
|
| 817 | + bytecode breakpoint 15:
|
|
| 818 | + type: Bool
|
|
| 819 | + type variables: a :: *
|
|
| 820 | + variables:
|
|
| 821 | + %'Many eta :: a
|
|
| 822 | + %'Many eta1 :: a
|
|
| 823 | + corresponding source breakpoint: 1
|
|
| 824 | +static-pointer table entries:
|
|
| 825 | + @hash@: static_ptr
|
|
| 826 | + @hash@: static_ptr1
|
|
| 827 | +HPC information: <none>
|
|
| 828 | + |
| 1 | +[1 of 1] Compiling Example ( Example.hs, Example.gbc )
|
|
| 2 | +module: Example
|
|
| 3 | +hash: @hash@
|
|
| 4 | +objects:
|
|
| 5 | + object ‘primesPtr’:
|
|
| 6 | + arity: 0
|
|
| 7 | + literals:
|
|
| 8 | + top-level string "Example"
|
|
| 9 | + top-level string "main"
|
|
| 10 | + cost center of breakpoint 0
|
|
| 11 | + used items:
|
|
| 12 | + break array of module ‘Example’
|
|
| 13 | + named item ‘static_ptr1’
|
|
| 14 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 15 | + named item ‘$fIsStaticStaticPtr’
|
|
| 16 | + static-construction object ‘static_ptr1’:
|
|
| 17 | + data constructor: StaticPtr
|
|
| 18 | + lifted: yes
|
|
| 19 | + literals:
|
|
| 20 | + word @large_word@
|
|
| 21 | + used items:
|
|
| 22 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 23 | + named item ‘primes’
|
|
| 24 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 25 | + data constructor: StaticPtrInfo
|
|
| 26 | + lifted: yes
|
|
| 27 | + literals: <none>
|
|
| 28 | + used items:
|
|
| 29 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 30 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 31 | + arity: 0
|
|
| 32 | + literals: top-level string "main"
|
|
| 33 | + used items:
|
|
| 34 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 35 | + arity: 0
|
|
| 36 | + literals: <none>
|
|
| 37 | + used items: named item ‘unpackCString#’
|
|
| 38 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 39 | + arity: 0
|
|
| 40 | + literals: top-level string "Example"
|
|
| 41 | + used items:
|
|
| 42 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 43 | + arity: 0
|
|
| 44 | + literals: <none>
|
|
| 45 | + used items: named item ‘unpackCString#’
|
|
| 46 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 47 | + data constructor: (,)
|
|
| 48 | + lifted: yes
|
|
| 49 | + literals: <none>
|
|
| 50 | + used items:
|
|
| 51 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 52 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 53 | + data constructor: I#
|
|
| 54 | + lifted: yes
|
|
| 55 | + literals: word @large_word@
|
|
| 56 | + used items: <none>
|
|
| 57 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 58 | + data constructor: I#
|
|
| 59 | + lifted: yes
|
|
| 60 | + literals: word @large_word@
|
|
| 61 | + used items: <none>
|
|
| 62 | + object ‘primes’:
|
|
| 63 | + arity: 0
|
|
| 64 | + literals:
|
|
| 65 | + top-level string "Example"
|
|
| 66 | + top-level string "main"
|
|
| 67 | + cost center of breakpoint 2
|
|
| 68 | + info table of ‘(:)’
|
|
| 69 | + used items:
|
|
| 70 | + break array of module ‘Example’
|
|
| 71 | + object ‘primes_sat_@name_suffix@’:
|
|
| 72 | + arity: 0
|
|
| 73 | + literals:
|
|
| 74 | + top-level string "Example"
|
|
| 75 | + top-level string "main"
|
|
| 76 | + cost center of breakpoint 1
|
|
| 77 | + used items:
|
|
| 78 | + break array of module ‘Example’
|
|
| 79 | + object ‘primes_sat_@name_suffix@’:
|
|
| 80 | + arity: 0
|
|
| 81 | + literals: <none>
|
|
| 82 | + used items:
|
|
| 83 | + object ‘primes_sat_@name_suffix@’:
|
|
| 84 | + arity: 0
|
|
| 85 | + literals:
|
|
| 86 | + word 3
|
|
| 87 | + info table of ‘IS’
|
|
| 88 | + used items:
|
|
| 89 | + named item ‘$fNumNatural’
|
|
| 90 | + named item ‘fromInteger’
|
|
| 91 | + named item ‘$fEnumNatural’
|
|
| 92 | + named item ‘enumFrom’
|
|
| 93 | + named item ‘isPrime_@name_suffix@’
|
|
| 94 | + named item ‘filter’
|
|
| 95 | + object ‘primes_sat_@name_suffix@’:
|
|
| 96 | + arity: 0
|
|
| 97 | + literals:
|
|
| 98 | + word 2
|
|
| 99 | + info table of ‘IS’
|
|
| 100 | + used items:
|
|
| 101 | + named item ‘$fNumNatural’
|
|
| 102 | + named item ‘fromInteger’
|
|
| 103 | + object ‘isPrime_@name_suffix@’:
|
|
| 104 | + arity: 1
|
|
| 105 | + literals:
|
|
| 106 | + top-level string "Example"
|
|
| 107 | + top-level string "main"
|
|
| 108 | + cost center of breakpoint 9
|
|
| 109 | + used items:
|
|
| 110 | + break array of module ‘Example’
|
|
| 111 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 112 | + arity: 1
|
|
| 113 | + literals:
|
|
| 114 | + top-level string "Example"
|
|
| 115 | + top-level string "main"
|
|
| 116 | + cost center of breakpoint 8
|
|
| 117 | + used items:
|
|
| 118 | + break array of module ‘Example’
|
|
| 119 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 120 | + arity: 1
|
|
| 121 | + literals:
|
|
| 122 | + top-level string "Example"
|
|
| 123 | + top-level string "main"
|
|
| 124 | + cost center of breakpoint 7
|
|
| 125 | + used items:
|
|
| 126 | + break array of module ‘Example’
|
|
| 127 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 128 | + arity: 1
|
|
| 129 | + literals:
|
|
| 130 | + top-level string "Example"
|
|
| 131 | + top-level string "main"
|
|
| 132 | + cost center of breakpoint 6
|
|
| 133 | + used items:
|
|
| 134 | + break array of module ‘Example’
|
|
| 135 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 136 | + arity: 0
|
|
| 137 | + literals:
|
|
| 138 | + top-level string "Example"
|
|
| 139 | + top-level string "main"
|
|
| 140 | + cost center of breakpoint 5
|
|
| 141 | + word 2
|
|
| 142 | + info table of ‘IS’
|
|
| 143 | + used items:
|
|
| 144 | + break array of module ‘Example’
|
|
| 145 | + object ‘v_@name_suffix@’:
|
|
| 146 | + arity: 0
|
|
| 147 | + literals: <none>
|
|
| 148 | + used items:
|
|
| 149 | + named item ‘$fIntegralInteger’
|
|
| 150 | + named item ‘$fNumNatural’
|
|
| 151 | + named item ‘(^)’
|
|
| 152 | + object ‘pap_@name_suffix@’:
|
|
| 153 | + arity: 3
|
|
| 154 | + literals: <none>
|
|
| 155 | + used items: <none>
|
|
| 156 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 157 | + arity: 1
|
|
| 158 | + literals:
|
|
| 159 | + top-level string "Example"
|
|
| 160 | + top-level string "main"
|
|
| 161 | + cost center of breakpoint 4
|
|
| 162 | + used items:
|
|
| 163 | + break array of module ‘Example’
|
|
| 164 | + object ‘v_@name_suffix@’:
|
|
| 165 | + arity: 0
|
|
| 166 | + literals: <none>
|
|
| 167 | + used items:
|
|
| 168 | + named item ‘$fOrdNatural’
|
|
| 169 | + named item ‘(<=)’
|
|
| 170 | + object ‘pap_@name_suffix@’:
|
|
| 171 | + arity: 3
|
|
| 172 | + literals: <none>
|
|
| 173 | + used items: <none>
|
|
| 174 | + named item ‘(.)’
|
|
| 175 | + named item ‘primes’
|
|
| 176 | + named item ‘takeWhile’
|
|
| 177 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 178 | + arity: 1
|
|
| 179 | + literals:
|
|
| 180 | + top-level string "Example"
|
|
| 181 | + top-level string "main"
|
|
| 182 | + cost center of breakpoint 3
|
|
| 183 | + used items:
|
|
| 184 | + break array of module ‘Example’
|
|
| 185 | + object ‘pap_@name_suffix@’:
|
|
| 186 | + arity: 2
|
|
| 187 | + literals: <none>
|
|
| 188 | + used items:
|
|
| 189 | + named item ‘$fIntegralNatural’
|
|
| 190 | + named item ‘divides’
|
|
| 191 | + named item ‘$fFoldableList’
|
|
| 192 | + named item ‘any’
|
|
| 193 | + named item ‘not’
|
|
| 194 | + object ‘fibonaccisPtr’:
|
|
| 195 | + arity: 0
|
|
| 196 | + literals:
|
|
| 197 | + top-level string "Example"
|
|
| 198 | + top-level string "main"
|
|
| 199 | + cost center of breakpoint 10
|
|
| 200 | + used items:
|
|
| 201 | + break array of module ‘Example’
|
|
| 202 | + named item ‘static_ptr’
|
|
| 203 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 204 | + named item ‘$fIsStaticStaticPtr’
|
|
| 205 | + static-construction object ‘static_ptr’:
|
|
| 206 | + data constructor: StaticPtr
|
|
| 207 | + lifted: yes
|
|
| 208 | + literals:
|
|
| 209 | + word @large_word@
|
|
| 210 | + used items:
|
|
| 211 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 212 | + named item ‘fibonaccis’
|
|
| 213 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 214 | + data constructor: StaticPtrInfo
|
|
| 215 | + lifted: yes
|
|
| 216 | + literals: <none>
|
|
| 217 | + used items:
|
|
| 218 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 219 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 220 | + arity: 0
|
|
| 221 | + literals: top-level string "main"
|
|
| 222 | + used items:
|
|
| 223 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 224 | + arity: 0
|
|
| 225 | + literals: <none>
|
|
| 226 | + used items: named item ‘unpackCString#’
|
|
| 227 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 228 | + arity: 0
|
|
| 229 | + literals: top-level string "Example"
|
|
| 230 | + used items:
|
|
| 231 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 232 | + arity: 0
|
|
| 233 | + literals: <none>
|
|
| 234 | + used items: named item ‘unpackCString#’
|
|
| 235 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 236 | + data constructor: (,)
|
|
| 237 | + lifted: yes
|
|
| 238 | + literals: <none>
|
|
| 239 | + used items:
|
|
| 240 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 241 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 242 | + data constructor: I#
|
|
| 243 | + lifted: yes
|
|
| 244 | + literals: word @large_word@
|
|
| 245 | + used items: <none>
|
|
| 246 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 247 | + data constructor: I#
|
|
| 248 | + lifted: yes
|
|
| 249 | + literals: word @large_word@
|
|
| 250 | + used items: <none>
|
|
| 251 | + object ‘fibonaccis’:
|
|
| 252 | + arity: 0
|
|
| 253 | + literals:
|
|
| 254 | + top-level string "Example"
|
|
| 255 | + top-level string "main"
|
|
| 256 | + cost center of breakpoint 11
|
|
| 257 | + info table of ‘(:)’
|
|
| 258 | + used items:
|
|
| 259 | + break array of module ‘Example’
|
|
| 260 | + object ‘fibonaccis_sat_@name_suffix@’:
|
|
| 261 | + arity: 0
|
|
| 262 | + literals:
|
|
| 263 | + word 0
|
|
| 264 | + info table of ‘IS’
|
|
| 265 | + used items:
|
|
| 266 | + named item ‘$fNumNatural’
|
|
| 267 | + named item ‘fromInteger’
|
|
| 268 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 269 | + object ‘positiveFibonaccis_@name_suffix@’:
|
|
| 270 | + arity: 0
|
|
| 271 | + literals:
|
|
| 272 | + top-level string "Example"
|
|
| 273 | + top-level string "main"
|
|
| 274 | + cost center of breakpoint 13
|
|
| 275 | + info table of ‘(:)’
|
|
| 276 | + used items:
|
|
| 277 | + break array of module ‘Example’
|
|
| 278 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 279 | + arity: 0
|
|
| 280 | + literals:
|
|
| 281 | + top-level string "Example"
|
|
| 282 | + top-level string "main"
|
|
| 283 | + cost center of breakpoint 12
|
|
| 284 | + used items:
|
|
| 285 | + break array of module ‘Example’
|
|
| 286 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 287 | + arity: 0
|
|
| 288 | + literals: <none>
|
|
| 289 | + used items:
|
|
| 290 | + named item ‘$fNumNatural’
|
|
| 291 | + named item ‘(+)’
|
|
| 292 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 293 | + named item ‘fibonaccis’
|
|
| 294 | + named item ‘zipWith’
|
|
| 295 | + object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 296 | + arity: 0
|
|
| 297 | + literals:
|
|
| 298 | + word 1
|
|
| 299 | + info table of ‘IS’
|
|
| 300 | + used items:
|
|
| 301 | + named item ‘$fNumNatural’
|
|
| 302 | + named item ‘fromInteger’
|
|
| 303 | + object ‘$dTypeable2_@name_suffix@’:
|
|
| 304 | + arity: 0
|
|
| 305 | + literals: <none>
|
|
| 306 | + used items:
|
|
| 307 | + named item ‘$dTypeable_@name_suffix@’
|
|
| 308 | + named item ‘$dTypeable1_@name_suffix@’
|
|
| 309 | + named item ‘mkTrAppChecked’
|
|
| 310 | + object ‘$dTypeable1_@name_suffix@’:
|
|
| 311 | + arity: 0
|
|
| 312 | + literals: info table of ‘[]’
|
|
| 313 | + used items:
|
|
| 314 | + named item ‘$tcList’
|
|
| 315 | + named item ‘mkTrCon’
|
|
| 316 | + object ‘$dTypeable_@name_suffix@’:
|
|
| 317 | + arity: 0
|
|
| 318 | + literals: info table of ‘[]’
|
|
| 319 | + used items:
|
|
| 320 | + named item ‘$tcNatural’
|
|
| 321 | + named item ‘mkTrCon’
|
|
| 322 | + object ‘cstrlen’:
|
|
| 323 | + arity: 2
|
|
| 324 | + literals: <none>
|
|
| 325 | + used items: named item ‘cstrlen1_@name_suffix@’
|
|
| 326 | + object ‘cstrlen1_@name_suffix@’:
|
|
| 327 | + arity: 2
|
|
| 328 | + literals: <none>
|
|
| 329 | + used items:
|
|
| 330 | + object ‘ds1_@name_suffix@’:
|
|
| 331 | + arity: 0
|
|
| 332 | + literals:
|
|
| 333 | + label ‘strlen’
|
|
| 334 | + word 0
|
|
| 335 | + foreign function of type ‘Pointer -> UInt@word_size@’
|
|
| 336 | + used items:
|
|
| 337 | + object ‘wild_@name_suffix@’:
|
|
| 338 | + arity: 0
|
|
| 339 | + literals: info table of ‘W@word_size@#’
|
|
| 340 | + used items: <none>
|
|
| 341 | + static-construction object ‘$tc'Nested’:
|
|
| 342 | + data constructor: TyCon
|
|
| 343 | + lifted: yes
|
|
| 344 | + literals:
|
|
| 345 | + word @large_word@
|
|
| 346 | + word 1
|
|
| 347 | + used items:
|
|
| 348 | + named item ‘$trModule’
|
|
| 349 | + named item ‘$tc'Nested2_@name_suffix@’
|
|
| 350 | + named item ‘$krep17_@name_suffix@’
|
|
| 351 | + static-construction object ‘$tc'Nested2_@name_suffix@’:
|
|
| 352 | + data constructor: TrNameS
|
|
| 353 | + lifted: yes
|
|
| 354 | + literals: address ‘$tc'Nested1_@name_suffix@’
|
|
| 355 | + used items: <none>
|
|
| 356 | + static-construction object ‘$krep17_@name_suffix@’:
|
|
| 357 | + data constructor: KindRepFun
|
|
| 358 | + lifted: yes
|
|
| 359 | + literals: <none>
|
|
| 360 | + used items:
|
|
| 361 | + named item ‘$krep16_@name_suffix@’
|
|
| 362 | + named item ‘$krep13_@name_suffix@’
|
|
| 363 | + static-construction object ‘$krep16_@name_suffix@’:
|
|
| 364 | + data constructor: KindRepTyConApp
|
|
| 365 | + lifted: yes
|
|
| 366 | + literals: <none>
|
|
| 367 | + used items:
|
|
| 368 | + named item ‘$tcPerfectTree’
|
|
| 369 | + named item ‘$krep15_@name_suffix@’
|
|
| 370 | + static-construction object ‘$krep15_@name_suffix@’:
|
|
| 371 | + data constructor: (:)
|
|
| 372 | + lifted: yes
|
|
| 373 | + literals: <none>
|
|
| 374 | + used items:
|
|
| 375 | + named item ‘$krep4_@name_suffix@’
|
|
| 376 | + named item ‘[]’
|
|
| 377 | + static-construction object ‘$tc'PerfectTree’:
|
|
| 378 | + data constructor: TyCon
|
|
| 379 | + lifted: yes
|
|
| 380 | + literals:
|
|
| 381 | + word @large_word@
|
|
| 382 | + word 1
|
|
| 383 | + used items:
|
|
| 384 | + named item ‘$trModule’
|
|
| 385 | + named item ‘$tc'PerfectTree2_@name_suffix@’
|
|
| 386 | + named item ‘$krep14_@name_suffix@’
|
|
| 387 | + static-construction object ‘$tc'PerfectTree2_@name_suffix@’:
|
|
| 388 | + data constructor: TrNameS
|
|
| 389 | + lifted: yes
|
|
| 390 | + literals: address ‘$tc'PerfectTree1_@name_suffix@’
|
|
| 391 | + used items: <none>
|
|
| 392 | + static-construction object ‘$krep14_@name_suffix@’:
|
|
| 393 | + data constructor: KindRepFun
|
|
| 394 | + lifted: yes
|
|
| 395 | + literals: <none>
|
|
| 396 | + used items:
|
|
| 397 | + named item ‘$krep1_@name_suffix@’
|
|
| 398 | + named item ‘$krep13_@name_suffix@’
|
|
| 399 | + static-construction object ‘$krep13_@name_suffix@’:
|
|
| 400 | + data constructor: KindRepTyConApp
|
|
| 401 | + lifted: yes
|
|
| 402 | + literals: <none>
|
|
| 403 | + used items:
|
|
| 404 | + named item ‘$tcPerfectTree’
|
|
| 405 | + named item ‘$krep12_@name_suffix@’
|
|
| 406 | + static-construction object ‘$krep12_@name_suffix@’:
|
|
| 407 | + data constructor: (:)
|
|
| 408 | + lifted: yes
|
|
| 409 | + literals: <none>
|
|
| 410 | + used items:
|
|
| 411 | + named item ‘$krep1_@name_suffix@’
|
|
| 412 | + named item ‘[]’
|
|
| 413 | + static-construction object ‘$tcPerfectTree’:
|
|
| 414 | + data constructor: TyCon
|
|
| 415 | + lifted: yes
|
|
| 416 | + literals:
|
|
| 417 | + word @large_word@
|
|
| 418 | + word 0
|
|
| 419 | + used items:
|
|
| 420 | + named item ‘$trModule’
|
|
| 421 | + named item ‘$tcPerfectTree2_@name_suffix@’
|
|
| 422 | + named item ‘krepStarArr’
|
|
| 423 | + static-construction object ‘$tcPerfectTree2_@name_suffix@’:
|
|
| 424 | + data constructor: TrNameS
|
|
| 425 | + lifted: yes
|
|
| 426 | + literals: address ‘$tcPerfectTree1_@name_suffix@’
|
|
| 427 | + used items: <none>
|
|
| 428 | + static-construction object ‘$tc'Node’:
|
|
| 429 | + data constructor: TyCon
|
|
| 430 | + lifted: yes
|
|
| 431 | + literals:
|
|
| 432 | + word @large_word@
|
|
| 433 | + word 2
|
|
| 434 | + used items:
|
|
| 435 | + named item ‘$trModule’
|
|
| 436 | + named item ‘$tc'Node2_@name_suffix@’
|
|
| 437 | + named item ‘$krep11_@name_suffix@’
|
|
| 438 | + static-construction object ‘$tc'Node2_@name_suffix@’:
|
|
| 439 | + data constructor: TrNameS
|
|
| 440 | + lifted: yes
|
|
| 441 | + literals: address ‘$tc'Node1_@name_suffix@’
|
|
| 442 | + used items: <none>
|
|
| 443 | + static-construction object ‘$krep11_@name_suffix@’:
|
|
| 444 | + data constructor: KindRepFun
|
|
| 445 | + lifted: yes
|
|
| 446 | + literals: <none>
|
|
| 447 | + used items:
|
|
| 448 | + named item ‘$krep7_@name_suffix@’
|
|
| 449 | + named item ‘$krep10_@name_suffix@’
|
|
| 450 | + static-construction object ‘$krep10_@name_suffix@’:
|
|
| 451 | + data constructor: KindRepFun
|
|
| 452 | + lifted: yes
|
|
| 453 | + literals: <none>
|
|
| 454 | + used items:
|
|
| 455 | + named item ‘$krep_@name_suffix@’
|
|
| 456 | + named item ‘$krep9_@name_suffix@’
|
|
| 457 | + static-construction object ‘$krep9_@name_suffix@’:
|
|
| 458 | + data constructor: KindRepFun
|
|
| 459 | + lifted: yes
|
|
| 460 | + literals: <none>
|
|
| 461 | + used items:
|
|
| 462 | + named item ‘$krep7_@name_suffix@’
|
|
| 463 | + static-construction object ‘$tc'Leaf’:
|
|
| 464 | + data constructor: TyCon
|
|
| 465 | + lifted: yes
|
|
| 466 | + literals:
|
|
| 467 | + word @large_word@
|
|
| 468 | + word 2
|
|
| 469 | + used items:
|
|
| 470 | + named item ‘$trModule’
|
|
| 471 | + named item ‘$tc'Leaf2_@name_suffix@’
|
|
| 472 | + named item ‘$krep8_@name_suffix@’
|
|
| 473 | + static-construction object ‘$tc'Leaf2_@name_suffix@’:
|
|
| 474 | + data constructor: TrNameS
|
|
| 475 | + lifted: yes
|
|
| 476 | + literals: address ‘$tc'Leaf1_@name_suffix@’
|
|
| 477 | + used items: <none>
|
|
| 478 | + static-construction object ‘$krep8_@name_suffix@’:
|
|
| 479 | + data constructor: KindRepFun
|
|
| 480 | + lifted: yes
|
|
| 481 | + literals: <none>
|
|
| 482 | + used items:
|
|
| 483 | + named item ‘$krep1_@name_suffix@’
|
|
| 484 | + named item ‘$krep7_@name_suffix@’
|
|
| 485 | + static-construction object ‘$krep7_@name_suffix@’:
|
|
| 486 | + data constructor: KindRepTyConApp
|
|
| 487 | + lifted: yes
|
|
| 488 | + literals: <none>
|
|
| 489 | + used items:
|
|
| 490 | + named item ‘$tcBinTree’
|
|
| 491 | + named item ‘$krep6_@name_suffix@’
|
|
| 492 | + static-construction object ‘$krep6_@name_suffix@’:
|
|
| 493 | + data constructor: (:)
|
|
| 494 | + lifted: yes
|
|
| 495 | + literals: <none>
|
|
| 496 | + used items:
|
|
| 497 | + named item ‘$krep1_@name_suffix@’
|
|
| 498 | + named item ‘$krep5_@name_suffix@’
|
|
| 499 | + static-construction object ‘$krep5_@name_suffix@’:
|
|
| 500 | + data constructor: (:)
|
|
| 501 | + lifted: yes
|
|
| 502 | + literals: <none>
|
|
| 503 | + used items:
|
|
| 504 | + named item ‘$krep_@name_suffix@’
|
|
| 505 | + named item ‘[]’
|
|
| 506 | + static-construction object ‘$tcBinTree’:
|
|
| 507 | + data constructor: TyCon
|
|
| 508 | + lifted: yes
|
|
| 509 | + literals:
|
|
| 510 | + word @large_word@
|
|
| 511 | + word 0
|
|
| 512 | + used items:
|
|
| 513 | + named item ‘$trModule’
|
|
| 514 | + named item ‘$tcBinTree2_@name_suffix@’
|
|
| 515 | + named item ‘krepStarArrStarArr’
|
|
| 516 | + static-construction object ‘$tcBinTree2_@name_suffix@’:
|
|
| 517 | + data constructor: TrNameS
|
|
| 518 | + lifted: yes
|
|
| 519 | + literals: address ‘$tcBinTree1_@name_suffix@’
|
|
| 520 | + used items: <none>
|
|
| 521 | + static-construction object ‘$krep4_@name_suffix@’:
|
|
| 522 | + data constructor: KindRepTyConApp
|
|
| 523 | + lifted: yes
|
|
| 524 | + literals: <none>
|
|
| 525 | + used items:
|
|
| 526 | + named item ‘$tcTuple2’
|
|
| 527 | + named item ‘$krep3_@name_suffix@’
|
|
| 528 | + static-construction object ‘$krep3_@name_suffix@’:
|
|
| 529 | + data constructor: (:)
|
|
| 530 | + lifted: yes
|
|
| 531 | + literals: <none>
|
|
| 532 | + used items:
|
|
| 533 | + named item ‘$krep1_@name_suffix@’
|
|
| 534 | + named item ‘$krep2_@name_suffix@’
|
|
| 535 | + static-construction object ‘$krep2_@name_suffix@’:
|
|
| 536 | + data constructor: (:)
|
|
| 537 | + lifted: yes
|
|
| 538 | + literals: <none>
|
|
| 539 | + used items:
|
|
| 540 | + named item ‘$krep1_@name_suffix@’
|
|
| 541 | + named item ‘[]’
|
|
| 542 | + static-construction object ‘$krep1_@name_suffix@’:
|
|
| 543 | + data constructor: KindRepVar
|
|
| 544 | + lifted: yes
|
|
| 545 | + literals: word 0
|
|
| 546 | + used items: <none>
|
|
| 547 | + static-construction object ‘$krep_@name_suffix@’:
|
|
| 548 | + data constructor: KindRepVar
|
|
| 549 | + lifted: yes
|
|
| 550 | + literals: word 1
|
|
| 551 | + used items: <none>
|
|
| 552 | + static-construction object ‘$trModule’:
|
|
| 553 | + data constructor: Module
|
|
| 554 | + lifted: yes
|
|
| 555 | + literals: <none>
|
|
| 556 | + used items:
|
|
| 557 | + named item ‘$trModule2_@name_suffix@’
|
|
| 558 | + named item ‘$trModule4_@name_suffix@’
|
|
| 559 | + static-construction object ‘$trModule4_@name_suffix@’:
|
|
| 560 | + data constructor: TrNameS
|
|
| 561 | + lifted: yes
|
|
| 562 | + literals: address ‘$trModule3_@name_suffix@’
|
|
| 563 | + used items: <none>
|
|
| 564 | + static-construction object ‘$trModule2_@name_suffix@’:
|
|
| 565 | + data constructor: TrNameS
|
|
| 566 | + lifted: yes
|
|
| 567 | + literals: address ‘$trModule1_@name_suffix@’
|
|
| 568 | + used items: <none>
|
|
| 569 | + object ‘divides’:
|
|
| 570 | + arity: 3
|
|
| 571 | + literals: <none>
|
|
| 572 | + used items:
|
|
| 573 | + object ‘$dReal_@name_suffix@’:
|
|
| 574 | + arity: 0
|
|
| 575 | + literals: <none>
|
|
| 576 | + used items:
|
|
| 577 | + object ‘$dNum_@name_suffix@’:
|
|
| 578 | + arity: 0
|
|
| 579 | + literals: <none>
|
|
| 580 | + used items:
|
|
| 581 | + object ‘$dEq_@name_suffix@’:
|
|
| 582 | + arity: 0
|
|
| 583 | + literals: <none>
|
|
| 584 | + used items:
|
|
| 585 | + object ‘$dEq1_@name_suffix@’:
|
|
| 586 | + arity: 0
|
|
| 587 | + literals: <none>
|
|
| 588 | + used items:
|
|
| 589 | + object ‘bcprep_@name_suffix@’:
|
|
| 590 | + arity: 5
|
|
| 591 | + literals:
|
|
| 592 | + top-level string "Example"
|
|
| 593 | + top-level string "main"
|
|
| 594 | + cost center of breakpoint 15
|
|
| 595 | + used items:
|
|
| 596 | + break array of module ‘Example’
|
|
| 597 | + object ‘divides_sat_@name_suffix@’:
|
|
| 598 | + arity: 1
|
|
| 599 | + literals:
|
|
| 600 | + word 0
|
|
| 601 | + info table of ‘IS’
|
|
| 602 | + used items: named item ‘fromInteger’
|
|
| 603 | + object ‘divides_sat_@name_suffix@’:
|
|
| 604 | + arity: 3
|
|
| 605 | + literals:
|
|
| 606 | + top-level string "Example"
|
|
| 607 | + top-level string "main"
|
|
| 608 | + cost center of breakpoint 14
|
|
| 609 | + used items:
|
|
| 610 | + break array of module ‘Example’
|
|
| 611 | + named item ‘mod’
|
|
| 612 | + named item ‘(==)’
|
|
| 613 | + named item ‘$p1Ord’
|
|
| 614 | + named item ‘$p2Real’
|
|
| 615 | + named item ‘$p1Real’
|
|
| 616 | + named item ‘$p1Integral’
|
|
| 617 | + object ‘Node’:
|
|
| 618 | + arity: 3
|
|
| 619 | + literals: info table of ‘Node’
|
|
| 620 | + used items: <none>
|
|
| 621 | + object ‘Leaf’:
|
|
| 622 | + arity: 1
|
|
| 623 | + literals: info table of ‘Leaf’
|
|
| 624 | + used items: <none>
|
|
| 625 | + object ‘Nested’:
|
|
| 626 | + arity: 1
|
|
| 627 | + literals: info table of ‘Nested’
|
|
| 628 | + used items: <none>
|
|
| 629 | + object ‘PerfectTree’:
|
|
| 630 | + arity: 1
|
|
| 631 | + literals: info table of ‘PerfectTree’
|
|
| 632 | + used items: <none>
|
|
| 633 | +data constructor info tables:
|
|
| 634 | + info table of ‘PerfectTree’:
|
|
| 635 | + number of words for pointers: 1
|
|
| 636 | + number of words for non-pointers: 0
|
|
| 637 | + info table of ‘Nested’:
|
|
| 638 | + number of words for pointers: 1
|
|
| 639 | + number of words for non-pointers: 0
|
|
| 640 | + info table of ‘Leaf’:
|
|
| 641 | + number of words for pointers: 1
|
|
| 642 | + number of words for non-pointers: 0
|
|
| 643 | + info table of ‘Node’:
|
|
| 644 | + number of words for pointers: 3
|
|
| 645 | + number of words for non-pointers: 0
|
|
| 646 | +top-level strings:
|
|
| 647 | + $tc'Nested1_@name_suffix@: "'Nested"
|
|
| 648 | + $tc'PerfectTree1_@name_suffix@: "'PerfectTree"
|
|
| 649 | + $tcPerfectTree1_@name_suffix@: "PerfectTree"
|
|
| 650 | + $tc'Node1_@name_suffix@: "'Node"
|
|
| 651 | + $tc'Leaf1_@name_suffix@: "'Leaf"
|
|
| 652 | + $tcBinTree1_@name_suffix@: "BinTree"
|
|
| 653 | + $trModule3_@name_suffix@: "Example"
|
|
| 654 | + $trModule1_@name_suffix@: "main"
|
|
| 655 | +breakpoints:
|
|
| 656 | + source breakpoints:
|
|
| 657 | + source breakpoint 0:
|
|
| 658 | + source span: Example.hs:29:17-25
|
|
| 659 | + declaration path: divides
|
|
| 660 | + free variables:
|
|
| 661 | + k
|
|
| 662 | + n
|
|
| 663 | + source breakpoint 1:
|
|
| 664 | + source span: Example.hs:29:17-30
|
|
| 665 | + declaration path: divides
|
|
| 666 | + free variables:
|
|
| 667 | + k
|
|
| 668 | + n
|
|
| 669 | + source breakpoint 2:
|
|
| 670 | + source span: Example.hs:35:27-37
|
|
| 671 | + declaration path:
|
|
| 672 | + primes
|
|
| 673 | + isPrime
|
|
| 674 | + free variables: n
|
|
| 675 | + source breakpoint 3:
|
|
| 676 | + source span: Example.hs:35:53-56
|
|
| 677 | + declaration path:
|
|
| 678 | + primes
|
|
| 679 | + isPrime
|
|
| 680 | + free variables: n
|
|
| 681 | + source breakpoint 4:
|
|
| 682 | + source span: Example.hs:35:62-64
|
|
| 683 | + declaration path:
|
|
| 684 | + primes
|
|
| 685 | + isPrime
|
|
| 686 | + free variables: <none>
|
|
| 687 | + source breakpoint 5:
|
|
| 688 | + source span: Example.hs:35:52-65
|
|
| 689 | + declaration path:
|
|
| 690 | + primes
|
|
| 691 | + isPrime
|
|
| 692 | + free variables: n
|
|
| 693 | + source breakpoint 6:
|
|
| 694 | + source span: Example.hs:35:41-73
|
|
| 695 | + declaration path:
|
|
| 696 | + primes
|
|
| 697 | + isPrime
|
|
| 698 | + free variables: n
|
|
| 699 | + source breakpoint 7:
|
|
| 700 | + source span: Example.hs:35:22-74
|
|
| 701 | + declaration path:
|
|
| 702 | + primes
|
|
| 703 | + isPrime
|
|
| 704 | + free variables: n
|
|
| 705 | + source breakpoint 8:
|
|
| 706 | + source span: Example.hs:35:17-75
|
|
| 707 | + declaration path:
|
|
| 708 | + primes
|
|
| 709 | + isPrime
|
|
| 710 | + free variables: n
|
|
| 711 | + source breakpoint 9:
|
|
| 712 | + source span: Example.hs:32:14-34
|
|
| 713 | + declaration path: primes
|
|
| 714 | + free variables: isPrime
|
|
| 715 | + source breakpoint 10:
|
|
| 716 | + source span: Example.hs:32:10-34
|
|
| 717 | + declaration path: primes
|
|
| 718 | + free variables: isPrime
|
|
| 719 | + source breakpoint 11:
|
|
| 720 | + source span: Example.hs:38:13-25
|
|
| 721 | + declaration path: primesPtr
|
|
| 722 | + free variables: <none>
|
|
| 723 | + source breakpoint 12:
|
|
| 724 | + source span: Example.hs:23:30-70
|
|
| 725 | + declaration path:
|
|
| 726 | + fibonaccis
|
|
| 727 | + positiveFibonaccis
|
|
| 728 | + free variables: positiveFibonaccis
|
|
| 729 | + source breakpoint 13:
|
|
| 730 | + source span: Example.hs:23:26-70
|
|
| 731 | + declaration path:
|
|
| 732 | + fibonaccis
|
|
| 733 | + positiveFibonaccis
|
|
| 734 | + free variables: positiveFibonaccis
|
|
| 735 | + source breakpoint 14:
|
|
| 736 | + source span: Example.hs:20:14-35
|
|
| 737 | + declaration path: fibonaccis
|
|
| 738 | + free variables: positiveFibonaccis
|
|
| 739 | + source breakpoint 15:
|
|
| 740 | + source span: Example.hs:26:17-33
|
|
| 741 | + declaration path: fibonaccisPtr
|
|
| 742 | + free variables: <none>
|
|
| 743 | + bytecode breakpoints:
|
|
| 744 | + bytecode breakpoint 0:
|
|
| 745 | + type: StaticPtr [Natural]
|
|
| 746 | + type variables: <none>
|
|
| 747 | + variables: <none>
|
|
| 748 | + corresponding source breakpoint: 11
|
|
| 749 | + bytecode breakpoint 1:
|
|
| 750 | + type: [Natural]
|
|
| 751 | + type variables: <none>
|
|
| 752 | + variables: <unknown>
|
|
| 753 | + corresponding source breakpoint: 9
|
|
| 754 | + bytecode breakpoint 2:
|
|
| 755 | + type: [Natural]
|
|
| 756 | + type variables: <none>
|
|
| 757 | + variables: <unknown>
|
|
| 758 | + corresponding source breakpoint: 10
|
|
| 759 | + bytecode breakpoint 3:
|
|
| 760 | + type: Natural -> Bool
|
|
| 761 | + type variables: <none>
|
|
| 762 | + variables: %'Many n :: Natural
|
|
| 763 | + corresponding source breakpoint: 2
|
|
| 764 | + bytecode breakpoint 4:
|
|
| 765 | + type: Natural -> Bool
|
|
| 766 | + type variables: <none>
|
|
| 767 | + variables: %'Many n :: Natural
|
|
| 768 | + corresponding source breakpoint: 3
|
|
| 769 | + bytecode breakpoint 5:
|
|
| 770 | + type: Natural -> Natural
|
|
| 771 | + type variables: <none>
|
|
| 772 | + variables: <none>
|
|
| 773 | + corresponding source breakpoint: 4
|
|
| 774 | + bytecode breakpoint 6:
|
|
| 775 | + type: Natural -> Bool
|
|
| 776 | + type variables: <none>
|
|
| 777 | + variables: %'Many n :: Natural
|
|
| 778 | + corresponding source breakpoint: 5
|
|
| 779 | + bytecode breakpoint 7:
|
|
| 780 | + type: [Natural]
|
|
| 781 | + type variables: <none>
|
|
| 782 | + variables: %'Many n :: Natural
|
|
| 783 | + corresponding source breakpoint: 6
|
|
| 784 | + bytecode breakpoint 8:
|
|
| 785 | + type: Bool
|
|
| 786 | + type variables: <none>
|
|
| 787 | + variables: %'Many n :: Natural
|
|
| 788 | + corresponding source breakpoint: 7
|
|
| 789 | + bytecode breakpoint 9:
|
|
| 790 | + type: Bool
|
|
| 791 | + type variables: <none>
|
|
| 792 | + variables: %'Many n :: Natural
|
|
| 793 | + corresponding source breakpoint: 8
|
|
| 794 | + bytecode breakpoint 10:
|
|
| 795 | + type: StaticPtr [Natural]
|
|
| 796 | + type variables: <none>
|
|
| 797 | + variables: <none>
|
|
| 798 | + corresponding source breakpoint: 15
|
|
| 799 | + bytecode breakpoint 11:
|
|
| 800 | + type: [Natural]
|
|
| 801 | + type variables: <none>
|
|
| 802 | + variables: <unknown>
|
|
| 803 | + corresponding source breakpoint: 14
|
|
| 804 | + bytecode breakpoint 12:
|
|
| 805 | + type: [Natural]
|
|
| 806 | + type variables: <none>
|
|
| 807 | + variables: <unknown>
|
|
| 808 | + corresponding source breakpoint: 12
|
|
| 809 | + bytecode breakpoint 13:
|
|
| 810 | + type: [Natural]
|
|
| 811 | + type variables: <none>
|
|
| 812 | + variables: <unknown>
|
|
| 813 | + corresponding source breakpoint: 13
|
|
| 814 | + bytecode breakpoint 14:
|
|
| 815 | + type: a
|
|
| 816 | + type variables: a :: *
|
|
| 817 | + variables:
|
|
| 818 | + %'Many eta :: a
|
|
| 819 | + %'Many eta1 :: a
|
|
| 820 | + corresponding source breakpoint: 0
|
|
| 821 | + bytecode breakpoint 15:
|
|
| 822 | + type: Bool
|
|
| 823 | + type variables: a :: *
|
|
| 824 | + variables:
|
|
| 825 | + %'Many eta :: a
|
|
| 826 | + %'Many eta1 :: a
|
|
| 827 | + corresponding source breakpoint: 1
|
|
| 828 | +static-pointer table entries:
|
|
| 829 | + @hash@: static_ptr
|
|
| 830 | + @hash@: static_ptr1
|
|
| 831 | +HPC information: <none>
|
|
| 832 | + |
| 1 | +[1 of 1] Compiling Example ( Example.hs, Example.gbc )
|
|
| 2 | +module: Example
|
|
| 3 | +hash: @hash@
|
|
| 4 | +objects:
|
|
| 5 | + object ‘primesPtr’:
|
|
| 6 | + arity: 0
|
|
| 7 | + literals:
|
|
| 8 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 9 | + used items:
|
|
| 10 | + named item ‘static_ptr1’
|
|
| 11 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 12 | + named item ‘$fIsStaticStaticPtr’
|
|
| 13 | + static-construction object ‘static_ptr1’:
|
|
| 14 | + data constructor: StaticPtr
|
|
| 15 | + lifted: yes
|
|
| 16 | + literals:
|
|
| 17 | + word @large_word@
|
|
| 18 | + used items:
|
|
| 19 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 20 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 21 | + data constructor: StaticPtrInfo
|
|
| 22 | + lifted: yes
|
|
| 23 | + literals: <none>
|
|
| 24 | + used items:
|
|
| 25 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 26 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 27 | + arity: 0
|
|
| 28 | + literals: top-level string "main"
|
|
| 29 | + used items:
|
|
| 30 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 31 | + arity: 0
|
|
| 32 | + literals: <none>
|
|
| 33 | + used items: named item ‘unpackCString#’
|
|
| 34 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 35 | + arity: 0
|
|
| 36 | + literals: top-level string "Example"
|
|
| 37 | + used items:
|
|
| 38 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 39 | + arity: 0
|
|
| 40 | + literals: <none>
|
|
| 41 | + used items: named item ‘unpackCString#’
|
|
| 42 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 43 | + data constructor: (,)
|
|
| 44 | + lifted: yes
|
|
| 45 | + literals: <none>
|
|
| 46 | + used items:
|
|
| 47 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 48 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 49 | + data constructor: I#
|
|
| 50 | + lifted: yes
|
|
| 51 | + literals: word @large_word@
|
|
| 52 | + used items: <none>
|
|
| 53 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 54 | + data constructor: I#
|
|
| 55 | + lifted: yes
|
|
| 56 | + literals: word @large_word@
|
|
| 57 | + used items: <none>
|
|
| 58 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 59 | + arity: 0
|
|
| 60 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 61 | + used items: named item ‘primes’
|
|
| 62 | + object ‘primes2_@name_suffix@’:
|
|
| 63 | + arity: 0
|
|
| 64 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 65 | + used items:
|
|
| 66 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 67 | + arity: 0
|
|
| 68 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 69 | + used items:
|
|
| 70 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 71 | + arity: 0
|
|
| 72 | + literals:
|
|
| 73 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 74 | + word 3
|
|
| 75 | + info table of ‘IS’
|
|
| 76 | + used items:
|
|
| 77 | + named item ‘$fNumNatural’
|
|
| 78 | + named item ‘fromInteger’
|
|
| 79 | + named item ‘$fEnumNatural’
|
|
| 80 | + named item ‘enumFrom’
|
|
| 81 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 82 | + arity: 0
|
|
| 83 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 84 | + used items: named item ‘isPrime_@name_suffix@’
|
|
| 85 | + named item ‘filter’
|
|
| 86 | + object ‘isPrime_@name_suffix@’:
|
|
| 87 | + arity: 1
|
|
| 88 | + literals:
|
|
| 89 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 90 | + used items:
|
|
| 91 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 92 | + arity: 1
|
|
| 93 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 94 | + used items:
|
|
| 95 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 96 | + arity: 1
|
|
| 97 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 98 | + used items:
|
|
| 99 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 100 | + arity: 0
|
|
| 101 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 102 | + used items: named item ‘primes’
|
|
| 103 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 104 | + arity: 1
|
|
| 105 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 106 | + used items:
|
|
| 107 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 108 | + arity: 0
|
|
| 109 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 110 | + used items:
|
|
| 111 | + object ‘v_@name_suffix@’:
|
|
| 112 | + arity: 0
|
|
| 113 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 114 | + used items:
|
|
| 115 | + named item ‘$fIntegralInteger’
|
|
| 116 | + named item ‘$fNumNatural’
|
|
| 117 | + named item ‘(^)’
|
|
| 118 | + object ‘v1_@name_suffix@’:
|
|
| 119 | + arity: 0
|
|
| 120 | + literals:
|
|
| 121 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 122 | + word 2
|
|
| 123 | + info table of ‘IS’
|
|
| 124 | + used items: <none>
|
|
| 125 | + object ‘pap_@name_suffix@’:
|
|
| 126 | + arity: 3
|
|
| 127 | + literals: <none>
|
|
| 128 | + used items: <none>
|
|
| 129 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 130 | + arity: 1
|
|
| 131 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 132 | + used items:
|
|
| 133 | + object ‘v_@name_suffix@’:
|
|
| 134 | + arity: 0
|
|
| 135 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 136 | + used items:
|
|
| 137 | + named item ‘$fOrdNatural’
|
|
| 138 | + named item ‘(<=)’
|
|
| 139 | + object ‘v1_@name_suffix@’:
|
|
| 140 | + arity: 1
|
|
| 141 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 142 | + used items: <none>
|
|
| 143 | + object ‘pap_@name_suffix@’:
|
|
| 144 | + arity: 3
|
|
| 145 | + literals: <none>
|
|
| 146 | + used items: <none>
|
|
| 147 | + named item ‘(.)’
|
|
| 148 | + named item ‘takeWhile’
|
|
| 149 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 150 | + arity: 1
|
|
| 151 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 152 | + used items:
|
|
| 153 | + object ‘v_@name_suffix@’:
|
|
| 154 | + arity: 0
|
|
| 155 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 156 | + used items:
|
|
| 157 | + object ‘pap_@name_suffix@’:
|
|
| 158 | + arity: 2
|
|
| 159 | + literals: <none>
|
|
| 160 | + used items:
|
|
| 161 | + named item ‘$fIntegralNatural’
|
|
| 162 | + named item ‘divides’
|
|
| 163 | + object ‘v1_@name_suffix@’:
|
|
| 164 | + arity: 1
|
|
| 165 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 166 | + used items: <none>
|
|
| 167 | + object ‘pap_@name_suffix@’:
|
|
| 168 | + arity: 3
|
|
| 169 | + literals: <none>
|
|
| 170 | + used items: <none>
|
|
| 171 | + named item ‘$fFoldableList’
|
|
| 172 | + named item ‘any’
|
|
| 173 | + named item ‘not’
|
|
| 174 | + object ‘primes’:
|
|
| 175 | + arity: 0
|
|
| 176 | + literals:
|
|
| 177 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 178 | + info table of ‘(:)’
|
|
| 179 | + used items:
|
|
| 180 | + named item ‘primes2_@name_suffix@’
|
|
| 181 | + named item ‘primes1_@name_suffix@’
|
|
| 182 | + object ‘primes1_@name_suffix@’:
|
|
| 183 | + arity: 0
|
|
| 184 | + literals:
|
|
| 185 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 186 | + word 2
|
|
| 187 | + info table of ‘IS’
|
|
| 188 | + used items:
|
|
| 189 | + named item ‘$fNumNatural’
|
|
| 190 | + named item ‘fromInteger’
|
|
| 191 | + object ‘fibonaccisPtr’:
|
|
| 192 | + arity: 0
|
|
| 193 | + literals:
|
|
| 194 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 195 | + used items:
|
|
| 196 | + named item ‘static_ptr’
|
|
| 197 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 198 | + named item ‘$fIsStaticStaticPtr’
|
|
| 199 | + static-construction object ‘static_ptr’:
|
|
| 200 | + data constructor: StaticPtr
|
|
| 201 | + lifted: yes
|
|
| 202 | + literals:
|
|
| 203 | + word @large_word@
|
|
| 204 | + used items:
|
|
| 205 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 206 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 207 | + data constructor: StaticPtrInfo
|
|
| 208 | + lifted: yes
|
|
| 209 | + literals: <none>
|
|
| 210 | + used items:
|
|
| 211 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 212 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 213 | + arity: 0
|
|
| 214 | + literals: top-level string "main"
|
|
| 215 | + used items:
|
|
| 216 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 217 | + arity: 0
|
|
| 218 | + literals: <none>
|
|
| 219 | + used items: named item ‘unpackCString#’
|
|
| 220 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 221 | + arity: 0
|
|
| 222 | + literals: top-level string "Example"
|
|
| 223 | + used items:
|
|
| 224 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 225 | + arity: 0
|
|
| 226 | + literals: <none>
|
|
| 227 | + used items: named item ‘unpackCString#’
|
|
| 228 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 229 | + data constructor: (,)
|
|
| 230 | + lifted: yes
|
|
| 231 | + literals: <none>
|
|
| 232 | + used items:
|
|
| 233 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 234 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 235 | + data constructor: I#
|
|
| 236 | + lifted: yes
|
|
| 237 | + literals: word @large_word@
|
|
| 238 | + used items: <none>
|
|
| 239 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 240 | + data constructor: I#
|
|
| 241 | + lifted: yes
|
|
| 242 | + literals: word @large_word@
|
|
| 243 | + used items: <none>
|
|
| 244 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 245 | + arity: 0
|
|
| 246 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 247 | + used items: named item ‘fibonaccis’
|
|
| 248 | + object ‘positiveFibonaccis1_@name_suffix@’:
|
|
| 249 | + arity: 0
|
|
| 250 | + literals:
|
|
| 251 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 252 | + info table of ‘(:)’
|
|
| 253 | + used items:
|
|
| 254 | + named item ‘positiveFibonaccis2_@name_suffix@’
|
|
| 255 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 256 | + object ‘positiveFibonaccis2_@name_suffix@’:
|
|
| 257 | + arity: 0
|
|
| 258 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 259 | + used items:
|
|
| 260 | + object ‘positiveFibonaccis2_sat_@name_suffix@’:
|
|
| 261 | + arity: 0
|
|
| 262 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 263 | + used items: named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 264 | + object ‘positiveFibonaccis2_sat_@name_suffix@’:
|
|
| 265 | + arity: 0
|
|
| 266 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 267 | + used items: named item ‘fibonaccis’
|
|
| 268 | + object ‘positiveFibonaccis2_sat_@name_suffix@’:
|
|
| 269 | + arity: 0
|
|
| 270 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 271 | + used items:
|
|
| 272 | + named item ‘$fNumNatural’
|
|
| 273 | + named item ‘(+)’
|
|
| 274 | + named item ‘zipWith’
|
|
| 275 | + object ‘fibonaccis’:
|
|
| 276 | + arity: 0
|
|
| 277 | + literals:
|
|
| 278 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 279 | + info table of ‘(:)’
|
|
| 280 | + used items:
|
|
| 281 | + named item ‘fibonaccis2_@name_suffix@’
|
|
| 282 | + named item ‘fibonaccis1_@name_suffix@’
|
|
| 283 | + object ‘fibonaccis2_@name_suffix@’:
|
|
| 284 | + arity: 0
|
|
| 285 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 286 | + used items: named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 287 | + object ‘positiveFibonaccis_@name_suffix@’:
|
|
| 288 | + arity: 0
|
|
| 289 | + literals:
|
|
| 290 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 291 | + word 1
|
|
| 292 | + info table of ‘IS’
|
|
| 293 | + used items:
|
|
| 294 | + named item ‘$fNumNatural’
|
|
| 295 | + named item ‘fromInteger’
|
|
| 296 | + object ‘fibonaccis1_@name_suffix@’:
|
|
| 297 | + arity: 0
|
|
| 298 | + literals:
|
|
| 299 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 300 | + word 0
|
|
| 301 | + info table of ‘IS’
|
|
| 302 | + used items:
|
|
| 303 | + named item ‘$fNumNatural’
|
|
| 304 | + named item ‘fromInteger’
|
|
| 305 | + object ‘$dTypeable2_@name_suffix@’:
|
|
| 306 | + arity: 0
|
|
| 307 | + literals: <none>
|
|
| 308 | + used items:
|
|
| 309 | + named item ‘$dTypeable_@name_suffix@’
|
|
| 310 | + named item ‘$dTypeable1_@name_suffix@’
|
|
| 311 | + named item ‘mkTrAppChecked’
|
|
| 312 | + object ‘$dTypeable1_@name_suffix@’:
|
|
| 313 | + arity: 0
|
|
| 314 | + literals: info table of ‘[]’
|
|
| 315 | + used items:
|
|
| 316 | + named item ‘$tcList’
|
|
| 317 | + named item ‘mkTrCon’
|
|
| 318 | + object ‘$dTypeable_@name_suffix@’:
|
|
| 319 | + arity: 0
|
|
| 320 | + literals: info table of ‘[]’
|
|
| 321 | + used items:
|
|
| 322 | + named item ‘$tcNatural’
|
|
| 323 | + named item ‘mkTrCon’
|
|
| 324 | + object ‘cstrlen’:
|
|
| 325 | + arity: 2
|
|
| 326 | + literals: <none>
|
|
| 327 | + used items:
|
|
| 328 | + object ‘ds1_@name_suffix@’:
|
|
| 329 | + arity: 0
|
|
| 330 | + literals:
|
|
| 331 | + label ‘strlen’
|
|
| 332 | + word 0
|
|
| 333 | + foreign function of type ‘Pointer -> UInt@word_size@’
|
|
| 334 | + used items:
|
|
| 335 | + object ‘wild_@name_suffix@’:
|
|
| 336 | + arity: 0
|
|
| 337 | + literals: info table of ‘W@word_size@#’
|
|
| 338 | + used items: <none>
|
|
| 339 | + static-construction object ‘$tc'Nested’:
|
|
| 340 | + data constructor: TyCon
|
|
| 341 | + lifted: yes
|
|
| 342 | + literals:
|
|
| 343 | + word @large_word@
|
|
| 344 | + word 1
|
|
| 345 | + used items:
|
|
| 346 | + named item ‘$trModule’
|
|
| 347 | + named item ‘$tc'Nested2_@name_suffix@’
|
|
| 348 | + named item ‘$krep17_@name_suffix@’
|
|
| 349 | + static-construction object ‘$tc'Nested2_@name_suffix@’:
|
|
| 350 | + data constructor: TrNameS
|
|
| 351 | + lifted: yes
|
|
| 352 | + literals: address ‘$tc'Nested1_@name_suffix@’
|
|
| 353 | + used items: <none>
|
|
| 354 | + static-construction object ‘$krep17_@name_suffix@’:
|
|
| 355 | + data constructor: KindRepFun
|
|
| 356 | + lifted: yes
|
|
| 357 | + literals: <none>
|
|
| 358 | + used items:
|
|
| 359 | + named item ‘$krep16_@name_suffix@’
|
|
| 360 | + named item ‘$krep13_@name_suffix@’
|
|
| 361 | + static-construction object ‘$krep16_@name_suffix@’:
|
|
| 362 | + data constructor: KindRepTyConApp
|
|
| 363 | + lifted: yes
|
|
| 364 | + literals: <none>
|
|
| 365 | + used items:
|
|
| 366 | + named item ‘$tcPerfectTree’
|
|
| 367 | + named item ‘$krep15_@name_suffix@’
|
|
| 368 | + static-construction object ‘$krep15_@name_suffix@’:
|
|
| 369 | + data constructor: (:)
|
|
| 370 | + lifted: yes
|
|
| 371 | + literals: <none>
|
|
| 372 | + used items:
|
|
| 373 | + named item ‘$krep4_@name_suffix@’
|
|
| 374 | + named item ‘[]’
|
|
| 375 | + static-construction object ‘$tc'PerfectTree’:
|
|
| 376 | + data constructor: TyCon
|
|
| 377 | + lifted: yes
|
|
| 378 | + literals:
|
|
| 379 | + word @large_word@
|
|
| 380 | + word 1
|
|
| 381 | + used items:
|
|
| 382 | + named item ‘$trModule’
|
|
| 383 | + named item ‘$tc'PerfectTree2_@name_suffix@’
|
|
| 384 | + named item ‘$krep14_@name_suffix@’
|
|
| 385 | + static-construction object ‘$tc'PerfectTree2_@name_suffix@’:
|
|
| 386 | + data constructor: TrNameS
|
|
| 387 | + lifted: yes
|
|
| 388 | + literals: address ‘$tc'PerfectTree1_@name_suffix@’
|
|
| 389 | + used items: <none>
|
|
| 390 | + static-construction object ‘$krep14_@name_suffix@’:
|
|
| 391 | + data constructor: KindRepFun
|
|
| 392 | + lifted: yes
|
|
| 393 | + literals: <none>
|
|
| 394 | + used items:
|
|
| 395 | + named item ‘$krep1_@name_suffix@’
|
|
| 396 | + named item ‘$krep13_@name_suffix@’
|
|
| 397 | + static-construction object ‘$krep13_@name_suffix@’:
|
|
| 398 | + data constructor: KindRepTyConApp
|
|
| 399 | + lifted: yes
|
|
| 400 | + literals: <none>
|
|
| 401 | + used items:
|
|
| 402 | + named item ‘$tcPerfectTree’
|
|
| 403 | + named item ‘$krep12_@name_suffix@’
|
|
| 404 | + static-construction object ‘$krep12_@name_suffix@’:
|
|
| 405 | + data constructor: (:)
|
|
| 406 | + lifted: yes
|
|
| 407 | + literals: <none>
|
|
| 408 | + used items:
|
|
| 409 | + named item ‘$krep1_@name_suffix@’
|
|
| 410 | + named item ‘[]’
|
|
| 411 | + static-construction object ‘$tcPerfectTree’:
|
|
| 412 | + data constructor: TyCon
|
|
| 413 | + lifted: yes
|
|
| 414 | + literals:
|
|
| 415 | + word @large_word@
|
|
| 416 | + word 0
|
|
| 417 | + used items:
|
|
| 418 | + named item ‘$trModule’
|
|
| 419 | + named item ‘$tcPerfectTree2_@name_suffix@’
|
|
| 420 | + named item ‘krepStarArr’
|
|
| 421 | + static-construction object ‘$tcPerfectTree2_@name_suffix@’:
|
|
| 422 | + data constructor: TrNameS
|
|
| 423 | + lifted: yes
|
|
| 424 | + literals: address ‘$tcPerfectTree1_@name_suffix@’
|
|
| 425 | + used items: <none>
|
|
| 426 | + static-construction object ‘$tc'Node’:
|
|
| 427 | + data constructor: TyCon
|
|
| 428 | + lifted: yes
|
|
| 429 | + literals:
|
|
| 430 | + word @large_word@
|
|
| 431 | + word 2
|
|
| 432 | + used items:
|
|
| 433 | + named item ‘$trModule’
|
|
| 434 | + named item ‘$tc'Node2_@name_suffix@’
|
|
| 435 | + named item ‘$krep11_@name_suffix@’
|
|
| 436 | + static-construction object ‘$tc'Node2_@name_suffix@’:
|
|
| 437 | + data constructor: TrNameS
|
|
| 438 | + lifted: yes
|
|
| 439 | + literals: address ‘$tc'Node1_@name_suffix@’
|
|
| 440 | + used items: <none>
|
|
| 441 | + static-construction object ‘$krep11_@name_suffix@’:
|
|
| 442 | + data constructor: KindRepFun
|
|
| 443 | + lifted: yes
|
|
| 444 | + literals: <none>
|
|
| 445 | + used items:
|
|
| 446 | + named item ‘$krep7_@name_suffix@’
|
|
| 447 | + named item ‘$krep10_@name_suffix@’
|
|
| 448 | + static-construction object ‘$krep10_@name_suffix@’:
|
|
| 449 | + data constructor: KindRepFun
|
|
| 450 | + lifted: yes
|
|
| 451 | + literals: <none>
|
|
| 452 | + used items:
|
|
| 453 | + named item ‘$krep_@name_suffix@’
|
|
| 454 | + named item ‘$krep9_@name_suffix@’
|
|
| 455 | + static-construction object ‘$krep9_@name_suffix@’:
|
|
| 456 | + data constructor: KindRepFun
|
|
| 457 | + lifted: yes
|
|
| 458 | + literals: <none>
|
|
| 459 | + used items:
|
|
| 460 | + named item ‘$krep7_@name_suffix@’
|
|
| 461 | + static-construction object ‘$tc'Leaf’:
|
|
| 462 | + data constructor: TyCon
|
|
| 463 | + lifted: yes
|
|
| 464 | + literals:
|
|
| 465 | + word @large_word@
|
|
| 466 | + word 2
|
|
| 467 | + used items:
|
|
| 468 | + named item ‘$trModule’
|
|
| 469 | + named item ‘$tc'Leaf2_@name_suffix@’
|
|
| 470 | + named item ‘$krep8_@name_suffix@’
|
|
| 471 | + static-construction object ‘$tc'Leaf2_@name_suffix@’:
|
|
| 472 | + data constructor: TrNameS
|
|
| 473 | + lifted: yes
|
|
| 474 | + literals: address ‘$tc'Leaf1_@name_suffix@’
|
|
| 475 | + used items: <none>
|
|
| 476 | + static-construction object ‘$krep8_@name_suffix@’:
|
|
| 477 | + data constructor: KindRepFun
|
|
| 478 | + lifted: yes
|
|
| 479 | + literals: <none>
|
|
| 480 | + used items:
|
|
| 481 | + named item ‘$krep1_@name_suffix@’
|
|
| 482 | + named item ‘$krep7_@name_suffix@’
|
|
| 483 | + static-construction object ‘$krep7_@name_suffix@’:
|
|
| 484 | + data constructor: KindRepTyConApp
|
|
| 485 | + lifted: yes
|
|
| 486 | + literals: <none>
|
|
| 487 | + used items:
|
|
| 488 | + named item ‘$tcBinTree’
|
|
| 489 | + named item ‘$krep6_@name_suffix@’
|
|
| 490 | + static-construction object ‘$krep6_@name_suffix@’:
|
|
| 491 | + data constructor: (:)
|
|
| 492 | + lifted: yes
|
|
| 493 | + literals: <none>
|
|
| 494 | + used items:
|
|
| 495 | + named item ‘$krep1_@name_suffix@’
|
|
| 496 | + named item ‘$krep5_@name_suffix@’
|
|
| 497 | + static-construction object ‘$krep5_@name_suffix@’:
|
|
| 498 | + data constructor: (:)
|
|
| 499 | + lifted: yes
|
|
| 500 | + literals: <none>
|
|
| 501 | + used items:
|
|
| 502 | + named item ‘$krep_@name_suffix@’
|
|
| 503 | + named item ‘[]’
|
|
| 504 | + static-construction object ‘$tcBinTree’:
|
|
| 505 | + data constructor: TyCon
|
|
| 506 | + lifted: yes
|
|
| 507 | + literals:
|
|
| 508 | + word @large_word@
|
|
| 509 | + word 0
|
|
| 510 | + used items:
|
|
| 511 | + named item ‘$trModule’
|
|
| 512 | + named item ‘$tcBinTree2_@name_suffix@’
|
|
| 513 | + named item ‘krepStarArrStarArr’
|
|
| 514 | + static-construction object ‘$tcBinTree2_@name_suffix@’:
|
|
| 515 | + data constructor: TrNameS
|
|
| 516 | + lifted: yes
|
|
| 517 | + literals: address ‘$tcBinTree1_@name_suffix@’
|
|
| 518 | + used items: <none>
|
|
| 519 | + static-construction object ‘$krep4_@name_suffix@’:
|
|
| 520 | + data constructor: KindRepTyConApp
|
|
| 521 | + lifted: yes
|
|
| 522 | + literals: <none>
|
|
| 523 | + used items:
|
|
| 524 | + named item ‘$tcTuple2’
|
|
| 525 | + named item ‘$krep3_@name_suffix@’
|
|
| 526 | + static-construction object ‘$krep3_@name_suffix@’:
|
|
| 527 | + data constructor: (:)
|
|
| 528 | + lifted: yes
|
|
| 529 | + literals: <none>
|
|
| 530 | + used items:
|
|
| 531 | + named item ‘$krep1_@name_suffix@’
|
|
| 532 | + named item ‘$krep2_@name_suffix@’
|
|
| 533 | + static-construction object ‘$krep2_@name_suffix@’:
|
|
| 534 | + data constructor: (:)
|
|
| 535 | + lifted: yes
|
|
| 536 | + literals: <none>
|
|
| 537 | + used items:
|
|
| 538 | + named item ‘$krep1_@name_suffix@’
|
|
| 539 | + named item ‘[]’
|
|
| 540 | + static-construction object ‘$krep1_@name_suffix@’:
|
|
| 541 | + data constructor: KindRepVar
|
|
| 542 | + lifted: yes
|
|
| 543 | + literals: word 0
|
|
| 544 | + used items: <none>
|
|
| 545 | + static-construction object ‘$krep_@name_suffix@’:
|
|
| 546 | + data constructor: KindRepVar
|
|
| 547 | + lifted: yes
|
|
| 548 | + literals: word 1
|
|
| 549 | + used items: <none>
|
|
| 550 | + static-construction object ‘$trModule’:
|
|
| 551 | + data constructor: Module
|
|
| 552 | + lifted: yes
|
|
| 553 | + literals: <none>
|
|
| 554 | + used items:
|
|
| 555 | + named item ‘$trModule2_@name_suffix@’
|
|
| 556 | + named item ‘$trModule4_@name_suffix@’
|
|
| 557 | + static-construction object ‘$trModule4_@name_suffix@’:
|
|
| 558 | + data constructor: TrNameS
|
|
| 559 | + lifted: yes
|
|
| 560 | + literals: address ‘$trModule3_@name_suffix@’
|
|
| 561 | + used items: <none>
|
|
| 562 | + static-construction object ‘$trModule2_@name_suffix@’:
|
|
| 563 | + data constructor: TrNameS
|
|
| 564 | + lifted: yes
|
|
| 565 | + literals: address ‘$trModule1_@name_suffix@’
|
|
| 566 | + used items: <none>
|
|
| 567 | + object ‘divides’:
|
|
| 568 | + arity: 3
|
|
| 569 | + literals: <none>
|
|
| 570 | + used items:
|
|
| 571 | + object ‘$dReal_@name_suffix@’:
|
|
| 572 | + arity: 0
|
|
| 573 | + literals:
|
|
| 574 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 575 | + used items:
|
|
| 576 | + object ‘divides_sat_@name_suffix@’:
|
|
| 577 | + arity: 1
|
|
| 578 | + literals:
|
|
| 579 | + label ‘_hpc_tickboxes_Example_hpc’
|
|
| 580 | + word 0
|
|
| 581 | + info table of ‘IS’
|
|
| 582 | + used items:
|
|
| 583 | + object ‘divides_sat_@name_suffix@’:
|
|
| 584 | + arity: 0
|
|
| 585 | + literals: <none>
|
|
| 586 | + used items: named item ‘fromInteger’
|
|
| 587 | + named item ‘$p1Real’
|
|
| 588 | + object ‘divides_sat_@name_suffix@’:
|
|
| 589 | + arity: 3
|
|
| 590 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 591 | + used items:
|
|
| 592 | + object ‘divides_sat_@name_suffix@’:
|
|
| 593 | + arity: 1
|
|
| 594 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 595 | + used items: <none>
|
|
| 596 | + object ‘divides_sat_@name_suffix@’:
|
|
| 597 | + arity: 1
|
|
| 598 | + literals: label ‘_hpc_tickboxes_Example_hpc’
|
|
| 599 | + used items: <none>
|
|
| 600 | + named item ‘mod’
|
|
| 601 | + object ‘divides_sat_@name_suffix@’:
|
|
| 602 | + arity: 0
|
|
| 603 | + literals: <none>
|
|
| 604 | + used items:
|
|
| 605 | + object ‘divides_sat_@name_suffix@’:
|
|
| 606 | + arity: 0
|
|
| 607 | + literals: <none>
|
|
| 608 | + used items: named item ‘(==)’
|
|
| 609 | + named item ‘$p1Ord’
|
|
| 610 | + named item ‘$p2Real’
|
|
| 611 | + named item ‘$p1Integral’
|
|
| 612 | + object ‘Node’:
|
|
| 613 | + arity: 3
|
|
| 614 | + literals: info table of ‘Node’
|
|
| 615 | + used items: <none>
|
|
| 616 | + object ‘Leaf’:
|
|
| 617 | + arity: 1
|
|
| 618 | + literals: info table of ‘Leaf’
|
|
| 619 | + used items: <none>
|
|
| 620 | + object ‘Nested’:
|
|
| 621 | + arity: 1
|
|
| 622 | + literals: info table of ‘Nested’
|
|
| 623 | + used items: <none>
|
|
| 624 | + object ‘PerfectTree’:
|
|
| 625 | + arity: 1
|
|
| 626 | + literals: info table of ‘PerfectTree’
|
|
| 627 | + used items: <none>
|
|
| 628 | +data constructor info tables:
|
|
| 629 | + info table of ‘PerfectTree’:
|
|
| 630 | + number of words for pointers: 1
|
|
| 631 | + number of words for non-pointers: 0
|
|
| 632 | + info table of ‘Nested’:
|
|
| 633 | + number of words for pointers: 1
|
|
| 634 | + number of words for non-pointers: 0
|
|
| 635 | + info table of ‘Leaf’:
|
|
| 636 | + number of words for pointers: 1
|
|
| 637 | + number of words for non-pointers: 0
|
|
| 638 | + info table of ‘Node’:
|
|
| 639 | + number of words for pointers: 3
|
|
| 640 | + number of words for non-pointers: 0
|
|
| 641 | +top-level strings:
|
|
| 642 | + $tc'Nested1_@name_suffix@: "'Nested"
|
|
| 643 | + $tc'PerfectTree1_@name_suffix@: "'PerfectTree"
|
|
| 644 | + $tcPerfectTree1_@name_suffix@: "PerfectTree"
|
|
| 645 | + $tc'Node1_@name_suffix@: "'Node"
|
|
| 646 | + $tc'Leaf1_@name_suffix@: "'Leaf"
|
|
| 647 | + $tcBinTree1_@name_suffix@: "BinTree"
|
|
| 648 | + $trModule3_@name_suffix@: "Example"
|
|
| 649 | + $trModule1_@name_suffix@: "main"
|
|
| 650 | +breakpoints: <none>
|
|
| 651 | +static-pointer table entries:
|
|
| 652 | + @hash@: static_ptr
|
|
| 653 | + @hash@: static_ptr1
|
|
| 654 | +HPC information:
|
|
| 655 | + hash: @hash@
|
|
| 656 | + tick box: _hpc_tickboxes_Example_hpc
|
|
| 657 | + number of ticks: 45
|
|
| 658 | + |
| 1 | +[1 of 1] Compiling Example ( Example.hs, Example.gbc )
|
|
| 2 | +module: Example
|
|
| 3 | +hash: @hash@
|
|
| 4 | +objects:
|
|
| 5 | + object ‘primesPtr’:
|
|
| 6 | + arity: 0
|
|
| 7 | + literals: <none>
|
|
| 8 | + used items:
|
|
| 9 | + named item ‘static_ptr1’
|
|
| 10 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 11 | + named item ‘$fIsStaticStaticPtr’
|
|
| 12 | + static-construction object ‘static_ptr1’:
|
|
| 13 | + data constructor: StaticPtr
|
|
| 14 | + lifted: yes
|
|
| 15 | + literals:
|
|
| 16 | + word @large_word@
|
|
| 17 | + used items:
|
|
| 18 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 19 | + named item ‘primes’
|
|
| 20 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 21 | + data constructor: StaticPtrInfo
|
|
| 22 | + lifted: yes
|
|
| 23 | + literals: <none>
|
|
| 24 | + used items:
|
|
| 25 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 26 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 27 | + arity: 0
|
|
| 28 | + literals: top-level string "main"
|
|
| 29 | + used items:
|
|
| 30 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 31 | + arity: 0
|
|
| 32 | + literals: <none>
|
|
| 33 | + used items: named item ‘unpackCString#’
|
|
| 34 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 35 | + arity: 0
|
|
| 36 | + literals: top-level string "Example"
|
|
| 37 | + used items:
|
|
| 38 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 39 | + arity: 0
|
|
| 40 | + literals: <none>
|
|
| 41 | + used items: named item ‘unpackCString#’
|
|
| 42 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 43 | + data constructor: (,)
|
|
| 44 | + lifted: yes
|
|
| 45 | + literals: <none>
|
|
| 46 | + used items:
|
|
| 47 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 48 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 49 | + data constructor: I#
|
|
| 50 | + lifted: yes
|
|
| 51 | + literals: word @large_word@
|
|
| 52 | + used items: <none>
|
|
| 53 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 54 | + data constructor: I#
|
|
| 55 | + lifted: yes
|
|
| 56 | + literals: word @large_word@
|
|
| 57 | + used items: <none>
|
|
| 58 | + object ‘primes2_@name_suffix@’:
|
|
| 59 | + arity: 0
|
|
| 60 | + literals: <none>
|
|
| 61 | + used items:
|
|
| 62 | + named item ‘primes2_sat_@name_suffix@’
|
|
| 63 | + named item ‘isPrime_@name_suffix@’
|
|
| 64 | + named item ‘filter’
|
|
| 65 | + object ‘isPrime_@name_suffix@’:
|
|
| 66 | + arity: 1
|
|
| 67 | + literals: <none>
|
|
| 68 | + used items:
|
|
| 69 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 70 | + arity: 1
|
|
| 71 | + literals: <none>
|
|
| 72 | + used items:
|
|
| 73 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 74 | + arity: 1
|
|
| 75 | + literals: <none>
|
|
| 76 | + used items:
|
|
| 77 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 78 | + arity: 1
|
|
| 79 | + literals:
|
|
| 80 | + word 2
|
|
| 81 | + info table of ‘IS’
|
|
| 82 | + used items:
|
|
| 83 | + object ‘v_@name_suffix@’:
|
|
| 84 | + arity: 0
|
|
| 85 | + literals: <none>
|
|
| 86 | + used items:
|
|
| 87 | + named item ‘$fIntegralInteger’
|
|
| 88 | + named item ‘$fNumNatural’
|
|
| 89 | + named item ‘(^)’
|
|
| 90 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 91 | + arity: 3
|
|
| 92 | + literals: <none>
|
|
| 93 | + used items: <none>
|
|
| 94 | + object ‘v_@name_suffix@’:
|
|
| 95 | + arity: 0
|
|
| 96 | + literals: <none>
|
|
| 97 | + used items:
|
|
| 98 | + named item ‘$fOrdNatural’
|
|
| 99 | + named item ‘(<=)’
|
|
| 100 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 101 | + arity: 3
|
|
| 102 | + literals: <none>
|
|
| 103 | + used items: <none>
|
|
| 104 | + named item ‘(.)’
|
|
| 105 | + named item ‘primes’
|
|
| 106 | + named item ‘takeWhile’
|
|
| 107 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 108 | + arity: 2
|
|
| 109 | + literals: <none>
|
|
| 110 | + used items:
|
|
| 111 | + named item ‘$fIntegralNatural’
|
|
| 112 | + named item ‘divides’
|
|
| 113 | + named item ‘$fFoldableList’
|
|
| 114 | + named item ‘any’
|
|
| 115 | + named item ‘not’
|
|
| 116 | + static-construction object ‘primes’:
|
|
| 117 | + data constructor: (:)
|
|
| 118 | + lifted: yes
|
|
| 119 | + literals: <none>
|
|
| 120 | + used items:
|
|
| 121 | + named item ‘primes1_@name_suffix@’
|
|
| 122 | + named item ‘primes2_@name_suffix@’
|
|
| 123 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 124 | + arity: 0
|
|
| 125 | + literals: <none>
|
|
| 126 | + used items:
|
|
| 127 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 128 | + arity: 0
|
|
| 129 | + literals:
|
|
| 130 | + word 3
|
|
| 131 | + info table of ‘IS’
|
|
| 132 | + used items:
|
|
| 133 | + named item ‘$fNumNatural’
|
|
| 134 | + named item ‘fromInteger’
|
|
| 135 | + named item ‘$fEnumNatural’
|
|
| 136 | + named item ‘enumFrom’
|
|
| 137 | + object ‘primes1_@name_suffix@’:
|
|
| 138 | + arity: 0
|
|
| 139 | + literals: <none>
|
|
| 140 | + used items:
|
|
| 141 | + named item ‘primes1_sat_@name_suffix@’
|
|
| 142 | + named item ‘$fNumNatural’
|
|
| 143 | + named item ‘fromInteger’
|
|
| 144 | + static-construction object ‘primes1_sat_@name_suffix@’:
|
|
| 145 | + data constructor: IS
|
|
| 146 | + lifted: yes
|
|
| 147 | + literals: word 2
|
|
| 148 | + used items: <none>
|
|
| 149 | + object ‘fibonaccisPtr’:
|
|
| 150 | + arity: 0
|
|
| 151 | + literals: <none>
|
|
| 152 | + used items:
|
|
| 153 | + named item ‘static_ptr’
|
|
| 154 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 155 | + named item ‘$fIsStaticStaticPtr’
|
|
| 156 | + static-construction object ‘static_ptr’:
|
|
| 157 | + data constructor: StaticPtr
|
|
| 158 | + lifted: yes
|
|
| 159 | + literals:
|
|
| 160 | + word @large_word@
|
|
| 161 | + used items:
|
|
| 162 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 163 | + named item ‘fibonaccis’
|
|
| 164 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 165 | + data constructor: StaticPtrInfo
|
|
| 166 | + lifted: yes
|
|
| 167 | + literals: <none>
|
|
| 168 | + used items:
|
|
| 169 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 170 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 171 | + arity: 0
|
|
| 172 | + literals: top-level string "main"
|
|
| 173 | + used items:
|
|
| 174 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 175 | + arity: 0
|
|
| 176 | + literals: <none>
|
|
| 177 | + used items: named item ‘unpackCString#’
|
|
| 178 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 179 | + arity: 0
|
|
| 180 | + literals: top-level string "Example"
|
|
| 181 | + used items:
|
|
| 182 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 183 | + arity: 0
|
|
| 184 | + literals: <none>
|
|
| 185 | + used items: named item ‘unpackCString#’
|
|
| 186 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 187 | + data constructor: (,)
|
|
| 188 | + lifted: yes
|
|
| 189 | + literals: <none>
|
|
| 190 | + used items:
|
|
| 191 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 192 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 193 | + data constructor: I#
|
|
| 194 | + lifted: yes
|
|
| 195 | + literals: word @large_word@
|
|
| 196 | + used items: <none>
|
|
| 197 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 198 | + data constructor: I#
|
|
| 199 | + lifted: yes
|
|
| 200 | + literals: word @large_word@
|
|
| 201 | + used items: <none>
|
|
| 202 | + object ‘positiveFibonaccis2_@name_suffix@’:
|
|
| 203 | + arity: 0
|
|
| 204 | + literals: <none>
|
|
| 205 | + used items:
|
|
| 206 | + named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 207 | + named item ‘fibonaccis’
|
|
| 208 | + named item ‘positiveFibonaccis2_sat_@name_suffix@’
|
|
| 209 | + named item ‘zipWith’
|
|
| 210 | + static-construction object ‘positiveFibonaccis1_@name_suffix@’:
|
|
| 211 | + data constructor: (:)
|
|
| 212 | + lifted: yes
|
|
| 213 | + literals: <none>
|
|
| 214 | + used items:
|
|
| 215 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 216 | + named item ‘positiveFibonaccis2_@name_suffix@’
|
|
| 217 | + static-construction object ‘fibonaccis’:
|
|
| 218 | + data constructor: (:)
|
|
| 219 | + lifted: yes
|
|
| 220 | + literals: <none>
|
|
| 221 | + used items:
|
|
| 222 | + named item ‘fibonaccis1_@name_suffix@’
|
|
| 223 | + named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 224 | + object ‘positiveFibonaccis2_sat_@name_suffix@’:
|
|
| 225 | + arity: 0
|
|
| 226 | + literals: <none>
|
|
| 227 | + used items:
|
|
| 228 | + named item ‘$fNumNatural’
|
|
| 229 | + named item ‘(+)’
|
|
| 230 | + object ‘positiveFibonaccis_@name_suffix@’:
|
|
| 231 | + arity: 0
|
|
| 232 | + literals: <none>
|
|
| 233 | + used items:
|
|
| 234 | + named item ‘positiveFibonaccis_sat_@name_suffix@’
|
|
| 235 | + named item ‘$fNumNatural’
|
|
| 236 | + named item ‘fromInteger’
|
|
| 237 | + static-construction object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 238 | + data constructor: IS
|
|
| 239 | + lifted: yes
|
|
| 240 | + literals: word 1
|
|
| 241 | + used items: <none>
|
|
| 242 | + object ‘fibonaccis1_@name_suffix@’:
|
|
| 243 | + arity: 0
|
|
| 244 | + literals: <none>
|
|
| 245 | + used items:
|
|
| 246 | + named item ‘fibonaccis1_sat_@name_suffix@’
|
|
| 247 | + named item ‘$fNumNatural’
|
|
| 248 | + named item ‘fromInteger’
|
|
| 249 | + static-construction object ‘fibonaccis1_sat_@name_suffix@’:
|
|
| 250 | + data constructor: IS
|
|
| 251 | + lifted: yes
|
|
| 252 | + literals: word 0
|
|
| 253 | + used items: <none>
|
|
| 254 | + object ‘$dTypeable2_@name_suffix@’:
|
|
| 255 | + arity: 0
|
|
| 256 | + literals: <none>
|
|
| 257 | + used items:
|
|
| 258 | + named item ‘$dTypeable_@name_suffix@’
|
|
| 259 | + named item ‘$dTypeable1_@name_suffix@’
|
|
| 260 | + named item ‘mkTrAppChecked’
|
|
| 261 | + object ‘$dTypeable1_@name_suffix@’:
|
|
| 262 | + arity: 0
|
|
| 263 | + literals: info table of ‘[]’
|
|
| 264 | + used items:
|
|
| 265 | + named item ‘$tcList’
|
|
| 266 | + named item ‘mkTrCon’
|
|
| 267 | + object ‘$dTypeable_@name_suffix@’:
|
|
| 268 | + arity: 0
|
|
| 269 | + literals: info table of ‘[]’
|
|
| 270 | + used items:
|
|
| 271 | + named item ‘$tcNatural’
|
|
| 272 | + named item ‘mkTrCon’
|
|
| 273 | + object ‘cstrlen’:
|
|
| 274 | + arity: 2
|
|
| 275 | + literals: <none>
|
|
| 276 | + used items:
|
|
| 277 | + object ‘ds1_@name_suffix@’:
|
|
| 278 | + arity: 0
|
|
| 279 | + literals:
|
|
| 280 | + label ‘strlen’
|
|
| 281 | + word 0
|
|
| 282 | + foreign function of type ‘Pointer -> UInt@word_size@’
|
|
| 283 | + used items:
|
|
| 284 | + object ‘wild_@name_suffix@’:
|
|
| 285 | + arity: 0
|
|
| 286 | + literals: info table of ‘W@word_size@#’
|
|
| 287 | + used items: <none>
|
|
| 288 | + static-construction object ‘$tc'Nested’:
|
|
| 289 | + data constructor: TyCon
|
|
| 290 | + lifted: yes
|
|
| 291 | + literals:
|
|
| 292 | + word @large_word@
|
|
| 293 | + word 1
|
|
| 294 | + used items:
|
|
| 295 | + named item ‘$trModule’
|
|
| 296 | + named item ‘$tc'Nested2_@name_suffix@’
|
|
| 297 | + named item ‘$krep17_@name_suffix@’
|
|
| 298 | + static-construction object ‘$tc'Nested2_@name_suffix@’:
|
|
| 299 | + data constructor: TrNameS
|
|
| 300 | + lifted: yes
|
|
| 301 | + literals: address ‘$tc'Nested1_@name_suffix@’
|
|
| 302 | + used items: <none>
|
|
| 303 | + static-construction object ‘$krep17_@name_suffix@’:
|
|
| 304 | + data constructor: KindRepFun
|
|
| 305 | + lifted: yes
|
|
| 306 | + literals: <none>
|
|
| 307 | + used items:
|
|
| 308 | + named item ‘$krep16_@name_suffix@’
|
|
| 309 | + named item ‘$krep13_@name_suffix@’
|
|
| 310 | + static-construction object ‘$krep16_@name_suffix@’:
|
|
| 311 | + data constructor: KindRepTyConApp
|
|
| 312 | + lifted: yes
|
|
| 313 | + literals: <none>
|
|
| 314 | + used items:
|
|
| 315 | + named item ‘$tcPerfectTree’
|
|
| 316 | + named item ‘$krep15_@name_suffix@’
|
|
| 317 | + static-construction object ‘$krep15_@name_suffix@’:
|
|
| 318 | + data constructor: (:)
|
|
| 319 | + lifted: yes
|
|
| 320 | + literals: <none>
|
|
| 321 | + used items:
|
|
| 322 | + named item ‘$krep4_@name_suffix@’
|
|
| 323 | + named item ‘[]’
|
|
| 324 | + static-construction object ‘$tc'PerfectTree’:
|
|
| 325 | + data constructor: TyCon
|
|
| 326 | + lifted: yes
|
|
| 327 | + literals:
|
|
| 328 | + word @large_word@
|
|
| 329 | + word 1
|
|
| 330 | + used items:
|
|
| 331 | + named item ‘$trModule’
|
|
| 332 | + named item ‘$tc'PerfectTree2_@name_suffix@’
|
|
| 333 | + named item ‘$krep14_@name_suffix@’
|
|
| 334 | + static-construction object ‘$tc'PerfectTree2_@name_suffix@’:
|
|
| 335 | + data constructor: TrNameS
|
|
| 336 | + lifted: yes
|
|
| 337 | + literals: address ‘$tc'PerfectTree1_@name_suffix@’
|
|
| 338 | + used items: <none>
|
|
| 339 | + static-construction object ‘$krep14_@name_suffix@’:
|
|
| 340 | + data constructor: KindRepFun
|
|
| 341 | + lifted: yes
|
|
| 342 | + literals: <none>
|
|
| 343 | + used items:
|
|
| 344 | + named item ‘$krep1_@name_suffix@’
|
|
| 345 | + named item ‘$krep13_@name_suffix@’
|
|
| 346 | + static-construction object ‘$krep13_@name_suffix@’:
|
|
| 347 | + data constructor: KindRepTyConApp
|
|
| 348 | + lifted: yes
|
|
| 349 | + literals: <none>
|
|
| 350 | + used items:
|
|
| 351 | + named item ‘$tcPerfectTree’
|
|
| 352 | + named item ‘$krep12_@name_suffix@’
|
|
| 353 | + static-construction object ‘$krep12_@name_suffix@’:
|
|
| 354 | + data constructor: (:)
|
|
| 355 | + lifted: yes
|
|
| 356 | + literals: <none>
|
|
| 357 | + used items:
|
|
| 358 | + named item ‘$krep1_@name_suffix@’
|
|
| 359 | + named item ‘[]’
|
|
| 360 | + static-construction object ‘$tcPerfectTree’:
|
|
| 361 | + data constructor: TyCon
|
|
| 362 | + lifted: yes
|
|
| 363 | + literals:
|
|
| 364 | + word @large_word@
|
|
| 365 | + word 0
|
|
| 366 | + used items:
|
|
| 367 | + named item ‘$trModule’
|
|
| 368 | + named item ‘$tcPerfectTree2_@name_suffix@’
|
|
| 369 | + named item ‘krepStarArr’
|
|
| 370 | + static-construction object ‘$tcPerfectTree2_@name_suffix@’:
|
|
| 371 | + data constructor: TrNameS
|
|
| 372 | + lifted: yes
|
|
| 373 | + literals: address ‘$tcPerfectTree1_@name_suffix@’
|
|
| 374 | + used items: <none>
|
|
| 375 | + static-construction object ‘$tc'Node’:
|
|
| 376 | + data constructor: TyCon
|
|
| 377 | + lifted: yes
|
|
| 378 | + literals:
|
|
| 379 | + word @large_word@
|
|
| 380 | + word 2
|
|
| 381 | + used items:
|
|
| 382 | + named item ‘$trModule’
|
|
| 383 | + named item ‘$tc'Node2_@name_suffix@’
|
|
| 384 | + named item ‘$krep11_@name_suffix@’
|
|
| 385 | + static-construction object ‘$tc'Node2_@name_suffix@’:
|
|
| 386 | + data constructor: TrNameS
|
|
| 387 | + lifted: yes
|
|
| 388 | + literals: address ‘$tc'Node1_@name_suffix@’
|
|
| 389 | + used items: <none>
|
|
| 390 | + static-construction object ‘$krep11_@name_suffix@’:
|
|
| 391 | + data constructor: KindRepFun
|
|
| 392 | + lifted: yes
|
|
| 393 | + literals: <none>
|
|
| 394 | + used items:
|
|
| 395 | + named item ‘$krep7_@name_suffix@’
|
|
| 396 | + named item ‘$krep10_@name_suffix@’
|
|
| 397 | + static-construction object ‘$krep10_@name_suffix@’:
|
|
| 398 | + data constructor: KindRepFun
|
|
| 399 | + lifted: yes
|
|
| 400 | + literals: <none>
|
|
| 401 | + used items:
|
|
| 402 | + named item ‘$krep_@name_suffix@’
|
|
| 403 | + named item ‘$krep9_@name_suffix@’
|
|
| 404 | + static-construction object ‘$krep9_@name_suffix@’:
|
|
| 405 | + data constructor: KindRepFun
|
|
| 406 | + lifted: yes
|
|
| 407 | + literals: <none>
|
|
| 408 | + used items:
|
|
| 409 | + named item ‘$krep7_@name_suffix@’
|
|
| 410 | + static-construction object ‘$tc'Leaf’:
|
|
| 411 | + data constructor: TyCon
|
|
| 412 | + lifted: yes
|
|
| 413 | + literals:
|
|
| 414 | + word @large_word@
|
|
| 415 | + word 2
|
|
| 416 | + used items:
|
|
| 417 | + named item ‘$trModule’
|
|
| 418 | + named item ‘$tc'Leaf2_@name_suffix@’
|
|
| 419 | + named item ‘$krep8_@name_suffix@’
|
|
| 420 | + static-construction object ‘$tc'Leaf2_@name_suffix@’:
|
|
| 421 | + data constructor: TrNameS
|
|
| 422 | + lifted: yes
|
|
| 423 | + literals: address ‘$tc'Leaf1_@name_suffix@’
|
|
| 424 | + used items: <none>
|
|
| 425 | + static-construction object ‘$krep8_@name_suffix@’:
|
|
| 426 | + data constructor: KindRepFun
|
|
| 427 | + lifted: yes
|
|
| 428 | + literals: <none>
|
|
| 429 | + used items:
|
|
| 430 | + named item ‘$krep1_@name_suffix@’
|
|
| 431 | + named item ‘$krep7_@name_suffix@’
|
|
| 432 | + static-construction object ‘$krep7_@name_suffix@’:
|
|
| 433 | + data constructor: KindRepTyConApp
|
|
| 434 | + lifted: yes
|
|
| 435 | + literals: <none>
|
|
| 436 | + used items:
|
|
| 437 | + named item ‘$tcBinTree’
|
|
| 438 | + named item ‘$krep6_@name_suffix@’
|
|
| 439 | + static-construction object ‘$krep6_@name_suffix@’:
|
|
| 440 | + data constructor: (:)
|
|
| 441 | + lifted: yes
|
|
| 442 | + literals: <none>
|
|
| 443 | + used items:
|
|
| 444 | + named item ‘$krep1_@name_suffix@’
|
|
| 445 | + named item ‘$krep5_@name_suffix@’
|
|
| 446 | + static-construction object ‘$krep5_@name_suffix@’:
|
|
| 447 | + data constructor: (:)
|
|
| 448 | + lifted: yes
|
|
| 449 | + literals: <none>
|
|
| 450 | + used items:
|
|
| 451 | + named item ‘$krep_@name_suffix@’
|
|
| 452 | + named item ‘[]’
|
|
| 453 | + static-construction object ‘$tcBinTree’:
|
|
| 454 | + data constructor: TyCon
|
|
| 455 | + lifted: yes
|
|
| 456 | + literals:
|
|
| 457 | + word @large_word@
|
|
| 458 | + word 0
|
|
| 459 | + used items:
|
|
| 460 | + named item ‘$trModule’
|
|
| 461 | + named item ‘$tcBinTree2_@name_suffix@’
|
|
| 462 | + named item ‘krepStarArrStarArr’
|
|
| 463 | + static-construction object ‘$tcBinTree2_@name_suffix@’:
|
|
| 464 | + data constructor: TrNameS
|
|
| 465 | + lifted: yes
|
|
| 466 | + literals: address ‘$tcBinTree1_@name_suffix@’
|
|
| 467 | + used items: <none>
|
|
| 468 | + static-construction object ‘$krep4_@name_suffix@’:
|
|
| 469 | + data constructor: KindRepTyConApp
|
|
| 470 | + lifted: yes
|
|
| 471 | + literals: <none>
|
|
| 472 | + used items:
|
|
| 473 | + named item ‘$tcTuple2’
|
|
| 474 | + named item ‘$krep3_@name_suffix@’
|
|
| 475 | + static-construction object ‘$krep3_@name_suffix@’:
|
|
| 476 | + data constructor: (:)
|
|
| 477 | + lifted: yes
|
|
| 478 | + literals: <none>
|
|
| 479 | + used items:
|
|
| 480 | + named item ‘$krep1_@name_suffix@’
|
|
| 481 | + named item ‘$krep2_@name_suffix@’
|
|
| 482 | + static-construction object ‘$krep2_@name_suffix@’:
|
|
| 483 | + data constructor: (:)
|
|
| 484 | + lifted: yes
|
|
| 485 | + literals: <none>
|
|
| 486 | + used items:
|
|
| 487 | + named item ‘$krep1_@name_suffix@’
|
|
| 488 | + named item ‘[]’
|
|
| 489 | + static-construction object ‘$krep1_@name_suffix@’:
|
|
| 490 | + data constructor: KindRepVar
|
|
| 491 | + lifted: yes
|
|
| 492 | + literals: word 0
|
|
| 493 | + used items: <none>
|
|
| 494 | + static-construction object ‘$krep_@name_suffix@’:
|
|
| 495 | + data constructor: KindRepVar
|
|
| 496 | + lifted: yes
|
|
| 497 | + literals: word 1
|
|
| 498 | + used items: <none>
|
|
| 499 | + static-construction object ‘$trModule’:
|
|
| 500 | + data constructor: Module
|
|
| 501 | + lifted: yes
|
|
| 502 | + literals: <none>
|
|
| 503 | + used items:
|
|
| 504 | + named item ‘$trModule2_@name_suffix@’
|
|
| 505 | + named item ‘$trModule4_@name_suffix@’
|
|
| 506 | + static-construction object ‘$trModule4_@name_suffix@’:
|
|
| 507 | + data constructor: TrNameS
|
|
| 508 | + lifted: yes
|
|
| 509 | + literals: address ‘$trModule3_@name_suffix@’
|
|
| 510 | + used items: <none>
|
|
| 511 | + static-construction object ‘$trModule2_@name_suffix@’:
|
|
| 512 | + data constructor: TrNameS
|
|
| 513 | + lifted: yes
|
|
| 514 | + literals: address ‘$trModule1_@name_suffix@’
|
|
| 515 | + used items: <none>
|
|
| 516 | + object ‘divides’:
|
|
| 517 | + arity: 3
|
|
| 518 | + literals: <none>
|
|
| 519 | + used items:
|
|
| 520 | + object ‘$dReal_@name_suffix@’:
|
|
| 521 | + arity: 0
|
|
| 522 | + literals: <none>
|
|
| 523 | + used items:
|
|
| 524 | + object ‘divides_sat_@name_suffix@’:
|
|
| 525 | + arity: 1
|
|
| 526 | + literals:
|
|
| 527 | + word 0
|
|
| 528 | + info table of ‘IS’
|
|
| 529 | + used items:
|
|
| 530 | + object ‘divides_sat_@name_suffix@’:
|
|
| 531 | + arity: 0
|
|
| 532 | + literals: <none>
|
|
| 533 | + used items: named item ‘fromInteger’
|
|
| 534 | + named item ‘$p1Real’
|
|
| 535 | + object ‘divides_sat_@name_suffix@’:
|
|
| 536 | + arity: 3
|
|
| 537 | + literals: <none>
|
|
| 538 | + used items: named item ‘mod’
|
|
| 539 | + object ‘divides_sat_@name_suffix@’:
|
|
| 540 | + arity: 0
|
|
| 541 | + literals: <none>
|
|
| 542 | + used items:
|
|
| 543 | + object ‘divides_sat_@name_suffix@’:
|
|
| 544 | + arity: 0
|
|
| 545 | + literals: <none>
|
|
| 546 | + used items: named item ‘(==)’
|
|
| 547 | + named item ‘$p1Ord’
|
|
| 548 | + named item ‘$p2Real’
|
|
| 549 | + named item ‘$p1Integral’
|
|
| 550 | + object ‘Node’:
|
|
| 551 | + arity: 3
|
|
| 552 | + literals: info table of ‘Node’
|
|
| 553 | + used items: <none>
|
|
| 554 | + object ‘Leaf’:
|
|
| 555 | + arity: 1
|
|
| 556 | + literals: info table of ‘Leaf’
|
|
| 557 | + used items: <none>
|
|
| 558 | + object ‘Nested’:
|
|
| 559 | + arity: 1
|
|
| 560 | + literals: info table of ‘Nested’
|
|
| 561 | + used items: <none>
|
|
| 562 | + object ‘PerfectTree’:
|
|
| 563 | + arity: 1
|
|
| 564 | + literals: info table of ‘PerfectTree’
|
|
| 565 | + used items: <none>
|
|
| 566 | +data constructor info tables:
|
|
| 567 | + info table of ‘PerfectTree’:
|
|
| 568 | + number of words for pointers: 1
|
|
| 569 | + number of words for non-pointers: 0
|
|
| 570 | + info table of ‘Nested’:
|
|
| 571 | + number of words for pointers: 1
|
|
| 572 | + number of words for non-pointers: 0
|
|
| 573 | + info table of ‘Leaf’:
|
|
| 574 | + number of words for pointers: 1
|
|
| 575 | + number of words for non-pointers: 0
|
|
| 576 | + info table of ‘Node’:
|
|
| 577 | + number of words for pointers: 3
|
|
| 578 | + number of words for non-pointers: 0
|
|
| 579 | +top-level strings:
|
|
| 580 | + $tc'Nested1_@name_suffix@: "'Nested"
|
|
| 581 | + $tc'PerfectTree1_@name_suffix@: "'PerfectTree"
|
|
| 582 | + $tcPerfectTree1_@name_suffix@: "PerfectTree"
|
|
| 583 | + $tc'Node1_@name_suffix@: "'Node"
|
|
| 584 | + $tc'Leaf1_@name_suffix@: "'Leaf"
|
|
| 585 | + $tcBinTree1_@name_suffix@: "BinTree"
|
|
| 586 | + $trModule3_@name_suffix@: "Example"
|
|
| 587 | + $trModule1_@name_suffix@: "main"
|
|
| 588 | +breakpoints: <none>
|
|
| 589 | +static-pointer table entries:
|
|
| 590 | + @hash@: static_ptr
|
|
| 591 | + @hash@: static_ptr1
|
|
| 592 | +HPC information: <none>
|
|
| 593 | + |
| 1 | +[1 of 1] Compiling Example ( Example.hs, Example.gbc )
|
|
| 2 | +module: Example
|
|
| 3 | +hash: @hash@
|
|
| 4 | +objects:
|
|
| 5 | + object ‘primesPtr’:
|
|
| 6 | + arity: 0
|
|
| 7 | + literals: <none>
|
|
| 8 | + used items:
|
|
| 9 | + named item ‘static_ptr1’
|
|
| 10 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 11 | + named item ‘$fIsStaticStaticPtr’
|
|
| 12 | + static-construction object ‘static_ptr1’:
|
|
| 13 | + data constructor: StaticPtr
|
|
| 14 | + lifted: yes
|
|
| 15 | + literals:
|
|
| 16 | + word @large_word@
|
|
| 17 | + used items:
|
|
| 18 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 19 | + named item ‘primes’
|
|
| 20 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 21 | + data constructor: StaticPtrInfo
|
|
| 22 | + lifted: yes
|
|
| 23 | + literals: <none>
|
|
| 24 | + used items:
|
|
| 25 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 26 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 27 | + arity: 0
|
|
| 28 | + literals: top-level string "main"
|
|
| 29 | + used items:
|
|
| 30 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 31 | + arity: 0
|
|
| 32 | + literals: <none>
|
|
| 33 | + used items: named item ‘unpackCString#’
|
|
| 34 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 35 | + arity: 0
|
|
| 36 | + literals: top-level string "Example"
|
|
| 37 | + used items:
|
|
| 38 | + object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 39 | + arity: 0
|
|
| 40 | + literals: <none>
|
|
| 41 | + used items: named item ‘unpackCString#’
|
|
| 42 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 43 | + data constructor: (,)
|
|
| 44 | + lifted: yes
|
|
| 45 | + literals: <none>
|
|
| 46 | + used items:
|
|
| 47 | + named item ‘static_ptr1_sat_@name_suffix@’
|
|
| 48 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 49 | + data constructor: I#
|
|
| 50 | + lifted: yes
|
|
| 51 | + literals: word @large_word@
|
|
| 52 | + used items: <none>
|
|
| 53 | + static-construction object ‘static_ptr1_sat_@name_suffix@’:
|
|
| 54 | + data constructor: I#
|
|
| 55 | + lifted: yes
|
|
| 56 | + literals: word @large_word@
|
|
| 57 | + used items: <none>
|
|
| 58 | + object ‘primes2_@name_suffix@’:
|
|
| 59 | + arity: 0
|
|
| 60 | + literals: <none>
|
|
| 61 | + used items:
|
|
| 62 | + named item ‘primes2_sat_@name_suffix@’
|
|
| 63 | + named item ‘isPrime_@name_suffix@’
|
|
| 64 | + named item ‘filter’
|
|
| 65 | + object ‘isPrime_@name_suffix@’:
|
|
| 66 | + arity: 1
|
|
| 67 | + literals: <none>
|
|
| 68 | + used items:
|
|
| 69 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 70 | + arity: 1
|
|
| 71 | + literals: <none>
|
|
| 72 | + used items:
|
|
| 73 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 74 | + arity: 1
|
|
| 75 | + literals: <none>
|
|
| 76 | + used items:
|
|
| 77 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 78 | + arity: 1
|
|
| 79 | + literals:
|
|
| 80 | + word 2
|
|
| 81 | + info table of ‘IS’
|
|
| 82 | + used items:
|
|
| 83 | + object ‘v_@name_suffix@’:
|
|
| 84 | + arity: 0
|
|
| 85 | + literals: <none>
|
|
| 86 | + used items:
|
|
| 87 | + named item ‘$fIntegralInteger’
|
|
| 88 | + named item ‘$fNumNatural’
|
|
| 89 | + named item ‘(^)’
|
|
| 90 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 91 | + arity: 3
|
|
| 92 | + literals: <none>
|
|
| 93 | + used items: <none>
|
|
| 94 | + object ‘v_@name_suffix@’:
|
|
| 95 | + arity: 0
|
|
| 96 | + literals: <none>
|
|
| 97 | + used items:
|
|
| 98 | + named item ‘$fOrdNatural’
|
|
| 99 | + named item ‘(<=)’
|
|
| 100 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 101 | + arity: 3
|
|
| 102 | + literals: <none>
|
|
| 103 | + used items: <none>
|
|
| 104 | + named item ‘(.)’
|
|
| 105 | + named item ‘primes’
|
|
| 106 | + named item ‘takeWhile’
|
|
| 107 | + object ‘isPrime_sat_@name_suffix@’:
|
|
| 108 | + arity: 2
|
|
| 109 | + literals: <none>
|
|
| 110 | + used items:
|
|
| 111 | + named item ‘$fIntegralNatural’
|
|
| 112 | + named item ‘divides’
|
|
| 113 | + named item ‘$fFoldableList’
|
|
| 114 | + named item ‘any’
|
|
| 115 | + named item ‘not’
|
|
| 116 | + static-construction object ‘primes’:
|
|
| 117 | + data constructor: (:)
|
|
| 118 | + lifted: yes
|
|
| 119 | + literals: <none>
|
|
| 120 | + used items:
|
|
| 121 | + named item ‘primes1_@name_suffix@’
|
|
| 122 | + named item ‘primes2_@name_suffix@’
|
|
| 123 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 124 | + arity: 0
|
|
| 125 | + literals: <none>
|
|
| 126 | + used items:
|
|
| 127 | + object ‘primes2_sat_@name_suffix@’:
|
|
| 128 | + arity: 0
|
|
| 129 | + literals:
|
|
| 130 | + word 3
|
|
| 131 | + info table of ‘IS’
|
|
| 132 | + used items:
|
|
| 133 | + named item ‘$fNumNatural’
|
|
| 134 | + named item ‘fromInteger’
|
|
| 135 | + named item ‘$fEnumNatural’
|
|
| 136 | + named item ‘enumFrom’
|
|
| 137 | + object ‘primes1_@name_suffix@’:
|
|
| 138 | + arity: 0
|
|
| 139 | + literals: <none>
|
|
| 140 | + used items:
|
|
| 141 | + named item ‘primes1_sat_@name_suffix@’
|
|
| 142 | + named item ‘$fNumNatural’
|
|
| 143 | + named item ‘fromInteger’
|
|
| 144 | + static-construction object ‘primes1_sat_@name_suffix@’:
|
|
| 145 | + data constructor: IS
|
|
| 146 | + lifted: yes
|
|
| 147 | + literals: word 2
|
|
| 148 | + used items: <none>
|
|
| 149 | + object ‘fibonaccisPtr’:
|
|
| 150 | + arity: 0
|
|
| 151 | + literals: <none>
|
|
| 152 | + used items:
|
|
| 153 | + named item ‘static_ptr’
|
|
| 154 | + named item ‘$dTypeable2_@name_suffix@’
|
|
| 155 | + named item ‘$fIsStaticStaticPtr’
|
|
| 156 | + static-construction object ‘static_ptr’:
|
|
| 157 | + data constructor: StaticPtr
|
|
| 158 | + lifted: yes
|
|
| 159 | + literals:
|
|
| 160 | + word @large_word@
|
|
| 161 | + used items:
|
|
| 162 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 163 | + named item ‘fibonaccis’
|
|
| 164 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 165 | + data constructor: StaticPtrInfo
|
|
| 166 | + lifted: yes
|
|
| 167 | + literals: <none>
|
|
| 168 | + used items:
|
|
| 169 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 170 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 171 | + arity: 0
|
|
| 172 | + literals: top-level string "main"
|
|
| 173 | + used items:
|
|
| 174 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 175 | + arity: 0
|
|
| 176 | + literals: <none>
|
|
| 177 | + used items: named item ‘unpackCString#’
|
|
| 178 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 179 | + arity: 0
|
|
| 180 | + literals: top-level string "Example"
|
|
| 181 | + used items:
|
|
| 182 | + object ‘static_ptr_sat_@name_suffix@’:
|
|
| 183 | + arity: 0
|
|
| 184 | + literals: <none>
|
|
| 185 | + used items: named item ‘unpackCString#’
|
|
| 186 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 187 | + data constructor: (,)
|
|
| 188 | + lifted: yes
|
|
| 189 | + literals: <none>
|
|
| 190 | + used items:
|
|
| 191 | + named item ‘static_ptr_sat_@name_suffix@’
|
|
| 192 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 193 | + data constructor: I#
|
|
| 194 | + lifted: yes
|
|
| 195 | + literals: word @large_word@
|
|
| 196 | + used items: <none>
|
|
| 197 | + static-construction object ‘static_ptr_sat_@name_suffix@’:
|
|
| 198 | + data constructor: I#
|
|
| 199 | + lifted: yes
|
|
| 200 | + literals: word @large_word@
|
|
| 201 | + used items: <none>
|
|
| 202 | + object ‘positiveFibonaccis2_@name_suffix@’:
|
|
| 203 | + arity: 0
|
|
| 204 | + literals: <none>
|
|
| 205 | + used items:
|
|
| 206 | + named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 207 | + named item ‘fibonaccis’
|
|
| 208 | + named item ‘positiveFibonaccis2_sat_@name_suffix@’
|
|
| 209 | + named item ‘zipWith’
|
|
| 210 | + static-construction object ‘positiveFibonaccis1_@name_suffix@’:
|
|
| 211 | + data constructor: (:)
|
|
| 212 | + lifted: yes
|
|
| 213 | + literals: <none>
|
|
| 214 | + used items:
|
|
| 215 | + named item ‘positiveFibonaccis_@name_suffix@’
|
|
| 216 | + named item ‘positiveFibonaccis2_@name_suffix@’
|
|
| 217 | + static-construction object ‘fibonaccis’:
|
|
| 218 | + data constructor: (:)
|
|
| 219 | + lifted: yes
|
|
| 220 | + literals: <none>
|
|
| 221 | + used items:
|
|
| 222 | + named item ‘fibonaccis1_@name_suffix@’
|
|
| 223 | + named item ‘positiveFibonaccis1_@name_suffix@’
|
|
| 224 | + object ‘positiveFibonaccis2_sat_@name_suffix@’:
|
|
| 225 | + arity: 0
|
|
| 226 | + literals: <none>
|
|
| 227 | + used items:
|
|
| 228 | + named item ‘$fNumNatural’
|
|
| 229 | + named item ‘(+)’
|
|
| 230 | + object ‘positiveFibonaccis_@name_suffix@’:
|
|
| 231 | + arity: 0
|
|
| 232 | + literals: <none>
|
|
| 233 | + used items:
|
|
| 234 | + named item ‘positiveFibonaccis_sat_@name_suffix@’
|
|
| 235 | + named item ‘$fNumNatural’
|
|
| 236 | + named item ‘fromInteger’
|
|
| 237 | + static-construction object ‘positiveFibonaccis_sat_@name_suffix@’:
|
|
| 238 | + data constructor: IS
|
|
| 239 | + lifted: yes
|
|
| 240 | + literals: word 1
|
|
| 241 | + used items: <none>
|
|
| 242 | + object ‘fibonaccis1_@name_suffix@’:
|
|
| 243 | + arity: 0
|
|
| 244 | + literals: <none>
|
|
| 245 | + used items:
|
|
| 246 | + named item ‘fibonaccis1_sat_@name_suffix@’
|
|
| 247 | + named item ‘$fNumNatural’
|
|
| 248 | + named item ‘fromInteger’
|
|
| 249 | + static-construction object ‘fibonaccis1_sat_@name_suffix@’:
|
|
| 250 | + data constructor: IS
|
|
| 251 | + lifted: yes
|
|
| 252 | + literals: word 0
|
|
| 253 | + used items: <none>
|
|
| 254 | + object ‘$dTypeable2_@name_suffix@’:
|
|
| 255 | + arity: 0
|
|
| 256 | + literals: <none>
|
|
| 257 | + used items:
|
|
| 258 | + named item ‘$dTypeable_@name_suffix@’
|
|
| 259 | + named item ‘$dTypeable1_@name_suffix@’
|
|
| 260 | + named item ‘mkTrAppChecked’
|
|
| 261 | + object ‘$dTypeable1_@name_suffix@’:
|
|
| 262 | + arity: 0
|
|
| 263 | + literals: info table of ‘[]’
|
|
| 264 | + used items:
|
|
| 265 | + named item ‘$tcList’
|
|
| 266 | + named item ‘mkTrCon’
|
|
| 267 | + object ‘$dTypeable_@name_suffix@’:
|
|
| 268 | + arity: 0
|
|
| 269 | + literals: info table of ‘[]’
|
|
| 270 | + used items:
|
|
| 271 | + named item ‘$tcNatural’
|
|
| 272 | + named item ‘mkTrCon’
|
|
| 273 | + object ‘cstrlen’:
|
|
| 274 | + arity: 2
|
|
| 275 | + literals: <none>
|
|
| 276 | + used items: named item ‘cstrlen1_@name_suffix@’
|
|
| 277 | + object ‘cstrlen1_@name_suffix@’:
|
|
| 278 | + arity: 2
|
|
| 279 | + literals: <none>
|
|
| 280 | + used items:
|
|
| 281 | + object ‘ds1_@name_suffix@’:
|
|
| 282 | + arity: 0
|
|
| 283 | + literals:
|
|
| 284 | + label ‘strlen’
|
|
| 285 | + word 0
|
|
| 286 | + foreign function of type ‘Pointer -> UInt@word_size@’
|
|
| 287 | + used items:
|
|
| 288 | + object ‘wild_@name_suffix@’:
|
|
| 289 | + arity: 0
|
|
| 290 | + literals: info table of ‘W@word_size@#’
|
|
| 291 | + used items: <none>
|
|
| 292 | + static-construction object ‘$tc'Nested’:
|
|
| 293 | + data constructor: TyCon
|
|
| 294 | + lifted: yes
|
|
| 295 | + literals:
|
|
| 296 | + word @large_word@
|
|
| 297 | + word 1
|
|
| 298 | + used items:
|
|
| 299 | + named item ‘$trModule’
|
|
| 300 | + named item ‘$tc'Nested2_@name_suffix@’
|
|
| 301 | + named item ‘$krep17_@name_suffix@’
|
|
| 302 | + static-construction object ‘$tc'Nested2_@name_suffix@’:
|
|
| 303 | + data constructor: TrNameS
|
|
| 304 | + lifted: yes
|
|
| 305 | + literals: address ‘$tc'Nested1_@name_suffix@’
|
|
| 306 | + used items: <none>
|
|
| 307 | + static-construction object ‘$krep17_@name_suffix@’:
|
|
| 308 | + data constructor: KindRepFun
|
|
| 309 | + lifted: yes
|
|
| 310 | + literals: <none>
|
|
| 311 | + used items:
|
|
| 312 | + named item ‘$krep16_@name_suffix@’
|
|
| 313 | + named item ‘$krep13_@name_suffix@’
|
|
| 314 | + static-construction object ‘$krep16_@name_suffix@’:
|
|
| 315 | + data constructor: KindRepTyConApp
|
|
| 316 | + lifted: yes
|
|
| 317 | + literals: <none>
|
|
| 318 | + used items:
|
|
| 319 | + named item ‘$tcPerfectTree’
|
|
| 320 | + named item ‘$krep15_@name_suffix@’
|
|
| 321 | + static-construction object ‘$krep15_@name_suffix@’:
|
|
| 322 | + data constructor: (:)
|
|
| 323 | + lifted: yes
|
|
| 324 | + literals: <none>
|
|
| 325 | + used items:
|
|
| 326 | + named item ‘$krep4_@name_suffix@’
|
|
| 327 | + named item ‘[]’
|
|
| 328 | + static-construction object ‘$tc'PerfectTree’:
|
|
| 329 | + data constructor: TyCon
|
|
| 330 | + lifted: yes
|
|
| 331 | + literals:
|
|
| 332 | + word @large_word@
|
|
| 333 | + word 1
|
|
| 334 | + used items:
|
|
| 335 | + named item ‘$trModule’
|
|
| 336 | + named item ‘$tc'PerfectTree2_@name_suffix@’
|
|
| 337 | + named item ‘$krep14_@name_suffix@’
|
|
| 338 | + static-construction object ‘$tc'PerfectTree2_@name_suffix@’:
|
|
| 339 | + data constructor: TrNameS
|
|
| 340 | + lifted: yes
|
|
| 341 | + literals: address ‘$tc'PerfectTree1_@name_suffix@’
|
|
| 342 | + used items: <none>
|
|
| 343 | + static-construction object ‘$krep14_@name_suffix@’:
|
|
| 344 | + data constructor: KindRepFun
|
|
| 345 | + lifted: yes
|
|
| 346 | + literals: <none>
|
|
| 347 | + used items:
|
|
| 348 | + named item ‘$krep1_@name_suffix@’
|
|
| 349 | + named item ‘$krep13_@name_suffix@’
|
|
| 350 | + static-construction object ‘$krep13_@name_suffix@’:
|
|
| 351 | + data constructor: KindRepTyConApp
|
|
| 352 | + lifted: yes
|
|
| 353 | + literals: <none>
|
|
| 354 | + used items:
|
|
| 355 | + named item ‘$tcPerfectTree’
|
|
| 356 | + named item ‘$krep12_@name_suffix@’
|
|
| 357 | + static-construction object ‘$krep12_@name_suffix@’:
|
|
| 358 | + data constructor: (:)
|
|
| 359 | + lifted: yes
|
|
| 360 | + literals: <none>
|
|
| 361 | + used items:
|
|
| 362 | + named item ‘$krep1_@name_suffix@’
|
|
| 363 | + named item ‘[]’
|
|
| 364 | + static-construction object ‘$tcPerfectTree’:
|
|
| 365 | + data constructor: TyCon
|
|
| 366 | + lifted: yes
|
|
| 367 | + literals:
|
|
| 368 | + word @large_word@
|
|
| 369 | + word 0
|
|
| 370 | + used items:
|
|
| 371 | + named item ‘$trModule’
|
|
| 372 | + named item ‘$tcPerfectTree2_@name_suffix@’
|
|
| 373 | + named item ‘krepStarArr’
|
|
| 374 | + static-construction object ‘$tcPerfectTree2_@name_suffix@’:
|
|
| 375 | + data constructor: TrNameS
|
|
| 376 | + lifted: yes
|
|
| 377 | + literals: address ‘$tcPerfectTree1_@name_suffix@’
|
|
| 378 | + used items: <none>
|
|
| 379 | + static-construction object ‘$tc'Node’:
|
|
| 380 | + data constructor: TyCon
|
|
| 381 | + lifted: yes
|
|
| 382 | + literals:
|
|
| 383 | + word @large_word@
|
|
| 384 | + word 2
|
|
| 385 | + used items:
|
|
| 386 | + named item ‘$trModule’
|
|
| 387 | + named item ‘$tc'Node2_@name_suffix@’
|
|
| 388 | + named item ‘$krep11_@name_suffix@’
|
|
| 389 | + static-construction object ‘$tc'Node2_@name_suffix@’:
|
|
| 390 | + data constructor: TrNameS
|
|
| 391 | + lifted: yes
|
|
| 392 | + literals: address ‘$tc'Node1_@name_suffix@’
|
|
| 393 | + used items: <none>
|
|
| 394 | + static-construction object ‘$krep11_@name_suffix@’:
|
|
| 395 | + data constructor: KindRepFun
|
|
| 396 | + lifted: yes
|
|
| 397 | + literals: <none>
|
|
| 398 | + used items:
|
|
| 399 | + named item ‘$krep7_@name_suffix@’
|
|
| 400 | + named item ‘$krep10_@name_suffix@’
|
|
| 401 | + static-construction object ‘$krep10_@name_suffix@’:
|
|
| 402 | + data constructor: KindRepFun
|
|
| 403 | + lifted: yes
|
|
| 404 | + literals: <none>
|
|
| 405 | + used items:
|
|
| 406 | + named item ‘$krep_@name_suffix@’
|
|
| 407 | + named item ‘$krep9_@name_suffix@’
|
|
| 408 | + static-construction object ‘$krep9_@name_suffix@’:
|
|
| 409 | + data constructor: KindRepFun
|
|
| 410 | + lifted: yes
|
|
| 411 | + literals: <none>
|
|
| 412 | + used items:
|
|
| 413 | + named item ‘$krep7_@name_suffix@’
|
|
| 414 | + static-construction object ‘$tc'Leaf’:
|
|
| 415 | + data constructor: TyCon
|
|
| 416 | + lifted: yes
|
|
| 417 | + literals:
|
|
| 418 | + word @large_word@
|
|
| 419 | + word 2
|
|
| 420 | + used items:
|
|
| 421 | + named item ‘$trModule’
|
|
| 422 | + named item ‘$tc'Leaf2_@name_suffix@’
|
|
| 423 | + named item ‘$krep8_@name_suffix@’
|
|
| 424 | + static-construction object ‘$tc'Leaf2_@name_suffix@’:
|
|
| 425 | + data constructor: TrNameS
|
|
| 426 | + lifted: yes
|
|
| 427 | + literals: address ‘$tc'Leaf1_@name_suffix@’
|
|
| 428 | + used items: <none>
|
|
| 429 | + static-construction object ‘$krep8_@name_suffix@’:
|
|
| 430 | + data constructor: KindRepFun
|
|
| 431 | + lifted: yes
|
|
| 432 | + literals: <none>
|
|
| 433 | + used items:
|
|
| 434 | + named item ‘$krep1_@name_suffix@’
|
|
| 435 | + named item ‘$krep7_@name_suffix@’
|
|
| 436 | + static-construction object ‘$krep7_@name_suffix@’:
|
|
| 437 | + data constructor: KindRepTyConApp
|
|
| 438 | + lifted: yes
|
|
| 439 | + literals: <none>
|
|
| 440 | + used items:
|
|
| 441 | + named item ‘$tcBinTree’
|
|
| 442 | + named item ‘$krep6_@name_suffix@’
|
|
| 443 | + static-construction object ‘$krep6_@name_suffix@’:
|
|
| 444 | + data constructor: (:)
|
|
| 445 | + lifted: yes
|
|
| 446 | + literals: <none>
|
|
| 447 | + used items:
|
|
| 448 | + named item ‘$krep1_@name_suffix@’
|
|
| 449 | + named item ‘$krep5_@name_suffix@’
|
|
| 450 | + static-construction object ‘$krep5_@name_suffix@’:
|
|
| 451 | + data constructor: (:)
|
|
| 452 | + lifted: yes
|
|
| 453 | + literals: <none>
|
|
| 454 | + used items:
|
|
| 455 | + named item ‘$krep_@name_suffix@’
|
|
| 456 | + named item ‘[]’
|
|
| 457 | + static-construction object ‘$tcBinTree’:
|
|
| 458 | + data constructor: TyCon
|
|
| 459 | + lifted: yes
|
|
| 460 | + literals:
|
|
| 461 | + word @large_word@
|
|
| 462 | + word 0
|
|
| 463 | + used items:
|
|
| 464 | + named item ‘$trModule’
|
|
| 465 | + named item ‘$tcBinTree2_@name_suffix@’
|
|
| 466 | + named item ‘krepStarArrStarArr’
|
|
| 467 | + static-construction object ‘$tcBinTree2_@name_suffix@’:
|
|
| 468 | + data constructor: TrNameS
|
|
| 469 | + lifted: yes
|
|
| 470 | + literals: address ‘$tcBinTree1_@name_suffix@’
|
|
| 471 | + used items: <none>
|
|
| 472 | + static-construction object ‘$krep4_@name_suffix@’:
|
|
| 473 | + data constructor: KindRepTyConApp
|
|
| 474 | + lifted: yes
|
|
| 475 | + literals: <none>
|
|
| 476 | + used items:
|
|
| 477 | + named item ‘$tcTuple2’
|
|
| 478 | + named item ‘$krep3_@name_suffix@’
|
|
| 479 | + static-construction object ‘$krep3_@name_suffix@’:
|
|
| 480 | + data constructor: (:)
|
|
| 481 | + lifted: yes
|
|
| 482 | + literals: <none>
|
|
| 483 | + used items:
|
|
| 484 | + named item ‘$krep1_@name_suffix@’
|
|
| 485 | + named item ‘$krep2_@name_suffix@’
|
|
| 486 | + static-construction object ‘$krep2_@name_suffix@’:
|
|
| 487 | + data constructor: (:)
|
|
| 488 | + lifted: yes
|
|
| 489 | + literals: <none>
|
|
| 490 | + used items:
|
|
| 491 | + named item ‘$krep1_@name_suffix@’
|
|
| 492 | + named item ‘[]’
|
|
| 493 | + static-construction object ‘$krep1_@name_suffix@’:
|
|
| 494 | + data constructor: KindRepVar
|
|
| 495 | + lifted: yes
|
|
| 496 | + literals: word 0
|
|
| 497 | + used items: <none>
|
|
| 498 | + static-construction object ‘$krep_@name_suffix@’:
|
|
| 499 | + data constructor: KindRepVar
|
|
| 500 | + lifted: yes
|
|
| 501 | + literals: word 1
|
|
| 502 | + used items: <none>
|
|
| 503 | + static-construction object ‘$trModule’:
|
|
| 504 | + data constructor: Module
|
|
| 505 | + lifted: yes
|
|
| 506 | + literals: <none>
|
|
| 507 | + used items:
|
|
| 508 | + named item ‘$trModule2_@name_suffix@’
|
|
| 509 | + named item ‘$trModule4_@name_suffix@’
|
|
| 510 | + static-construction object ‘$trModule4_@name_suffix@’:
|
|
| 511 | + data constructor: TrNameS
|
|
| 512 | + lifted: yes
|
|
| 513 | + literals: address ‘$trModule3_@name_suffix@’
|
|
| 514 | + used items: <none>
|
|
| 515 | + static-construction object ‘$trModule2_@name_suffix@’:
|
|
| 516 | + data constructor: TrNameS
|
|
| 517 | + lifted: yes
|
|
| 518 | + literals: address ‘$trModule1_@name_suffix@’
|
|
| 519 | + used items: <none>
|
|
| 520 | + object ‘divides’:
|
|
| 521 | + arity: 3
|
|
| 522 | + literals: <none>
|
|
| 523 | + used items:
|
|
| 524 | + object ‘$dReal_@name_suffix@’:
|
|
| 525 | + arity: 0
|
|
| 526 | + literals: <none>
|
|
| 527 | + used items:
|
|
| 528 | + object ‘divides_sat_@name_suffix@’:
|
|
| 529 | + arity: 1
|
|
| 530 | + literals:
|
|
| 531 | + word 0
|
|
| 532 | + info table of ‘IS’
|
|
| 533 | + used items:
|
|
| 534 | + object ‘divides_sat_@name_suffix@’:
|
|
| 535 | + arity: 0
|
|
| 536 | + literals: <none>
|
|
| 537 | + used items: named item ‘fromInteger’
|
|
| 538 | + named item ‘$p1Real’
|
|
| 539 | + object ‘divides_sat_@name_suffix@’:
|
|
| 540 | + arity: 3
|
|
| 541 | + literals: <none>
|
|
| 542 | + used items: named item ‘mod’
|
|
| 543 | + object ‘divides_sat_@name_suffix@’:
|
|
| 544 | + arity: 0
|
|
| 545 | + literals: <none>
|
|
| 546 | + used items:
|
|
| 547 | + object ‘divides_sat_@name_suffix@’:
|
|
| 548 | + arity: 0
|
|
| 549 | + literals: <none>
|
|
| 550 | + used items: named item ‘(==)’
|
|
| 551 | + named item ‘$p1Ord’
|
|
| 552 | + named item ‘$p2Real’
|
|
| 553 | + named item ‘$p1Integral’
|
|
| 554 | + object ‘Node’:
|
|
| 555 | + arity: 3
|
|
| 556 | + literals: info table of ‘Node’
|
|
| 557 | + used items: <none>
|
|
| 558 | + object ‘Leaf’:
|
|
| 559 | + arity: 1
|
|
| 560 | + literals: info table of ‘Leaf’
|
|
| 561 | + used items: <none>
|
|
| 562 | + object ‘Nested’:
|
|
| 563 | + arity: 1
|
|
| 564 | + literals: info table of ‘Nested’
|
|
| 565 | + used items: <none>
|
|
| 566 | + object ‘PerfectTree’:
|
|
| 567 | + arity: 1
|
|
| 568 | + literals: info table of ‘PerfectTree’
|
|
| 569 | + used items: <none>
|
|
| 570 | +data constructor info tables:
|
|
| 571 | + info table of ‘PerfectTree’:
|
|
| 572 | + number of words for pointers: 1
|
|
| 573 | + number of words for non-pointers: 0
|
|
| 574 | + info table of ‘Nested’:
|
|
| 575 | + number of words for pointers: 1
|
|
| 576 | + number of words for non-pointers: 0
|
|
| 577 | + info table of ‘Leaf’:
|
|
| 578 | + number of words for pointers: 1
|
|
| 579 | + number of words for non-pointers: 0
|
|
| 580 | + info table of ‘Node’:
|
|
| 581 | + number of words for pointers: 3
|
|
| 582 | + number of words for non-pointers: 0
|
|
| 583 | +top-level strings:
|
|
| 584 | + $tc'Nested1_@name_suffix@: "'Nested"
|
|
| 585 | + $tc'PerfectTree1_@name_suffix@: "'PerfectTree"
|
|
| 586 | + $tcPerfectTree1_@name_suffix@: "PerfectTree"
|
|
| 587 | + $tc'Node1_@name_suffix@: "'Node"
|
|
| 588 | + $tc'Leaf1_@name_suffix@: "'Leaf"
|
|
| 589 | + $tcBinTree1_@name_suffix@: "BinTree"
|
|
| 590 | + $trModule3_@name_suffix@: "Example"
|
|
| 591 | + $trModule1_@name_suffix@: "main"
|
|
| 592 | +breakpoints: <none>
|
|
| 593 | +static-pointer table entries:
|
|
| 594 | + @hash@: static_ptr
|
|
| 595 | + @hash@: static_ptr1
|
|
| 596 | +HPC information: <none>
|
|
| 597 | + |