packages feed

OrPatterns-0.1: OrPatterns.cabal

name:                OrPatterns
version:             0.1
synopsis:            A quasiquoter for or-patterns
description:         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

license:             BSD3
license-file:        LICENSE
author:              Adam Vogt <vogt.adam@gmail.com>
maintainer:          Adam Vogt <vogt.adam@gmail.com>
category:            Development
build-type:          Simple
cabal-version:       >=1.10
tested-with:         GHC == 7.8.2,
                     GHC == 7.6.2,
                     GHC == 7.4.1

source-repository head
  type: darcs
  location: http://code.haskell.org/~aavogt/OrPatterns


library
  exposed-modules:     OrPatterns
                       OrPatterns.Internal
  other-extensions:    TemplateHaskell

  build-depends:       base >=4.5 && <4.8,
                       template-haskell >=2.4 && <2.10,
                       mtl >=2.1 && <2.2,
                       syb >=0.4 && <0.5,
                       split >=0.2 && <0.3,
                       haskell-src-meta >=0.6 && <0.7,
                       haskell-src-exts >=1.15 && <1.16,
                       containers >=0.3 && <0.6

  default-language:    Haskell2010