diff options
-rw-r--r-- | haddock-api/src/Haddock/Interface/AttachInstances.hs | 34 | ||||
-rw-r--r-- | html-test/ref/Bug1004.html | 1012 | ||||
-rw-r--r-- | html-test/ref/Bug1103.html | 8 | ||||
-rw-r--r-- | html-test/ref/Bug548.html | 96 | ||||
-rw-r--r-- | html-test/ref/HiddenInstances.html | 8 | ||||
-rw-r--r-- | html-test/ref/Instances.html | 354 | ||||
-rw-r--r-- | html-test/ref/SpuriousSuperclassConstraints.html | 108 | ||||
-rw-r--r-- | html-test/ref/TypeFamilies.html | 196 | ||||
-rw-r--r-- | html-test/ref/TypeFamilies2.html | 68 | ||||
-rw-r--r-- | html-test/ref/TypeFamilies3.html | 64 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Classes.html | 14 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Records.html | 16 | ||||
-rw-r--r-- | latex-test/ref/TypeFamilies3/TypeFamilies3.tex | 4 |
13 files changed, 998 insertions, 984 deletions
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/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) => <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="#" - >(>>=)</a - > :: <a href="#" title="Bug1004" - >Product</a - > f g a -> (a -> <a href="#" title="Bug1004" - >Product</a - > f g b) -> <a href="#" title="Bug1004" - >Product</a - > f g b <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >(>>)</a - > :: <a href="#" title="Bug1004" - >Product</a - > f g a -> <a href="#" title="Bug1004" - >Product</a - > f g b -> <a href="#" title="Bug1004" - >Product</a - > f g b <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >return</a - > :: a -> <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) => <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 -> b) -> <a href="#" title="Bug1004" - >Product</a - > f g a -> <a href="#" title="Bug1004" - >Product</a - > f g b <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >(<$)</a - > :: a -> <a href="#" title="Bug1004" - >Product</a - > f g b -> <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) => <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) => <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 -> <a href="#" title="Bug1004" - >Product</a - > f g a <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >(<*>)</a + >mzip</a > :: <a href="#" title="Bug1004" >Product</a - > f g (a -> b) -> <a href="#" title="Bug1004" - >Product</a - > f g a -> <a href="#" title="Bug1004" - >Product</a - > f g b <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >liftA2</a - > :: (a -> b -> c) -> <a href="#" title="Bug1004" - >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a > f g b -> <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="#" - >(*>)</a - > :: <a href="#" title="Bug1004" + >mzipWith</a + > :: (a -> b -> c) -> <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a > f g b -> <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="#" - >(<*)</a + >munzip</a > :: <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g (a, b) -> (<a href="#" title="Bug1004" >Product</a - > f g b -> <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) => <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) => <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 => (a -> f0 b) -> <a href="#" title="Bug1004" - >Product</a - > f g a -> 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 => <a href="#" title="Bug1004" - >Product</a - > f g (f0 a) -> 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 => (a -> m b) -> <a href="#" title="Bug1004" - >Product</a - > f g a -> 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 => <a href="#" title="Bug1004" + >liftEq</a + > :: (a -> b -> <a href="#" title="Data.Bool" + >Bool</a + >) -> <a href="#" title="Bug1004" >Product</a - > f g (m a) -> m (<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="#" 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) => <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 - > -> a -> <a href="#" title="Text.Show" - >ShowS</a - >) -> ([a] -> <a href="#" title="Text.Show" - >ShowS</a - >) -> <a href="#" title="Data.Int" - >Int</a - > -> <a href="#" title="Bug1004" + >liftCompare</a + > :: (a -> b -> <a href="#" title="Data.Ord" + >Ordering</a + >) -> <a href="#" title="Bug1004" >Product</a - > f g a -> <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 - > -> a -> <a href="#" title="Text.Show" - >ShowS</a - >) -> ([a] -> <a href="#" title="Text.Show" - >ShowS</a - >) -> [<a href="#" title="Bug1004" + > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a] -> <a href="#" title="Text.Show" - >ShowS</a + > f g b -> <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) => <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 -> b -> <a href="#" title="Data.Ord" - >Ordering</a - >) -> <a href="#" title="Bug1004" + >liftShowsPrec</a + > :: (<a href="#" title="Data.Int" + >Int</a + > -> a -> <a href="#" title="Text.Show" + >ShowS</a + >) -> ([a] -> <a href="#" title="Text.Show" + >ShowS</a + >) -> <a href="#" title="Data.Int" + >Int</a + > -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g a -> <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 + > -> a -> <a href="#" title="Text.Show" + >ShowS</a + >) -> ([a] -> <a href="#" title="Text.Show" + >ShowS</a + >) -> [<a href="#" title="Bug1004" >Product</a - > f g b -> <a href="#" title="Data.Ord" - >Ordering</a + > f g a] -> <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) => <a href="#" title="Data.Functor.Classes" - >Eq1</a + > (<a href="#" title="Data.Traversable" + >Traversable</a + > f, <a href="#" title="Data.Traversable" + >Traversable</a + > g) => <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 -> b -> <a href="#" title="Data.Bool" - >Bool</a - >) -> <a href="#" title="Bug1004" + >traverse</a + > :: <a href="#" title="Control.Applicative" + >Applicative</a + > f0 => (a -> f0 b) -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g a -> f0 (<a href="#" title="Bug1004" >Product</a - > f g b -> <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 => <a href="#" title="Bug1004" + >Product</a + > f g (f0 a) -> 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 => (a -> m b) -> <a href="#" title="Bug1004" + >Product</a + > f g a -> 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 => <a href="#" title="Bug1004" + >Product</a + > f g (m a) -> 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) => <a href="#" title="Control.Monad.Zip" - >MonadZip</a + > (<a href="#" title="Control.Applicative" + >Alternative</a + > f, <a href="#" title="Control.Applicative" + >Alternative</a + > g) => <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="#" + >(<|>)</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g b -> <a href="#" title="Bug1004" + > f g a -> <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 -> b -> c) -> <a href="#" title="Bug1004" + >some</a + > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g b -> <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) -> (<a href="#" title="Bug1004" - >Product</a - > f g a, <a href="#" title="Bug1004" + > f g a -> <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) => <a href="#" title="Control.Monad" - >MonadPlus</a + > (<a href="#" title="Control.Applicative" + >Applicative</a + > f, <a href="#" title="Control.Applicative" + >Applicative</a + > g) => <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 -> <a href="#" title="Bug1004" >Product</a > f g a <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >mplus</a + >(<*>)</a + > :: <a href="#" title="Bug1004" + >Product</a + > f g (a -> b) -> <a href="#" title="Bug1004" + >Product</a + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g b <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >liftA2</a + > :: (a -> b -> c) -> <a href="#" title="Bug1004" + >Product</a + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g b -> <a href="#" title="Bug1004" + >Product</a + > f g c <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >(*>)</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a + > f g b -> <a href="#" title="Bug1004" + >Product</a + > f g b <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >(<*)</a + > :: <a href="#" title="Bug1004" + >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a + > f g b -> <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) => <a href="#" title="Control.Applicative" - >Alternative</a + > (<a href="#" title="Data.Functor" + >Functor</a + > f, <a href="#" title="Data.Functor" + >Functor</a + > g) => <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 -> b) -> <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g b <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >(<|>)</a - > :: <a href="#" title="Bug1004" - >Product</a - > f g a -> <a href="#" title="Bug1004" + >(<$)</a + > :: a -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g b -> <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) => <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 + >(>>=)</a > :: <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g a -> (a -> <a href="#" title="Bug1004" >Product</a - > f g [a] <a href="#" class="selflink" + > f g b) -> <a href="#" title="Bug1004" + >Product</a + > f g b <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >many</a + >(>>)</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g [a] <a href="#" class="selflink" + > f g b -> <a href="#" title="Bug1004" + >Product</a + > f g b <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >return</a + > :: a -> <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) => <a href="#" title="Data.Eq" - >Eq</a + > (<a href="#" title="Control.Monad" + >MonadPlus</a + > f, <a href="#" title="Control.Monad" + >MonadPlus</a + > g) => <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 -> <a href="#" title="Bug1004" - >Product</a - > f g a -> <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 -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Data.Bool" - >Bool</a - > <a href="#" class="selflink" + > f g a -> <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) => <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)) => <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 -> <a href="#" title="Bug1004" - >Product</a - > f g a -> <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="#" - >(<)</a + >mappend</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Data.Bool" - >Bool</a - > <a href="#" class="selflink" + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g a <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >(<=)</a - > :: <a href="#" title="Bug1004" + >mconcat</a + > :: [<a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g a] -> <a href="#" title="Bug1004" >Product</a - > f g a -> <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)) => <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="#" - >(>)</a + >(<>)</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Data.Bool" - >Bool</a - > <a href="#" class="selflink" + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g a <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >(>=)</a - > :: <a href="#" title="Bug1004" + >sconcat</a + > :: <a href="#" title="Data.List.NonEmpty" + >NonEmpty</a + > (<a href="#" title="Bug1004" >Product</a - > f g a -> <a href="#" title="Bug1004" + > f g a) -> <a href="#" title="Bug1004" >Product</a - > f g a -> <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 -> <a href="#" title="Bug1004" + >stimes</a + > :: <a href="#" title="Prelude" + >Integral</a + > b => b -> <a href="#" title="Bug1004" >Product</a > f g a -> <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" + > </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 + > -> <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 -> <a href="#" title="Bug1004" + > f g a -> <a href="#" title="GHC.Generics" + >Rep</a + > (<a href="#" title="Bug1004" >Product</a - > f g a -> <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 -> <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) => <a href="#" title="Data.Eq" + >Eq</a > (<a href="#" title="Bug1004" >Product</a > f g a)</span ></td - ><td class="doc empty" - > </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 - > -> <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 -> <a href="#" title="GHC.Generics" - >Rep</a - > (<a href="#" title="Bug1004" + > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a) x <a href="#" class="selflink" + > f g a -> <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 -> <a href="#" title="Bug1004" + > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <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)) => <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) => <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="#" - >(<>)</a + >compare</a > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a + > f g a -> <a href="#" title="Data.Ord" + >Ordering</a + > <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >(<)</a + > :: <a href="#" title="Bug1004" + >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <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" + >(<=)</a + > :: <a href="#" title="Bug1004" >Product</a - > f g a) -> <a href="#" title="Bug1004" + > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <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 => b -> <a href="#" title="Bug1004" + >(>)</a + > :: <a href="#" title="Bug1004" >Product</a > f g a -> <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <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)) => <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 + >(>=)</a > :: <a href="#" title="Bug1004" >Product</a - > f g a <a href="#" class="selflink" + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g a -> <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 -> <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] -> <a href="#" title="Bug1004" + > f g a -> <a href="#" title="Bug1004" + >Product</a + > f g a -> <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 + > -> <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 + > -> <a href="#" title="Data.Char" + >Char</a >)</div ></details ></td @@ -430,8 +434,6 @@ >Foo3</a > (a :: <a href="#" title="Data.Char" >Char</a - > -> <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 - > -> <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 => <a href="#" title="Data.Functor" - >Functor</a + > (<a href="#" title="Control.Arrow" + >ArrowZero</a + > a, <a href="#" title="Control.Arrow" + >ArrowPlus</a + > a) => <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 -> b0) -> <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="#" + >(<|>)</a + > :: <a href="#" title="Bug548" >WrappedArrow</a > a b a0 -> <a href="#" title="Bug548" >WrappedArrow</a - > a b b0 <a href="#" class="selflink" + > a b a0 -> <a href="#" title="Bug548" + >WrappedArrow</a + > a b a0 <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" - >(<$)</a - > :: a0 -> <a href="#" title="Bug548" + >some</a + > :: <a href="#" title="Bug548" >WrappedArrow</a - > a b b0 -> <a href="#" title="Bug548" + > a b a0 -> <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 -> <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) => <a href="#" title="Control.Applicative" - >Alternative</a + > <a href="#" title="Control.Arrow" + >Arrow</a + > a => <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="#" - >(<|>)</a - > :: <a href="#" title="Bug548" - >WrappedArrow</a - > a b a0 -> <a href="#" title="Bug548" - >WrappedArrow</a - > a b a0 -> <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 -> b0) -> <a href="#" title="Bug548" >WrappedArrow</a > a b a0 -> <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" + >(<$)</a + > :: a0 -> <a href="#" title="Bug548" >WrappedArrow</a - > a b a0 -> <a href="#" title="Bug548" + > a b b0 -> <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 - >] -> a -> [a] <a href="#" class="selflink" + > -> a -> <a href="#" title="Data.Maybe" + >Maybe</a + > a <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" >foo'</a - > :: [[a]] -> <a href="#" title="Data.Int" + > :: <a href="#" title="Data.Maybe" + >Maybe</a + > (<a href="#" title="Data.Maybe" + >Maybe</a + > a) -> <a href="#" title="Data.Int" >Int</a - > -> [[<a href="#" title="Data.Int" + > -> <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 - > -> a -> <a href="#" title="Data.Maybe" - >Maybe</a - > a <a href="#" class="selflink" + >] -> a -> [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) -> <a href="#" title="Data.Int" + > :: [[a]] -> <a href="#" title="Data.Int" >Int</a - > -> <a href="#" title="Data.Maybe" - >Maybe</a - > (<a href="#" title="Data.Maybe" - >Maybe</a - > <a href="#" title="Data.Int" + > -> [[<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) => <a href="#" title="Instances" + > <a href="#" title="Instances" >Foo</a - > (<a href="#" title="GHC.Tuple" - >(,)</a - > (f a))</span + > (<a href="#" title="Instances" + >(<~~)</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" + ><~~</a + > <a href="#" title="Data.Int" >Int</a - >) -> a0 -> (f a, a0) <a href="#" class="selflink" + >) -> a0 -> a <a href="#" title="Instances" + ><~~</a + > a0 <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" >foo'</a - > :: (f a, (f a, a0)) -> <a href="#" title="Data.Int" + > :: (a <a href="#" title="Instances" + ><~~</a + > (a <a href="#" title="Instances" + ><~~</a + > a0)) -> <a href="#" title="Data.Int" >Int</a - > -> (f a, (f a, <a href="#" title="Data.Int" + > -> a <a href="#" title="Instances" + ><~~</a + > (a <a href="#" title="Instances" + ><~~</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" - >(<~~)</a - > a)</span + > f) => <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" - ><~~</a - > <a href="#" title="Data.Int" + > :: (f a, <a href="#" title="Data.Int" >Int</a - >) -> a0 -> a <a href="#" title="Instances" - ><~~</a - > a0 <a href="#" class="selflink" + >) -> a0 -> (f a, a0) <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" >foo'</a - > :: (a <a href="#" title="Instances" - ><~~</a - > (a <a href="#" title="Instances" - ><~~</a - > a0)) -> <a href="#" title="Data.Int" + > :: (f a, (f a, a0)) -> <a href="#" title="Data.Int" >Int</a - > -> a <a href="#" title="Instances" - ><~~</a - > (a <a href="#" title="Instances" - ><~~</a - > <a href="#" title="Data.Int" + > -> (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 - >) -> a0 -> (a, a, a0) <a href="#" class="selflink" + > -> a0 -> <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)) -> <a href="#" title="Data.Int" + > :: <a href="#" title="Instances" + >Quux</a + > a b (<a href="#" title="Instances" + >Quux</a + > a b a0) -> <a href="#" title="Data.Int" >Int</a - > -> (a, a, (a, a, <a href="#" title="Data.Int" + > -> <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 - > -> a0 -> <a href="#" title="Instances" - >Quux</a - > a b a0 <a href="#" class="selflink" + >) -> a0 -> (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) -> <a href="#" title="Data.Int" + > :: (a, a, (a, a, a0)) -> <a href="#" title="Data.Int" >Int</a - > -> <a href="#" title="Instances" - >Quux</a - > a b (<a href="#" title="Instances" - >Quux</a - > a b <a href="#" title="Data.Int" + > -> (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) => <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" - > </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)) -> (a, b, <a href="#" title="Data.Bool" - >Bool</a - >) -> (a, b, a) <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >bar'</a - > :: (a, b, (a, b, (a, b, a))) -> (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))) -> ((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))) -> ((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) => <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" + > </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)) -> (a, b, <a href="#" title="Data.Bool" + >Bool</a + >) -> (a, b, a) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar'</a + > :: (a, b, (a, b, (a, b, a))) -> (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))) -> ((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))) -> ((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) -> (<span class="keyword" + > :: <a href="#" title="Instances" + >Quux</a + > a b c -> (<span class="keyword" >forall</span > a0. a0 -> a0) -> (b0, <span class="keyword" >forall</span - > c0. c0 -> (a, b, c)) -> (b0, c1) <a href="#" class="selflink" + > c0. c0 -> <a href="#" title="Instances" + >Quux</a + > a b c) -> (b0, c1) <a href="#" class="selflink" >#</a ></p ><p class="src" @@ -1428,9 +1434,15 @@ >baz'</a > :: b0 -> (<span class="keyword" >forall</span - > b1. b1 -> (a, b, c)) -> (<span class="keyword" + > b1. b1 -> <a href="#" title="Instances" + >Quux</a + > a b c) -> (<span class="keyword" >forall</span - > b2. b2 -> (a, b, c)) -> [(b0, (a, b, c))] <a href="#" class="selflink" + > b2. b2 -> <a href="#" title="Instances" + >Quux</a + > a b c) -> [(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 -> (a, b, c)) -> c0) -> <span class="keyword" + > b2. b2 -> <a href="#" title="Instances" + >Quux</a + > a b c) -> c0) -> <span class="keyword" >forall</span > c1. c1 -> 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 -> (<span class="keyword" + > :: (a, b, c) -> (<span class="keyword" >forall</span > a0. a0 -> a0) -> (b0, <span class="keyword" >forall</span - > c0. c0 -> <a href="#" title="Instances" - >Quux</a - > a b c) -> (b0, c1) <a href="#" class="selflink" + > c0. c0 -> (a, b, c)) -> (b0, c1) <a href="#" class="selflink" >#</a ></p ><p class="src" @@ -1496,15 +1504,9 @@ >baz'</a > :: b0 -> (<span class="keyword" >forall</span - > b1. b1 -> <a href="#" title="Instances" - >Quux</a - > a b c) -> (<span class="keyword" + > b1. b1 -> (a, b, c)) -> (<span class="keyword" >forall</span - > b2. b2 -> <a href="#" title="Instances" - >Quux</a - > a b c) -> [(b0, <a href="#" title="Instances" - >Quux</a - > a b c)] <a href="#" class="selflink" + > b2. b2 -> (a, b, c)) -> [(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 -> <a href="#" title="Instances" - >Quux</a - > a b c) -> c0) -> <span class="keyword" + > b2. b2 -> (a, b, c)) -> c0) -> <span class="keyword" >forall</span > c1. c1 -> 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" - > </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 -> b) -> <a href="#" title="SpuriousSuperclassConstraints" - >SomeType</a - > f a -> <a href="#" title="SpuriousSuperclassConstraints" - >SomeType</a - > f b <a href="#" class="selflink" - >#</a - ></p - ><p class="src" - ><a href="#" - >(<$)</a - > :: a -> <a href="#" title="SpuriousSuperclassConstraints" - >SomeType</a - > f b -> <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" + > </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 -> b) -> <a href="#" title="SpuriousSuperclassConstraints" + >SomeType</a + > f a -> <a href="#" title="SpuriousSuperclassConstraints" + >SomeType</a + > f b <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >(<$)</a + > :: a -> <a href="#" title="SpuriousSuperclassConstraints" + >SomeType</a + > f b -> <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" ><></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" ><></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" ><></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" ><></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" ><></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" ><></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" ><></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" ><></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" + > </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" - > </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 -> 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 -> a ><span class="annottext" >baz :: Int -> (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 -> a ><span class="annottext" >bar :: [a] -> 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 :: * -> *) a. Foldable t => t a -> Int ><span class="annottext" >baz :: Int -> ([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 => a -> Int ><span class="annottext" >norf :: [Int] -> 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 :: * -> *) a. (Foldable t, Num a) => t a -> a ><span class="annottext" >quux :: ([a], [a]) -> [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] -> [a] -> [a] ><span class="annottext" >plugh :: forall a b. Either a a -> Either b b -> Either (a -> b) (b -> 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 => a -> a -> a ><span class="annot" ><span class="annottext" >Int -x :: Int x :: Point -> 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 -> Int ><span class="annot" ><span class="annottext" >Int -y :: Int y :: Point -> 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 => a -> a -> a ><span class="annot" ><span class="annottext" >Int -y :: Int -x :: Int -y :: Point -> Int x :: Point -> Int +y :: Point -> 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 |