@hackage OrPatterns0.1
A quasiquoter for or-patterns
Categories
License
BSD-3-Clause
Maintainer
Adam Vogt <vogt.adam@gmail.com>
Links
Versions
- 0.1 Fri, 16 May 2014
Installation
Dependencies (8)
- base >=4.5 && <4.8
- containers >=0.3 && <0.6
- haskell-src-exts >=1.15 && <1.16
- haskell-src-meta >=0.6 && <0.7
- mtl >=2.1 && <2.2
- split >=0.2 && <0.3 Show all…
Dependents (1)
@hackage/acme-everything
A quasiquoter for or-patterns. It allows one additional form for patterns:
f [o| p1 | p2 | p3 |] = rhs
Above, p1, p2 and p3 are three arbitrary patterns
that bind the same variables. These variables are
available in the expression rhs. Nesting of or-patterns
is not supported yet.
See also:
http://hackage.haskell.org/package/first-class-patterns supports
\/(or). However, variables bound with those patterns are not named. This means:
g :: Either (x, y) (y, x) -> (x, y) g [o| Left (x,y) | Right (y,x) |] = (x,y)
-- ends up slightly longer g = elim $ left (pair var var) \/ right flipped ->> (,) where flipped = (\(a,b) -> (b,a)) --> pair var var
http://hackage.haskell.org/trac/ghc/ticket/3919 is the feature request for or-patterns in ghc