id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
4431,SpecConstr doesn't specialise,rl,,"Compile this with `-O2 -fno-spec-constr-count`:

{{{
foo :: Int -> Int -> Bool
foo n x = loop 0 False (Just x)
  where
    loop i b x | i > n = b
    loop i False x = loop (i+1) True x
    loop i True (Just x) = loop (i+1) False Nothing
    loop i True Nothing  = loop (i+1) True (Just x)
}}}

!SpecConstr produces a loop of type `Maybe Int -> Int# -> Bool`, i.e., it doesn't specialise for the `Maybe` argument for some reason.",bug,closed,normal,,Compiler,7.1,fixed,,,Unknown/Multiple,Unknown/Multiple,Runtime performance bug,,,,,
