-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfirst-class-patterns.cabal
More file actions
65 lines (60 loc) · 2.52 KB
/
Copy pathfirst-class-patterns.cabal
File metadata and controls
65 lines (60 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Name: first-class-patterns
Version: 0.3.2.3
Author: Reiner Pope, Brent Yorgey
Maintainer: Brent Yorgey <byorgey@cis.upenn.edu>
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
<http://reinerp.wordpress.com/category/pattern-combinators/>
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.6
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