Skip to content

Core Lint error running testsuite with DEBUG way

I was testing 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.

Trac metadata
Trac field Value
Version 8.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC simonpj
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information