Name: first-class-patterns Version: 0.3.2.4 Author: Reiner Pope, Brent Yorgey Maintainer: Kowainik 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: 2.0 Category: Data, Pattern Build-Type: Simple Stability: experimental homepage: https://github.com/kowainik/first-class-patterns bug-reports: https://github.com/kowainik/first-class-patterns/issues tested-with: GHC == 8.2.2 , GHC == 8.4.3 extra-doc-files: README.md , CHANGES.md source-repository head type: git location: git://github.com/kowainik/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: EmptyDataDecls FlexibleInstances GeneralizedNewtypeDeriving GADTs Rank2Types ScopedTypeVariables TypeFamilies TypeOperators 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. -- TODO: test with recent ghc versions and check this ghc-options: -funfolding-use-threshold=1000 -funfolding-creation-threshold=1000