In Haskell, I often do something like this:
f $ \x -> case x of
A a1 a2 -> ...
B b1 b2 -> ...
C c1 c2 -> ...
But I don't want x
, I just want to deconstruct it.
In Standard ML I can do something like this:
f (fn A(a1,a2) => ...
| B(b1,b2) => ...
| C(c1,c2) => ...)
Is there a way to do this in Haskell or with any GHC extensions?