deriving-compat-0.6.6: Backports of GHC deriving extensions

Copyright | (C) 2015-2017 Ryan Scott
License | BSD-style (see the file LICENSE)
Maintainer | Ryan Scott
Portability | Template Haskell
Safe Haskell | Safe-Inferred
Language | Haskell2010

Data.Bounded.Deriving

Contents

- `Bounded`
- `deriveBounded` limitations

Description

Exports functions to mechanically derive `Bounded` instances.

Synopsis

- deriveBounded :: Name -> Q [Dec]
- makeMinBound :: Name -> Q Exp
- makeMaxBound :: Name -> Q Exp

# `Bounded`

deriveBounded :: Name -> Q [Dec] Source #

Generates a `Bounded` instance declaration for the given data type or data family instance.

makeMinBound :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `minBound` (without requiring a `Bounded` instance).

makeMaxBound :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `maxBound` (without requiring a `Bounded` instance).

# `deriveBounded` limitations

Be aware of the following potential gotchas:

- Type variables of kind `*` are assumed to have `Bounded` constraints. If this is not desirable, use `makeMinBound` or one of its cousins.