Name: first-class-patterns Version: 0.2.0 Author: Reiner Pope Maintainer: Reiner Pope License: BSD3 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. Cabal-Version: >= 1.2.3 Category: Data Build-Type: Simple Build-Depends: base >= 3 && < 5, transformers >= 0.1.0 && < 0.1.5 Stability: experimental Tested-with: GHC==6.10.3 Exposed-modules: Data.Pattern Data.Pattern.Base Data.Pattern.Base.TypeList Data.Pattern.Base.Tuple Data.Pattern.Common Other-modules: Data.Pattern.Base.Difference Extensions: TypeFamilies, GADTs, ScopedTypeVariables, TypeOperators, EmptyDataDecls, Rank2Types, GeneralizedNewtypeDeriving, FlexibleInstances -- 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