deriving-compat-0.4.3: Backports of GHC deriving extensions

Copyright (C) 2015-2017 Ryan Scott BSD-style (see the file LICENSE) Ryan Scott Template Haskell None Haskell2010

Data.Ix.Deriving

Description

Exports functions to mechanically derive Ix instances.

Synopsis

# Ix

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

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

Generates a lambda expression which behaves like range (without requiring an Ix instance).

Generates a lambda expression which behaves like unsafeIndex (without requiring an Ix instance).

Generates a lambda expression which behaves like inRange (without requiring an Ix instance).

# deriveIx limitations

Be aware of the following potential gotchas:

• Type variables of kind * are assumed to have Ix constraints. If this is not desirable, use makeRange or one of its cousins.