Thanks to @user comment on the last guard, and after reviewing the release notes i caught the part that i missed:
The following types of matches no longer disable exhaustivity checking:
guards (case <pattern> if <condition> => ...) #9140
.........
New warnings reported can be resolved by:
adding any missing cases
in the case of complementary guards (e.g. if n > 0 and if n <= 0) by dropping the last guard
..........
EDIT1
Based on @sarveshseri, @Mateusz Kubuszok further comments above,
This is definitely not a bug, but rather an intrinsic compilers limit.
Doubled checked it in haskell and the warning is exactly the same
aDropWhile :: Num a => [a] -> (a -> Bool) -> [a]
aDropWhile [] _ = []
aDropWhile (s:xs) f
| f s = aDropWhile xs f
| not (f s) = xs
warning:?[-Wincomplete-patterns] ????Pattern?match(es)?are?non-exhaustive ????In?an?equation?for?‘aDropWhile’:?Patterns?not?matched:?(_:_)?_
Note: My haskell is basic
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…