users guide: Motivation of DefaultSignatures
authorMicha Wiedenmann <mw-r1@posteo.de>
Mon, 23 Sep 2019 09:07:49 +0000 (05:07 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Wed, 11 Dec 2019 00:52:44 +0000 (19:52 -0500)
docs/users_guide/glasgow_exts.rst

index 7ba1708..5034d01 100644 (file)
@@ -6139,11 +6139,14 @@ a class: ::
         enum = []
 
 The type of the ``enum`` method is ``[a]``, and this is also the type of
-the default method. You can lift this restriction and give another type
-to the default method using the extension :extension:`DefaultSignatures`. For
-instance, if you have written a generic implementation of enumeration in
-a class ``GEnum`` with method ``genum`` in terms of ``GHC.Generics``,
-you can specify a default method that uses that generic implementation: ::
+the default method. You can change the type of the default method by
+requiring a different context using the extension
+:extension:`DefaultSignatures`. For instance, if you have written a
+generic implementation of enumeration in a class ``GEnum`` with method
+``genum``, you can specify a default method that uses that generic
+implementation. But your default implementation can only be used if the
+constraints are satisfied, therefore you need to change the type of the
+default method ::
 
       class Enum a where
         enum :: [a]