#9038: Foreign calls don't make their arguments look strict -------------------------------------+------------------------------------- Reporter: tibbe | Owner: Type: bug | Status: infoneeded Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: | Architecture: Unknown/Multiple Unknown/Multiple | Difficulty: Unknown Type of failure: | Blocked By: None/Unknown | Related Tickets: 1592 Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by tibbe): I might have been mistaken. I read the core for `add3` above and assumed that since `add3` isn't worker-wrappered the argument wouldn't be unboxed. I tried calling add3 (which is really the `System.Metrics.Distribution.add` function in the ekg-core package) function in this little test program {{{ module Test where import System.Metrics.Distribution test :: Distribution -> IO () test distrib = add distrib 1.0 }}} and things seem to be unboxed correctly. Here's the demand signature for `add3`: {{{ add3 :: Distribution -> Double -> Int64 -> State# RealWorld -> (# State# RealWorld, () #) [GblId, Arity=4, Caf=NoCafRefs, Str=DmdType <L,1*U(U)><L,1*U(U)><L,1*U(U)><L,U>, Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=4, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [0 20 20 0] 156 30}] }}} How do I read the `DmdType <L,1*U(U)><L,1*U(U)><L,1*U(U)><L,U>` line? -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9038#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler