実験すりゃいいやん

data A = A Int
f :: () -> A
f = undefined
g,h :: A -> Int -> ()
g (A x) y = ()
h ~(A z) y = ()