[GHC] #13204: Core Lint error running testsuite with DEBUG way

GHC ghc-devs at haskell.org
Sun Jan 29 00:42:39 UTC 2017


#13204: Core Lint error running testsuite with DEBUG way
-------------------------------------+-------------------------------------
           Reporter:  dobenour       |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.2.1
          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:
-------------------------------------+-------------------------------------
 I was testing Phab:D2996 for benchmarking purposes, and I noticed that
 some tests failed in the `ghci` way.  I re-ran them with the `debug` way,
 and got a Core Lint failure:
 {{{
 [1 of 1] Compiling Main             ( StrictPats.hs, StrictPats.o )
 *** Core Lint errors : in result of Simplifier ***
 <no location info>: warning:
     [RHS of q_s50e :: Addr#]
     Recursive or top-level binder has strict demand info: q_s50e
     Binder's demand info: <L,U>
 *** Offending Program ***
 $dIP_s50d :: CallStack
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 300 0}]
 $dIP_s50d =
   pushCallStack
     (build
        @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b "undefined"#),
      SrcLoc
        (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b "main"#))
        (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b "Main"#))
        (build
           @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
        (I# 27#)
        (I# 14#)
        (I# 27#)
        (I# 23#))
     emptyCallStack

 ds_d4Z4 :: forall a. a
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
 ds_d4Z4 =
   \ (@ a_a4SJ) ->
     undefined
       @ 'LiftedRep
       @ a
       ($dIP_s50d
        `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))

 a :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 a = True

 b :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 330 10}]
 b =
   case \ (@ a_a4Hg) ->
          undefined
            @ 'LiftedRep
            @ a
            ((pushCallStack
                (build
                   @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
                 SrcLoc
                   (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "main"#))
                   (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "Main"#))
                   (build
                      @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
                   (I# 32#)
                   (I# 14#)
                   (I# 32#)
                   (I# 23#))
                emptyCallStack)
             `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                     :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))
   of
   { __DEFAULT ->
   True
   }

 c :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 c = True

 d :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 320 0}]
 d =
   case undefined
          @ 'LiftedRep
          @ Int
          ((pushCallStack
              (build
                 @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
               SrcLoc
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "main"#))
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "Main"#))
                 (build
                    @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
                 (I# 40#)
                 (I# 17#)
                 (I# 40#)
                 (I# 26#))
              emptyCallStack)
           `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                   :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))
   of wild_00 {
   }

 e :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 e = True

 f :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 320 0}]
 f =
   case undefined
          @ 'IntRep
          @ Int#
          ((pushCallStack
              (build
                 @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
               SrcLoc
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "main"#))
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "Main"#))
                 (build
                    @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
                 (I# 48#)
                 (I# 14#)
                 (I# 48#)
                 (I# 23#))
              emptyCallStack)
           `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                   :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))
   of wild_00 {
   }

 g :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 g = True

 h :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 h = True

 i :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 320 0}]
 i =
   case undefined
          @ ('TupleRep '['IntRep])
          @ (# Int# #)
          ((pushCallStack
              (build
                 @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
               SrcLoc
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "main"#))
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "Main"#))
                 (build
                    @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
                 (I# 60#)
                 (I# 20#)
                 (I# 60#)
                 (I# 29#))
              emptyCallStack)
           `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                   :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))
   of wild_00 {
   }

 j :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
 j =
   case irrefutPatError
          @ 'LiftedRep @ () "StrictPats.hs:64:9-21|True"#
   of wild_00 {
   }

 k :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 k = True

 l :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 l = True

 m :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 90 0}]
 m =
   case irrefutPatError @ 'LiftedRep @ () "StrictPats.hs:76:9-16|3#"#
   of wild_00 {
   }

 n :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 320 0}]
 n =
   case undefined
          @ ('TupleRep '['LiftedRep])
          @ (# () #)
          ((pushCallStack
              (build
                 @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
               SrcLoc
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "main"#))
                 (build @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "Main"#))
                 (build
                    @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "StrictPats.hs"#))
                 (I# 80#)
                 (I# 14#)
                 (I# 80#)
                 (I# 23#))
              emptyCallStack)
           `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                   :: (CallStack :: *) ~R# ((?callStack::CallStack) ::
 Constraint)))
   of wild_00 {
   }

 o :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 o = True

 p :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 p = True

 q_s50e :: Addr#
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 110 0}]
 q_s50e = "StrictPats.hs:92:9-54|pattern binding"#

 q :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
 q = patError @ 'LiftedRep @ Bool q_s50e

 r :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True,
          Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=True)}]
 r = True

 s :: Bool
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 340 10}]
 s =
   case \ (@ a_a3DN) ->
          let {
            ds_d4Xb :: (a)
            [LclId,
             Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False,
 ConLike=False,
                     WorkFree=False, Expandable=False, Guidance=IF_ARGS []
 320 0}]
            ds_d4Xb =
              case undefined
                     @ ('TupleRep '['LiftedRep])
                     @ (# a #)
                     ((pushCallStack
                         (build
                            @ Char (\ (@ b_a503) -> unpackFoldrCString# @ b
 "undefined"#),
                          SrcLoc
                            (build @ Char (\ (@ b_a503) ->
 unpackFoldrCString# @ b "main"#))
                            (build @ Char (\ (@ b_a503) ->
 unpackFoldrCString# @ b "Main"#))
                            (build
                               @ Char (\ (@ b_a503) -> unpackFoldrCString#
 @ b "StrictPats.hs"#))
                            (I# 100#)
                            (I# 20#)
                            (I# 100#)
                            (I# 29#))
                         emptyCallStack)
                      `cast` (Sym (N:IP[0] <"callStack">_N <CallStack>_N)
                              :: (CallStack :: *) ~R#
 ((?callStack::CallStack) :: Constraint)))
              of wild_00 {
              } } in
          ds_d4Xb
   of
   { __DEFAULT ->
   True
   }

 $trModule_s50h :: Addr#
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
 $trModule_s50h = "main"#

 $trModule_s50g :: TrName
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
 $trModule_s50g = TrNameS $trModule_s50h

 $trModule_s50j :: Addr#
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
 $trModule_s50j = "Main"#

 $trModule_s50i :: TrName
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
 $trModule_s50i = TrNameS $trModule_s50j

 $trModule :: Module
 [LclIdX,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
 $trModule = Module $trModule_s50g $trModule_s50i

 bad :: forall a. a -> IO ()
 [LclIdX,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [0] 400 60}]
 bad =
   \ (@ a_a4T7) (x_a3ed :: a) ->
     bindIO
       @ (Either SomeException a)
       @ ()
       ($ @ 'LiftedRep
          @ (IO a)
          @ (IO (Either SomeException a))
          (try @ SomeException @ a $fExceptionSomeException)
          (evaluate @ a x_a3ed))
       (\ (r_a3qv :: Either SomeException a) ->
          case r_a3qv of {
            Left ds_d4Zg ->
              putStrLn
                (build
                   @ Char
                   (\ (@ b_a503) ->
                      unpackFoldrCString# @ b "Exception thrown as
 expected."#));
            Right ds_d4Zh ->
              putStrLn
                (build
                   @ Char
                   (\ (@ b_a503) ->
                      unpackFoldrCString# @ b "Exception not thrown when
 expected."#))
          })

 ok :: forall a. a -> IO ()
 [LclIdX,
  Arity=2,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [0] 160 0}]
 ok =
   \ (@ a_a4U0) (x_a37y :: a) ->
     (\ (eta_B1 :: State# RealWorld) ->
        ((thenIO
            @ a
            @ ()
            (evaluate @ a x_a37y)
            (putStrLn
               (build
                  @ Char
                  (\ (@ b_a503) ->
                     unpackFoldrCString# @ b "Evaluation successful."#))))
         `cast` (N:IO[0] <()>_R
                 :: (IO () :: *)
                    ~R#
                    ((State# RealWorld -> (# State# RealWorld, () #)) ::
 *)))
          eta_B1)
     `cast` (Sym (N:IO[0] <()>_R)
             :: ((State# RealWorld -> (# State# RealWorld, () #)) :: *)
                ~R#
                (IO () :: *))

 main_s5ge :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5ge = ok @ Bool a

 main_s5gg :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gg = bad @ Bool b

 main_s5gi :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gi = ok @ Bool c

 main_s5gk :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gk = bad @ Bool d

 main_s5gm :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gm = ok @ Bool e

 main_s5go :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5go = bad @ Bool f

 main_s5gq :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gq = ok @ Bool g

 main_s5gs :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gs = ok @ Bool h

 main_s5gu :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gu = bad @ Bool i

 main_s5gw :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gw = bad @ Bool j

 main_s5gy :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gy = ok @ Bool k

 main_s5gA :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gA = ok @ Bool l

 main_s5gC :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gC = bad @ Bool m

 main_s5gE :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gE = bad @ Bool n

 main_s5gG :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gG = ok @ Bool o

 main_s5gI :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gI = ok @ Bool p

 main_s5gK :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gK = bad @ Bool q

 main_s5gM :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main_s5gM = ok @ Bool r

 main_s5gN :: IO ()
 [LclId,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=False, ConLike=False,
          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
 main_s5gN = bad @ Bool s

 main_s5gL :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gL = thenIO @ () @ () main_s5gM main_s5gN

 main_s5gJ :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gJ = thenIO @ () @ () main_s5gK main_s5gL

 main_s5gH :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gH = thenIO @ () @ () main_s5gI main_s5gJ

 main_s5gF :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gF = thenIO @ () @ () main_s5gG main_s5gH

 main_s5gD :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gD = thenIO @ () @ () main_s5gE main_s5gF

 main_s5gB :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gB = thenIO @ () @ () main_s5gC main_s5gD

 main_s5gz :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gz = thenIO @ () @ () main_s5gA main_s5gB

 main_s5gx :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gx = thenIO @ () @ () main_s5gy main_s5gz

 main_s5gv :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gv = thenIO @ () @ () main_s5gw main_s5gx

 main_s5gt :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gt = thenIO @ () @ () main_s5gu main_s5gv

 main_s5gr :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gr = thenIO @ () @ () main_s5gs main_s5gt

 main_s5gp :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gp = thenIO @ () @ () main_s5gq main_s5gr

 main_s5gn :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gn = thenIO @ () @ () main_s5go main_s5gp

 main_s5gl :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gl = thenIO @ () @ () main_s5gm main_s5gn

 main_s5gj :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gj = thenIO @ () @ () main_s5gk main_s5gl

 main_s5gh :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gh = thenIO @ () @ () main_s5gi main_s5gj

 main_s5gf :: IO ()
 [LclId,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=False, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main_s5gf = thenIO @ () @ () main_s5gg main_s5gh

 main :: IO ()
 [LclIdX,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 60}]
 main = thenIO @ () @ () main_s5ge main_s5gf

 main :: IO ()
 [LclIdX,
  Arity=1,
  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
          WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 60}]
 main = runMainIO @ () main

 *** End of Offense ***


 <no location info>: error:
 Compilation had errors



 *** unexpected failure for StrictPats(debug)
 }}}
 I could not see how my patch to the interpreter would cause a Core Lint
 failure, so I am reporting this as a bug.

 CCing simonpj because this is either a bug in the typechecker, the
 desugarer, or a core-to-core optimization pass.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13204>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list