Skip to content

"Non-exhaustive patterns" for exhaustive ones

This is on ghc-8.6.3, Ubuntu Linux, built from source.

 > ghc --make $doconCpOpt ConeEq
 Linking ConeEq ...
 >./ConeEq

reports ...

ConeEq: GBasis_simple.hs:144:1-32: Non-exhaustive patterns in function reduceBy1pass

But GBasis_simple.hs includes the function

reduceBy1pass :: Field a => String -> [Pol a] -> [Pol a]                                        
reduceBy1pass _    []      =  []  
reduseBy1pass mode (f: fs) =  redt [] (f: fs)                                     
  where                                                                           
  redt rs []      =  rs                                                           
  redt rs (f: fs) =  let r = redCan mode (rs ++ fs) f                             
                     in                                                           
                     if  isZero r  then  redt rs fs  else  redt (r: rs) fs        

in which the patters are exhaustive. Am I missing something?

Edited by Sergei
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information