Hacker News new | ask | show | jobs
by sksk 4017 days ago
While I agree with you about pattern matches in Haskell but for completeness sake there is a ghc flag -W for it. If you compile this code with that flag, you will see the result below:

  --hello.hs
  f mx = case mx of
        Just x -> x
        --Nothing -> "NA"

  main = do
    let v = Just "5"
    putStrLn $ f v

  ghc -W hello.hs
  [1 of 1] Compiling Main             ( hello.hs, hello.o )
  hello.hs:1:8: Warning:
    Pattern match(es) are non-exhaustive
    In a case alternative: Patterns not matched: Nothing
1 comments

In my opinion, incomplete pattern matches should be an error not a warning, but it seems strange to choose a different language based on that issue.