Name: first-class-patterns
Version: 0.3.2
Author: Reiner Pope, Brent Yorgey
Maintainer: Brent Yorgey
License: BSD3
License-file: LICENSE
Synopsis: First class patterns and pattern matching, using type families
Description:
This package implements a library of first class patterns. The
initial basis for this library was Morten Rhiger's \"Type-safe
pattern combinators\"; the patterns can be used in an almost
identical way to those of Morten Rhiger. In a series of blog
posts at
the types of patterns were made more revealing using type
families, and a simpler implementation was used which avoids
some book-keeping.
.
The library reimplements most of Haskell's built-in
pattern matching facilities, plus some more. The pattern
matches of this library are lightweight: when GHC's
optimisation is turned on, all overhead should be optimised
away, leaving a standard Haskell pattern match.
.
If you're just reading the documentation for this library for
the first time, start with "Data.Pattern".
Cabal-Version: >= 1.10
Category: Data
Build-Type: Simple
Stability: experimental
homepage: https://github.com/reinerp/first-class-patterns
bug-reports: https://github.com/reinerp/first-class-patterns/issues
source-repository head
type: git
location: git://github.com/reinerp/first-class-patterns.git
library
Build-Depends:
base >= 4.5 && < 5,
transformers >= 0.1.0 && < 0.4
Exposed-modules: Data.Pattern
Data.Pattern.Base
Data.Pattern.Base.TypeList
Data.Pattern.Base.Tuple
Data.Pattern.Common
Other-modules: Data.Pattern.Base.Difference
Default-extensions: TypeFamilies,
GADTs,
ScopedTypeVariables,
TypeOperators,
EmptyDataDecls,
Rank2Types,
GeneralizedNewtypeDeriving,
FlexibleInstances
Default-language: Haskell2010
-- necessary to get all the patterns properly inlined. Note that putting
-- {-# INLINE #-} pragmas every doesn't seem to work, due to some subtlety
-- of the inliner.
ghc-options:
-funfolding-use-threshold=1000
-funfolding-creation-threshold=1000