From 0877e14e3b4accd706c80b5087f1b8e5a08bec59 Mon Sep 17 00:00:00 2001 From: Ian Lynagh <igloo@earth.li> Date: Sat, 14 Jan 2012 13:40:58 +0000 Subject: [PATCH] Document the Num superclass divergence from H98/H2010 --- docs/users_guide/bugs.xml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/users_guide/bugs.xml b/docs/users_guide/bugs.xml index 12ef9460da3f..9da7927bc9f3 100644 --- a/docs/users_guide/bugs.xml +++ b/docs/users_guide/bugs.xml @@ -149,6 +149,39 @@ main = do args <- getArgs <title>Numbers, basic types, and built-in classes</title> <variablelist> + <varlistentry> + <term>Num superclasses</term> + <listitem> + <para> + The <literal>Num</literal> class does not have + <literal>Show</literal> or <literal>Eq</literal> + superclasses. + </para> + + <para> + You can make code that works with both + Haskell98/Haskell2010 and GHC by: + <itemizedlist> + <listitem> + <para> + Whenever you make a <literal>Num</literal> instance + of a type, also make <literal>Show</literal> and + <literal>Eq</literal> instances, and + </para> + </listitem> + <listitem> + <para> + Whenever you give a function, instance or class a + <literal>Num t</literal> constraint, also give it + <literal>Show t</literal> and + <literal>Eq t</literal> constraints. + </para> + </listitem> + </itemizedlist> + </para> + </listitem> + </varlistentry> + <varlistentry> <term>Multiply-defined array elements—not checked:</term> <listitem> -- GitLab