aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haddock-api/haddock-api.cabal1
-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
15 files changed, 1000 insertions, 985 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/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 b4ce3c88..cd959f7f 100644
--- a/html-test/ref/Bug1004.html
+++ b/html-test/ref/Bug1004.html
@@ -182,135 +182,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
@@ -331,7 +203,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
@@ -358,14 +230,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
@@ -379,7 +251,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
@@ -391,58 +263,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
@@ -452,7 +304,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
@@ -473,7 +325,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
@@ -648,14 +500,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
@@ -669,7 +521,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
@@ -681,50 +533,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
@@ -734,14 +552,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
@@ -755,7 +573,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
@@ -767,35 +585,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
@@ -806,7 +604,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
@@ -827,7 +625,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
@@ -906,14 +704,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
@@ -927,7 +725,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
@@ -939,15 +737,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
@@ -958,14 +776,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
@@ -979,7 +797,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
@@ -991,16 +809,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
@@ -1010,14 +862,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
@@ -1031,7 +883,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
@@ -1043,38 +895,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
@@ -1084,14 +940,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
@@ -1105,7 +961,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
@@ -1117,21 +973,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
@@ -1142,14 +1034,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
@@ -1163,7 +1055,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
@@ -1175,42 +1067,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
@@ -1220,19 +1162,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
@@ -1243,7 +1183,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
@@ -1255,26 +1195,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
@@ -1284,7 +1220,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
@@ -1313,7 +1249,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
@@ -1530,16 +1466,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
@@ -1547,13 +1481,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
@@ -1565,84 +1499,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
@@ -1654,7 +1680,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
@@ -1677,7 +1703,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
@@ -1736,7 +1762,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
@@ -1759,7 +1785,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
@@ -1808,69 +1834,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
@@ -1880,14 +1898,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
@@ -1895,13 +1915,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
@@ -1913,89 +1933,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"
@@ -2007,10 +2005,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 4d3772d1..c17eb7b8 100644
--- a/html-test/ref/Bug1103.html
+++ b/html-test/ref/Bug1103.html
@@ -392,6 +392,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
@@ -415,6 +417,8 @@
>Foo3</a
> (a :: <a href="#" title="Data.Char"
>Char</a
+ > -&gt; <a href="#" title="Data.Char"
+ >Char</a
>)</div
></details
></td
@@ -430,8 +434,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
@@ -455,8 +457,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 1ac40ae4..0946c21b 100644
--- a/html-test/ref/Bug548.html
+++ b/html-test/ref/Bug548.html
@@ -180,12 +180,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
@@ -199,7 +201,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
@@ -211,22 +213,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
@@ -328,14 +350,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
@@ -349,7 +369,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
@@ -361,42 +381,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 181b47f8..1964f4f8 100644
--- a/html-test/ref/HiddenInstances.html
+++ b/html-test/ref/HiddenInstances.html
@@ -92,8 +92,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
@@ -122,8 +122,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 c6a6b5ca..764f538d 100644
--- a/html-test/ref/Instances.html
+++ b/html-test/ref/Instances.html
@@ -194,7 +194,9 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > []</span
+ > <a href="#" title="Data.Maybe"
+ >Maybe</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -216,19 +218,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
@@ -242,9 +256,7 @@
></span
> <a href="#" title="Instances"
>Foo</a
- > <a href="#" title="Data.Maybe"
- >Maybe</a
- ></span
+ > []</span
> <a href="#" class="selflink"
>#</a
></td
@@ -266,31 +278,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
@@ -364,15 +364,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
@@ -394,19 +390,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
@@ -418,11 +426,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
@@ -444,31 +456,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
@@ -482,9 +482,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
@@ -506,19 +506,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
@@ -532,9 +544,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
@@ -556,31 +568,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
@@ -1039,68 +1039,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
@@ -1115,7 +1053,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
@@ -1199,6 +1137,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
@@ -1394,7 +1394,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
@@ -1416,11 +1418,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"
@@ -1428,9 +1434,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"
@@ -1440,7 +1452,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
@@ -1456,9 +1470,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
@@ -1480,15 +1492,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"
@@ -1496,15 +1504,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"
@@ -1514,9 +1516,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 7293a149..b5cf64c7 100644
--- a/html-test/ref/SpuriousSuperclassConstraints.html
+++ b/html-test/ref/SpuriousSuperclassConstraints.html
@@ -90,59 +90,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
@@ -159,7 +107,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
@@ -229,6 +177,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 7ca50972..29f67137 100644
--- a/html-test/ref/TypeFamilies.html
+++ b/html-test/ref/TypeFamilies.html
@@ -574,13 +574,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
@@ -599,13 +599,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
@@ -618,13 +618,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
@@ -643,13 +643,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
@@ -1151,14 +1151,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
@@ -1181,14 +1181,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
@@ -1237,14 +1237,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
@@ -1262,9 +1262,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
@@ -1279,14 +1279,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
@@ -1304,9 +1304,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
@@ -1407,14 +1407,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
@@ -1432,11 +1432,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
@@ -1451,14 +1473,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
@@ -1476,33 +1498,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
@@ -1567,14 +1567,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
@@ -1595,7 +1595,7 @@
> <a href="#" title="TypeFamilies"
>AssocD</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1605,7 +1605,7 @@
> <a href="#" title="TypeFamilies"
>AssocT</a
> <a href="#" title="TypeFamilies"
- >Y</a
+ >X</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1621,14 +1621,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
@@ -1649,7 +1649,7 @@
> <a href="#" title="TypeFamilies"
>AssocD</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1659,7 +1659,7 @@
> <a href="#" title="TypeFamilies"
>AssocT</a
> <a href="#" title="TypeFamilies"
- >X</a
+ >Y</a
> <a href="#" class="selflink"
>#</a
></p
@@ -1738,13 +1738,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
@@ -1763,13 +1763,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
@@ -1824,13 +1826,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
@@ -1849,15 +1851,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 8425a1d4..68c27231 100644
--- a/html-test/ref/TypeFamilies2.html
+++ b/html-test/ref/TypeFamilies2.html
@@ -206,15 +206,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
@@ -224,15 +224,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
@@ -246,15 +248,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
@@ -264,17 +266,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
@@ -312,16 +312,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"
@@ -330,18 +328,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
@@ -354,14 +350,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"
@@ -370,16 +368,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 88e74dd9..c1573f88 100644
--- a/html-test/ref/TypeFamilies3.html
+++ b/html-test/ref/TypeFamilies3.html
@@ -142,9 +142,7 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > <a href="#" title="Data.Int"
- >Int</a
- ></span
+ > ()</span
> <a href="#" class="selflink"
>#</a
></td
@@ -165,9 +163,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
@@ -180,7 +178,9 @@
>type</span
> <a href="#" title="TypeFamilies3"
>Bar</a
- > ()</span
+ > <a href="#" title="Data.Int"
+ >Int</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -201,9 +201,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
@@ -237,12 +237,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
@@ -260,15 +258,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
@@ -279,11 +273,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
@@ -302,15 +296,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
@@ -324,7 +318,9 @@
>data</span
> <a href="#" title="TypeFamilies3"
>Baz</a
- > ()</span
+ > <a href="#" title="Data.Int"
+ >Int</a
+ ></span
> <a href="#" class="selflink"
>#</a
></td
@@ -345,8 +341,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 2a44be99..0827458a 100644
--- a/hypsrc-test/ref/src/Classes.html
+++ b/hypsrc-test/ref/src/Classes.html
@@ -187,7 +187,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
@@ -219,7 +219,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
@@ -320,7 +320,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
@@ -352,7 +352,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
@@ -791,7 +791,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
@@ -863,7 +863,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
@@ -1111,7 +1111,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 7c5b2ff7..859d1e70 100644
--- a/hypsrc-test/ref/src/Records.html
+++ b/hypsrc-test/ref/src/Records.html
@@ -616,10 +616,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
@@ -633,10 +633,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
@@ -1294,12 +1294,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