#12472: "lazy" is not optimized away
-------------------------------------+-------------------------------------
           Reporter:  ezyang         |             Owner:  ezyang
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.1
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Consider:
 {{{
 import GHC.Magic
 {-# INLINE f #-}
 f x = True
 g = lazy f False
 }}}
 Two things should happen: (1) f should not be inlined, but (2) lazy should
 not be present in final STG (having been eliminated in core prep). I
 thought this was briefly working on HEAD, but apparently it never worked
 at all:
 {{{
 ezyang@sabre:~$ ghc-8.0 -c test.hs -ddump-stg -fforce-recomp -O2
 ==================== STG syntax: ====================
 Test.f [InlPrag=INLINE (sat-args=1)]
   :: forall t_axB. t_axB -> GHC.Types.Bool
 [GblId,
  Arity=1,
  Caf=NoCafRefs,
  Str=DmdType