ChasingBottoms 1.2.2 → 1.2.4
raw patch · 41 files changed
+117/−9173 lines, 41 filesnew-uploaderPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- .boring +9/−0
- ChasingBottoms.cabal +103/−10
- Header +0/−96
- LICENCE +1/−1
- Makefile +4/−53
- docs/Test-ChasingBottoms-Approx.html +0/−339
- docs/Test-ChasingBottoms-ApproxShow.html +0/−369
- docs/Test-ChasingBottoms-ContinuousFunctions.html +0/−1390
- docs/Test-ChasingBottoms-IsBottom.html +0/−380
- docs/Test-ChasingBottoms-Nat.html +0/−484
- docs/Test-ChasingBottoms-SemanticOrd.html +0/−940
- docs/Test-ChasingBottoms-TimeOut.html +0/−612
- docs/Test-ChasingBottoms.html +0/−187
- docs/doc-index-47.html +0/−154
- docs/doc-index-60.html +0/−154
- docs/doc-index-61.html +0/−146
- docs/doc-index-62.html +0/−154
- docs/doc-index-92.html +0/−146
- docs/doc-index-A.html +0/−218
- docs/doc-index-B.html +0/−146
- docs/doc-index-C.html +0/−146
- docs/doc-index-E.html +0/−154
- docs/doc-index-F.html +0/−194
- docs/doc-index-G.html +0/−146
- docs/doc-index-I.html +0/−170
- docs/doc-index-L.html +0/−154
- docs/doc-index-M.html +0/−170
- docs/doc-index-N.html +0/−178
- docs/doc-index-O.html +0/−146
- docs/doc-index-P.html +0/−166
- docs/doc-index-R.html +0/−154
- docs/doc-index-S.html +0/−194
- docs/doc-index-T.html +0/−206
- docs/doc-index-V.html +0/−146
- docs/doc-index.html +0/−132
- docs/haddock.css +0/−235
- docs/haddock.js +0/−15
- docs/haskell_icon.gif binary
- docs/index.html +0/−488
- docs/minus.gif binary
- docs/plus.gif binary
+ .boring view
@@ -0,0 +1,9 @@+(^|/)_darcs($|/)+^docs$+^dist$+^ChasingBottoms\.tar\.gz$+\..*-config$+\.hi$+\.o$+(^|/)#.*#$+\.processed$
ChasingBottoms.cabal view
@@ -1,20 +1,113 @@ name: ChasingBottoms-version: 1.2.2+version: 1.2.4 license: OtherLicense license-file: LICENCE-copyright: Copyright (c) Nils Anders Danielsson 2004-2007.+copyright: Copyright (c) Nils Anders Danielsson 2004-2008. author: Nils Anders Danielsson-maintainer: http://www.cs.chalmers.se/~nad/contact.html+maintainer: http://www.cs.nott.ac.uk/~nad/contact.html stability: experimental-homepage: http://www.cs.chalmers.se/~nad/software/#Chasing Bottoms-package-url: http://www.cs.chalmers.se/~nad/software/ChasingBottoms/ChasingBottoms.tgz+homepage: http://www.cs.nott.ac.uk/~nad/software/#Chasing Bottoms+package-url: http://www.cs.nott.ac.uk/~nad/software/ChasingBottoms/ChasingBottoms.tgz synopsis: For testing partial and infinite values.-description: Do you ever feel the need to test code involving bottoms (e.g. calls- to the error function), or code involving infinite values? Then this- library could be useful for you.-category: Test-tested-with: GHC == 6.8.1+description:+ Do you ever feel the need to test code involving bottoms (e.g. calls to+ the @error@ function), or code involving infinite values? Then this+ library could be useful for you.+ .+ It is usually easy to get a grip on bottoms by showing a value and+ waiting to see how much gets printed before the first exception is+ encountered. However, that quickly gets tiresome and is hard to automate+ using e.g. QuickCheck+ (<http://www.cs.chalmers.se/~rjmh/QuickCheck/>). With this library you+ can do the tests as simply as the following examples show.+ .+ Testing explicitly for bottoms:+ .+ [@> isBottom (head [\])@] @True@+ .+ [@> isBottom bottom@] @True@+ .+ [@> isBottom (\\_ -> bottom)@] @False@+ .+ [@> isBottom (bottom, bottom)@] @False@+ .+ Comparing finite, partial values:+ .+ [@> ((bottom, 3) :: (Bool, Int)) ==! (bottom, 2+5-4)@] @True@+ .+ [@> ((bottom, bottom) :: (Bool, Int)) <! (bottom, 8)@] @True@+ .+ Showing partial and infinite values (@\\\/!@ is join and @\/\\!@ is meet):+ .+ [@> approxShow 4 $ (True, bottom) \\\/! (bottom, \'b\')@] @\"Just (True, \'b\')\"@+ .+ [@> approxShow 4 $ (True, bottom) \/\\! (bottom, \'b\')@] @\"(_|_, _|_)\"@+ .+ [@> approxShow 4 $ ([1..\] :: [Int\])@] @\"[1, 2, 3, _\"@+ .+ [@> approxShow 4 $ (cycle [bottom\] :: [Bool\])@] @\"[_|_, _|_, _|_, _\"@+ .+ Approximately comparing infinite, partial values:+ .+ [@> approx 100 [2,4..\] ==! approx 100 (filter even [1..\] :: [Int\])@] @True@+ .+ [@> approx 100 [2,4..\] \/=! approx 100 (filter even [bottom..\] :: [Int\])@] @True@+ .+ The code above relies on the fact that @bottom@, just as @error+ \"...\"@, @undefined@ and pattern match failures, yield+ exceptions. Sometimes we are dealing with properly non-terminating+ computations, such as the following example, and then it can be nice to+ be able to apply a time-out:+ .+ [@> timeOut' 1 (reverse [1..5\]) >>= print@] @Value [5,4,3,2,1]@+ .+ [@> timeOut' 1 (reverse [1..\]) >>= print@] @NonTermination@+ .+ The time-out functionality can be used to treat \"slow\" computations as+ bottoms:+ .+ [@> let tweak = Tweak { approxDepth = Just 5, timeOutLimit = Just 2 }@]+ .+ [@> semanticEq tweak (reverse [1..\], [1..\]) (bottom :: [Int\], [1..\] :: [Int\])@] @True@+ .+ [@> let tweak = noTweak { timeOutLimit = Just 2 }@]+ .+ [@> semanticJoin tweak (reverse [1..\], True) ([\] :: [Int\], bottom)@] @Just ([],True)@+ .+ This can of course be dangerous:+ .+ [@> let tweak = noTweak { timeOutLimit = Just 0 }@]+ .+ [@> semanticEq tweak (reverse [1..100000000\]) (bottom :: [Integer\])@] @True@+ .+ Timeouts can also be applied to @IO@ computations:+ .+ [@> let primes = unfoldr (\\(x:xs) -> Just (x, filter ((\/= 0) . (\`mod\` x)) xs)) [2..\]@]+ .+ [@> timeOutMicro 100 (print $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499NonTermination@+ .+ [@> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499,997NonTermination@+ .+ [@> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499,997,1163]@+ .+ [@ @] @Value ()@+ .+ All the type annotations above are required.+ .+ For the underlying theory and a larger example involving use of+ QuickCheck, see the article \"Chasing Bottoms, A Case Study in Program+ Verification in the Presence of Partial and Infinite Values\"+ (<http://www.cs.nott.ac.uk/~nad/publications/danielsson-jansson-mpc2004.html>).+ .+ The code has been tested under GHC 6.8. Most parts can probably be+ ported to other Haskell compilers, but that would require some work.+ The @TimeOut@ functions require preemptive scheduling, and most of the+ rest requires @Data.Generics@; @isBottom@ only requires exceptions,+ though.+category: Testing+tested-with: GHC == 6.8.2 cabal-version: >= 1.2 && < 2+build-type: Simple flag small_base description: Choose the new smaller, split-up base package.
− Header
@@ -1,96 +0,0 @@-Do you ever feel the need to test code involving bottoms (e.g. calls to-the @error@ function), or code involving infinite values? Then this-library could be useful for you.--It is usually easy to get a grip on bottoms by showing a value and-waiting to see how much gets printed before the first exception is-encountered. However, that quickly gets tiresome and is hard to automate-using e.g. QuickCheck-(<http://www.cs.chalmers.se/~rjmh/QuickCheck/>). With this library you-can do the tests as simply as the following examples show.--Testing explicitly for bottoms:-- [@> isBottom (head [\])@] @True@-- [@> isBottom bottom@] @True@-- [@> isBottom (\\_ -> bottom)@] @False@-- [@> isBottom (bottom, bottom)@] @False@--Comparing finite, partial values:-- [@> ((bottom, 3) :: (Bool, Int)) ==! (bottom, 2+5-4)@] @True@-- [@> ((bottom, bottom) :: (Bool, Int)) <! (bottom, 8)@] @True@--Showing partial and infinite values (@\\\/!@ is join and @\/\\!@ is meet):-- [@> approxShow 4 $ (True, bottom) \\\/! (bottom, \'b\')@] @\"Just (True, \'b\')\"@-- [@> approxShow 4 $ (True, bottom) \/\\! (bottom, \'b\')@] @\"(_|_, _|_)\"@-- [@> approxShow 4 $ ([1..\] :: [Int\])@] @\"[1, 2, 3, _\"@-- [@> approxShow 4 $ (cycle [bottom\] :: [Bool\])@] @\"[_|_, _|_, _|_, _\"@--Approximately comparing infinite, partial values:-- [@> approx 100 [2,4..\] ==! approx 100 (filter even [1..\] :: [Int\])@] @True@-- [@> approx 100 [2,4..\] \/=! approx 100 (filter even [bottom..\] :: [Int\])@] @True@--The code above relies on the fact that @bottom@, just as @error-\"...\"@, @undefined@ and pattern match failures, yield-exceptions. Sometimes we are dealing with properly non-terminating-computations, such as the following example, and then it can be nice to-be able to apply a time-out:-- [@> timeOut' 1 (reverse [1..5\]) >>= print@] @Value [5,4,3,2,1]@-- [@> timeOut' 1 (reverse [1..\]) >>= print@] @NonTermination@--The time-out functionality can be used to treat \"slow\" computations as-bottoms:-- [@> let tweak = Tweak { approxDepth = Just 5, timeOutLimit = Just 2 }@]-- [@> semanticEq tweak (reverse [1..\], [1..\]) (bottom :: [Int\], [1..\] :: [Int\])@] @True@-- [@> let tweak = noTweak { timeOutLimit = Just 2 }@]-- [@> semanticJoin tweak (reverse [1..\], True) ([\] :: [Int\], bottom)@] @Just ([],True)@--This can of course be dangerous:-- [@> let tweak = noTweak { timeOutLimit = Just 0 }@]-- [@> semanticEq tweak (reverse [1..100000000\]) (bottom :: [Integer\])@] @True@--Timeouts can also be applied to @IO@ computations:-- [@> let primes = unfoldr (\\(x:xs) -> Just (x, filter ((\/= 0) . (\`mod\` x)) xs)) [2..\]@]-- [@> timeOutMicro 100 (print $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499NonTermination@-- [@> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499,997NonTermination@-- [@> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (\`mod\` 83)) primes) >>= print@] @[167,499,997,1163]@-- [@ @] @Value ()@--All the type annotations above are required.--For the underlying theory and a larger example involving use of-QuickCheck, see the article \"Chasing Bottoms, A Case Study in Program-Verification in the Presence of Partial and Infinite Values\"-(<http://www.cs.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html>).--The code has been tested under GHC 6.8. Most parts can probably be-ported to other Haskell compilers, but that would require some work.-The @TimeOut@ functions require preemptive scheduling, and most of the-rest requires @Data.Generics@; @isBottom@ only requires exceptions,-though.--Source code: <http://www.cs.chalmers.se/~nad/software/ChasingBottoms/ChasingBottoms.tar.gz>.
LICENCE view
@@ -1,7 +1,7 @@ I have chosen to distribute this library under the MIT/Expat licence: --------------------------------------------------------------------- -Copyright (c) 2004-2007 Nils Anders Danielsson+Copyright (c) 2004-2008 Nils Anders Danielsson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
Makefile view
@@ -1,66 +1,17 @@-# This Makefile is currently only used to build the documentation and-# to run a test suite automatically using darcs.+# This Makefile is currently only used to run a test suite+# automatically using darcs. ######################################################################## # You may need to edit the following variables: -# Path to Haddock.-HADDOCK ?= haddock--# URL prefix leading to Haddock documentation for the hierarchical-# libraries.-GHC_DOC_URL ?= http://www.haskell.org/ghc/docs/latest/html/libraries--# Path prefix leading to Haddock interface files for the hierarchical-# libraries. These files should be compiled using a Haddock program-# which is interface compatible with the one listed above (same-# version).-GHC_DOC_PATH ?= /chalmers/sw/unsup/ghc-6.8.1/share/doc/ghc/libraries--# Documentation is stored in this directory. Note that the directory-# is emptied first.-DOCDIR = docs- # Path to GHC 6.8, used to run the tests.-GHC_68 ?= _ghc_6.8.1+GHC_68 ?= ghc # GHC packages necessary for building and testing the library.-PACKAGES = base-3.0.0.0 containers-0.1.0.0 random-1.0.0.0 mtl-1.1.0.0 \+PACKAGES = base-3.0.1.0 containers-0.1.0.1 random-1.0.0.0 mtl-1.1.0.0 \ QuickCheck-1.1.0.0 array-0.1.0.0 ########################################################################--EXPOSED_SOURCES = ChasingBottoms.hs ChasingBottoms/Approx.hs \-ChasingBottoms/ApproxShow.hs ChasingBottoms/ContinuousFunctions.hs \-ChasingBottoms/IsBottom.hs ChasingBottoms/Nat.hs \-ChasingBottoms/SemanticOrd.hs ChasingBottoms/TimeOut.hs--HIDDEN_SOURCES = ChasingBottoms/IsType.hs ChasingBottoms/Tests.hs \-ChasingBottoms/Approx/Tests.hs ChasingBottoms/ApproxShow/Tests.hs \-ChasingBottoms/ContinuousFunctions/Tests.hs \-ChasingBottoms/IsBottom/Tests.hs ChasingBottoms/IsType/Tests.hs \-ChasingBottoms/Nat/Tests.hs ChasingBottoms/SemanticOrd/Tests.hs \-ChasingBottoms/TimeOut/Tests.hs ChasingBottoms/TestUtilities.hs \-ChasingBottoms/TestUtilities/Generators.hs \-ChasingBottoms/TestLibraryWhenCompiling.hs--FILES_TO_BE_EXCLUDED = .boring--$(DOCDIR) : $(DOCDIR)/index.html-$(DOCDIR)/index.html : $(addprefix Test/,$(EXPOSED_SOURCES)) Header- -rm -rf $(DOCDIR)- mkdir -p $(DOCDIR)- $(HADDOCK) -h --title="Chasing Bottoms" --prologue=Header -o$(DOCDIR) \- $(foreach pkg,$(PACKAGES),\- -i$(GHC_DOC_URL)/$(pkg),$(GHC_DOC_PATH)/$(pkg)/`echo $(pkg) | sed -r -e 's/-.*//'`.haddock) \- $(filter Test/%,$^)--# Target used by darcs dist.-# After building the documentation we remove the generated files. We-# do not want them included in the tar ball generated by darcs.-# We also remove some other files.-dist: $(DOCDIR)- -rm $(FILES_TO_BE_EXCLUDED) # Runs all tests using GHC 6.8. compile = $(1) -ignore-dot-ghci -no-recomp -hide-all-packages \
− docs/Test-ChasingBottoms-Approx.html
@@ -1,339 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.Approx</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.Approx</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="#t%3AApprox"->Approx</A-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3AapproxAll"->approxAll</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aapprox"->approx</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3AApprox"-></A-><B->Approx</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><P-><TT-><A HREF="Test-ChasingBottoms-Approx.html#t%3AApprox"->Approx</A-></TT-> is a class for approximation functions as described-in The generic approximation lemma, Graham Hutton and Jeremy-Gibbons, Information Processing Letters, 79(4):197-201, Elsevier-Science, August 2001, <A HREF="http://www.cs.nott.ac.uk/~gmh/bib.html"->http://www.cs.nott.ac.uk/~gmh/bib.html</A->.-</P-><P->Instances are provided for all members of the <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-></TT-> type class. Due-to the limitations of the <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics.html"->Data.Generics</A-> approach to generic-programming, which is not really aimed at this kind of application,-the implementation is only guaranteed to perform correctly, with-respect to the paper (and modulo any bugs), on non-mutually-recursive-sum-of-products datatypes. In particular, nested and mutually-recursive types are not handled correctly with respect to the-paper. The specification below is correct, though (if we assume that-the <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-></TT-> instances are well-behaved).-</P-><P->In practice the <TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->approxAll</A-></TT-> function can probably be more useful than-<TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3Aapprox"->approx</A-></TT->. It traverses down <EM->all</EM-> subterms, and it should be possible-to prove a variant of the approximation lemma which <TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->approxAll</A-></TT->-satisfies.-</P-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"->Methods</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A NAME="v%3AapproxAll"-></A-><B->approxAll</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->approxAll</A-></TT-> n x</TT-> traverses <TT->n</TT-> levels down in <TT->x</TT-> and replaces all- values at that level with bottoms.-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aapprox"-></A-><B->approx</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3Aapprox"->approx</A-></TT-> works like <TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->approxAll</A-></TT->, but the traversal and- replacement is only performed at subterms of the same monomorphic- type as the original term. For polynomial datatypes this is- exactly what the version of <TT->approx</TT-> described in the paper above- does.-</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Approx')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Approx" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-Approx.html#t%3AApprox"->Approx</A-> a</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-ApproxShow.html
@@ -1,369 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.ApproxShow</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.ApproxShow</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->Functions for converting arbitrary (non-function, partial,- possibly infinite) values into strings.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3APrec"->Prec</A-> = <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="#t%3AApproxShow"->ApproxShow</A-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3AapproxShowsPrec"->approxShowsPrec</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="Test-ChasingBottoms-ApproxShow.html#t%3APrec"->Prec</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShowS"->ShowS</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AapproxShows"->approxShows</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShowS"->ShowS</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AapproxShow"->approxShow</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Char.html#t%3AString"->String</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3APrec"-></A-><B->Prec</B-> = <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-></TD-></TR-><TR-><TD CLASS="doc"->Precedence level.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3AApproxShow"-></A-><B->ApproxShow</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"->Methods</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A NAME="v%3AapproxShowsPrec"-></A-><B->approxShowsPrec</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="Test-ChasingBottoms-ApproxShow.html#t%3APrec"->Prec</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShowS"->ShowS</A-></TD-></TR-><TR-><TD CLASS="doc"-><P->The <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-></TT-> instance of <TT-><A HREF="Test-ChasingBottoms-ApproxShow.html#t%3AApproxShow"->ApproxShow</A-></TT-> makes sure that- <TT-><TT-><A HREF="Test-ChasingBottoms-ApproxShow.html#v%3AapproxShowsPrec"->approxShowsPrec</A-></TT-> n</TT-> behaves (more or less) like the derived- version of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#v%3AshowsPrec"->showsPrec</A-></TT->, with the following differences:-</P-><UL-><LI-> After <TT->n</TT-> levels of descent into a term the output is- replaced by <TT->"_"</TT->.-</LI-><LI-> All detectable occurences of bottoms are replaced by <TT->"_|_"</TT->.-</LI-><LI-> Non-bottom functions are displayed as <TT->"<function /= _|_>"</TT->.-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AapproxShows"-></A-><B->approxShows</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShowS"->ShowS</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AapproxShow"-></A-><B->approxShow</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Char.html#t%3AString"->String</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ApproxShow')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:ApproxShow" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-ApproxShow.html#t%3AApproxShow"->ApproxShow</A-> a</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-ContinuousFunctions.html
@@ -1,1390 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.ContinuousFunctions</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.ContinuousFunctions</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="section4"-><B->Contents</B-></TD-></TR-><TR-><TD-><DL-><DT-><A HREF="#1"->Basic framework-</A-></DT-><DT-><A HREF="#2"->Liftings of some QuickCheck functionality-</A-></DT-><DT-><A HREF="#3"->Generic <TT->MakePM</TT->-</A-></DT-><DT-><A HREF="#4"->Some <TT->MakeResult</TT->s-</A-></DT-></DL-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Note: <EM->This module is unfinished and experimental. However, I do- not think that I will ever finish it, so I have released it in its- current state. The documentation below may not be completely- correct. The source code lists some things which should be- addressed.</EM->-</P-><P->A framework for generating possibly non-strict, partial,- continuous functions.-</P-><P->The functions generated using the standard QuickCheck <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-></TT->- instances are all strict. In the presence of partial and infinite- values testing using only strict functions leads to worse coverage- than if more general functions are used, though.-</P-><P->Using <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT-> it is relatively easy to generate possibly- non-strict functions that are, in general, not monotone. For- instance, using-</P-><PRE-> type Cogen a = forall b. a -> Gen b -> Gen b- - integer :: Gen Integer- integer = frequency [ (1, return bottom), (10, arbitrary) ]- - coBool :: CoGen Bool- coBool b | isBottom b = variant 0- coBool False = variant 1- coBool True = variant 2- - function :: Cogen a -> Gen b -> Gen (a -> b)- function coGen gen = promote (\a -> coGen a gen)-</PRE-><P->we can generate possibly non-strict functions from <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TT-> to- <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AInteger"->Integer</A-></TT-> using <TT->function coBool integer</TT->. There is a high- likelihood that the functions generated are not monotone, though.- The reason that we can get non-monotone functions in a language- like Haskell is that we are using the impure function <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->.-</P-><P->Sometimes using possibly non-monotone functions is good enough,- since that set of functions is a superset of the continuous- functions. However, say that we want to test that <TT->x- <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%3D%21"-><=!</A-></TT-> y</TT-> implies that <TT->f x- <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%3D%21"-><=!</A-></TT-> f y</TT-> for all functions <TT->f</TT->- (whenever the latter expression returns a total result). This- property is not valid in the presence of non-monotone functions.-</P-><P->By avoiding <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT-> and, unlike the standard <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Acoarbitrary"->coarbitrary</A-></TT->- functions, deferring some pattern matches, we can generate- continuous, possibly non-strict functions. There are two steps- involved in generating a continuous function using the framework- defined here.-</P-><OL-><LI-> First the argument to the function is turned into a- <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT->. A <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT-> wraps up the pattern match on- the top-level constructor of the argument, plus all further- pattern matches on the children of the argument. Just like when- <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Acoarbitrary"->coarbitrary</A-></TT-> is used a pattern match is represented as a- generator transformer. The difference here is that there is not- just one transformation per input, but one transformation per- constructor in the input. <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT->es can be constructed- generically using <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Amatch"->match</A-></TT->.-</LI-><LI-> Then the result is generated, almost like for a normal- <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-></TT-> instance. However, for each constructor generated a- subset of the transformations from step 1 are applied. This- transformation application is wrapped up in the function- <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Atransform"->transform</A-></TT->.-</LI-></OL-><P->The net result of this is that some pattern matches are performed- later, or not at all, so functions can be lazy.-</P-><P->Here is an example illustrating typical use of this framework:-</P-><PRE-> data Tree a- = Branch (Tree a) (Tree a)- | Leaf a- deriving (Show, Typeable, Data)- - finiteTreeOf :: MakeResult a -> MakeResult (Tree a)- finiteTreeOf makeResult = sized' tree- where- tree size = transform $- if size == 0 then- baseCase- else- frequency' [ (1, baseCase)- , (1, liftM2 Branch tree' tree')- ]- where- tree' = tree (size `div` 2)- - baseCase =- frequency' [ (1, return bottom)- , (2, liftM Leaf makeResult)- ]-</PRE-><P->Note the use of <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Atransform"->transform</A-></TT->. To use this function to generate- functions of type <TT->Bool -> Tree Integer</TT-> we can use-</P-><PRE-> forAll (functionTo (finiteTreeOf flat)) $- \(f :: Bool -> Tree Integer) ->- ...-</PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3Afunction"->function</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakePM"->MakePM</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -> b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfunctionTo"->functionTo</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -> b)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3APatternMatch"->PatternMatch</A-> = <A HREF="#v%3APatternMatch"->PatternMatch</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3Aapply"->apply</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AGenTransformer"->GenTransformer</A-></TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3Amore"->more</A-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/containers-0.1.0.0/Data-Sequence.html#t%3ASeq"->Seq</A-> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A->)</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AGenTransformer"->GenTransformer</A-> = <SPAN CLASS="keyword"->forall</SPAN-> a . <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AMakePM"->MakePM</A-> a = a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Atransform"->transform</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Alift%27"->lift'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aarbitrary%27"->arbitrary'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achoose%27"->choose'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/random-1.0.0.0/System-Random.html#t%3ARandom"->Random</A-> a => (a, a) -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aelements%27"->elements'</A-> :: [a] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aoneof%27"->oneof'</A-> :: [<A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Afrequency%27"->frequency'</A-> :: [(<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A->, <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a)] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asized%27"->sized'</A-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a) -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aresize%27"->resize'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amatch"->match</A-> :: <SPAN CLASS="keyword"->forall</SPAN-> a . <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakePM"->MakePM</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aflat"->flat</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfiniteListOf"->finiteListOf</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AinfiniteListOf"->infiniteListOf</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AlistOf"->listOf</A-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="1"->Basic framework-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Afunction"-></A-><B->function</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakePM"->MakePM</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -> b)</TD-></TR-><TR-><TD CLASS="doc"->Generator for continuous, not necessarily strict functions.- Functions are generated by first generating pattern matches, and- then generating a result.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AfunctionTo"-></A-><B->functionTo</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -> b)</TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AfunctionTo"->functionTo</A-></TT-> specialises <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Afunction"->function</A-></TT->:-</P-><PRE->- <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AfunctionTo"->functionTo</A-></TT-> = <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Afunction"->function</A-></TT-> <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Amatch"->match</A-></TT->- </PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3APatternMatch"-></A-><B->PatternMatch</B-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT-> packages up the possible outcomes of a pattern- match in a style suitable for generating functions. A pattern match- is a generator (<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-></TT->) transformer based on the top-level- constructor, and a sequence (see- <A HREF="http://www.soi.city.ac.uk/~ross/software/html/Data.Sequence.html"->http://www.soi.city.ac.uk/~ross/software/html/Data.Sequence.html</A->) of- <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT->es based on the children of that constructor.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3APatternMatch"-></A-><B->PatternMatch</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3Aapply"-></A-><B->apply</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AGenTransformer"->GenTransformer</A-></TD-><TD CLASS="rdoc"->A generator transformer, in the style of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Acoarbitrary"->coarbitrary</A-></TT->.-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3Amore"-></A-><B->more</B-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/containers-0.1.0.0/Data-Sequence.html#t%3ASeq"->Seq</A-> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A->)</TD-><TD CLASS="rdoc"->Further pattern matches made possible by this- match.-</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AGenTransformer"-></A-><B->GenTransformer</B-> = <SPAN CLASS="keyword"->forall</SPAN-> a . <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a</TD-></TR-><TR-><TD CLASS="doc"->The type of a generator transformer.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AMakePM"-></A-><B->MakePM</B-> a = a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TD-></TR-><TR-><TD CLASS="doc"->The type of a <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT-> generator.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AMakeResult"-></A-><B->MakeResult</B-> a</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><P->Monad for generating results given previously generated pattern- matches.-</P-><P->A <TT-><TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT-> a</TT-> should be implemented almost as other generators for- the type <TT->a</TT->, with the difference that <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Atransform"->transform</A-></TT-> should be- used wherever the resulting function should be allowed to pattern- match (typically for each constructor emitted). See example above.-</P-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MakeResult')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:MakeResult" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"->??? a => <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Monad.html#t%3AFunctor"->Functor</A-> (<A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a)</TD-></TR-><TR-><TD CLASS="decl"->??? a => <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Monad.html#t%3AMonad"->Monad</A-> (<A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a)</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Atransform"-></A-><B->transform</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Atransform"->transform</A-></TT-> makes sure that the pattern matches get to influence- the generated value. See <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="2"->Liftings of some QuickCheck functionality-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Alift%27"-></A-><B->lift'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of a <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aarbitrary%27"-></A-><B->arbitrary'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Aarbitrary"->arbitrary</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Achoose%27"-></A-><B->choose'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/random-1.0.0.0/System-Random.html#t%3ARandom"->Random</A-> a => (a, a) -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Achoose"->choose</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aelements%27"-></A-><B->elements'</B-> :: [a] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Aelements"->elements</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aoneof%27"-></A-><B->oneof'</B-> :: [<A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Aoneof"->oneof</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Afrequency%27"-></A-><B->frequency'</B-> :: [(<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A->, <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a)] -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Afrequency"->frequency</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Asized%27"-></A-><B->sized'</B-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a) -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Asized"->sized</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aresize%27"-></A-><B->resize'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Lifting of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#v%3Aresize"->resize</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="3"->Generic <TT->MakePM</TT->-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Amatch"-></A-><B->match</B-> :: <SPAN CLASS="keyword"->forall</SPAN-> a . <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakePM"->MakePM</A-> a</TD-></TR-><TR-><TD CLASS="doc"->Generic implementation of <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->PatternMatch</A-></TT-> construction.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="4"->Some <TT->MakeResult</TT->s-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Aflat"-></A-><B->flat</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-> a => <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a</TD-></TR-><TR-><TD CLASS="doc"->An implementation of <TT-><TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT-> a</TT-> which is suitable when <TT->a</TT->- is flat and has an <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-></TT-> instance. Yields bottoms around 10%- of the time.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AfiniteListOf"-></A-><B->finiteListOf</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-><TR-><TD CLASS="doc"->This <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT-> yields finite partial lists.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AinfiniteListOf"-></A-><B->infiniteListOf</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-><TR-><TD CLASS="doc"->This <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT-> yields infinite partial lists.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AlistOf"-></A-><B->listOf</B-> :: <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -> <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> [a]</TD-></TR-><TR-><TD CLASS="doc"->This <TT-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-></TT-> yields finite or infinite partial lists.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-IsBottom.html
@@ -1,380 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.IsBottom</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.IsBottom</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (exceptions)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3AisBottom"->isBottom</A-> :: a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Abottom"->bottom</A-> :: a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnonBottomError"->nonBottomError</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Char.html#t%3AString"->String</A-> -> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisBottomTimeOut"->isBottomTimeOut</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AisBottom"-></A-><B->isBottom</B-> :: a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT-> a</TT-> returns <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3AFalse"->False</A-></TT-> if <TT->a</TT-> is distinct from bottom. If- <TT->a</TT-> equals bottom and results in an exception which is caught by- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->, and this exception is of a certain kind (see below),- then <TT-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT-> a = <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT-></TT->. Other caught exceptions are- re-thrown. If <TT->a</TT-> never reaches a weak head normal form and- never throws an exception, then <TT-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT-> a</TT-> never terminates.-</P-><P->The exceptions that yield <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT-> are those that correspond to- "pure bottoms", i.e. bottoms that can originate in pure code.- Assertions are excluded, since their behaviour depends on compiler- flags (not pure, and a failed assertion should really yield an- exception and nothing else). The same applies to arithmetic- exceptions (machine dependent, except possibly for- <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#t%3ADivideByZero"->DivideByZero</A-></TT->, but the value infinity makes that- case unclear as well).-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Abottom"-></A-><B->bottom</B-> :: a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT-> generates a bottom that is suitable for testing using- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AnonBottomError"-></A-><B->nonBottomError</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Char.html#t%3AString"->String</A-> -> a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AnonBottomError"->nonBottomError</A-></TT-> s</TT-> raises an exception (<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#v%3AAssertionFailed"->AssertionFailed</A-></TT->) that- is not caught by <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->. Use <TT->s</TT-> to describe the exception.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AisBottomTimeOut"-></A-><B->isBottomTimeOut</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottomTimeOut"->isBottomTimeOut</A-></TT-> timeOutLimit</TT-> works like <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->, but if- <TT->timeOutLimit</TT-> is <TT-><TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3AJust"->Just</A-></TT-> lim</TT->, then computations taking more than- <TT->lim</TT-> seconds are also considered to be equal to bottom. Note that- this is a very crude approximation of what a bottom is. Also note- that this "function" may return different answers upon different- invocations. Take it for what it is worth.-</P-><P-><TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottomTimeOut"->isBottomTimeOut</A-></TT-> is subject to all the same scheduling vagaries as- <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut"->timeOut</A-></TT->.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-Nat.html
@@ -1,484 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.Nat</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.Nat</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->A simple implementation of natural numbers on top of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AInteger"->Integer</A-></TT->s.- Note that since <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AInteger"->Integer</A-></TT->s are used there is no infinite natural- number; in other words, <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#v%3Asucc"->succ</A-></TT-> is strict.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ANat"->Nat</A-> </TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisSucc"->isSucc</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfromSucc"->fromSucc</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Anatrec"->natrec</A-> :: a -> (<A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a) -> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfoldN"->foldN</A-> :: a -> (a -> a) -> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ANat"-></A-><B->Nat</B-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><P->Natural numbers.-</P-><P->No <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-></TT-> instance is provided since the- implementation should be abstract.-</P-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Nat')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Nat" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AArbitrary"->Arbitrary</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AEnum"->Enum</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AIntegral"->Integral</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3ANum"->Num</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#t%3AReal"->Real</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Typeable.html#t%3ATypeable"->Typeable</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AisSucc"-></A-><B->isSucc</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="doc"-><TT-><TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3AisSucc"->isSucc</A-></TT-> 0 == <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3AFalse"->False</A-></TT-></TT->, for other total natural numbers it is <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AfromSucc"-></A-><B->fromSucc</B-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-></TD-></TR-><TR-><TD CLASS="doc"-><TT-><TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfromSucc"->fromSucc</A-></TT-> 0 == <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3ANothing"->Nothing</A-></TT-></TT->, <TT-><TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfromSucc"->fromSucc</A-></TT-> (n+1) == <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3AJust"->Just</A-></TT-> n</TT-> for a- total natural number <TT->n</TT->.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3Anatrec"-></A-><B->natrec</B-> :: a -> (<A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a -> a) -> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a</TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3Anatrec"->natrec</A-></TT-> performs primitive recursion on natural numbers.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AfoldN"-></A-><B->foldN</B-> :: a -> (a -> a) -> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -> a</TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfoldN"->foldN</A-></TT-> is a fold on natural numbers:-</P-><PRE->- <TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfoldN"->foldN</A-></TT-> g h = <TT-><A HREF="Test-ChasingBottoms-Nat.html#v%3Anatrec"->natrec</A-></TT-> g (<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Tuple.html#v%3Acurry"->curry</A-></TT-> <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Prelude.html#v%3A%24"->$</A-></TT-> h . <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Tuple.html#v%3Asnd"->snd</A-></TT->)- </PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-SemanticOrd.html
@@ -1,940 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.SemanticOrd</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.SemanticOrd</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Generic semantic equality and order. The semantic order referred- to is that of a typical CPO for Haskell types, where e.g. <TT->(<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->,- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT->) <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%3D%21"-><=!</A-></TT-> (<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->, <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3AFalse"->False</A-></TT->)</TT->, but where <TT->(<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->, <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->)</TT->- and <TT->(<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3ATrue"->True</A-></TT->, <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#v%3AFalse"->False</A-></TT->)</TT-> are incomparable.-</P-><P->The implementation is based on <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->isBottom</A-></TT->, and has the same- limitations. Note that non-bottom functions are not handled by any- of the functions described below.-</P-><P->One could imagine using QuickCheck for testing equality of- functions, but I have not managed to tweak the type system so that- it can be done transparently.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3ATweak"->Tweak</A-> = <A HREF="#v%3ATweak"->Tweak</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3AapproxDepth"->approxDepth</A-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A->)</TD-></TR-><TR-><TD CLASS="recfield"-><A HREF="#v%3AtimeOutLimit"->timeOutLimit</A-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A->)</TD-></TR-></TABLE->}</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnoTweak"->noTweak</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="#t%3ASemanticEq"->SemanticEq</A-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3D%3D%21"->(==!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2F%3D%21"->(/=!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsemanticEq"->semanticEq</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticEq"->SemanticEq</A-> a => <A HREF="#t%3ASemanticOrd"->SemanticOrd</A-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%21"->(<!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%3D%21"->(<=!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3E%3D%21"->(>=!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3E%21"->(>!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsemanticCompare"->semanticCompare</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrdering"->Ordering</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%5C%2F%21"->(\/!)</A-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2F%5C%21"->(/\!)</A-> :: a -> a -> a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsemanticJoin"->semanticJoin</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsemanticMeet"->semanticMeet</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> a</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3ATweak"-></A-><B->Tweak</B-> </TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->The behaviour of some of the functions below can be tweaked.-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3ATweak"-></A-><B->Tweak</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AapproxDepth"-></A-><B->approxDepth</B-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A->)</TD-><TD CLASS="rdoc"->If equal to <TT-><TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3AJust"->Just</A-></TT-> n</TT->, an <TT-><TT-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->approxAll</A-></TT-> n</TT-> is performed on- all arguments before doing whatever the function is supposed to- be doing.-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AtimeOutLimit"-></A-><B->timeOutLimit</B-> :: (<A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A->)</TD-><TD CLASS="rdoc"->If equal to <TT-><TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3AJust"->Just</A-></TT-> n</TT->, then all computations that take more- than <TT->n</TT-> seconds to complete are considered to be equal to- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT->. This functionality is implemented using- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottomTimeOut"->isBottomTimeOut</A-></TT->.-</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tweak')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Tweak" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Eq.html#t%3AEq"->Eq</A-> <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrd"->Ord</A-> <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShow"->Show</A-> <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-></TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AnoTweak"-></A-><B->noTweak</B-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-></TD-></TR-><TR-><TD CLASS="doc"->No tweak (both fields are <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3ANothing"->Nothing</A-></TT->).-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A NAME="t%3ASemanticEq"-></A-><B->SemanticEq</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticEq"->SemanticEq</A-></TT-> contains methods for testing whether two terms are- semantically equal.-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"->Methods</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A NAME="v%3A%3D%3D%21"-></A-><B->(==!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%2F%3D%21"-></A-><B->(/=!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AsemanticEq"-></A-><B->semanticEq</B-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SemanticEq')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:SemanticEq" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticEq"->SemanticEq</A-> a</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->class</SPAN-> <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticEq"->SemanticEq</A-> a => <A NAME="t%3ASemanticOrd"-></A-><B->SemanticOrd</B-> a <SPAN CLASS="keyword"->where</SPAN-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"-><TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticOrd"->SemanticOrd</A-></TT-> contains methods for testing whether two terms are- related according to the semantic domain ordering.-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"->Methods</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A NAME="v%3A%3C%21"-></A-><B->(<!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%3C%3D%21"-></A-><B->(<=!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%3E%3D%21"-></A-><B->(>=!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%3E%21"-></A-><B->(>!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Bool.html#t%3ABool"->Bool</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AsemanticCompare"-></A-><B->semanticCompare</B-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrdering"->Ordering</A-></TD-></TR-><TR-><TD CLASS="doc"-><TT-><TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AsemanticCompare"->semanticCompare</A-></TT-> tweak x y</TT-> returns <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3ANothing"->Nothing</A-></TT-> if <TT->x</TT-> and <TT->y</TT-> are- incomparable, and <TT-><TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#v%3AJust"->Just</A-></TT-> o</TT-> otherwise, where <TT->o :: <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrdering"->Ordering</A-></TT-></TT->- represents the relation between <TT->x</TT-> and <TT->y</TT->.-</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%5C%2F%21"-></A-><B->(\/!)</B-> :: a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3A%2F%5C%21"-></A-><B->(/\!)</B-> :: a -> a -> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AsemanticJoin"-></A-><B->semanticJoin</B-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Maybe.html#t%3AMaybe"->Maybe</A-> a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AsemanticMeet"-></A-><B->semanticMeet</B-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -> a -> a -> a</TD-></TR-><TR-><TD CLASS="doc"-><TT->x <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%5C%2F%21"->\/!</A-></TT-> y</TT-> and <TT->x <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%2F%5C%21"->/\!</A-></TT-> y</TT-> compute the least upper and greatest- lower bounds, respectively, of <TT->x</TT-> and <TT->y</TT-> in the semantical- domain ordering. Note that the least upper bound may not always- exist.- This functionality was implemented just because it was- possible (and to provide analogues of <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#v%3Amax"->max</A-></TT-> and <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#v%3Amin"->min</A-></TT-> in the <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Ord.html#t%3AOrd"->Ord</A-></TT->- class). If anyone finds any use for it, please let me know.-</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SemanticOrd')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:SemanticOrd" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Generics-Basics.html#t%3AData"->Data</A-> a => <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticOrd"->SemanticOrd</A-> a</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms-TimeOut.html
@@ -1,612 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms.TimeOut</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms.TimeOut</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (preemptive scheduling)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->When dealing with "hard bottoms", i.e. non-terminating- computations that do not result in exceptions, the following functions- may be handy.-</P-><P->Note that a computation is considered to have terminated when it- has reached weak head normal form (i.e. something distinct from- bottom).-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A HREF="#t%3AResult"->Result</A-> a</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->= <A HREF="#v%3AValue"->Value</A-> a</TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3ANonTermination"->NonTermination</A-></TD-></TR-><TR-><TD CLASS="decl"->| <A HREF="#v%3AException"->Exception</A-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#t%3AException"->Exception</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtimeOut"->timeOut</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtimeOut%27"->timeOut'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtimeOutMicro"->timeOutMicro</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtimeOutMicro%27"->timeOutMicro'</A-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN-> <A NAME="t%3AResult"-></A-><B->Result</B-> a</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AValue"-></A-><B->Value</B-> a</TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3ANonTermination"-></A-><B->NonTermination</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AException"-></A-><B->Exception</B-> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#t%3AException"->Exception</A-></TD-><TD CLASS="rdoc"-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Result')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:Result" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Eq.html#t%3AEq"->Eq</A-> a => <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Eq.html#t%3AEq"->Eq</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShow"->Show</A-> a => <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Text-Show.html#t%3AShow"->Show</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Typeable.html#t%3ATypeable"->Typeable</A-> a => <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Typeable.html#t%3ATypeable"->Typeable</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-></TABLE-></DIV-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AtimeOut"-></A-><B->timeOut</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut"->timeOut</A-></TT-> n c</TT-> runs <TT->c</TT-> for at most <TT->n</TT-> seconds (modulo- scheduling issues).-</P-><UL-><LI-> If the computation terminates before that, then- <TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AValue"->Value</A-></TT-> v</TT-> is returned, where <TT->v</TT-> is the resulting value. Note- that this value may be equal to bottom, e.g. if <TT->c = <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Monad.html#v%3Areturn"->return</A-></TT->- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT-></TT->.-</LI-><LI-> If the computation does not terminate, then <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3ANonTermination"->NonTermination</A-></TT-> is- returned.-</LI-><LI-> If the computation raises an exception, then <TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AException"->Exception</A-></TT-> e</TT-> is- returned, where <TT->e</TT-> is the exception.-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AtimeOut%27"-></A-><B->timeOut'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut%27"->timeOut'</A-></TT-> is a variant which can be used for pure- computations. The definition,-</P-><PRE->- <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut%27"->timeOut'</A-></TT-> n = <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut"->timeOut</A-></TT-> n . <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#v%3Aevaluate"->evaluate</A-></TT->- </PRE-><P->ensures that <TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut%27"->timeOut'</A-></TT-> 1 <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT-></TT->- usually returns <TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AException"->Exception</A-></TT-> <something></TT->. (<TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut"->timeOut</A-></TT-> 1 (<TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Monad.html#v%3Areturn"->return</A-></TT->- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT->)</TT-> usually returns <TT-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AValue"->Value</A-></TT->- <TT-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->bottom</A-></TT-></TT->; in other words, the- computation reaches whnf almost immediately, defeating the purpose- of the time-out.)-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AtimeOutMicro"-></A-><B->timeOutMicro</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="doc"-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro"->timeOutMicro</A-></TT-> takes a delay in microseconds. Note that the- resolution is not necessarily very high (the last time I checked it- was 0.02 seconds when using the standard runtime system settings- for GHC).-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"-><A NAME="v%3AtimeOutMicro%27"-></A-><B->timeOutMicro'</B-> :: <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Data-Int.html#t%3AInt"->Int</A-> -> a -> <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> (<A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Result</A-> a)</TD-></TR-><TR-><TD CLASS="doc"-><P-><TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro%27"->timeOutMicro'</A-></TT-> is the equivalent variant of <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro"->timeOutMicro</A-></TT->:-</P-><PRE->- <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro%27"->timeOutMicro'</A-></TT-> n = <TT-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro"->timeOutMicro</A-></TT-> n . <TT-><A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/Control-Exception.html#v%3Aevaluate"->evaluate</A-></TT->- </PRE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/Test-ChasingBottoms.html
@@ -1,187 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Test.ChasingBottoms</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="modulebar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><FONT SIZE="6"->Test.ChasingBottoms</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->non-portable (GHC-specific)</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->http://www.cs.chalmers.se/~nad/</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"->This module just re-exports all the other modules.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-Approx.html"->Test.ChasingBottoms.Approx</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-ApproxShow.html"->Test.ChasingBottoms.ApproxShow</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-ContinuousFunctions.html"->Test.ChasingBottoms.ContinuousFunctions</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-IsBottom.html"->Test.ChasingBottoms.IsBottom</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-Nat.html"->Test.ChasingBottoms.Nat</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-SemanticOrd.html"->Test.ChasingBottoms.SemanticOrd</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Test-ChasingBottoms-TimeOut.html"->Test.ChasingBottoms.TimeOut</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-47.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (/)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->/=!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%2F%3D%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->/\!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%2F%5C%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-60.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (<)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"-><!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"-><=!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%3D%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-61.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (=)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->==!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3D%3D%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-62.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (>)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->>!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3E%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->>=!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3E%3D%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-92.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (\)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->\/!</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%5C%2F%21"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-A.html
@@ -1,218 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (A)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Approx</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Approx.html#t%3AApprox"->Test.ChasingBottoms.Approx</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->ApproxShow</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ApproxShow.html#t%3AApproxShow"->Test.ChasingBottoms.ApproxShow</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->apply</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aapply"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approx</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Approx.html#v%3Aapprox"->Test.ChasingBottoms.Approx</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approxAll</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Approx.html#v%3AapproxAll"->Test.ChasingBottoms.Approx</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approxDepth</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AapproxDepth"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approxShow</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ApproxShow.html#v%3AapproxShow"->Test.ChasingBottoms.ApproxShow</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approxShows</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ApproxShow.html#v%3AapproxShows"->Test.ChasingBottoms.ApproxShow</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->approxShowsPrec</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ApproxShow.html#v%3AapproxShowsPrec"->Test.ChasingBottoms.ApproxShow</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->arbitrary'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aarbitrary%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-B.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (B)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->bottom</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3Abottom"->Test.ChasingBottoms.IsBottom</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-C.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (C)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->choose'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Achoose%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-E.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (E)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Exception</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AException"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->elements'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aelements%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-F.html
@@ -1,194 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (F)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->finiteListOf</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AfiniteListOf"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->flat</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aflat"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->foldN</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfoldN"->Test.ChasingBottoms.Nat</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->frequency'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Afrequency%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->fromSucc</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Nat.html#v%3AfromSucc"->Test.ChasingBottoms.Nat</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->function</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Afunction"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->functionTo</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AfunctionTo"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-G.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (G)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->GenTransformer</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AGenTransformer"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-I.html
@@ -1,170 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (I)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->infiniteListOf</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AinfiniteListOf"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->isBottom</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottom"->Test.ChasingBottoms.IsBottom</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->isBottomTimeOut</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AisBottomTimeOut"->Test.ChasingBottoms.IsBottom</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->isSucc</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Nat.html#v%3AisSucc"->Test.ChasingBottoms.Nat</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-L.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (L)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->lift'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Alift%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->listOf</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3AlistOf"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-M.html
@@ -1,170 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (M)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->MakePM</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakePM"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->MakeResult</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->match</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Amatch"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->more</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Amore"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-N.html
@@ -1,178 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (N)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Nat</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Test.ChasingBottoms.Nat</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->NonTermination</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3ANonTermination"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->natrec</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-Nat.html#v%3Anatrec"->Test.ChasingBottoms.Nat</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->noTweak</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AnoTweak"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->nonBottomError</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-IsBottom.html#v%3AnonBottomError"->Test.ChasingBottoms.IsBottom</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-O.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (O)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->oneof'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aoneof%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-P.html
@@ -1,166 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (P)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry" COLSPAN="2"->PatternMatch</TD-></TR-><TR-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3APatternMatch"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3APatternMatch"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->Prec</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ApproxShow.html#t%3APrec"->Test.ChasingBottoms.ApproxShow</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-R.html
@@ -1,154 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (R)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Result</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#t%3AResult"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->resize'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Aresize%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-S.html
@@ -1,194 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (S)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->SemanticEq</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticEq"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->SemanticOrd</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ASemanticOrd"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->semanticCompare</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AsemanticCompare"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->semanticEq</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AsemanticEq"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->semanticJoin</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AsemanticJoin"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->semanticMeet</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AsemanticMeet"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->sized'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Asized%27"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-T.html
@@ -1,206 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (T)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry" COLSPAN="2"->Tweak</TD-></TR-><TR-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexannot"->2 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3ATweak"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->timeOut</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->timeOut'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOut%27"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->timeOutLimit</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3AtimeOutLimit"->Test.ChasingBottoms.SemanticOrd</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->timeOutMicro</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->timeOutMicro'</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AtimeOutMicro%27"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-><TR-><TD CLASS="indexentry"->transform</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html#v%3Atransform"->Test.ChasingBottoms.ContinuousFunctions</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index-V.html
@@ -1,146 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (V)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->Value</TD-><TD CLASS="indexlinks"-><A HREF="Test-ChasingBottoms-TimeOut.html#v%3AValue"->Test.ChasingBottoms.TimeOut</A->, Test.ChasingBottoms</TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/doc-index.html
@@ -1,132 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms (Index)</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD-><A HREF="doc-index-A.html"->A</A-></TD-><TD-><A HREF="doc-index-B.html"->B</A-></TD-><TD-><A HREF="doc-index-C.html"->C</A-></TD-><TD-><A HREF="doc-index-E.html"->E</A-></TD-><TD-><A HREF="doc-index-F.html"->F</A-></TD-><TD-><A HREF="doc-index-G.html"->G</A-></TD-><TD-><A HREF="doc-index-I.html"->I</A-></TD-><TD-><A HREF="doc-index-L.html"->L</A-></TD-><TD-><A HREF="doc-index-M.html"->M</A-></TD-><TD-><A HREF="doc-index-N.html"->N</A-></TD-><TD-><A HREF="doc-index-O.html"->O</A-></TD-><TD-><A HREF="doc-index-P.html"->P</A-></TD-><TD-><A HREF="doc-index-R.html"->R</A-></TD-><TD-><A HREF="doc-index-S.html"->S</A-></TD-><TD-><A HREF="doc-index-T.html"->T</A-></TD-><TD-><A HREF="doc-index-V.html"->V</A-></TD-><TD-><A HREF="doc-index-47.html"->/</A-></TD-><TD-><A HREF="doc-index-60.html"-><</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->></A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></BODY-></HTML->
− docs/haddock.css
@@ -1,235 +0,0 @@-/* -------- Global things --------- */--BODY { - background-color: #ffffff;- color: #000000;- font-family: sans-serif;- } --A:link { color: #0000e0; text-decoration: none }-A:visited { color: #0000a0; text-decoration: none }-A:hover { background-color: #e0e0ff; text-decoration: none }--TABLE.vanilla {- width: 100%;- border-width: 0px;- /* I can't seem to specify cellspacing or cellpadding properly using CSS... */-}--TABLE.vanilla2 {- border-width: 0px;-}--/* <TT> font is a little too small in MSIE */-TT { font-size: 100%; }-PRE { font-size: 100%; }--LI P { margin: 0pt } --TD {- border-width: 0px;-}--TABLE.narrow {- border-width: 0px;-}--TD.s8 { height: 8px; }-TD.s15 { height: 15px; }--SPAN.keyword { text-decoration: underline; }--/* Resize the buttom image to match the text size */-IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }--/* --------- Contents page ---------- */--DIV.node {- padding-left: 3em;-}--DIV.cnode {- padding-left: 1.75em;-}--SPAN.pkg {- position: absolute;- left: 50em;-}--/* --------- Documentation elements ---------- */--TD.children {- padding-left: 25px;- }--TD.synopsis {- padding: 2px;- background-color: #f0f0f0;- font-family: monospace- }--TD.decl { - padding: 2px;- background-color: #f0f0f0; - font-family: monospace;- vertical-align: top;- }--/* - arg is just like decl, except that wrapping is not allowed. It is- used for function and constructor arguments which have a text box- to the right, where if wrapping is allowed the text box squashes up- the declaration by wrapping it.-*/-TD.arg { - padding: 2px;- background-color: #f0f0f0; - font-family: monospace;- vertical-align: top;- white-space: nowrap;- }--TD.recfield { padding-left: 20px }--TD.doc { - padding-top: 2px;- padding-left: 10px;- }--TD.ndoc { - padding: 2px;- }--TD.rdoc { - padding: 2px;- padding-left: 10px;- width: 100%;- }--TD.body { - padding-left: 10px- }--TD.pkg {- width: 100%;- padding-left: 10px-}--TD.indexentry {- vertical-align: top;- padding-right: 10px- }--TD.indexannot {- vertical-align: top;- padding-left: 20px;- white-space: nowrap- }--TD.indexlinks {- width: 100%- }--/* ------- Section Headings ------- */--TD.section1 {- padding-top: 15px;- font-weight: bold;- font-size: 150%- }--TD.section2 {- padding-top: 10px;- font-weight: bold;- font-size: 130%- }--TD.section3 {- padding-top: 5px;- font-weight: bold;- font-size: 110%- }--TD.section4 {- font-weight: bold;- font-size: 100%- }--/* -------------- The title bar at the top of the page */--TD.infohead {- color: #ffffff;- font-weight: bold;- padding-right: 10px;- text-align: left;-}--TD.infoval {- color: #ffffff;- padding-right: 10px;- text-align: left;-}--TD.topbar {- background-color: #000099;- padding: 5px;-}--TD.title {- color: #ffffff;- padding-left: 10px;- width: 100%- }--TD.topbut {- padding-left: 5px;- padding-right: 5px;- border-left-width: 1px;- border-left-color: #ffffff;- border-left-style: solid;- white-space: nowrap;- }--TD.topbut A:link {- color: #ffffff- }--TD.topbut A:visited {- color: #ffff00- }--TD.topbut A:hover {- background-color: #6060ff;- }--TD.topbut:hover {- background-color: #6060ff- }--TD.modulebar { - background-color: #0077dd;- padding: 5px;- border-top-width: 1px;- border-top-color: #ffffff;- border-top-style: solid;- }--/* --------- The page footer --------- */--TD.botbar {- background-color: #000099;- color: #ffffff;- padding: 5px- }-TD.botbar A:link {- color: #ffffff;- text-decoration: underline- }-TD.botbar A:visited {- color: #ffff00- }-TD.botbar A:hover {- background-color: #6060ff- }-
− docs/haddock.js
@@ -1,15 +0,0 @@-// Haddock JavaScript utilities-function toggle(button,id)-{- var n = document.getElementById(id).style;- if (n.display == "none")- {- button.src = "minus.gif";- n.display = "block";- }- else- {- button.src = "plus.gif";- n.display = "none";- }-}
− docs/haskell_icon.gif
binary file changed (911 → absent bytes)
− docs/index.html
@@ -1,488 +0,0 @@-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">-<!--Rendered using the Haskell Html Library v0.2-->-<HTML-><HEAD-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"-><TITLE->Chasing Bottoms</TITLE-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"-><SCRIPT SRC="haddock.js" TYPE="text/javascript"-></SCRIPT-></HEAD-><BODY-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="topbar"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "-></TD-><TD CLASS="title"->Chasing Bottoms</TD-><TD CLASS="topbut"-><A HREF="index.html"->Contents</A-></TD-><TD CLASS="topbut"-><A HREF="doc-index.html"->Index</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Chasing Bottoms</TD-></TR-><TR-><TD CLASS="doc"-><P->Do you ever feel the need to test code involving bottoms (e.g. calls to-the <TT->error</TT-> function), or code involving infinite values? Then this-library could be useful for you.-</P-><P->It is usually easy to get a grip on bottoms by showing a value and-waiting to see how much gets printed before the first exception is-encountered. However, that quickly gets tiresome and is hard to automate-using e.g. QuickCheck-(<A HREF="http://www.cs.chalmers.se/~rjmh/QuickCheck/"->http://www.cs.chalmers.se/~rjmh/QuickCheck/</A->). With this library you-can do the tests as simply as the following examples show.-</P-><P->Testing explicitly for bottoms:-</P-><DL-><DT-><TT->> isBottom (head [])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->> isBottom bottom</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->> isBottom (\_ -> bottom)</TT-></DT-><DD-> <TT->False</TT->-</DD-><DT-><TT->> isBottom (bottom, bottom)</TT-></DT-><DD-> <TT->False</TT->-</DD-></DL-><P->Comparing finite, partial values:-</P-><DL-><DT-><TT->> ((bottom, 3) :: (Bool, Int)) ==! (bottom, 2+5-4)</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->> ((bottom, bottom) :: (Bool, Int)) <! (bottom, 8)</TT-></DT-><DD-> <TT->True</TT->-</DD-></DL-><P->Showing partial and infinite values (<TT->\/!</TT-> is join and <TT->/\!</TT-> is meet):-</P-><DL-><DT-><TT->> approxShow 4 $ (True, bottom) \/! (bottom, 'b')</TT-></DT-><DD-> <TT->"Just (True, 'b')"</TT->-</DD-><DT-><TT->> approxShow 4 $ (True, bottom) /\! (bottom, 'b')</TT-></DT-><DD-> <TT->"(_|_, _|_)"</TT->-</DD-><DT-><TT->> approxShow 4 $ ([1..] :: [Int])</TT-></DT-><DD-> <TT->"[1, 2, 3, _"</TT->-</DD-><DT-><TT->> approxShow 4 $ (cycle [bottom] :: [Bool])</TT-></DT-><DD-> <TT->"[_|_, _|_, _|_, _"</TT->-</DD-></DL-><P->Approximately comparing infinite, partial values:-</P-><DL-><DT-><TT->> approx 100 [2,4..] ==! approx 100 (filter even [1..] :: [Int])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->> approx 100 [2,4..] /=! approx 100 (filter even [bottom..] :: [Int])</TT-></DT-><DD-> <TT->True</TT->-</DD-></DL-><P->The code above relies on the fact that <TT->bottom</TT->, just as <TT->error-"..."</TT->, <TT->undefined</TT-> and pattern match failures, yield-exceptions. Sometimes we are dealing with properly non-terminating-computations, such as the following example, and then it can be nice to-be able to apply a time-out:-</P-><DL-><DT-><TT->> timeOut' 1 (reverse [1..5]) >>= print</TT-></DT-><DD-> <TT->Value [5,4,3,2,1]</TT->-</DD-><DT-><TT->> timeOut' 1 (reverse [1..]) >>= print</TT-></DT-><DD-> <TT->NonTermination</TT->-</DD-></DL-><P->The time-out functionality can be used to treat "slow" computations as-bottoms:-</P-><DL-><DT-><TT->> let tweak = Tweak { approxDepth = Just 5, timeOutLimit = Just 2 }</TT-></DT-><DD->-</DD-><DT-><TT->> semanticEq tweak (reverse [1..], [1..]) (bottom :: [Int], [1..] :: [Int])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->> let tweak = noTweak { timeOutLimit = Just 2 }</TT-></DT-><DD->-</DD-><DT-><TT->> semanticJoin tweak (reverse [1..], True) ([] :: [Int], bottom)</TT-></DT-><DD-> <TT->Just ([],True)</TT->-</DD-></DL-><P->This can of course be dangerous:-</P-><DL-><DT-><TT->> let tweak = noTweak { timeOutLimit = Just 0 }</TT-></DT-><DD->-</DD-><DT-><TT->> semanticEq tweak (reverse [1..100000000]) (bottom :: [Integer])</TT-></DT-><DD-> <TT->True</TT->-</DD-></DL-><P->Timeouts can also be applied to <TT->IO</TT-> computations:-</P-><DL-><DT-><TT->> let primes = unfoldr (\(x:xs) -> Just (x, filter ((/= 0) . (`mod` x)) xs)) [2..]</TT-></DT-><DD->-</DD-><DT-><TT->> timeOutMicro 100 (print $ filter ((== 1) . (`mod` 83)) primes) >>= print</TT-></DT-><DD-> <TT->[167,499NonTermination</TT->-</DD-><DT-><TT->> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (`mod` 83)) primes) >>= print</TT-></DT-><DD-> <TT->[167,499,997NonTermination</TT->-</DD-><DT-><TT->> timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (`mod` 83)) primes) >>= print</TT-></DT-><DD-> <TT->[167,499,997,1163]</TT->-</DD-><DT-><TT-> </TT-></DT-><DD-> <TT->Value ()</TT->-</DD-></DL-><P->All the type annotations above are required.-</P-><P->For the underlying theory and a larger example involving use of-QuickCheck, see the article "Chasing Bottoms, A Case Study in Program-Verification in the Presence of Partial and Infinite Values"-(<A HREF="http://www.cs.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html"->http://www.cs.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html</A->).-</P-><P->The code has been tested under GHC 6.8. Most parts can probably be-ported to other Haskell compilers, but that would require some work.-The <TT->TimeOut</TT-> functions require preemptive scheduling, and most of the-rest requires <TT->Data.Generics</TT->; <TT->isBottom</TT-> only requires exceptions,-though.-</P-><P->Source code: <A HREF="http://www.cs.chalmers.se/~nad/software/ChasingBottoms/ChasingBottoms.tar.gz"->http://www.cs.chalmers.se/~nad/software/ChasingBottoms/ChasingBottoms.tar.gz</A->.-</P-></TD-></TR-><TR-><TD CLASS="section1"->Modules</TD-></TR-><TR-><TD-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"-><TR-><TD STYLE="width: 50em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"->Test</TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"-><TR-><TD STYLE="width: 48em"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"-><A HREF="Test-ChasingBottoms.html"->Test.ChasingBottoms</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"-><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-Approx.html"->Test.ChasingBottoms.Approx</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-ApproxShow.html"->Test.ChasingBottoms.ApproxShow</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-ContinuousFunctions.html"->Test.ChasingBottoms.ContinuousFunctions</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-IsBottom.html"->Test.ChasingBottoms.IsBottom</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-Nat.html"->Test.ChasingBottoms.Nat</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-SemanticOrd.html"->Test.ChasingBottoms.SemanticOrd</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 46em"-><A HREF="Test-ChasingBottoms-TimeOut.html"->Test.ChasingBottoms.TimeOut</A-></TD-><TD-></TD-><TD-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 0.7</TD-></TR-></TABLE-></BODY-></HTML->
− docs/minus.gif
binary file changed (56 → absent bytes)
− docs/plus.gif
binary file changed (59 → absent bytes)