
#14626: No need to enter a scrutinised value -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: heisenbug Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: performance Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #13861 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by heisenbug): Replying to [comment:19 heisenbug]:
Replying to [comment:18 heisenbug]:
[snippety]
Now, maybe the `Binary` instance breaks the invariant that the `n_occ` field is strict?
Actually it seems to be {{{#!hs -- | Assumes that the 'Name' is a non-binding one. See -- 'IfaceSyn.putIfaceTopBndr' and 'IfaceSyn.getIfaceTopBndr' for serializing -- binding 'Name's. See 'UserData' for the rationale for this distinction. instance Binary Name where put_ bh name = case getUserData bh of UserData{ ud_put_nonbinding_name = put_name } -> put_name bh name get bh = case getUserData bh of UserData { ud_get_name = get_name } -> get_name bh }}} which breaks the contract. Let's see what `getUserData` does... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14626#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler