aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haddock-api/haddock-api.cabal1
-rw-r--r--haddock-api/src/Haddock/Interface.hs2
-rw-r--r--haddock-api/src/Haddock/Interface/AttachInstances.hs34
-rw-r--r--haddock-api/src/Haddock/Interface/Create.hs2
-rw-r--r--html-test/ref/Bug1004.html1012
-rw-r--r--html-test/ref/Bug1103.html8
-rw-r--r--html-test/ref/Bug548.html96
-rw-r--r--html-test/ref/HiddenInstances.html8
-rw-r--r--html-test/ref/Instances.html354
-rw-r--r--html-test/ref/SpuriousSuperclassConstraints.html108
-rw-r--r--html-test/ref/TypeFamilies.html196
-rw-r--r--html-test/ref/TypeFamilies2.html68
-rw-r--r--html-test/ref/TypeFamilies3.html64
-rw-r--r--hypsrc-test/ref/src/Classes.html14
-rw-r--r--hypsrc-test/ref/src/Records.html16
-rw-r--r--latex-test/ref/TypeFamilies3/TypeFamilies3.tex4
16 files changed, 1001 insertions, 986 deletions
diff --git a/haddock-api/haddock-api.cabal b/haddock-api/haddock-api.cabal
index e6de8b81..e9433d73 100644
--- a/haddock-api/haddock-api.cabal
+++ b/haddock-api/haddock-api.cabal
@@ -68,6 +68,7 @@ library
ghc-options: -funbox-strict-fields -O2
-Wall
-Wcompat
+ -Wcompat-unqualified-imports
-Widentities
-Wredundant-constraints
-Wnoncanonical-monad-instances
diff --git a/haddock-api/src/Haddock/Interface.hs b/haddock-api/src/Haddock/Interface.hs
index 16643d0e..7cc76953 100644
--- a/haddock-api/src/Haddock/Interface.hs
+++ b/haddock-api/src/Haddock/Interface.hs
@@ -157,7 +157,7 @@ createIfaces verbosity modules flags instIfaceMap = do
-- alive to be able to find all the instances.
modifySession installHaddockPlugin
- targets <- mapM (\filePath -> guessTarget filePath Nothing) modules
+ targets <- mapM (\filePath -> guessTarget filePath Nothing Nothing) modules
setTargets targets
loadOk <- withTimingM "load" (const ()) $
diff --git a/haddock-api/src/Haddock/Interface/AttachInstances.hs b/haddock-api/src/Haddock/Interface/AttachInstances.hs
index 317258eb..6bc8b8c8 100644
--- a/haddock-api/src/Haddock/Interface/AttachInstances.hs
+++ b/haddock-api/src/Haddock/Interface/AttachInstances.hs
@@ -28,6 +28,7 @@ import Data.Maybe ( maybeToList, mapMaybe, fromMaybe )
import qualified Data.Map as Map
import qualified Data.Set as Set
+import GHC.Data.FastString (unpackFS)
import GHC.Core.Class
import GHC.Driver.Session
import GHC.Core (isOrphan)
@@ -178,19 +179,30 @@ findFixity iface ifaceMap instIfaceMap = \name ->
-- Collecting and sorting instances
--------------------------------------------------------------------------------
+-- | Stable name for stable comparisons. GHC's `Name` uses unstable
+-- ordering based on their `Unique`'s.
+newtype SName = SName Name
+
+instance Eq SName where
+ SName n1 == SName n2 = n1 `stableNameCmp` n2 == EQ
+
+instance Ord SName where
+ SName n1 `compare` SName n2 = n1 `stableNameCmp` n2
-- | Simplified type for sorting types, ignoring qualification (not visible
-- in Haddock output) and unifying special tycons with normal ones.
-- For the benefit of the user (looks nice and predictable) and the
-- tests (which prefer output to be deterministic).
-data SimpleType = SimpleType Name [SimpleType]
- | SimpleTyLit TyLit
+data SimpleType = SimpleType SName [SimpleType]
+ | SimpleIntTyLit Integer
+ | SimpleStringTyLit String
+ | SimpleCharTyLit Char
deriving (Eq,Ord)
-instHead :: ([TyVar], [PredType], Class, [Type]) -> ([Int], Name, [SimpleType])
+instHead :: ([TyVar], [PredType], Class, [Type]) -> ([Int], SName, [SimpleType])
instHead (_, _, cls, args)
- = (map argCount args, className cls, map simplify args)
+ = (map argCount args, SName (className cls), map simplify args)
argCount :: Type -> Int
argCount (AppTy t _) = argCount t + 1
@@ -201,14 +213,16 @@ argCount (CastTy t _) = argCount t
argCount _ = 0
simplify :: Type -> SimpleType
-simplify (FunTy _ _ t1 t2) = SimpleType funTyConName [simplify t1, simplify t2]
+simplify (FunTy _ _ t1 t2) = SimpleType (SName funTyConName) [simplify t1, simplify t2]
simplify (ForAllTy _ t) = simplify t
simplify (AppTy t1 t2) = SimpleType s (ts ++ maybeToList (simplify_maybe t2))
where (SimpleType s ts) = simplify t1
-simplify (TyVarTy v) = SimpleType (tyVarName v) []
-simplify (TyConApp tc ts) = SimpleType (tyConName tc)
+simplify (TyVarTy v) = SimpleType (SName (tyVarName v)) []
+simplify (TyConApp tc ts) = SimpleType (SName (tyConName tc))
(mapMaybe simplify_maybe ts)
-simplify (LitTy l) = SimpleTyLit l
+simplify (LitTy (NumTyLit n)) = SimpleIntTyLit n
+simplify (LitTy (StrTyLit s)) = SimpleStringTyLit (unpackFS s)
+simplify (LitTy (CharTyLit c)) = SimpleCharTyLit c
simplify (CastTy ty _) = simplify ty
simplify (CoercionTy _) = error "simplify:Coercion"
@@ -217,9 +231,9 @@ simplify_maybe (CoercionTy {}) = Nothing
simplify_maybe ty = Just (simplify ty)
-- Used for sorting
-instFam :: FamInst -> ([Int], Name, [SimpleType], Int, SimpleType)
+instFam :: FamInst -> ([Int], SName, [SimpleType], Int, SimpleType)
instFam FamInst { fi_fam = n, fi_tys = ts, fi_rhs = t }
- = (map argCount ts, n, map simplify ts, argCount t, simplify t)
+ = (map argCount ts, SName n, map simplify ts, argCount t, simplify t)
--------------------------------------------------------------------------------
diff --git a/haddock-api/src/Haddock/Interface/Create.hs b/haddock-api/src/Haddock/Interface/Create.hs
index 9a773b6c..c0b9fd46 100644
--- a/haddock-api/src/Haddock/Interface/Create.hs
+++ b/haddock-api/src/Haddock/Interface/Create.hs
@@ -35,7 +35,7 @@ import Control.Monad.Writer.Strict hiding (tell)
import Data.Bitraversable
import qualified Data.Map as M
import Data.Map (Map)
-import Data.List
+import Data.List (foldl', find)
import Data.Maybe
import Data.Traversable
import GHC.Stack
diff --git a/html-test/ref/Bug1004.html b/html-test/ref/Bug1004.html
index 4137771b..3324fae1 100644
--- a/html-test/ref/Bug1004.html
+++ b/html-test/ref/Bug1004.html
@@ -188,135 +188,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monad:2"
- ></span
- > (<a href="#" title="Control.Monad"
- >Monad</a
- > f, <a href="#" title="Control.Monad"
- >Monad</a
- > g) =&gt; <a href="#" title="Control.Monad"
- >Monad</a
- > (<a href="#" title="Bug1004"
- >Product</a
- > f g)</span
- ></td
- ><td class="doc"
- ><p
- ><em
- >Since: base-4.9.0.0</em
- ></p
- ></td
- ></tr
- ><tr
- ><td colspan="2"
- ><details id="i:id:Product:Monad:2"
- ><summary class="hide-when-js-enabled"
- >Instance details</summary
- ><p
- >Defined in <a href="#"
- >Data.Functor.Product</a
- ></p
- > <div class="subs methods"
- ><p class="caption"
- >Methods</p
- ><p class="src"
- ><a href="#"
- >(&gt;&gt;=)</a
- > :: <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; (a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b) -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >(&gt;&gt;)</a
- > :: <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >return</a
- > :: a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a <a href="#" class="selflink"
- >#</a
- ></p
- ></div
- ></details
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Functor:3"
- ></span
- > (<a href="#" title="Data.Functor"
- >Functor</a
- > f, <a href="#" title="Data.Functor"
- >Functor</a
- > g) =&gt; <a href="#" title="Data.Functor"
- >Functor</a
- > (<a href="#" title="Bug1004"
- >Product</a
- > f g)</span
- ></td
- ><td class="doc"
- ><p
- ><em
- >Since: base-4.9.0.0</em
- ></p
- ></td
- ></tr
- ><tr
- ><td colspan="2"
- ><details id="i:id:Product:Functor:3"
- ><summary class="hide-when-js-enabled"
- >Instance details</summary
- ><p
- >Defined in <a href="#"
- >Data.Functor.Product</a
- ></p
- > <div class="subs methods"
- ><p class="caption"
- >Methods</p
- ><p class="src"
- ><a href="#"
- >fmap</a
- > :: (a -&gt; b) -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >(&lt;$)</a
- > :: a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a <a href="#" class="selflink"
- >#</a
- ></p
- ></div
- ></details
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadFix:4"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadFix:2"
></span
> (<a href="#" title="Control.Monad.Fix"
>MonadFix</a
@@ -337,7 +209,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:MonadFix:4"
+ ><details id="i:id:Product:MonadFix:2"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -364,14 +236,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Applicative:5"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadZip:3"
></span
- > (<a href="#" title="Control.Applicative"
- >Applicative</a
- > f, <a href="#" title="Control.Applicative"
- >Applicative</a
- > g) =&gt; <a href="#" title="Control.Applicative"
- >Applicative</a
+ > (<a href="#" title="Control.Monad.Zip"
+ >MonadZip</a
+ > f, <a href="#" title="Control.Monad.Zip"
+ >MonadZip</a
+ > g) =&gt; <a href="#" title="Control.Monad.Zip"
+ >MonadZip</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -385,7 +257,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Applicative:5"
+ ><details id="i:id:Product:MonadZip:3"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -397,58 +269,38 @@
>Methods</p
><p class="src"
><a href="#"
- >pure</a
- > :: a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >(&lt;*&gt;)</a
+ >mzip</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g (a -&gt; b) -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g b <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >liftA2</a
- > :: (a -&gt; b -&gt; c) -&gt; <a href="#" title="Bug1004"
- >Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
> f g b -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g c <a href="#" class="selflink"
+ > f g (a, b) <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(*&gt;)</a
- > :: <a href="#" title="Bug1004"
+ >mzipWith</a
+ > :: (a -&gt; b -&gt; c) -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
> f g b -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g b <a href="#" class="selflink"
+ > f g c <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&lt;*)</a
+ >munzip</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g (a, b) -&gt; (<a href="#" title="Bug1004"
>Product</a
- > f g b -&gt; <a href="#" title="Bug1004"
+ > f g a, <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g b) <a href="#" class="selflink"
>#</a
></p
></div
@@ -458,7 +310,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Foldable:6"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Foldable:4"
></span
> (<a href="#" title="Data.Foldable"
>Foldable</a
@@ -479,7 +331,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Foldable:6"
+ ><details id="i:id:Product:Foldable:4"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -654,14 +506,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Traversable:7"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq1:5"
></span
- > (<a href="#" title="Data.Traversable"
- >Traversable</a
- > f, <a href="#" title="Data.Traversable"
- >Traversable</a
- > g) =&gt; <a href="#" title="Data.Traversable"
- >Traversable</a
+ > (<a href="#" title="Data.Functor.Classes"
+ >Eq1</a
+ > f, <a href="#" title="Data.Functor.Classes"
+ >Eq1</a
+ > g) =&gt; <a href="#" title="Data.Functor.Classes"
+ >Eq1</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -675,7 +527,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Traversable:7"
+ ><details id="i:id:Product:Eq1:5"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -687,50 +539,16 @@
>Methods</p
><p class="src"
><a href="#"
- >traverse</a
- > :: <a href="#" title="Control.Applicative"
- >Applicative</a
- > f0 =&gt; (a -&gt; f0 b) -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; f0 (<a href="#" title="Bug1004"
- >Product</a
- > f g b) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >sequenceA</a
- > :: <a href="#" title="Control.Applicative"
- >Applicative</a
- > f0 =&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g (f0 a) -&gt; f0 (<a href="#" title="Bug1004"
- >Product</a
- > f g a) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >mapM</a
- > :: <a href="#" title="Control.Monad"
- >Monad</a
- > m =&gt; (a -&gt; m b) -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; m (<a href="#" title="Bug1004"
- >Product</a
- > f g b) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >sequence</a
- > :: <a href="#" title="Control.Monad"
- >Monad</a
- > m =&gt; <a href="#" title="Bug1004"
+ >liftEq</a
+ > :: (a -&gt; b -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ >) -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g (m a) -&gt; m (<a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a) <a href="#" class="selflink"
+ > f g b -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
></div
@@ -740,14 +558,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show1:8"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord1:6"
></span
> (<a href="#" title="Data.Functor.Classes"
- >Show1</a
+ >Ord1</a
> f, <a href="#" title="Data.Functor.Classes"
- >Show1</a
+ >Ord1</a
> g) =&gt; <a href="#" title="Data.Functor.Classes"
- >Show1</a
+ >Ord1</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -761,7 +579,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Show1:8"
+ ><details id="i:id:Product:Ord1:6"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -773,35 +591,15 @@
>Methods</p
><p class="src"
><a href="#"
- >liftShowsPrec</a
- > :: (<a href="#" title="Data.Int"
- >Int</a
- > -&gt; a -&gt; <a href="#" title="Text.Show"
- >ShowS</a
- >) -&gt; ([a] -&gt; <a href="#" title="Text.Show"
- >ShowS</a
- >) -&gt; <a href="#" title="Data.Int"
- >Int</a
- > -&gt; <a href="#" title="Bug1004"
+ >liftCompare</a
+ > :: (a -&gt; b -&gt; <a href="#" title="Data.Ord"
+ >Ordering</a
+ >) -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Text.Show"
- >ShowS</a
- > <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >liftShowList</a
- > :: (<a href="#" title="Data.Int"
- >Int</a
- > -&gt; a -&gt; <a href="#" title="Text.Show"
- >ShowS</a
- >) -&gt; ([a] -&gt; <a href="#" title="Text.Show"
- >ShowS</a
- >) -&gt; [<a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a] -&gt; <a href="#" title="Text.Show"
- >ShowS</a
+ > f g b -&gt; <a href="#" title="Data.Ord"
+ >Ordering</a
> <a href="#" class="selflink"
>#</a
></p
@@ -812,7 +610,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read1:9"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read1:7"
></span
> (<a href="#" title="Data.Functor.Classes"
>Read1</a
@@ -833,7 +631,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Read1:9"
+ ><details id="i:id:Product:Read1:7"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -912,14 +710,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord1:10"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show1:8"
></span
> (<a href="#" title="Data.Functor.Classes"
- >Ord1</a
+ >Show1</a
> f, <a href="#" title="Data.Functor.Classes"
- >Ord1</a
+ >Show1</a
> g) =&gt; <a href="#" title="Data.Functor.Classes"
- >Ord1</a
+ >Show1</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -933,7 +731,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Ord1:10"
+ ><details id="i:id:Product:Show1:8"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -945,15 +743,35 @@
>Methods</p
><p class="src"
><a href="#"
- >liftCompare</a
- > :: (a -&gt; b -&gt; <a href="#" title="Data.Ord"
- >Ordering</a
- >) -&gt; <a href="#" title="Bug1004"
+ >liftShowsPrec</a
+ > :: (<a href="#" title="Data.Int"
+ >Int</a
+ > -&gt; a -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
+ >) -&gt; ([a] -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
+ >) -&gt; <a href="#" title="Data.Int"
+ >Int</a
+ > -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >liftShowList</a
+ > :: (<a href="#" title="Data.Int"
+ >Int</a
+ > -&gt; a -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
+ >) -&gt; ([a] -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
+ >) -&gt; [<a href="#" title="Bug1004"
>Product</a
- > f g b -&gt; <a href="#" title="Data.Ord"
- >Ordering</a
+ > f g a] -&gt; <a href="#" title="Text.Show"
+ >ShowS</a
> <a href="#" class="selflink"
>#</a
></p
@@ -964,14 +782,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq1:11"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Traversable:9"
></span
- > (<a href="#" title="Data.Functor.Classes"
- >Eq1</a
- > f, <a href="#" title="Data.Functor.Classes"
- >Eq1</a
- > g) =&gt; <a href="#" title="Data.Functor.Classes"
- >Eq1</a
+ > (<a href="#" title="Data.Traversable"
+ >Traversable</a
+ > f, <a href="#" title="Data.Traversable"
+ >Traversable</a
+ > g) =&gt; <a href="#" title="Data.Traversable"
+ >Traversable</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -985,7 +803,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Eq1:11"
+ ><details id="i:id:Product:Traversable:9"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -997,16 +815,50 @@
>Methods</p
><p class="src"
><a href="#"
- >liftEq</a
- > :: (a -&gt; b -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- >) -&gt; <a href="#" title="Bug1004"
+ >traverse</a
+ > :: <a href="#" title="Control.Applicative"
+ >Applicative</a
+ > f0 =&gt; (a -&gt; f0 b) -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; f0 (<a href="#" title="Bug1004"
>Product</a
- > f g b -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g b) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >sequenceA</a
+ > :: <a href="#" title="Control.Applicative"
+ >Applicative</a
+ > f0 =&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g (f0 a) -&gt; f0 (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >mapM</a
+ > :: <a href="#" title="Control.Monad"
+ >Monad</a
+ > m =&gt; (a -&gt; m b) -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a -&gt; m (<a href="#" title="Bug1004"
+ >Product</a
+ > f g b) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >sequence</a
+ > :: <a href="#" title="Control.Monad"
+ >Monad</a
+ > m =&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g (m a) -&gt; m (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a) <a href="#" class="selflink"
>#</a
></p
></div
@@ -1016,14 +868,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadZip:12"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Alternative:10"
></span
- > (<a href="#" title="Control.Monad.Zip"
- >MonadZip</a
- > f, <a href="#" title="Control.Monad.Zip"
- >MonadZip</a
- > g) =&gt; <a href="#" title="Control.Monad.Zip"
- >MonadZip</a
+ > (<a href="#" title="Control.Applicative"
+ >Alternative</a
+ > f, <a href="#" title="Control.Applicative"
+ >Alternative</a
+ > g) =&gt; <a href="#" title="Control.Applicative"
+ >Alternative</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -1037,7 +889,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:MonadZip:12"
+ ><details id="i:id:Product:Alternative:10"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1049,38 +901,42 @@
>Methods</p
><p class="src"
><a href="#"
- >mzip</a
+ >empty</a
+ > :: <a href="#" title="Bug1004"
+ >Product</a
+ > f g a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(&lt;|&gt;)</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g b -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g (a, b) <a href="#" class="selflink"
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >mzipWith</a
- > :: (a -&gt; b -&gt; c) -&gt; <a href="#" title="Bug1004"
+ >some</a
+ > :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g b -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g c <a href="#" class="selflink"
+ > f g [a] <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >munzip</a
+ >many</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g (a, b) -&gt; (<a href="#" title="Bug1004"
- >Product</a
- > f g a, <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g b) <a href="#" class="selflink"
+ > f g [a] <a href="#" class="selflink"
>#</a
></p
></div
@@ -1090,14 +946,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadPlus:13"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Applicative:11"
></span
- > (<a href="#" title="Control.Monad"
- >MonadPlus</a
- > f, <a href="#" title="Control.Monad"
- >MonadPlus</a
- > g) =&gt; <a href="#" title="Control.Monad"
- >MonadPlus</a
+ > (<a href="#" title="Control.Applicative"
+ >Applicative</a
+ > f, <a href="#" title="Control.Applicative"
+ >Applicative</a
+ > g) =&gt; <a href="#" title="Control.Applicative"
+ >Applicative</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -1111,7 +967,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:MonadPlus:13"
+ ><details id="i:id:Product:Applicative:11"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1123,21 +979,57 @@
>Methods</p
><p class="src"
><a href="#"
- >mzero</a
- > :: <a href="#" title="Bug1004"
+ >pure</a
+ > :: a -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >mplus</a
+ >(&lt;*&gt;)</a
+ > :: <a href="#" title="Bug1004"
+ >Product</a
+ > f g (a -&gt; b) -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >liftA2</a
+ > :: (a -&gt; b -&gt; c) -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g c <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(*&gt;)</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
+ > f g b -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(&lt;*)</a
+ > :: <a href="#" title="Bug1004"
+ >Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
+ > f g b -&gt; <a href="#" title="Bug1004"
+ >Product</a
> f g a <a href="#" class="selflink"
>#</a
></p
@@ -1148,14 +1040,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Alternative:14"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Functor:12"
></span
- > (<a href="#" title="Control.Applicative"
- >Alternative</a
- > f, <a href="#" title="Control.Applicative"
- >Alternative</a
- > g) =&gt; <a href="#" title="Control.Applicative"
- >Alternative</a
+ > (<a href="#" title="Data.Functor"
+ >Functor</a
+ > f, <a href="#" title="Data.Functor"
+ >Functor</a
+ > g) =&gt; <a href="#" title="Data.Functor"
+ >Functor</a
> (<a href="#" title="Bug1004"
>Product</a
> f g)</span
@@ -1169,7 +1061,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Alternative:14"
+ ><details id="i:id:Product:Functor:12"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1181,42 +1073,92 @@
>Methods</p
><p class="src"
><a href="#"
- >empty</a
- > :: <a href="#" title="Bug1004"
+ >fmap</a
+ > :: (a -&gt; b) -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&lt;|&gt;)</a
- > :: <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ >(&lt;$)</a
+ > :: a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g b -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a <a href="#" class="selflink"
>#</a
></p
+ ></div
+ ></details
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monad:13"
+ ></span
+ > (<a href="#" title="Control.Monad"
+ >Monad</a
+ > f, <a href="#" title="Control.Monad"
+ >Monad</a
+ > g) =&gt; <a href="#" title="Control.Monad"
+ >Monad</a
+ > (<a href="#" title="Bug1004"
+ >Product</a
+ > f g)</span
+ ></td
+ ><td class="doc"
+ ><p
+ ><em
+ >Since: base-4.9.0.0</em
+ ></p
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><details id="i:id:Product:Monad:13"
+ ><summary class="hide-when-js-enabled"
+ >Instance details</summary
+ ><p
+ >Defined in <a href="#"
+ >Data.Functor.Product</a
+ ></p
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
><p class="src"
><a href="#"
- >some</a
+ >(&gt;&gt;=)</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; (a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g [a] <a href="#" class="selflink"
+ > f g b) -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >many</a
+ >(&gt;&gt;)</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g [a] <a href="#" class="selflink"
+ > f g b -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >return</a
+ > :: a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a <a href="#" class="selflink"
>#</a
></p
></div
@@ -1226,19 +1168,17 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq:15"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadPlus:14"
></span
- > (<a href="#" title="Data.Functor.Classes"
- >Eq1</a
- > f, <a href="#" title="Data.Functor.Classes"
- >Eq1</a
- > g, <a href="#" title="Data.Eq"
- >Eq</a
- > a) =&gt; <a href="#" title="Data.Eq"
- >Eq</a
+ > (<a href="#" title="Control.Monad"
+ >MonadPlus</a
+ > f, <a href="#" title="Control.Monad"
+ >MonadPlus</a
+ > g) =&gt; <a href="#" title="Control.Monad"
+ >MonadPlus</a
> (<a href="#" title="Bug1004"
>Product</a
- > f g a)</span
+ > f g)</span
></td
><td class="doc"
><p
@@ -1249,7 +1189,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Eq:15"
+ ><details id="i:id:Product:MonadPlus:14"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1261,26 +1201,22 @@
>Methods</p
><p class="src"
><a href="#"
- >(==)</a
+ >mzero</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(/=)</a
+ >mplus</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a <a href="#" class="selflink"
>#</a
></p
></div
@@ -1290,7 +1226,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Data:16"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Data:15"
></span
> (<a href="#" title="Data.Typeable"
>Typeable</a
@@ -1319,7 +1255,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Data:16"
+ ><details id="i:id:Product:Data:15"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1536,16 +1472,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord:17"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monoid:16"
></span
- > (<a href="#" title="Data.Functor.Classes"
- >Ord1</a
- > f, <a href="#" title="Data.Functor.Classes"
- >Ord1</a
- > g, <a href="#" title="Data.Ord"
- >Ord</a
- > a) =&gt; <a href="#" title="Data.Ord"
- >Ord</a
+ > (<a href="#" title="Data.Monoid"
+ >Monoid</a
+ > (f a), <a href="#" title="Data.Monoid"
+ >Monoid</a
+ > (g a)) =&gt; <a href="#" title="Data.Monoid"
+ >Monoid</a
> (<a href="#" title="Bug1004"
>Product</a
> f g a)</span
@@ -1553,13 +1487,13 @@
><td class="doc"
><p
><em
- >Since: base-4.9.0.0</em
+ >Since: base-4.16.0.0</em
></p
></td
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Ord:17"
+ ><details id="i:id:Product:Monoid:16"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1571,84 +1505,176 @@
>Methods</p
><p class="src"
><a href="#"
- >compare</a
+ >mempty</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Data.Ord"
- >Ordering</a
- > <a href="#" class="selflink"
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&lt;)</a
+ >mappend</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&lt;=)</a
- > :: <a href="#" title="Bug1004"
+ >mconcat</a
+ > :: [<a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a] -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a <a href="#" class="selflink"
>#</a
></p
+ ></div
+ ></details
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Semigroup:17"
+ ></span
+ > (<a href="#" title="Prelude"
+ >Semigroup</a
+ > (f a), <a href="#" title="Prelude"
+ >Semigroup</a
+ > (g a)) =&gt; <a href="#" title="Prelude"
+ >Semigroup</a
+ > (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a)</span
+ ></td
+ ><td class="doc"
+ ><p
+ ><em
+ >Since: base-4.16.0.0</em
+ ></p
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><details id="i:id:Product:Semigroup:17"
+ ><summary class="hide-when-js-enabled"
+ >Instance details</summary
+ ><p
+ >Defined in <a href="#"
+ >Data.Functor.Product</a
+ ></p
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
><p class="src"
><a href="#"
- >(&gt;)</a
+ >(&lt;&gt;)</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&gt;=)</a
- > :: <a href="#" title="Bug1004"
+ >sconcat</a
+ > :: <a href="#" title="Data.List.NonEmpty"
+ >NonEmpty</a
+ > (<a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a) -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Data.Bool"
- >Bool</a
- > <a href="#" class="selflink"
+ > f g a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >max</a
- > :: <a href="#" title="Bug1004"
- >Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ >stimes</a
+ > :: <a href="#" title="Prelude"
+ >Integral</a
+ > b =&gt; b -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a <a href="#" class="selflink"
>#</a
></p
+ ></div
+ ></details
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Generic:18"
+ ></span
+ > <a href="#" title="GHC.Generics"
+ >Generic</a
+ > (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a)</span
+ ></td
+ ><td class="doc empty"
+ >&nbsp;</td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><details id="i:id:Product:Generic:18"
+ ><summary class="hide-when-js-enabled"
+ >Instance details</summary
+ ><p
+ >Defined in <a href="#"
+ >Data.Functor.Product</a
+ ></p
+ > <div class="subs associated-types"
+ ><p class="caption"
+ >Associated Types</p
+ ><p class="src"
+ ><span class="keyword"
+ >type</span
+ > <a href="#" title="GHC.Generics"
+ >Rep</a
+ > (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a) :: <a href="#" title="Data.Kind"
+ >Type</a
+ > -&gt; <a href="#" title="Data.Kind"
+ >Type</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
><p class="src"
><a href="#"
- >min</a
+ >from</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="GHC.Generics"
+ >Rep</a
+ > (<a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="Bug1004"
+ > f g a) x <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >to</a
+ > :: <a href="#" title="GHC.Generics"
+ >Rep</a
+ > (<a href="#" title="Bug1004"
+ >Product</a
+ > f g a) x -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a <a href="#" class="selflink"
>#</a
@@ -1660,7 +1686,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read:18"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read:19"
></span
> (<a href="#" title="Data.Functor.Classes"
>Read1</a
@@ -1683,7 +1709,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Read:18"
+ ><details id="i:id:Product:Read:19"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1742,7 +1768,7 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show:19"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show:20"
></span
> (<a href="#" title="Data.Functor.Classes"
>Show1</a
@@ -1765,7 +1791,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Show:19"
+ ><details id="i:id:Product:Show:20"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1814,69 +1840,61 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Generic:20"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq:21"
></span
- > <a href="#" title="GHC.Generics"
- >Generic</a
+ > (<a href="#" title="Data.Functor.Classes"
+ >Eq1</a
+ > f, <a href="#" title="Data.Functor.Classes"
+ >Eq1</a
+ > g, <a href="#" title="Data.Eq"
+ >Eq</a
+ > a) =&gt; <a href="#" title="Data.Eq"
+ >Eq</a
> (<a href="#" title="Bug1004"
>Product</a
> f g a)</span
></td
- ><td class="doc empty"
- >&nbsp;</td
+ ><td class="doc"
+ ><p
+ ><em
+ >Since: base-4.9.0.0</em
+ ></p
+ ></td
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Generic:20"
+ ><details id="i:id:Product:Eq:21"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
>Defined in <a href="#"
>Data.Functor.Product</a
></p
- > <div class="subs associated-types"
- ><p class="caption"
- >Associated Types</p
- ><p class="src"
- ><span class="keyword"
- >type</span
- > <a href="#" title="GHC.Generics"
- >Rep</a
- > (<a href="#" title="Bug1004"
- >Product</a
- > f g a) :: <a href="#" title="Data.Kind"
- >Type</a
- > -&gt; <a href="#" title="Data.Kind"
- >Type</a
- > <a href="#" class="selflink"
- >#</a
- ></p
- ></div
> <div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
><a href="#"
- >from</a
+ >(==)</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a -&gt; <a href="#" title="GHC.Generics"
- >Rep</a
- > (<a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a) x <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >to</a
- > :: <a href="#" title="GHC.Generics"
- >Rep</a
- > (<a href="#" title="Bug1004"
+ >(/=)</a
+ > :: <a href="#" title="Bug1004"
>Product</a
- > f g a) x -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
></div
@@ -1886,14 +1904,16 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Semigroup:21"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord:22"
></span
- > (<a href="#" title="Prelude"
- >Semigroup</a
- > (f a), <a href="#" title="Prelude"
- >Semigroup</a
- > (g a)) =&gt; <a href="#" title="Prelude"
- >Semigroup</a
+ > (<a href="#" title="Data.Functor.Classes"
+ >Ord1</a
+ > f, <a href="#" title="Data.Functor.Classes"
+ >Ord1</a
+ > g, <a href="#" title="Data.Ord"
+ >Ord</a
+ > a) =&gt; <a href="#" title="Data.Ord"
+ >Ord</a
> (<a href="#" title="Bug1004"
>Product</a
> f g a)</span
@@ -1901,13 +1921,13 @@
><td class="doc"
><p
><em
- >Since: base-4.16.0.0</em
+ >Since: base-4.9.0.0</em
></p
></td
></tr
><tr
><td colspan="2"
- ><details id="i:id:Product:Semigroup:21"
+ ><details id="i:id:Product:Ord:22"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1919,89 +1939,67 @@
>Methods</p
><p class="src"
><a href="#"
- >(&lt;&gt;)</a
+ >compare</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
+ > f g a -&gt; <a href="#" title="Data.Ord"
+ >Ordering</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(&lt;)</a
+ > :: <a href="#" title="Bug1004"
+ >Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >sconcat</a
- > :: <a href="#" title="Data.List.NonEmpty"
- >NonEmpty</a
- > (<a href="#" title="Bug1004"
+ >(&lt;=)</a
+ > :: <a href="#" title="Bug1004"
>Product</a
- > f g a) -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >stimes</a
- > :: <a href="#" title="Prelude"
- >Integral</a
- > b =&gt; b -&gt; <a href="#" title="Bug1004"
+ >(&gt;)</a
+ > :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
- ></div
- ></details
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monoid:22"
- ></span
- > (<a href="#" title="Data.Monoid"
- >Monoid</a
- > (f a), <a href="#" title="Data.Monoid"
- >Monoid</a
- > (g a)) =&gt; <a href="#" title="Data.Monoid"
- >Monoid</a
- > (<a href="#" title="Bug1004"
- >Product</a
- > f g a)</span
- ></td
- ><td class="doc"
- ><p
- ><em
- >Since: base-4.16.0.0</em
- ></p
- ></td
- ></tr
- ><tr
- ><td colspan="2"
- ><details id="i:id:Product:Monoid:22"
- ><summary class="hide-when-js-enabled"
- >Instance details</summary
- ><p
- >Defined in <a href="#"
- >Data.Functor.Product</a
- ></p
- > <div class="subs methods"
- ><p class="caption"
- >Methods</p
><p class="src"
><a href="#"
- >mempty</a
+ >(&gt;=)</a
> :: <a href="#" title="Bug1004"
>Product</a
- > f g a <a href="#" class="selflink"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a -&gt; <a href="#" title="Data.Bool"
+ >Bool</a
+ > <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >mappend</a
+ >max</a
> :: <a href="#" title="Bug1004"
>Product</a
> f g a -&gt; <a href="#" title="Bug1004"
@@ -2013,10 +2011,12 @@
></p
><p class="src"
><a href="#"
- >mconcat</a
- > :: [<a href="#" title="Bug1004"
+ >min</a
+ > :: <a href="#" title="Bug1004"
>Product</a
- > f g a] -&gt; <a href="#" title="Bug1004"
+ > f g a -&gt; <a href="#" title="Bug1004"
+ >Product</a
+ > f g a -&gt; <a href="#" title="Bug1004"
>Product</a
> f g a <a href="#" class="selflink"
>#</a
diff --git a/html-test/ref/Bug1103.html b/html-test/ref/Bug1103.html
index 1cfbda81..60af9b86 100644
--- a/html-test/ref/Bug1103.html
+++ b/html-test/ref/Bug1103.html
@@ -398,6 +398,8 @@
>Foo3</a
> (a :: <a href="#" title="Data.Char"
>Char</a
+ > -&gt; <a href="#" title="Data.Char"
+ >Char</a
>)</span
> <a href="#" class="selflink"
>#</a
@@ -421,6 +423,8 @@
>Foo3</a
> (a :: <a href="#" title="Data.Char"
>Char</a
+ > -&gt; <a href="#" title="Data.Char"
+ >Char</a
>)</div
></details
></td
@@ -436,8 +440,6 @@
>Foo3</a
> (a :: <a href="#" title="Data.Char"
>Char</a
- > -&gt; <a href="#" title="Data.Char"
- >Char</a
>)</span
> <a href="#" class="selflink"
>#</a
@@ -461,8 +463,6 @@
>Foo3</a
> (a :: <a href="#" title="Data.Char"
>Char</a
- > -&gt; <a href="#" title="Data.Char"
- >Char</a
>)</div
></details
></td
diff --git a/html-test/ref/Bug548.html b/html-test/ref/Bug548.html
index db325dac..594480c7 100644
--- a/html-test/ref/Bug548.html
+++ b/html-test/ref/Bug548.html
@@ -186,12 +186,14 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:WrappedArrow:Functor:2"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:WrappedArrow:Alternative:2"
></span
- > <a href="#" title="Control.Arrow"
- >Arrow</a
- > a =&gt; <a href="#" title="Data.Functor"
- >Functor</a
+ > (<a href="#" title="Control.Arrow"
+ >ArrowZero</a
+ > a, <a href="#" title="Control.Arrow"
+ >ArrowPlus</a
+ > a) =&gt; <a href="#" title="Control.Applicative"
+ >Alternative</a
> (<a href="#" title="Bug548"
>WrappedArrow</a
> a b)</span
@@ -205,7 +207,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:WrappedArrow:Functor:2"
+ ><details id="i:id:WrappedArrow:Alternative:2"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -217,22 +219,42 @@
>Methods</p
><p class="src"
><a href="#"
- >fmap</a
- > :: (a0 -&gt; b0) -&gt; <a href="#" title="Bug548"
+ >empty</a
+ > :: <a href="#" title="Bug548"
+ >WrappedArrow</a
+ > a b a0 <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(&lt;|&gt;)</a
+ > :: <a href="#" title="Bug548"
>WrappedArrow</a
> a b a0 -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
- > a b b0 <a href="#" class="selflink"
+ > a b a0 -&gt; <a href="#" title="Bug548"
+ >WrappedArrow</a
+ > a b a0 <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >(&lt;$)</a
- > :: a0 -&gt; <a href="#" title="Bug548"
+ >some</a
+ > :: <a href="#" title="Bug548"
>WrappedArrow</a
- > a b b0 -&gt; <a href="#" title="Bug548"
+ > a b a0 -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
- > a b a0 <a href="#" class="selflink"
+ > a b [a0] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >many</a
+ > :: <a href="#" title="Bug548"
+ >WrappedArrow</a
+ > a b a0 -&gt; <a href="#" title="Bug548"
+ >WrappedArrow</a
+ > a b [a0] <a href="#" class="selflink"
>#</a
></p
></div
@@ -334,14 +356,12 @@
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:WrappedArrow:Alternative:4"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:WrappedArrow:Functor:4"
></span
- > (<a href="#" title="Control.Arrow"
- >ArrowZero</a
- > a, <a href="#" title="Control.Arrow"
- >ArrowPlus</a
- > a) =&gt; <a href="#" title="Control.Applicative"
- >Alternative</a
+ > <a href="#" title="Control.Arrow"
+ >Arrow</a
+ > a =&gt; <a href="#" title="Data.Functor"
+ >Functor</a
> (<a href="#" title="Bug548"
>WrappedArrow</a
> a b)</span
@@ -355,7 +375,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:id:WrappedArrow:Alternative:4"
+ ><details id="i:id:WrappedArrow:Functor:4"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -367,42 +387,22 @@
>Methods</p
><p class="src"
><a href="#"
- >empty</a
- > :: <a href="#" title="Bug548"
- >WrappedArrow</a
- > a b a0 <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >(&lt;|&gt;)</a
- > :: <a href="#" title="Bug548"
- >WrappedArrow</a
- > a b a0 -&gt; <a href="#" title="Bug548"
- >WrappedArrow</a
- > a b a0 -&gt; <a href="#" title="Bug548"
- >WrappedArrow</a
- > a b a0 <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >some</a
- > :: <a href="#" title="Bug548"
+ >fmap</a
+ > :: (a0 -&gt; b0) -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
> a b a0 -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
- > a b [a0] <a href="#" class="selflink"
+ > a b b0 <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
- >many</a
- > :: <a href="#" title="Bug548"
+ >(&lt;$)</a
+ > :: a0 -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
- > a b a0 -&gt; <a href="#" title="Bug548"
+ > a b b0 -&gt; <a href="#" title="Bug548"
>WrappedArrow</a
- > a b [a0] <a href="#" class="selflink"
+ > a b a0 <a href="#" class="selflink"
>#</a
></p
></div
diff --git a/html-test/ref/HiddenInstances.html b/html-test/ref/HiddenInstances.html
index 4098771e..71a80862 100644
--- a/html-test/ref/HiddenInstances.html
+++ b/html-test/ref/HiddenInstances.html
@@ -98,8 +98,8 @@
></span
> <a href="#" title="HiddenInstances"
>VisibleClass</a
- > <a href="#" title="Data.Int"
- >Int</a
+ > <a href="#" title="HiddenInstances"
+ >VisibleData</a
></span
> <a href="#" class="selflink"
>#</a
@@ -128,8 +128,8 @@
></span
> <a href="#" title="HiddenInstances"
>VisibleClass</a
- > <a href="#" title="HiddenInstances"
- >VisibleData</a
+ > <a href="#" title="Data.Int"
+ >Int</a
></span
> <a href="#" class="selflink"
>#</a
diff --git a/html-test/ref/Instances.html b/html-test/ref/Instances.html
index e7eecb4d..9e9f2300 100644
--- a/html-test/ref/Instances.html
+++ b/html-test/ref/Instances.html
@@ -200,7 +200,9 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > []</span
+ > <a href="#" title="Data.Maybe"
+ >Maybe</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -222,19 +224,31 @@
><p class="src"
><a href="#"
>foo</a
- > :: [<a href="#" title="Data.Int"
+ > :: <a href="#" title="Data.Maybe"
+ >Maybe</a
+ > <a href="#" title="Data.Int"
>Int</a
- >] -&gt; a -&gt; [a] <a href="#" class="selflink"
+ > -&gt; a -&gt; <a href="#" title="Data.Maybe"
+ >Maybe</a
+ > a <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: [[a]] -&gt; <a href="#" title="Data.Int"
+ > :: <a href="#" title="Data.Maybe"
+ >Maybe</a
+ > (<a href="#" title="Data.Maybe"
+ >Maybe</a
+ > a) -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; [[<a href="#" title="Data.Int"
+ > -&gt; <a href="#" title="Data.Maybe"
+ >Maybe</a
+ > (<a href="#" title="Data.Maybe"
+ >Maybe</a
+ > <a href="#" title="Data.Int"
>Int</a
- >]] <a href="#" class="selflink"
+ >) <a href="#" class="selflink"
>#</a
></p
></div
@@ -248,9 +262,7 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > <a href="#" title="Data.Maybe"
- >Maybe</a
- ></span
+ > []</span
> <a href="#" class="selflink"
>#</a
></td
@@ -272,31 +284,19 @@
><p class="src"
><a href="#"
>foo</a
- > :: <a href="#" title="Data.Maybe"
- >Maybe</a
- > <a href="#" title="Data.Int"
+ > :: [<a href="#" title="Data.Int"
>Int</a
- > -&gt; a -&gt; <a href="#" title="Data.Maybe"
- >Maybe</a
- > a <a href="#" class="selflink"
+ >] -&gt; a -&gt; [a] <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: <a href="#" title="Data.Maybe"
- >Maybe</a
- > (<a href="#" title="Data.Maybe"
- >Maybe</a
- > a) -&gt; <a href="#" title="Data.Int"
+ > :: [[a]] -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; <a href="#" title="Data.Maybe"
- >Maybe</a
- > (<a href="#" title="Data.Maybe"
- >Maybe</a
- > <a href="#" title="Data.Int"
+ > -&gt; [[<a href="#" title="Data.Int"
>Int</a
- >) <a href="#" class="selflink"
+ >]] <a href="#" class="selflink"
>#</a
></p
></div
@@ -370,15 +370,11 @@
><span class="inst-left"
><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:4"
></span
- > (<a href="#" title="Data.Eq"
- >Eq</a
- > a, <a href="#" title="Instances"
- >Foo</a
- > f) =&gt; <a href="#" title="Instances"
+ > <a href="#" title="Instances"
>Foo</a
- > (<a href="#" title="GHC.Tuple"
- >(,)</a
- > (f a))</span
+ > (<a href="#" title="Instances"
+ >(&lt;~~)</a
+ > a)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -400,19 +396,31 @@
><p class="src"
><a href="#"
>foo</a
- > :: (f a, <a href="#" title="Data.Int"
+ > :: (a <a href="#" title="Instances"
+ >&lt;~~</a
+ > <a href="#" title="Data.Int"
>Int</a
- >) -&gt; a0 -&gt; (f a, a0) <a href="#" class="selflink"
+ >) -&gt; a0 -&gt; a <a href="#" title="Instances"
+ >&lt;~~</a
+ > a0 <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: (f a, (f a, a0)) -&gt; <a href="#" title="Data.Int"
+ > :: (a <a href="#" title="Instances"
+ >&lt;~~</a
+ > (a <a href="#" title="Instances"
+ >&lt;~~</a
+ > a0)) -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; (f a, (f a, <a href="#" title="Data.Int"
+ > -&gt; a <a href="#" title="Instances"
+ >&lt;~~</a
+ > (a <a href="#" title="Instances"
+ >&lt;~~</a
+ > <a href="#" title="Data.Int"
>Int</a
- >)) <a href="#" class="selflink"
+ >) <a href="#" class="selflink"
>#</a
></p
></div
@@ -424,11 +432,15 @@
><span class="inst-left"
><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Foo:Foo:5"
></span
- > <a href="#" title="Instances"
+ > (<a href="#" title="Data.Eq"
+ >Eq</a
+ > a, <a href="#" title="Instances"
>Foo</a
- > (<a href="#" title="Instances"
- >(&lt;~~)</a
- > a)</span
+ > f) =&gt; <a href="#" title="Instances"
+ >Foo</a
+ > (<a href="#" title="GHC.Tuple"
+ >(,)</a
+ > (f a))</span
> <a href="#" class="selflink"
>#</a
></td
@@ -450,31 +462,19 @@
><p class="src"
><a href="#"
>foo</a
- > :: (a <a href="#" title="Instances"
- >&lt;~~</a
- > <a href="#" title="Data.Int"
+ > :: (f a, <a href="#" title="Data.Int"
>Int</a
- >) -&gt; a0 -&gt; a <a href="#" title="Instances"
- >&lt;~~</a
- > a0 <a href="#" class="selflink"
+ >) -&gt; a0 -&gt; (f a, a0) <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: (a <a href="#" title="Instances"
- >&lt;~~</a
- > (a <a href="#" title="Instances"
- >&lt;~~</a
- > a0)) -&gt; <a href="#" title="Data.Int"
+ > :: (f a, (f a, a0)) -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; a <a href="#" title="Instances"
- >&lt;~~</a
- > (a <a href="#" title="Instances"
- >&lt;~~</a
- > <a href="#" title="Data.Int"
+ > -&gt; (f a, (f a, <a href="#" title="Data.Int"
>Int</a
- >) <a href="#" class="selflink"
+ >)) <a href="#" class="selflink"
>#</a
></p
></div
@@ -488,9 +488,9 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > (<a href="#" title="GHC.Tuple"
- >(,,)</a
- > a a)</span
+ > (<a href="#" title="Instances"
+ >Quux</a
+ > a b)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -512,19 +512,31 @@
><p class="src"
><a href="#"
>foo</a
- > :: (a, a, <a href="#" title="Data.Int"
+ > :: <a href="#" title="Instances"
+ >Quux</a
+ > a b <a href="#" title="Data.Int"
>Int</a
- >) -&gt; a0 -&gt; (a, a, a0) <a href="#" class="selflink"
+ > -&gt; a0 -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b a0 <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: (a, a, (a, a, a0)) -&gt; <a href="#" title="Data.Int"
+ > :: <a href="#" title="Instances"
+ >Quux</a
+ > a b (<a href="#" title="Instances"
+ >Quux</a
+ > a b a0) -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; (a, a, (a, a, <a href="#" title="Data.Int"
+ > -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b (<a href="#" title="Instances"
+ >Quux</a
+ > a b <a href="#" title="Data.Int"
>Int</a
- >)) <a href="#" class="selflink"
+ >) <a href="#" class="selflink"
>#</a
></p
></div
@@ -538,9 +550,9 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > (<a href="#" title="Instances"
- >Quux</a
- > a b)</span
+ > (<a href="#" title="GHC.Tuple"
+ >(,,)</a
+ > a a)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -562,31 +574,19 @@
><p class="src"
><a href="#"
>foo</a
- > :: <a href="#" title="Instances"
- >Quux</a
- > a b <a href="#" title="Data.Int"
+ > :: (a, a, <a href="#" title="Data.Int"
>Int</a
- > -&gt; a0 -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b a0 <a href="#" class="selflink"
+ >) -&gt; a0 -&gt; (a, a, a0) <a href="#" class="selflink"
>#</a
></p
><p class="src"
><a href="#"
>foo'</a
- > :: <a href="#" title="Instances"
- >Quux</a
- > a b (<a href="#" title="Instances"
- >Quux</a
- > a b a0) -&gt; <a href="#" title="Data.Int"
+ > :: (a, a, (a, a, a0)) -&gt; <a href="#" title="Data.Int"
>Int</a
- > -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b (<a href="#" title="Instances"
- >Quux</a
- > a b <a href="#" title="Data.Int"
+ > -&gt; (a, a, (a, a, <a href="#" title="Data.Int"
>Int</a
- >) <a href="#" class="selflink"
+ >)) <a href="#" class="selflink"
>#</a
></p
></div
@@ -1045,68 +1045,6 @@
><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:5"
></span
> <a href="#" title="Instances"
- >Foo</a
- > (<a href="#" title="GHC.Tuple"
- >(,,)</a
- > a b) =&gt; <a href="#" title="Instances"
- >Bar</a
- > (<a href="#" title="GHC.Tuple"
- >(,,)</a
- > a b) (a, b, a)</span
- > <a href="#" class="selflink"
- >#</a
- ></td
- ><td class="doc empty"
- >&nbsp;</td
- ></tr
- ><tr
- ><td colspan="2"
- ><details id="i:ic:Bar:Bar:5"
- ><summary class="hide-when-js-enabled"
- >Instance details</summary
- ><p
- >Defined in <a href="#"
- >Instances</a
- ></p
- > <div class="subs methods"
- ><p class="caption"
- >Methods</p
- ><p class="src"
- ><a href="#"
- >bar</a
- > :: (a, b, (a, b, a)) -&gt; (a, b, <a href="#" title="Data.Bool"
- >Bool</a
- >) -&gt; (a, b, a) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >bar'</a
- > :: (a, b, (a, b, (a, b, a))) -&gt; (a, b, (a, b, (a, b, b0))) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >bar0</a
- > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b0), (a, b, c)) <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >bar1</a
- > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b0), (a, b, c)) <a href="#" class="selflink"
- >#</a
- ></p
- ></div
- ></details
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:6"
- ></span
- > <a href="#" title="Instances"
>Bar</a
> (<a href="#" title="Instances"
>Quux</a
@@ -1121,7 +1059,7 @@
></tr
><tr
><td colspan="2"
- ><details id="i:ic:Bar:Bar:6"
+ ><details id="i:ic:Bar:Bar:5"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -1205,6 +1143,68 @@
></details
></td
></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:Bar:Bar:6"
+ ></span
+ > <a href="#" title="Instances"
+ >Foo</a
+ > (<a href="#" title="GHC.Tuple"
+ >(,,)</a
+ > a b) =&gt; <a href="#" title="Instances"
+ >Bar</a
+ > (<a href="#" title="GHC.Tuple"
+ >(,,)</a
+ > a b) (a, b, a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ >&nbsp;</td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><details id="i:ic:Bar:Bar:6"
+ ><summary class="hide-when-js-enabled"
+ >Instance details</summary
+ ><p
+ >Defined in <a href="#"
+ >Instances</a
+ ></p
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: (a, b, (a, b, a)) -&gt; (a, b, <a href="#" title="Data.Bool"
+ >Bool</a
+ >) -&gt; (a, b, a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: (a, b, (a, b, (a, b, a))) -&gt; (a, b, (a, b, (a, b, b0))) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b0), (a, b, c)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b0), (a, b, c)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></details
+ ></td
+ ></tr
></table
></details
></div
@@ -1400,7 +1400,9 @@
></span
> <a href="#" title="Instances"
>Baz</a
- > (a, b, c)</span
+ > (<a href="#" title="Instances"
+ >Quux</a
+ > a b c)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -1422,11 +1424,15 @@
><p class="src"
><a href="#"
>baz</a
- > :: (a, b, c) -&gt; (<span class="keyword"
+ > :: <a href="#" title="Instances"
+ >Quux</a
+ > a b c -&gt; (<span class="keyword"
>forall</span
> a0. a0 -&gt; a0) -&gt; (b0, <span class="keyword"
>forall</span
- > c0. c0 -&gt; (a, b, c)) -&gt; (b0, c1) <a href="#" class="selflink"
+ > c0. c0 -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b c) -&gt; (b0, c1) <a href="#" class="selflink"
>#</a
></p
><p class="src"
@@ -1434,9 +1440,15 @@
>baz'</a
> :: b0 -&gt; (<span class="keyword"
>forall</span
- > b1. b1 -&gt; (a, b, c)) -&gt; (<span class="keyword"
+ > b1. b1 -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b c) -&gt; (<span class="keyword"
>forall</span
- > b2. b2 -&gt; (a, b, c)) -&gt; [(b0, (a, b, c))] <a href="#" class="selflink"
+ > b2. b2 -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b c) -&gt; [(b0, <a href="#" title="Instances"
+ >Quux</a
+ > a b c)] <a href="#" class="selflink"
>#</a
></p
><p class="src"
@@ -1446,7 +1458,9 @@
>forall</span
> b1. (<span class="keyword"
>forall</span
- > b2. b2 -&gt; (a, b, c)) -&gt; c0) -&gt; <span class="keyword"
+ > b2. b2 -&gt; <a href="#" title="Instances"
+ >Quux</a
+ > a b c) -&gt; c0) -&gt; <span class="keyword"
>forall</span
> c1. c1 -&gt; b0 <a href="#" class="selflink"
>#</a
@@ -1462,9 +1476,7 @@
></span
> <a href="#" title="Instances"
>Baz</a
- > (<a href="#" title="Instances"
- >Quux</a
- > a b c)</span
+ > (a, b, c)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -1486,15 +1498,11 @@
><p class="src"
><a href="#"
>baz</a
- > :: <a href="#" title="Instances"
- >Quux</a
- > a b c -&gt; (<span class="keyword"
+ > :: (a, b, c) -&gt; (<span class="keyword"
>forall</span
> a0. a0 -&gt; a0) -&gt; (b0, <span class="keyword"
>forall</span
- > c0. c0 -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b c) -&gt; (b0, c1) <a href="#" class="selflink"
+ > c0. c0 -&gt; (a, b, c)) -&gt; (b0, c1) <a href="#" class="selflink"
>#</a
></p
><p class="src"
@@ -1502,15 +1510,9 @@
>baz'</a
> :: b0 -&gt; (<span class="keyword"
>forall</span
- > b1. b1 -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b c) -&gt; (<span class="keyword"
+ > b1. b1 -&gt; (a, b, c)) -&gt; (<span class="keyword"
>forall</span
- > b2. b2 -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b c) -&gt; [(b0, <a href="#" title="Instances"
- >Quux</a
- > a b c)] <a href="#" class="selflink"
+ > b2. b2 -&gt; (a, b, c)) -&gt; [(b0, (a, b, c))] <a href="#" class="selflink"
>#</a
></p
><p class="src"
@@ -1520,9 +1522,7 @@
>forall</span
> b1. (<span class="keyword"
>forall</span
- > b2. b2 -&gt; <a href="#" title="Instances"
- >Quux</a
- > a b c) -&gt; c0) -&gt; <span class="keyword"
+ > b2. b2 -&gt; (a, b, c)) -&gt; c0) -&gt; <span class="keyword"
>forall</span
> c1. c1 -&gt; b0 <a href="#" class="selflink"
>#</a
diff --git a/html-test/ref/SpuriousSuperclassConstraints.html b/html-test/ref/SpuriousSuperclassConstraints.html
index ec9ccbd3..cbdc8956 100644
--- a/html-test/ref/SpuriousSuperclassConstraints.html
+++ b/html-test/ref/SpuriousSuperclassConstraints.html
@@ -96,59 +96,7 @@ Fix spurious superclass constraints bug.</pre
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Functor:1"
- ></span
- > <a href="#" title="Data.Functor"
- >Functor</a
- > (<a href="#" title="SpuriousSuperclassConstraints"
- >SomeType</a
- > f)</span
- > <a href="#" class="selflink"
- >#</a
- ></td
- ><td class="doc empty"
- >&nbsp;</td
- ></tr
- ><tr
- ><td colspan="2"
- ><details id="i:id:SomeType:Functor:1"
- ><summary class="hide-when-js-enabled"
- >Instance details</summary
- ><p
- >Defined in <a href="#"
- >SpuriousSuperclassConstraints</a
- ></p
- > <div class="subs methods"
- ><p class="caption"
- >Methods</p
- ><p class="src"
- ><a href="#"
- >fmap</a
- > :: (a -&gt; b) -&gt; <a href="#" title="SpuriousSuperclassConstraints"
- >SomeType</a
- > f a -&gt; <a href="#" title="SpuriousSuperclassConstraints"
- >SomeType</a
- > f b <a href="#" class="selflink"
- >#</a
- ></p
- ><p class="src"
- ><a href="#"
- >(&lt;$)</a
- > :: a -&gt; <a href="#" title="SpuriousSuperclassConstraints"
- >SomeType</a
- > f b -&gt; <a href="#" title="SpuriousSuperclassConstraints"
- >SomeType</a
- > f a <a href="#" class="selflink"
- >#</a
- ></p
- ></div
- ></details
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Applicative:2"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Applicative:1"
></span
> <a href="#" title="Control.Applicative"
>Applicative</a
@@ -165,7 +113,7 @@ Fix spurious superclass constraints bug.</pre
></tr
><tr
><td colspan="2"
- ><details id="i:id:SomeType:Applicative:2"
+ ><details id="i:id:SomeType:Applicative:1"
><summary class="hide-when-js-enabled"
>Instance details</summary
><p
@@ -235,6 +183,58 @@ Fix spurious superclass constraints bug.</pre
></details
></td
></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:SomeType:Functor:2"
+ ></span
+ > <a href="#" title="Data.Functor"
+ >Functor</a
+ > (<a href="#" title="SpuriousSuperclassConstraints"
+ >SomeType</a
+ > f)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ >&nbsp;</td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><details id="i:id:SomeType:Functor:2"
+ ><summary class="hide-when-js-enabled"
+ >Instance details</summary
+ ><p
+ >Defined in <a href="#"
+ >SpuriousSuperclassConstraints</a
+ ></p
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >fmap</a
+ > :: (a -&gt; b) -&gt; <a href="#" title="SpuriousSuperclassConstraints"
+ >SomeType</a
+ > f a -&gt; <a href="#" title="SpuriousSuperclassConstraints"
+ >SomeType</a
+ > f b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >(&lt;$)</a
+ > :: a -&gt; <a href="#" title="SpuriousSuperclassConstraints"
+ >SomeType</a
+ > f b -&gt; <a href="#" title="SpuriousSuperclassConstraints"
+ >SomeType</a
+ > f a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></details
+ ></td
+ ></tr
></table
></details
></div
diff --git a/html-test/ref/TypeFamilies.html b/html-test/ref/TypeFamilies.html
index 98d4f250..faf41370 100644
--- a/html-test/ref/TypeFamilies.html
+++ b/html-test/ref/TypeFamilies.html
@@ -580,13 +580,13 @@
></span
> <span class="keyword"
>type</span
- > <a href="#" title="TypeFamilies"
- >X</a
+ > '<a href="#" title="TypeFamilies"
+ >XXX</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > (a :: <a href="#" title="Data.Kind"
- >Type</a
- >)</span
+ > '<a href="#" title="TypeFamilies"
+ >XX</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -605,13 +605,13 @@
> <div class="src"
><span class="keyword"
>type</span
- > <a href="#" title="TypeFamilies"
- >X</a
+ > '<a href="#" title="TypeFamilies"
+ >XXX</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > (a :: <a href="#" title="Data.Kind"
- >Type</a
- >) = <a href="#" title="TypeFamilies"
+ > '<a href="#" title="TypeFamilies"
+ >XX</a
+ > = '<a href="#" title="TypeFamilies"
>X</a
></div
></details
@@ -624,13 +624,13 @@
></span
> <span class="keyword"
>type</span
- > '<a href="#" title="TypeFamilies"
- >XXX</a
+ > <a href="#" title="TypeFamilies"
+ >X</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > '<a href="#" title="TypeFamilies"
- >XX</a
- ></span
+ > (a :: <a href="#" title="Data.Kind"
+ >Type</a
+ >)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -649,13 +649,13 @@
> <div class="src"
><span class="keyword"
>type</span
- > '<a href="#" title="TypeFamilies"
- >XXX</a
+ > <a href="#" title="TypeFamilies"
+ >X</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > '<a href="#" title="TypeFamilies"
- >XX</a
- > = '<a href="#" title="TypeFamilies"
+ > (a :: <a href="#" title="Data.Kind"
+ >Type</a
+ >) = <a href="#" title="TypeFamilies"
>X</a
></div
></details
@@ -1157,14 +1157,14 @@
> <a href="#" title="TypeFamilies"
>Test</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: instance Test Y</p
+ >Doc for: instance Test X</p
></td
></tr
><tr
@@ -1187,14 +1187,14 @@
> <a href="#" title="TypeFamilies"
>Test</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: instance Test X</p
+ >Doc for: instance Test Y</p
></td
></tr
><tr
@@ -1243,14 +1243,14 @@
> <a href="#" title="TypeFamilies"
>Foo</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: type instance Foo Y = X</p
+ >Doc for: type instance Foo X = Y</p
></td
></tr
><tr
@@ -1268,9 +1268,9 @@
> <a href="#" title="TypeFamilies"
>Foo</a
> <a href="#" title="TypeFamilies"
- >Y</a
- > = <a href="#" title="TypeFamilies"
>X</a
+ > = <a href="#" title="TypeFamilies"
+ >Y</a
></div
></details
></td
@@ -1285,14 +1285,14 @@
> <a href="#" title="TypeFamilies"
>Foo</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: type instance Foo X = Y</p
+ >Doc for: type instance Foo Y = X</p
></td
></tr
><tr
@@ -1310,9 +1310,9 @@
> <a href="#" title="TypeFamilies"
>Foo</a
> <a href="#" title="TypeFamilies"
- >X</a
- > = <a href="#" title="TypeFamilies"
>Y</a
+ > = <a href="#" title="TypeFamilies"
+ >X</a
></div
></details
></td
@@ -1413,14 +1413,14 @@
> <a href="#" title="TypeFamilies"
>Bat</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: data instance Bat Y</p
+ >Doc for: data instance Bat X</p
></td
></tr
><tr
@@ -1438,11 +1438,33 @@
> <a href="#" title="TypeFamilies"
>Bat</a
> <a href="#" title="TypeFamilies"
- >Y</a
- > = <a id="v:BatY" class="def"
- >BatY</a
- > <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
+ > <ul class="inst"
+ ><li class="inst"
+ >= <a id="v:BatX" class="def"
+ >BatX</a
+ > <a href="#" title="TypeFamilies"
+ >X</a
+ ></li
+ ><li class="inst"
+ >| <a id="v:BatXX" class="def"
+ >BatXX</a
+ > { <ul class="subs"
+ ><li
+ ><a id="v:aaa" class="def"
+ >aaa</a
+ > :: <a href="#" title="TypeFamilies"
+ >X</a
+ ></li
+ ><li
+ ><a id="v:bbb" class="def"
+ >bbb</a
+ > :: <a href="#" title="TypeFamilies"
+ >Y</a
+ ></li
+ ></ul
+ > }</li
+ ></ul
></div
></details
></td
@@ -1457,14 +1479,14 @@
> <a href="#" title="TypeFamilies"
>Bat</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: data instance Bat X</p
+ >Doc for: data instance Bat Y</p
></td
></tr
><tr
@@ -1482,33 +1504,11 @@
> <a href="#" title="TypeFamilies"
>Bat</a
> <a href="#" title="TypeFamilies"
- >X</a
- > <ul class="inst"
- ><li class="inst"
- >= <a id="v:BatX" class="def"
- >BatX</a
- > <a href="#" title="TypeFamilies"
- >X</a
- ></li
- ><li class="inst"
- >| <a id="v:BatXX" class="def"
- >BatXX</a
- > { <ul class="subs"
- ><li
- ><a id="v:aaa" class="def"
- >aaa</a
- > :: <a href="#" title="TypeFamilies"
- >X</a
- ></li
- ><li
- ><a id="v:bbb" class="def"
- >bbb</a
- > :: <a href="#" title="TypeFamilies"
- >Y</a
- ></li
- ></ul
- > }</li
- ></ul
+ >Y</a
+ > = <a id="v:BatY" class="def"
+ >BatY</a
+ > <a href="#" title="TypeFamilies"
+ >Y</a
></div
></details
></td
@@ -1573,14 +1573,14 @@
> <a href="#" title="TypeFamilies"
>Assoc</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: instance Assoc Y</p
+ >Doc for: instance Assoc X</p
></td
></tr
><tr
@@ -1601,7 +1601,7 @@
> <a href="#" title="TypeFamilies"
>AssocD</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1611,7 +1611,7 @@
> <a href="#" title="TypeFamilies"
>AssocT</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1627,14 +1627,14 @@
> <a href="#" title="TypeFamilies"
>Assoc</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Doc for: instance Assoc X</p
+ >Doc for: instance Assoc Y</p
></td
></tr
><tr
@@ -1655,7 +1655,7 @@
> <a href="#" title="TypeFamilies"
>AssocD</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1665,7 +1665,7 @@
> <a href="#" title="TypeFamilies"
>AssocT</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1744,13 +1744,13 @@
></span
> <span class="keyword"
>type</span
- > <a href="#" title="TypeFamilies"
- >Y</a
+ > '<a href="#" title="TypeFamilies"
+ >XXX</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > (a :: <a href="#" title="Data.Kind"
- >Type</a
- >)</span
+ > '<a href="#" title="TypeFamilies"
+ >XX</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -1769,13 +1769,15 @@
> <div class="src"
><span class="keyword"
>type</span
- > <a href="#" title="TypeFamilies"
- >Y</a
+ > '<a href="#" title="TypeFamilies"
+ >XXX</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > (a :: <a href="#" title="Data.Kind"
- >Type</a
- >) = a</div
+ > '<a href="#" title="TypeFamilies"
+ >XX</a
+ > = '<a href="#" title="TypeFamilies"
+ >X</a
+ ></div
></details
></td
></tr
@@ -1830,13 +1832,13 @@
></span
> <span class="keyword"
>type</span
- > '<a href="#" title="TypeFamilies"
- >XXX</a
+ > <a href="#" title="TypeFamilies"
+ >Y</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > '<a href="#" title="TypeFamilies"
- >XX</a
- ></span
+ > (a :: <a href="#" title="Data.Kind"
+ >Type</a
+ >)</span
> <a href="#" class="selflink"
>#</a
></td
@@ -1855,15 +1857,13 @@
> <div class="src"
><span class="keyword"
>type</span
- > '<a href="#" title="TypeFamilies"
- >XXX</a
+ > <a href="#" title="TypeFamilies"
+ >Y</a
> <a href="#" title="TypeFamilies"
>&lt;&gt;</a
- > '<a href="#" title="TypeFamilies"
- >XX</a
- > = '<a href="#" title="TypeFamilies"
- >X</a
- ></div
+ > (a :: <a href="#" title="Data.Kind"
+ >Type</a
+ >) = a</div
></details
></td
></tr
diff --git a/html-test/ref/TypeFamilies2.html b/html-test/ref/TypeFamilies2.html
index 6095eb58..1be5da83 100644
--- a/html-test/ref/TypeFamilies2.html
+++ b/html-test/ref/TypeFamilies2.html
@@ -212,15 +212,15 @@
>type</span
> <a href="#" title="TypeFamilies2"
>Foo</a
- > <a href="#" title="TypeFamilies2"
- >W</a
+ > <a href="#" title="TypeFamilies"
+ >X</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >Should be visible, but with a hidden right hand side</p
+ >External instance</p
></td
></tr
><tr
@@ -230,15 +230,17 @@
>Instance details</summary
><p
>Defined in <a href="#"
- >TypeFamilies2</a
+ >TypeFamilies</a
></p
> <div class="src"
><span class="keyword"
>type</span
> <a href="#" title="TypeFamilies2"
>Foo</a
- > <a href="#" title="TypeFamilies2"
- >W</a
+ > <a href="#" title="TypeFamilies"
+ >X</a
+ > = <a href="#" title="TypeFamilies"
+ >Y</a
></div
></details
></td
@@ -252,15 +254,15 @@
>type</span
> <a href="#" title="TypeFamilies2"
>Foo</a
- > <a href="#" title="TypeFamilies"
- >X</a
+ > <a href="#" title="TypeFamilies2"
+ >W</a
></span
> <a href="#" class="selflink"
>#</a
></td
><td class="doc"
><p
- >External instance</p
+ >Should be visible, but with a hidden right hand side</p
></td
></tr
><tr
@@ -270,17 +272,15 @@
>Instance details</summary
><p
>Defined in <a href="#"
- >TypeFamilies</a
+ >TypeFamilies2</a
></p
> <div class="src"
><span class="keyword"
>type</span
> <a href="#" title="TypeFamilies2"
>Foo</a
- > <a href="#" title="TypeFamilies"
- >X</a
- > = <a href="#" title="TypeFamilies"
- >Y</a
+ > <a href="#" title="TypeFamilies2"
+ >W</a
></div
></details
></td
@@ -318,16 +318,14 @@
>data</span
> <a href="#" title="TypeFamilies2"
>Bar</a
- > <a href="#" title="TypeFamilies2"
- >W</a
+ > <a href="#" title="TypeFamilies"
+ >Y</a
></span
> <a href="#" class="selflink"
>#</a
></td
- ><td class="doc"
- ><p
- >Shown because BarX is still exported despite Z being hidden</p
- ></td
+ ><td class="doc empty"
+ >&nbsp;</td
></tr
><tr
><td colspan="2"
@@ -336,18 +334,16 @@
>Instance details</summary
><p
>Defined in <a href="#"
- >TypeFamilies2</a
+ >TypeFamilies</a
></p
> <div class="src"
><span class="keyword"
>data</span
> <a href="#" title="TypeFamilies2"
>Bar</a
- > <a href="#" title="TypeFamilies2"
- >W</a
- > = <a id="v:BarX" class="def"
- >BarX</a
- > Z</div
+ > <a href="#" title="TypeFamilies"
+ >Y</a
+ ></div
></details
></td
></tr
@@ -360,14 +356,16 @@
>data</span
> <a href="#" title="TypeFamilies2"
>Bar</a
- > <a href="#" title="TypeFamilies"
- >Y</a
+ > <a href="#" title="TypeFamilies2"
+ >W</a
></span
> <a href="#" class="selflink"
>#</a
></td
- ><td class="doc empty"
- >&nbsp;</td
+ ><td class="doc"
+ ><p
+ >Shown because BarX is still exported despite Z being hidden</p
+ ></td
></tr
><tr
><td colspan="2"
@@ -376,16 +374,18 @@
>Instance details</summary
><p
>Defined in <a href="#"
- >TypeFamilies</a
+ >TypeFamilies2</a
></p
> <div class="src"
><span class="keyword"
>data</span
> <a href="#" title="TypeFamilies2"
>Bar</a
- > <a href="#" title="TypeFamilies"
- >Y</a
- ></div
+ > <a href="#" title="TypeFamilies2"
+ >W</a
+ > = <a id="v:BarX" class="def"
+ >BarX</a
+ > Z</div
></details
></td
></tr
diff --git a/html-test/ref/TypeFamilies3.html b/html-test/ref/TypeFamilies3.html
index a926601b..5e2d1ea7 100644
--- a/html-test/ref/TypeFamilies3.html
+++ b/html-test/ref/TypeFamilies3.html
@@ -148,9 +148,7 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > <a href="#" title="Data.Int"
- >Int</a
- ></span
+ > ()</span
> <a href="#" class="selflink"
>#</a
></td
@@ -171,9 +169,9 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > <a href="#" title="Data.Int"
+ > () = <a href="#" title="Data.Int"
>Int</a
- > = ()</div
+ ></div
></details
></td
></tr
@@ -186,7 +184,9 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > ()</span
+ > <a href="#" title="Data.Int"
+ >Int</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -207,9 +207,9 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > () = <a href="#" title="Data.Int"
+ > <a href="#" title="Data.Int"
>Int</a
- ></div
+ > = ()</div
></details
></td
></tr
@@ -243,12 +243,10 @@
><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Baz:Baz:1"
></span
> <span class="keyword"
- >newtype</span
+ >data</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > <a href="#" title="Prelude"
- >Double</a
- ></span
+ > ()</span
> <a href="#" class="selflink"
>#</a
></td
@@ -266,15 +264,11 @@
></p
> <div class="src"
><span class="keyword"
- >newtype</span
+ >data</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > <a href="#" title="Prelude"
- >Double</a
- > = <a id="v:Baz3" class="def"
- >Baz3</a
- > <a href="#" title="Prelude"
- >Float</a
+ > () = <a id="v:Baz1" class="def"
+ >Baz1</a
></div
></details
></td
@@ -285,11 +279,11 @@
><span class="instance details-toggle-control details-toggle" data-details-id="i:if:Baz:Baz:2"
></span
> <span class="keyword"
- >data</span
+ >newtype</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > <a href="#" title="Data.Int"
- >Int</a
+ > <a href="#" title="Prelude"
+ >Double</a
></span
> <a href="#" class="selflink"
>#</a
@@ -308,15 +302,15 @@
></p
> <div class="src"
><span class="keyword"
- >data</span
+ >newtype</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > <a href="#" title="Data.Int"
- >Int</a
- > = <a id="v:Baz2" class="def"
- >Baz2</a
- > <a href="#" title="Data.Bool"
- >Bool</a
+ > <a href="#" title="Prelude"
+ >Double</a
+ > = <a id="v:Baz3" class="def"
+ >Baz3</a
+ > <a href="#" title="Prelude"
+ >Float</a
></div
></details
></td
@@ -330,7 +324,9 @@
>data</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > ()</span
+ > <a href="#" title="Data.Int"
+ >Int</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -351,8 +347,12 @@
>data</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > () = <a id="v:Baz1" class="def"
- >Baz1</a
+ > <a href="#" title="Data.Int"
+ >Int</a
+ > = <a id="v:Baz2" class="def"
+ >Baz2</a
+ > <a href="#" title="Data.Bool"
+ >Bool</a
></div
></details
></td
diff --git a/hypsrc-test/ref/src/Classes.html b/hypsrc-test/ref/src/Classes.html
index f3993425..0acd106d 100644
--- a/hypsrc-test/ref/src/Classes.html
+++ b/hypsrc-test/ref/src/Classes.html
@@ -194,7 +194,7 @@
><span class="annottext"
>bar :: Int -&gt; Int
</span
- ><a href="#"
+ ><a href="Classes.html#bar"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>bar</span
></a
@@ -226,7 +226,7 @@ forall a. a -&gt; a
><span class="annottext"
>baz :: Int -&gt; (Int, Int)
</span
- ><a href="#"
+ ><a href="Classes.html#baz"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>baz</span
></a
@@ -327,7 +327,7 @@ forall a. a -&gt; a
><span class="annottext"
>bar :: [a] -&gt; Int
</span
- ><a href="#"
+ ><a href="Classes.html#bar"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>bar</span
></a
@@ -359,7 +359,7 @@ forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
><span class="annottext"
>baz :: Int -&gt; ([a], [a])
</span
- ><a href="#"
+ ><a href="Classes.html#baz"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>baz</span
></a
@@ -798,7 +798,7 @@ forall a. Foo a =&gt; a -&gt; Int
><span class="annottext"
>norf :: [Int] -&gt; Int
</span
- ><a href="#"
+ ><a href="Classes.html#norf"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>norf</span
></a
@@ -870,7 +870,7 @@ forall (t :: * -&gt; *) a. (Foldable t, Num a) =&gt; t a -&gt; a
><span class="annottext"
>quux :: ([a], [a]) -&gt; [a]
</span
- ><a href="#"
+ ><a href="Classes.html#quux"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>quux</span
></a
@@ -1118,7 +1118,7 @@ forall a. [a] -&gt; [a] -&gt; [a]
><span class="annottext"
>plugh :: forall a b. Either a a -&gt; Either b b -&gt; Either (a -&gt; b) (b -&gt; a)
</span
- ><a href="#"
+ ><a href="Classes.html#plugh"
><span class="hs-identifier hs-var hs-var hs-var hs-var"
>plugh</span
></a
diff --git a/hypsrc-test/ref/src/Records.html b/hypsrc-test/ref/src/Records.html
index 9adf02de..256b952f 100644
--- a/hypsrc-test/ref/src/Records.html
+++ b/hypsrc-test/ref/src/Records.html
@@ -623,10 +623,10 @@ forall a. Num a =&gt; a -&gt; a -&gt; a
><span class="annot"
><span class="annottext"
>Int
-x :: Int
x :: Point -&gt; Int
+x :: Int
</span
- ><a href="#"
+ ><a href="Records.html#x"
><span class="hs-identifier hs-var hs-var"
>x</span
></a
@@ -640,10 +640,10 @@ x :: Point -&gt; Int
><span class="annot"
><span class="annottext"
>Int
-y :: Int
y :: Point -&gt; Int
+y :: Int
</span
- ><a href="#"
+ ><a href="Records.html#y"
><span class="hs-identifier hs-var hs-var"
>y</span
></a
@@ -1301,12 +1301,12 @@ forall a. Num a =&gt; a -&gt; a -&gt; a
><span class="annot"
><span class="annottext"
>Int
-y :: Int
-x :: Int
-y :: Point -&gt; Int
x :: Point -&gt; Int
+y :: Point -&gt; Int
+x :: Int
+y :: Int
</span
- ><a href="#"
+ ><a href="Records.html#x"
><span class="hs-glyph hs-var hs-var hs-var hs-var"
>..</span
></a
diff --git a/latex-test/ref/TypeFamilies3/TypeFamilies3.tex b/latex-test/ref/TypeFamilies3/TypeFamilies3.tex
index d8787704..38c143b0 100644
--- a/latex-test/ref/TypeFamilies3/TypeFamilies3.tex
+++ b/latex-test/ref/TypeFamilies3/TypeFamilies3.tex
@@ -27,7 +27,7 @@ An open family\par}
\end{haddockdesc}
\begin{haddockdesc}
\item[\begin{tabular}{@{}l}
-type instance Bar Int = ()\\type instance Bar () = Int
+type instance Bar () = Int\\type instance Bar Int = ()
\end{tabular}]
\end{haddockdesc}
\begin{haddockdesc}
@@ -39,6 +39,6 @@ A data family\par}
\end{haddockdesc}
\begin{haddockdesc}
\item[\begin{tabular}{@{}l}
-newtype instance Baz Double\\data instance Baz Int\\data instance Baz ()
+data instance Baz ()\\newtype instance Baz Double\\data instance Baz Int
\end{tabular}]
\end{haddockdesc} \ No newline at end of file