summaryrefslogtreecommitdiff
path: root/docs/users_guide/safe_haskell.rst
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2016-09-30 20:15:25 -0400
committerBen Gamari <ben@smart-cactus.org>2016-09-30 23:23:44 -0400
commit9e862765ffe161da8a4fd9cd67b0a600874feaa9 (patch)
tree235c1ba702b0101e1fa6a8fe7f8146e2c7ec9c69 /docs/users_guide/safe_haskell.rst
parentb3d55e20d20344bfc09f4ca4a554a819c4ecbfa8 (diff)
downloadhaskell-9e862765ffe161da8a4fd9cd67b0a600874feaa9.tar.gz
Implement deriving strategies
Allows users to explicitly request which approach to `deriving` to use via keywords, e.g., ``` newtype Foo = Foo Bar deriving Eq deriving stock Ord deriving newtype Show ``` Fixes #10598. Updates haddock submodule. Test Plan: ./validate Reviewers: hvr, kosmikus, goldfire, alanz, bgamari, simonpj, austin, erikd, simonmar Reviewed By: alanz, bgamari, simonpj Subscribers: thomie, mpickering, oerjan Differential Revision: https://phabricator.haskell.org/D2280 GHC Trac Issues: #10598
Diffstat (limited to 'docs/users_guide/safe_haskell.rst')
-rw-r--r--docs/users_guide/safe_haskell.rst7
1 files changed, 6 insertions, 1 deletions
diff --git a/docs/users_guide/safe_haskell.rst b/docs/users_guide/safe_haskell.rst
index 6ce8b8fc26..653b741339 100644
--- a/docs/users_guide/safe_haskell.rst
+++ b/docs/users_guide/safe_haskell.rst
@@ -284,7 +284,12 @@ Furthermore, we restrict the following features:
the structure of the data type for which the instance is defined, and
allowing manually implemented ``Generic`` instances would break that
invariant. Derived instances (through the :ghc-flag:`-XDeriveGeneric`
- extension) are still allowed. Refer to the
+ extension) are still allowed. Note that the only allowed
+ :ref:`deriving strategy <deriving-strategies>` for deriving ``Generic`` under
+ Safe Haskell is ``stock``, as another strategy (e.g., ``anyclass``) would
+ produce an instance that violates the invariant.
+
+ Refer to the
:ref:`generic programming <generic-programming>` section for more details.
.. _safe-overlapping-instances: