cabal-Version: 2.4 name: first-class-patterns version: 0.3.2.5 author: Reiner Pope, Brent Yorgey maintainer: Kowainik license: BSD-3-Clause 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". category: Data, Pattern build-Type: Simple stability: stable homepage: https://github.com/kowainik/first-class-patterns bug-reports: https://github.com/kowainik/first-class-patterns/issues extra-doc-files: README.md CHANGELOG.md tested-with: GHC == 8.2.2 GHC == 8.4.4 GHC == 8.6.5 GHC == 8.8.8 source-repository head type: git location: git://github.com/kowainik/first-class-patterns.git library build-Depends: base >= 4.10.1.0 && < 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-language: Haskell2010 default-extensions: DerivingStrategies EmptyDataDecls FlexibleInstances GeneralizedNewtypeDeriving GADTs Rank2Types ScopedTypeVariables TypeFamilies TypeOperators -- 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: -Wmissing-deriving-strategies -funfolding-use-threshold=1000 -funfolding-creation-threshold=1000 -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates -Wcompat -Widentities -Wredundant-constraints -Wpartial-fields -fhide-source-paths -freverse-errors if impl(ghc >= 8.8.1) ghc-options: -Wmissing-deriving-strategies -Werror=missing-deriving-strategies