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