for example
let When true d = d
let foo = () |> When false
So I've got side effect I don't like because it's error: MatchFailureException
I know that I can have good side effect here: let foo = if false then ()
But warning Incomplete pattern matches on this expression.
tells me like I can add what I need. I just don't know how or if it possible? Else way why I even can use values as arguments?
btw: I know that I can write When b d = if b then d else ()
but question is more general.
added explain in haskell
let wh :: Bool -> IO () -> IO ()
wh True f = f
wh False f = return ()