Portability | portable |
---|---|
Stability | experimental |
Maintainer | Reiner Pope <reiner.pope@gmail.com> |
The main import module for first-class-patterns.
As an example, the following functions, ex1
and ex2
are
semantically equivalent:
ex1, ex2 :: Num a => Either a (a, a) -> a ex1 a =match
a $left
(cst
4)->>
0|||
left
var
->>
id|||
right
(tup2
var
var
)->>
(+) ex2 a = case a of Left 4 -> 0 Left x -> x Right (x,y) -> x+y
Also, when optimisation is turned on, GHC will compile them to the same code.