fixed the parser bug so now `Nothing` parses correctly and we generate
correct core.

>> :c let { z Nothing 3 = Nothing; z (Just x) 2 = x } in z
let { a = \{b,c} -> case c of d
    { <0|1|Literal| e> -> case# e of
        { Int 2 -> case b of f
            { <1|0|Just| g> -> g
            ; _ -> error "non-exhaustive pattern match."
            }
        ; Int 3 -> case b of f
            { <0|0|Nothing> -> <0|0|Nothing>
            ; _ -> error "non-exhaustive pattern match."
            }
        ; _ -> error "non-exhaustive pattern match."
        }
    }
  } in a