From 4e8321de13225f1f5bdec8f39993e9b1aa0831a8 Mon Sep 17 00:00:00 2001 From: Alec Theriault Date: Sun, 10 Feb 2019 03:32:52 -0800 Subject: Removes `haddock-test`s dependency on `xml`/`xhtml` (#1027) This means that `html-test`, `latex-test`, `hoogle-test`, and `hypsrc-test` now only depend on GHC boot libs. So we should now be able to build and run these as part of GHC's testsuite. \o/ The reference output has changed very slightly, in three ways: * we don't convert quotes back into `"` as the `xml` lib did * we don't add extra ` ` as the `xml` lib did * we now remove the entire footer `div` (instead of just emptying it) --- haddock-test/haddock-test.cabal | 2 +- haddock-test/src/Test/Haddock/Xhtml.hs | 187 +++++++++++++---------- html-test/ref/A.html | 8 +- html-test/ref/Bold.html | 6 +- html-test/ref/Bug1.html | 8 +- html-test/ref/Bug195.html | 12 +- html-test/ref/Bug2.html | 6 +- html-test/ref/Bug201.html | 6 +- html-test/ref/Bug253.html | 6 +- html-test/ref/Bug26.html | 8 +- html-test/ref/Bug280.html | 6 +- html-test/ref/Bug294.html | 18 +-- html-test/ref/Bug298.html | 6 +- html-test/ref/Bug3.html | 6 +- html-test/ref/Bug308.html | 6 +- html-test/ref/Bug308CrossModule.html | 6 +- html-test/ref/Bug310.html | 8 +- html-test/ref/Bug313.html | 6 +- html-test/ref/Bug335.html | 6 +- html-test/ref/Bug387.html | 8 +- html-test/ref/Bug4.html | 6 +- html-test/ref/Bug458.html | 6 +- html-test/ref/Bug546.html | 6 +- html-test/ref/Bug548.html | 16 +- html-test/ref/Bug574.html | 8 +- html-test/ref/Bug6.html | 20 ++- html-test/ref/Bug613.html | 16 +- html-test/ref/Bug647.html | 6 +- html-test/ref/Bug679.html | 14 +- html-test/ref/Bug7.html | 10 +- html-test/ref/Bug8.html | 10 +- html-test/ref/Bug85.html | 12 +- html-test/ref/Bug865.html | 8 +- html-test/ref/Bug923.html | 10 +- html-test/ref/Bug953.html | 10 +- html-test/ref/BugDeprecated.html | 6 +- html-test/ref/BugExportHeadings.html | 8 +- html-test/ref/Bugs.html | 8 +- html-test/ref/BundledPatterns.html | 8 +- html-test/ref/BundledPatterns2.html | 8 +- html-test/ref/ConstructorArgs.html | 8 +- html-test/ref/ConstructorPatternExport.html | 8 +- html-test/ref/DeprecatedClass.html | 6 +- html-test/ref/DeprecatedData.html | 6 +- html-test/ref/DeprecatedFunction.html | 6 +- html-test/ref/DeprecatedFunction2.html | 6 +- html-test/ref/DeprecatedFunction3.html | 6 +- html-test/ref/DeprecatedModule.html | 6 +- html-test/ref/DeprecatedModule2.html | 6 +- html-test/ref/DeprecatedNewtype.html | 6 +- html-test/ref/DeprecatedReExport.html | 8 +- html-test/ref/DeprecatedRecord.html | 8 +- html-test/ref/DeprecatedTypeFamily.html | 6 +- html-test/ref/DeprecatedTypeSynonym.html | 6 +- html-test/ref/DuplicateRecordFields.html | 8 +- html-test/ref/Examples.html | 6 +- html-test/ref/Extensions.html | 6 +- html-test/ref/FunArgs.html | 12 +- html-test/ref/GADTRecords.html | 22 ++- html-test/ref/GadtConstructorArgs.html | 20 ++- html-test/ref/Hash.html | 14 +- html-test/ref/HiddenInstances.html | 8 +- html-test/ref/HiddenInstancesB.html | 8 +- html-test/ref/Hyperlinks.html | 6 +- html-test/ref/ImplicitParams.html | 8 +- html-test/ref/Instances.html | 68 ++++----- html-test/ref/Math.html | 6 +- html-test/ref/Minimal.html | 6 +- html-test/ref/ModuleWithWarning.html | 6 +- html-test/ref/NamedDoc.html | 6 +- html-test/ref/Nesting.html | 6 +- html-test/ref/NoLayout.html | 6 +- html-test/ref/NonGreedy.html | 6 +- html-test/ref/Operators.html | 10 +- html-test/ref/OrphanInstances.html | 8 +- html-test/ref/OrphanInstancesClass.html | 8 +- html-test/ref/OrphanInstancesType.html | 10 +- html-test/ref/PR643.html | 6 +- html-test/ref/PR643_1.html | 6 +- html-test/ref/PatternSyns.html | 14 +- html-test/ref/PromotedTypes.html | 22 ++- html-test/ref/Properties.html | 6 +- html-test/ref/PruneWithWarning.html | 6 +- html-test/ref/QuantifiedConstraints.html | 8 +- html-test/ref/QuasiExpr.html | 28 ++-- html-test/ref/QuasiQuote.html | 6 +- html-test/ref/SpuriousSuperclassConstraints.html | 12 +- html-test/ref/TH.html | 6 +- html-test/ref/TH2.html | 6 +- html-test/ref/Table.html | 8 +- html-test/ref/Test.html | 48 +++--- html-test/ref/Threaded.html | 6 +- html-test/ref/Threaded_TH.html | 6 +- html-test/ref/Ticket112.html | 6 +- html-test/ref/Ticket61.html | 6 +- html-test/ref/Ticket75.html | 8 +- html-test/ref/TitledPicture.html | 6 +- html-test/ref/TypeFamilies.html | 42 +++-- html-test/ref/TypeFamilies2.html | 10 +- html-test/ref/TypeFamilies3.html | 22 ++- html-test/ref/TypeOperators.html | 10 +- html-test/ref/UnboxedStuff.html | 8 +- html-test/ref/Unicode.html | 6 +- html-test/ref/Unicode2.html | 8 +- html-test/ref/Visible.html | 6 +- hypsrc-test/ref/src/CPP.html | 2 +- hypsrc-test/ref/src/ClangCppBug.html | 2 +- hypsrc-test/ref/src/Classes.html | 2 +- hypsrc-test/ref/src/Constructors.html | 2 +- hypsrc-test/ref/src/Identifiers.html | 2 +- hypsrc-test/ref/src/LinkingIdentifiers.html | 2 +- hypsrc-test/ref/src/Literals.html | 2 +- hypsrc-test/ref/src/Operators.html | 2 +- hypsrc-test/ref/src/Polymorphism.html | 2 +- hypsrc-test/ref/src/PositionPragmas.html | 2 +- hypsrc-test/ref/src/Records.html | 2 +- hypsrc-test/ref/src/Types.html | 2 +- 117 files changed, 523 insertions(+), 710 deletions(-) diff --git a/haddock-test/haddock-test.cabal b/haddock-test/haddock-test.cabal index 8d6f986a..a656d707 100644 --- a/haddock-test/haddock-test.cabal +++ b/haddock-test/haddock-test.cabal @@ -16,7 +16,7 @@ library default-language: Haskell2010 ghc-options: -Wall hs-source-dirs: src - build-depends: base >= 4.3 && < 4.13, bytestring, directory, process, filepath, Cabal, xml, xhtml + build-depends: base >= 4.3 && < 4.13, bytestring, directory, process, filepath, Cabal exposed-modules: Test.Haddock diff --git a/haddock-test/src/Test/Haddock/Xhtml.hs b/haddock-test/src/Test/Haddock/Xhtml.hs index 6c19dbca..bca2c4cc 100644 --- a/haddock-test/src/Test/Haddock/Xhtml.hs +++ b/haddock-test/src/Test/Haddock/Xhtml.hs @@ -1,107 +1,126 @@ -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE GADTs #-} -{-# OPTIONS_GHC -fno-warn-orphans #-} - module Test.Haddock.Xhtml - ( Xml(..) + ( Xml , parseXml, dumpXml , stripLinks, stripLinksWhen, stripAnchorsWhen, stripIdsWhen, stripFooter ) where -import Data.Data ( Data(..), Typeable, eqT, (:~:)(..) ) -import Text.XML.Light -import Text.XHtml (Html, HtmlAttr, (!)) -import qualified Text.XHtml as Xhtml - - -newtype Xml = Xml - { xmlElement :: Element - } deriving Eq +{- +This module used to actually parse the HTML (using the `xml` parsing library) +which made it was possible to do more proper normalization of things like ids or +names. +However, in the interests of being able to run this from within the GHC +testsuite (where non-bootlib dependencies are a liability), this was swapped +out for some simple string manipulation. Since the test cases aren't very +and since the `xhtml` library already handles the pretty-printing aspect, +this would appear to be a reasonable compromise for now. +-} -deriving instance Eq Element -deriving instance Eq Content -deriving instance Eq CData - --- | Similar to @everywhere (mkT f) x@ from SYB. -gmapEverywhere :: forall a b. (Data a, Typeable b) => (b -> b) -> a -> a -gmapEverywhere f x = gmapT (gmapEverywhere f) $ case eqT @a @b of - Nothing -> x - Just Refl -> f x +import Data.List ( stripPrefix, isPrefixOf ) +import Data.Char ( isSpace ) +-- | Simple wrapper around the pretty-printed HTML source +newtype Xml = Xml { unXml :: String } +-- | Part of parsing involves dropping the @DOCTYPE@ line parseXml :: String -> Maybe Xml -parseXml = fmap Xml . parseXMLDoc - +parseXml = Just . Xml . dropDocTypeLine + where + dropDocTypeLine bs + | " String -dumpXml = Xhtml.renderHtmlFragment. xmlElementToXhtml . xmlElement - - +dumpXml = unXml + +type Attr = String +type Value = String + +-- | Almost all sanitization operations take the form of: +-- +-- * match an attribute key +-- * check something about the value +-- * if the check succeeded, replace the value with a dummy value +-- +stripAttrValueWhen + :: Attr -- ^ attribute key + -> Value -- ^ dummy attribute value + -> (Value -> Bool) -- ^ determine whether we should modify the attribute + -> Xml -- ^ input XML + -> Xml -- ^ output XML +stripAttrValueWhen key fallback p (Xml body) = Xml (filterAttrs body) + where + keyEq = key ++ "=\"" + + filterAttrs "" = "" + filterAttrs b@(c:cs) + | Just valRest <- stripPrefix keyEq b + , Just (val,rest) <- spanToEndOfString valRest + = if p val + then keyEq ++ fallback ++ "\"" ++ filterAttrs rest + else keyEq ++ val ++ "\"" ++ filterAttrs rest + + | otherwise + = c : filterAttrs cs + +-- | Spans to the next (unescaped) @\"@ character. +-- +-- >>> spanToEndOfString "no closing quotation" +-- Nothing +-- >>> spanToEndOfString "foo\" bar \"baz\"" +-- Just ("foo", " bar \"baz\"") +-- >>> spanToEndOfString "foo\\\" bar \"baz\"" +-- Just ("foo\\\" bar ", "baz\"") +-- +spanToEndOfString :: String -> Maybe (String, String) +spanToEndOfString ('"':rest) = Just ("", rest) +spanToEndOfString ('\\':c:rest) + | Just (str, rest') <- spanToEndOfString rest + = Just ('\\':c:str, rest') +spanToEndOfString (c:rest) + | Just (str, rest') <- spanToEndOfString rest + = Just (c:str, rest') +spanToEndOfString _ = Nothing + + +-- | Replace hyperlink targets with @\"#\"@ if they match a predicate +stripLinksWhen :: (Value -> Bool) -> Xml -> Xml +stripLinksWhen = stripAttrValueWhen "href" "#" + +-- | Replace all hyperlink targets with @\"#\"@ stripLinks :: Xml -> Xml stripLinks = stripLinksWhen (const True) +-- | Replace id's with @\"\"@ if they match a predicate +stripIdsWhen :: (Value -> Bool) -> Xml -> Xml +stripIdsWhen = stripAttrValueWhen "id" "" -stripLinksWhen :: (String -> Bool) -> Xml -> Xml -stripLinksWhen p = - processAnchors unlink - where - unlink attr@(Attr { attrKey = key, attrVal = val }) - | qName key == "href" && p val = attr { attrVal = "#" } - | otherwise = attr - - -stripAnchorsWhen :: (String -> Bool) -> Xml -> Xml -stripAnchorsWhen p = - processAnchors unname - where - unname attr@(Attr { attrKey = key, attrVal = val }) - | qName key == "name" && p val = attr { attrVal = "" } - | otherwise = attr - -stripIdsWhen :: (String -> Bool) -> Xml -> Xml -stripIdsWhen p = - processAnchors unname - where - unname attr@(Attr { attrKey = key, attrVal = val }) - | qName key == "id" && p val = attr { attrVal = "" } - | otherwise = attr - - -processAnchors :: (Attr -> Attr) -> Xml -> Xml -processAnchors f = Xml . gmapEverywhere f . xmlElement - +-- | Replace names's with @\"\"@ if they match a predicate +stripAnchorsWhen :: (Value -> Bool) -> Xml -> Xml +stripAnchorsWhen = stripAttrValueWhen "name" "" +-- | Remove the @div@ which has @id=\"footer\"@ stripFooter :: Xml -> Xml -stripFooter = - Xml . gmapEverywhere defoot . xmlElement - where - defoot el - | isFooter el = el { elContent = [] } - | otherwise = el - isFooter el = any isFooterAttr $ elAttribs el - isFooterAttr (Attr { .. }) = and - [ qName attrKey == "id" - , attrVal == "footer" - ] - - -xmlElementToXhtml :: Element -> Html -xmlElementToXhtml (Element { .. }) = - Xhtml.tag (qName elName) contents ! attrs +stripFooter (Xml body) = Xml (findDiv body) where - contents = mconcat $ map xmlContentToXhtml elContent - attrs = map xmlAttrToXhtml elAttribs + findDiv "" = "" + findDiv b@(c:cs) + | Just divRest <- stripPrefix "
Html -xmlContentToXhtml (Elem el) = xmlElementToXhtml el -xmlContentToXhtml (Text text) = Xhtml.toHtml $ cdData text -xmlContentToXhtml (CRef _) = Xhtml.noHtml + dropToDiv "" = Nothing + dropToDiv b@(_:cs) + | Just valRest <- stripPrefix "" valRest' + = Just valRest'' + | otherwise + = dropToDiv cs -xmlAttrToXhtml :: Attr -> HtmlAttr -xmlAttrToXhtml (Attr { .. }) = Xhtml.strAttr (qName attrKey) attrVal diff --git a/html-test/ref/A.html b/html-test/ref/A.html index 567e23f2..482180fc 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bold.html b/html-test/ref/Bold.html index 67db2642..21eb99c7 100644 --- a/html-test/ref/Bold.html +++ b/html-test/ref/Bold.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug1.html b/html-test/ref/Bug1.html index 56f70d1f..99a5ff9d 100644 --- a/html-test/ref/Bug1.html +++ b/html-test/ref/Bug1.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug195.html b/html-test/ref/Bug195.html index fc86fa34..3a292244 100644 --- a/html-test/ref/Bug195.html +++ b/html-test/ref/Bug195.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug2.html b/html-test/ref/Bug2.html index 0ae3fa50..6a3b91d4 100644 --- a/html-test/ref/Bug2.html +++ b/html-test/ref/Bug2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug201.html b/html-test/ref/Bug201.html index c7a72711..718d95fd 100644 --- a/html-test/ref/Bug201.html +++ b/html-test/ref/Bug201.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug253.html b/html-test/ref/Bug253.html index a1c0f905..ef225aec 100644 --- a/html-test/ref/Bug253.html +++ b/html-test/ref/Bug253.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html index d2b31f12..9547b82a 100644 --- a/html-test/ref/Bug26.html +++ b/html-test/ref/Bug26.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
\ No newline at end of file +> diff --git a/html-test/ref/Bug280.html b/html-test/ref/Bug280.html index 76ff4bf1..a29b28b3 100644 --- a/html-test/ref/Bug280.html +++ b/html-test/ref/Bug280.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug294.html b/html-test/ref/Bug294.html index 9e5794fc..1a75c1aa 100644 --- a/html-test/ref/Bug294.html +++ b/html-test/ref/Bug294.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
\ No newline at end of file +> diff --git a/html-test/ref/Bug298.html b/html-test/ref/Bug298.html index 79271c3c..30d87d42 100644 --- a/html-test/ref/Bug298.html +++ b/html-test/ref/Bug298.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug3.html b/html-test/ref/Bug3.html index 54f99469..ea2d32d2 100644 --- a/html-test/ref/Bug3.html +++ b/html-test/ref/Bug3.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug308.html b/html-test/ref/Bug308.html index 366950a3..fa2f8afc 100644 --- a/html-test/ref/Bug308.html +++ b/html-test/ref/Bug308.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug308CrossModule.html b/html-test/ref/Bug308CrossModule.html index c7cabc23..68b2ae76 100644 --- a/html-test/ref/Bug308CrossModule.html +++ b/html-test/ref/Bug308CrossModule.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug310.html b/html-test/ref/Bug310.html index 7e958f2d..98dbe03f 100644 --- a/html-test/ref/Bug310.html +++ b/html-test/ref/Bug310.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
\ No newline at end of file +> diff --git a/html-test/ref/Bug313.html b/html-test/ref/Bug313.html index 10ff8f30..f144e5c7 100644 --- a/html-test/ref/Bug313.html +++ b/html-test/ref/Bug313.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug335.html b/html-test/ref/Bug335.html index ede41836..a6d2f388 100644 --- a/html-test/ref/Bug335.html +++ b/html-test/ref/Bug335.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug387.html b/html-test/ref/Bug387.html index ec9bbe8f..7e532aa0 100644 --- a/html-test/ref/Bug387.html +++ b/html-test/ref/Bug387.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
\ No newline at end of file +> diff --git a/html-test/ref/Bug4.html b/html-test/ref/Bug4.html index 45a52f8d..1b3e6182 100644 --- a/html-test/ref/Bug4.html +++ b/html-test/ref/Bug4.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug458.html b/html-test/ref/Bug458.html index 4c655e8d..96844558 100644 --- a/html-test/ref/Bug458.html +++ b/html-test/ref/Bug458.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug546.html b/html-test/ref/Bug546.html index 7ae15ba8..29ba04fd 100644 --- a/html-test/ref/Bug546.html +++ b/html-test/ref/Bug546.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
diff --git a/html-test/ref/Bug548.html b/html-test/ref/Bug548.html index e040e603..b46b278b 100644 --- a/html-test/ref/Bug548.html +++ b/html-test/ref/Bug548.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
)  a b c)  \ No newline at end of file +> diff --git a/html-test/ref/Bug574.html b/html-test/ref/Bug574.html index 592dd735..f087302c 100644 --- a/html-test/ref/Bug574.html +++ b/html-test/ref/Bug574.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
\ No newline at end of file +> diff --git a/html-test/ref/Bug6.html b/html-test/ref/Bug6.html index 97fb0c02..7acad1ea 100644 --- a/html-test/ref/Bug6.html +++ b/html-test/ref/Bug6.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
 
Int C Int
 
  • Int
     
  • Int Int  diff --git a/html-test/ref/Bug613.html b/html-test/ref/Bug613.html index 8fb07e6d..4bcfcb13 100644 --- a/html-test/ref/Bug613.html +++ b/html-test/ref/Bug613.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Bug647.html b/html-test/ref/Bug647.html index 56197b09..549cb6bd 100644 --- a/html-test/ref/Bug647.html +++ b/html-test/ref/Bug647.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Bug679.html b/html-test/ref/Bug679.html index fe838b6a..9b7dcb86 100644 --- a/html-test/ref/Bug679.html +++ b/html-test/ref/Bug679.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    # #  \ No newline at end of file +> diff --git a/html-test/ref/Bug7.html b/html-test/ref/Bug7.html index 52d2d195..82d193f4 100644 --- a/html-test/ref/Bug7.html +++ b/html-test/ref/Bug7.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Bug8.html b/html-test/ref/Bug8.html index 170e0d9f..cc89a9ef 100644 --- a/html-test/ref/Bug8.html +++ b/html-test/ref/Bug8.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Bug85.html b/html-test/ref/Bug85.html index 57eaeb36..641d00bb 100644 --- a/html-test/ref/Bug85.html +++ b/html-test/ref/Bug85.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    Baz Qux  diff --git a/html-test/ref/Bug865.html b/html-test/ref/Bug865.html index c86d8ca3..b38acd12 100644 --- a/html-test/ref/Bug865.html +++ b/html-test/ref/Bug865.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Bug923.html b/html-test/ref/Bug923.html index 1ad81835..47fced8e 100644 --- a/html-test/ref/Bug923.html +++ b/html-test/ref/Bug923.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Bug953.html b/html-test/ref/Bug953.html index 21976848..dde11618 100644 --- a/html-test/ref/Bug953.html +++ b/html-test/ref/Bug953.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    Bar'  diff --git a/html-test/ref/BugDeprecated.html b/html-test/ref/BugDeprecated.html index 0a3133e4..0d6fc277 100644 --- a/html-test/ref/BugDeprecated.html +++ b/html-test/ref/BugDeprecated.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/BugExportHeadings.html b/html-test/ref/BugExportHeadings.html index 2e22cad1..d12ccafe 100644 --- a/html-test/ref/BugExportHeadings.html +++ b/html-test/ref/BugExportHeadings.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Bugs.html b/html-test/ref/Bugs.html index ab658165..e5194bf7 100644 --- a/html-test/ref/Bugs.html +++ b/html-test/ref/Bugs.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/BundledPatterns.html b/html-test/ref/BundledPatterns.html index 2840b3c7..afa12e2b 100644 --- a/html-test/ref/BundledPatterns.html +++ b/html-test/ref/BundledPatterns.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/BundledPatterns2.html b/html-test/ref/BundledPatterns2.html index a0bac80b..48493cf9 100644 --- a/html-test/ref/BundledPatterns2.html +++ b/html-test/ref/BundledPatterns2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/ConstructorArgs.html b/html-test/ref/ConstructorArgs.html index cb677240..96f7d44c 100644 --- a/html-test/ref/ConstructorArgs.html +++ b/html-test/ref/ConstructorArgs.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/ConstructorPatternExport.html b/html-test/ref/ConstructorPatternExport.html index c50d059a..c00401c9 100644 --- a/html-test/ref/ConstructorPatternExport.html +++ b/html-test/ref/ConstructorPatternExport.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/DeprecatedClass.html b/html-test/ref/DeprecatedClass.html index f9321c87..1b77f6e0 100644 --- a/html-test/ref/DeprecatedClass.html +++ b/html-test/ref/DeprecatedClass.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedData.html b/html-test/ref/DeprecatedData.html index c8a9c3c9..17dd2fb6 100644 --- a/html-test/ref/DeprecatedData.html +++ b/html-test/ref/DeprecatedData.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedFunction.html b/html-test/ref/DeprecatedFunction.html index 787bdc15..ede78b2d 100644 --- a/html-test/ref/DeprecatedFunction.html +++ b/html-test/ref/DeprecatedFunction.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedFunction2.html b/html-test/ref/DeprecatedFunction2.html index d1682d4e..31763f48 100644 --- a/html-test/ref/DeprecatedFunction2.html +++ b/html-test/ref/DeprecatedFunction2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedFunction3.html b/html-test/ref/DeprecatedFunction3.html index 4b946c65..84089112 100644 --- a/html-test/ref/DeprecatedFunction3.html +++ b/html-test/ref/DeprecatedFunction3.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedModule.html b/html-test/ref/DeprecatedModule.html index f993d49a..ebb95524 100644 --- a/html-test/ref/DeprecatedModule.html +++ b/html-test/ref/DeprecatedModule.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedModule2.html b/html-test/ref/DeprecatedModule2.html index 886eb45a..ff1af715 100644 --- a/html-test/ref/DeprecatedModule2.html +++ b/html-test/ref/DeprecatedModule2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedNewtype.html b/html-test/ref/DeprecatedNewtype.html index 6a1e4339..e4187d0e 100644 --- a/html-test/ref/DeprecatedNewtype.html +++ b/html-test/ref/DeprecatedNewtype.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedReExport.html b/html-test/ref/DeprecatedReExport.html index e1d226c0..d739a5a1 100644 --- a/html-test/ref/DeprecatedReExport.html +++ b/html-test/ref/DeprecatedReExport.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/DeprecatedRecord.html b/html-test/ref/DeprecatedRecord.html index 54b087dc..295fd95e 100644 --- a/html-test/ref/DeprecatedRecord.html +++ b/html-test/ref/DeprecatedRecord.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedTypeFamily.html b/html-test/ref/DeprecatedTypeFamily.html index 90f9e64b..f2292c79 100644 --- a/html-test/ref/DeprecatedTypeFamily.html +++ b/html-test/ref/DeprecatedTypeFamily.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DeprecatedTypeSynonym.html b/html-test/ref/DeprecatedTypeSynonym.html index 6ee1a4e2..f428c8b7 100644 --- a/html-test/ref/DeprecatedTypeSynonym.html +++ b/html-test/ref/DeprecatedTypeSynonym.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/DuplicateRecordFields.html b/html-test/ref/DuplicateRecordFields.html index be7c23fa..7c892419 100644 --- a/html-test/ref/DuplicateRecordFields.html +++ b/html-test/ref/DuplicateRecordFields.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Examples.html b/html-test/ref/Examples.html index aa975a38..cd04c69f 100644 --- a/html-test/ref/Examples.html +++ b/html-test/ref/Examples.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Extensions.html b/html-test/ref/Extensions.html index d013fe22..f0dc1c0b 100644 --- a/html-test/ref/Extensions.html +++ b/html-test/ref/Extensions.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/FunArgs.html b/html-test/ref/FunArgs.html index 59dfbb94..7a15eec6 100644 --- a/html-test/ref/FunArgs.html +++ b/html-test/ref/FunArgs.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/GADTRecords.html b/html-test/ref/GADTRecords.html index a551f29c..77202f99 100644 --- a/html-test/ref/GADTRecords.html +++ b/html-test/ref/GADTRecords.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    C4 
  • } ->    } -> H1 Int a
     
  • diff --git a/html-test/ref/GadtConstructorArgs.html b/html-test/ref/GadtConstructorArgs.html index ded7d58f..77e2f45b 100644 --- a/html-test/ref/GadtConstructorArgs.html +++ b/html-test/ref/GadtConstructorArgs.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
  • ,    , z :: Int
  • } ->    } -> Boo
    \ No newline at end of file +> diff --git a/html-test/ref/Hash.html b/html-test/ref/Hash.html index 65b2037b..5df78cea 100644 --- a/html-test/ref/Hash.html +++ b/html-test/ref/Hash.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/HiddenInstances.html b/html-test/ref/HiddenInstances.html index be09cd3c..8cecc0b7 100644 --- a/html-test/ref/HiddenInstances.html +++ b/html-test/ref/HiddenInstances.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/HiddenInstancesB.html b/html-test/ref/HiddenInstancesB.html index 67fc528b..4b50d65a 100644 --- a/html-test/ref/HiddenInstancesB.html +++ b/html-test/ref/HiddenInstancesB.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/Hyperlinks.html b/html-test/ref/Hyperlinks.html index fde9434d..4fa8576a 100644 --- a/html-test/ref/Hyperlinks.html +++ b/html-test/ref/Hyperlinks.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/ImplicitParams.html b/html-test/ref/ImplicitParams.html index b331fda5..9163258c 100644 --- a/html-test/ref/ImplicitParams.html +++ b/html-test/ref/ImplicitParams.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Instances.html b/html-test/ref/Instances.html index 0cf0fc92..949f85b0 100644 --- a/html-test/ref/Instances.html +++ b/html-test/ref/Instances.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    # # # # # # # # # # # # # # # # # # # # Qx a Qux a b Quux a b c # # # # # #  \ No newline at end of file +> diff --git a/html-test/ref/Math.html b/html-test/ref/Math.html index cd642198..c39c1257 100644 --- a/html-test/ref/Math.html +++ b/html-test/ref/Math.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Minimal.html b/html-test/ref/Minimal.html index 73f472ad..a9041ba1 100644 --- a/html-test/ref/Minimal.html +++ b/html-test/ref/Minimal.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/ModuleWithWarning.html b/html-test/ref/ModuleWithWarning.html index 1ea464d9..ce5eccfb 100644 --- a/html-test/ref/ModuleWithWarning.html +++ b/html-test/ref/ModuleWithWarning.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/NamedDoc.html b/html-test/ref/NamedDoc.html index 84198ca3..1fa80b26 100644 --- a/html-test/ref/NamedDoc.html +++ b/html-test/ref/NamedDoc.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/Nesting.html b/html-test/ref/Nesting.html index cab1e220..7e001235 100644 --- a/html-test/ref/Nesting.html +++ b/html-test/ref/Nesting.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/NoLayout.html b/html-test/ref/NoLayout.html index c14d6164..acce4d97 100644 --- a/html-test/ref/NoLayout.html +++ b/html-test/ref/NoLayout.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/NonGreedy.html b/html-test/ref/NonGreedy.html index 40357f0d..9f7bf66b 100644 --- a/html-test/ref/NonGreedy.html +++ b/html-test/ref/NonGreedy.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/Operators.html b/html-test/ref/Operators.html index d0c42a08..ae0ae299 100644 --- a/html-test/ref/Operators.html +++ b/html-test/ref/Operators.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/OrphanInstances.html b/html-test/ref/OrphanInstances.html index b9f0b5be..3e77e867 100644 --- a/html-test/ref/OrphanInstances.html +++ b/html-test/ref/OrphanInstances.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/OrphanInstancesClass.html b/html-test/ref/OrphanInstancesClass.html index d4b9d79b..0f066893 100644 --- a/html-test/ref/OrphanInstancesClass.html +++ b/html-test/ref/OrphanInstancesClass.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/OrphanInstancesType.html b/html-test/ref/OrphanInstancesType.html index c3cd8cbf..873cb191 100644 --- a/html-test/ref/OrphanInstancesType.html +++ b/html-test/ref/OrphanInstancesType.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/PR643.html b/html-test/ref/PR643.html index c36ef015..2881e697 100644 --- a/html-test/ref/PR643.html +++ b/html-test/ref/PR643.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/PR643_1.html b/html-test/ref/PR643_1.html index ae905386..e23326e2 100644 --- a/html-test/ref/PR643_1.html +++ b/html-test/ref/PR643_1.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/PatternSyns.html b/html-test/ref/PatternSyns.html index 6b4f8fda..1a1a49bb 100644 --- a/html-test/ref/PatternSyns.html +++ b/html-test/ref/PatternSyns.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });BlubCtor x Empty  \ No newline at end of file +> diff --git a/html-test/ref/PromotedTypes.html b/html-test/ref/PromotedTypes.html index 9f3395be..23e30e21 100644 --- a/html-test/ref/PromotedTypes.html +++ b/html-test/ref/PromotedTypes.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    Pattern '[] Pattern (h ': t) RNil :> h) Tuple '(a, b)  \ No newline at end of file +> diff --git a/html-test/ref/Properties.html b/html-test/ref/Properties.html index 8a5d1660..16874306 100644 --- a/html-test/ref/Properties.html +++ b/html-test/ref/Properties.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/PruneWithWarning.html b/html-test/ref/PruneWithWarning.html index bc8a42d9..d0dd9afe 100644 --- a/html-test/ref/PruneWithWarning.html +++ b/html-test/ref/PruneWithWarning.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/QuantifiedConstraints.html b/html-test/ref/QuantifiedConstraints.html index 9315b866..59000945 100644 --- a/html-test/ref/QuantifiedConstraints.html +++ b/html-test/ref/QuantifiedConstraints.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/QuasiExpr.html b/html-test/ref/QuasiExpr.html index 0dcc8f6a..f719d067 100644 --- a/html-test/ref/QuasiExpr.html +++ b/html-test/ref/QuasiExpr.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    # AddOp SubOp MulOp DivOp #  \ No newline at end of file +> diff --git a/html-test/ref/QuasiQuote.html b/html-test/ref/QuasiQuote.html index 2a857433..edf14f4e 100644 --- a/html-test/ref/QuasiQuote.html +++ b/html-test/ref/QuasiQuote.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/SpuriousSuperclassConstraints.html b/html-test/ref/SpuriousSuperclassConstraints.html index 81c80e77..8069db6c 100644 --- a/html-test/ref/SpuriousSuperclassConstraints.html +++ b/html-test/ref/SpuriousSuperclassConstraints.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/TH.html b/html-test/ref/TH.html index 051f7253..c8a7a6a3 100644 --- a/html-test/ref/TH.html +++ b/html-test/ref/TH.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/TH2.html b/html-test/ref/TH2.html index 617cd1de..4a69bd01 100644 --- a/html-test/ref/TH2.html +++ b/html-test/ref/TH2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); diff --git a/html-test/ref/Table.html b/html-test/ref/Table.html index 1b6f55fc..48bbeb74 100644 --- a/html-test/ref/Table.html +++ b/html-test/ref/Table.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } }); \ No newline at end of file +> diff --git a/html-test/ref/Test.html b/html-test/ref/Test.html index b76622e7..26e8c7e8 100644 --- a/html-test/ref/Test.html +++ b/html-test/ref/Test.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    A2 a B2 b N1 a N2 n :: a b
     
  • N3 N5 n6 :: a b
     n7 :: a b
     T5 () ()
     
  • Int
     
  • # # Ex1 b Ex2 b Ex3 b forall a. a -> a) R  \ No newline at end of file +> diff --git a/html-test/ref/Threaded.html b/html-test/ref/Threaded.html index 893135e6..96a4f060 100644 --- a/html-test/ref/Threaded.html +++ b/html-test/ref/Threaded.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Threaded_TH.html b/html-test/ref/Threaded_TH.html index 1ddd4bf8..0c09cf57 100644 --- a/html-test/ref/Threaded_TH.html +++ b/html-test/ref/Threaded_TH.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Ticket112.html b/html-test/ref/Ticket112.html index ba2bbf6a..4da5c459 100644 --- a/html-test/ref/Ticket112.html +++ b/html-test/ref/Ticket112.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Ticket61.html b/html-test/ref/Ticket61.html index 6d88d7ad..47e0a66d 100644 --- a/html-test/ref/Ticket61.html +++ b/html-test/ref/Ticket61.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Ticket75.html b/html-test/ref/Ticket75.html index b61d770a..426cae3d 100644 --- a/html-test/ref/Ticket75.html +++ b/html-test/ref/Ticket75.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/TitledPicture.html b/html-test/ref/TitledPicture.html index 4fd7e113..6817eb7f 100644 --- a/html-test/ref/TitledPicture.html +++ b/html-test/ref/TitledPicture.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/TypeFamilies.html b/html-test/ref/TypeFamilies.html index 8e1e7364..53a65db8 100644 --- a/html-test/ref/TypeFamilies.html +++ b/html-test/ref/TypeFamilies.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    X Y # # # #  \ No newline at end of file +> diff --git a/html-test/ref/TypeFamilies2.html b/html-test/ref/TypeFamilies2.html index 1db8c3ec..450a69e3 100644 --- a/html-test/ref/TypeFamilies2.html +++ b/html-test/ref/TypeFamilies2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/TypeFamilies3.html b/html-test/ref/TypeFamilies3.html index 22a3f8ff..f7d78999 100644 --- a/html-test/ref/TypeFamilies3.html +++ b/html-test/ref/TypeFamilies3.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    # # # # #  \ No newline at end of file +> diff --git a/html-test/ref/TypeOperators.html b/html-test/ref/TypeOperators.html index fa1550ef..45e6dbe4 100644 --- a/html-test/ref/TypeOperators.html +++ b/html-test/ref/TypeOperators.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/UnboxedStuff.html b/html-test/ref/UnboxedStuff.html index 133aae6c..f9c7531a 100644 --- a/html-test/ref/UnboxedStuff.html +++ b/html-test/ref/UnboxedStuff.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Unicode.html b/html-test/ref/Unicode.html index 8f7970d0..3f623274 100644 --- a/html-test/ref/Unicode.html +++ b/html-test/ref/Unicode.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/html-test/ref/Unicode2.html b/html-test/ref/Unicode2.html index 65e49e37..1eb7e0f0 100644 --- a/html-test/ref/Unicode2.html +++ b/html-test/ref/Unicode2.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    \ No newline at end of file +> diff --git a/html-test/ref/Visible.html b/html-test/ref/Visible.html index a480935c..77d59865 100644 --- a/html-test/ref/Visible.html +++ b/html-test/ref/Visible.html @@ -10,14 +10,14 @@ />MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });
     
    diff --git a/hypsrc-test/ref/src/CPP.html b/hypsrc-test/ref/src/CPP.html index 2ebcae90..a50dce2d 100644 --- a/hypsrc-test/ref/src/CPP.html +++ b/hypsrc-test/ref/src/CPP.html @@ -224,4 +224,4 @@ > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/ClangCppBug.html b/hypsrc-test/ref/src/ClangCppBug.html index d03c92e1..b76b53a7 100644 --- a/hypsrc-test/ref/src/ClangCppBug.html +++ b/hypsrc-test/ref/src/ClangCppBug.html @@ -303,4 +303,4 @@ > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Classes.html b/hypsrc-test/ref/src/Classes.html index 443d7f96..1bc42897 100644 --- a/hypsrc-test/ref/src/Classes.html +++ b/hypsrc-test/ref/src/Classes.html @@ -1451,4 +1451,4 @@ forall a b. a -> b -> a > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Constructors.html b/hypsrc-test/ref/src/Constructors.html index 970ec741..4c6b6720 100644 --- a/hypsrc-test/ref/src/Constructors.html +++ b/hypsrc-test/ref/src/Constructors.html @@ -1338,4 +1338,4 @@ forall a b. (a -> b) -> a -> b > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Identifiers.html b/hypsrc-test/ref/src/Identifiers.html index 5268031d..44430768 100644 --- a/hypsrc-test/ref/src/Identifiers.html +++ b/hypsrc-test/ref/src/Identifiers.html @@ -1482,4 +1482,4 @@ forall a b. (a -> b) -> a -> b > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/LinkingIdentifiers.html b/hypsrc-test/ref/src/LinkingIdentifiers.html index 52b20200..3a936842 100644 --- a/hypsrc-test/ref/src/LinkingIdentifiers.html +++ b/hypsrc-test/ref/src/LinkingIdentifiers.html @@ -569,4 +569,4 @@ forall a. Num a => a -> a -> a > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Literals.html b/hypsrc-test/ref/src/Literals.html index f0d05fbc..0eb1c4ac 100644 --- a/hypsrc-test/ref/src/Literals.html +++ b/hypsrc-test/ref/src/Literals.html @@ -529,4 +529,4 @@ forall a. Num a => a -> a -> a > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Operators.html b/hypsrc-test/ref/src/Operators.html index 4d5693c2..09f3355c 100644 --- a/hypsrc-test/ref/src/Operators.html +++ b/hypsrc-test/ref/src/Operators.html @@ -1141,4 +1141,4 @@ forall a b. (a -> b) -> a -> b > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Polymorphism.html b/hypsrc-test/ref/src/Polymorphism.html index ec9c49e8..5c73153c 100644 --- a/hypsrc-test/ref/src/Polymorphism.html +++ b/hypsrc-test/ref/src/Polymorphism.html @@ -2646,4 +2646,4 @@ forall a. HasCallStack => a > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/PositionPragmas.html b/hypsrc-test/ref/src/PositionPragmas.html index ddd73f31..8ee123fa 100644 --- a/hypsrc-test/ref/src/PositionPragmas.html +++ b/hypsrc-test/ref/src/PositionPragmas.html @@ -169,4 +169,4 @@ > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Records.html b/hypsrc-test/ref/src/Records.html index 5057b8a4..dc09ff82 100644 --- a/hypsrc-test/ref/src/Records.html +++ b/hypsrc-test/ref/src/Records.html @@ -1427,4 +1427,4 @@ forall a. Num a => a -> a -> a > \ No newline at end of file +> diff --git a/hypsrc-test/ref/src/Types.html b/hypsrc-test/ref/src/Types.html index 22012ad1..c0eef664 100644 --- a/hypsrc-test/ref/src/Types.html +++ b/hypsrc-test/ref/src/Types.html @@ -1279,4 +1279,4 @@ > \ No newline at end of file +> -- cgit v1.2.3