OrPatterns: A quasiquoter for or-patterns

[ bsd3, development, library ] [ Propose Tags ]

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:

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1
Dependencies 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), syb (>=0.4 && <0.5), template-haskell (>=2.4 && <2.10) [details]
License BSD-3-Clause
Author Adam Vogt <vogt.adam@gmail.com>
Maintainer Adam Vogt <vogt.adam@gmail.com>
Category Development
Source repo head: darcs get http://code.haskell.org/~aavogt/OrPatterns
Uploaded by AdamVogt at 2014-05-16T06:02:29Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1301 total (6 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]