packages feed

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 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 &#x7b; approxDepth = Just 5, timeOutLimit = Just 2 &#x7d;@]+  .+    [@> semanticEq tweak (reverse [1..\], [1..\]) (bottom :: [Int\], [1..\] :: [Int\])@] @True@+  .+    [@> let tweak = noTweak &#x7b; timeOutLimit = Just 2 &#x7d;@]+  .+    [@> semanticJoin tweak (reverse [1..\], True) ([\] :: [Int\], bottom)@] @Just ([],True)@+  .+  This can of course be dangerous:+  .+    [@> let tweak = noTweak &#x7b; timeOutLimit = Just 0 &#x7d;@]+  .+    [@> 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-> -&gt; a -&gt; a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aapprox"->approx</A-> :: <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; a -&gt; 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-> -&gt; a -&gt; 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-> -&gt; a -&gt; 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 =&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ApproxShow.html#t%3APrec"->Prec</A-> -&gt; a -&gt; <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-> -&gt; a -&gt; <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-> -&gt; a -&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ApproxShow.html#t%3APrec"->Prec</A-> -&gt; a -&gt; <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->&quot;_&quot;</TT->.-</LI-><LI-> All detectable occurences of bottoms are replaced by <TT->&quot;_|_&quot;</TT->.-</LI-><LI-> Non-bottom functions are displayed as <TT->&quot;&lt;function /= _|_&gt;&quot;</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-> -&gt; a -&gt; <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-> -&gt; a -&gt; <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 =&gt; <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 -&gt; Gen b -&gt; 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 -&gt; Gen b -&gt; Gen (a -&gt; b)- function coGen gen = promote (\a -&gt; 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"->&lt;=!</A-></TT-> y</TT-> implies that <TT->f x- <TT-><A HREF="Test-ChasingBottoms-SemanticOrd.html#v%3A%3C%3D%21"->&lt;=!</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 -&gt; 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 -&gt; Tree Integer</TT-> we can use-</P-><PRE-> forAll (functionTo (finiteTreeOf flat)) $-   \(f :: Bool -&gt; Tree Integer) -&gt;-     ...-</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 -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -&gt; 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 =&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -&gt; 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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 =&gt; <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 =&gt; (a, a) -&gt; <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] -&gt; <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] -&gt; <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)] -&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a) -&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -&gt; <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 =&gt; <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 =&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -&gt; 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 =&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> b -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/QuickCheck-1.1.0.0/Test-QuickCheck.html#t%3AGen"->Gen</A-> (a -&gt; 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 -&gt; <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 -&gt; <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 =&gt; <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 =&gt; <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 -&gt; <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 -&gt; <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 =&gt; <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 =&gt; (a, a) -&gt; <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] -&gt; <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] -&gt; <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)] -&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a) -&gt; <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-> -&gt; <A HREF="Test-ChasingBottoms-ContinuousFunctions.html#t%3AMakeResult"->MakeResult</A-> a -&gt; <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 =&gt; <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 =&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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 -&gt; <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-> -&gt; 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-> -&gt; a -&gt; <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 -&gt; <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- &quot;pure bottoms&quot;, 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-> -&gt; 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-> -&gt; a -&gt; <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 &quot;function&quot; 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-> -&gt; <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-> -&gt; <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 -&gt; (<A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; a -&gt; a) -&gt; <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; a</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AfoldN"->foldN</A-> :: a -&gt; (a -&gt; a) -&gt; <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; 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-> -&gt; <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-> -&gt; <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 -&gt; (<A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; a -&gt; a) -&gt; <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; 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 -&gt; (a -&gt; a) -&gt; <A HREF="Test-ChasingBottoms-Nat.html#t%3ANat"->Nat</A-> -&gt; 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"->&lt;=!</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 -&gt; a -&gt; <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 -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; <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 =&gt; <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"->(&lt;!)</A-> :: a -&gt; a -&gt; <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"->(&lt;=!)</A-> :: a -&gt; a -&gt; <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"->(&gt;=!)</A-> :: a -&gt; a -&gt; <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"->(&gt;!)</A-> :: a -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; <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 -&gt; a -&gt; <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 -&gt; a -&gt; a</TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsemanticJoin"->semanticJoin</A-> :: <A HREF="Test-ChasingBottoms-SemanticOrd.html#t%3ATweak"->Tweak</A-> -&gt; a -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; 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 -&gt; a -&gt; <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 -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; <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 =&gt; <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 =&gt; <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->(&lt;!)</B-> :: a -&gt; a -&gt; <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->(&lt;=!)</B-> :: a -&gt; a -&gt; <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->(&gt;=!)</B-> :: a -&gt; a -&gt; <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->(&gt;!)</B-> :: a -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; <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 -&gt; a -&gt; <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 -&gt; a -&gt; 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-> -&gt; a -&gt; a -&gt; <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-> -&gt; a -&gt; a -&gt; 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 =&gt; <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 &quot;hard bottoms&quot;, 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-> -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -&gt; <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-> -&gt; a -&gt; <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-> -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -&gt; <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-> -&gt; a -&gt; <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 =&gt; <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 =&gt; <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 =&gt; <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-> -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -&gt; <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-> -&gt; a -&gt; <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-> &lt;something&gt;</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-> -&gt; <A HREF="http://www.haskell.org/ghc/docs/latest/html/libraries/base-3.0.0.0/System-IO.html#t%3AIO"->IO</A-> a -&gt; <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-> -&gt; a -&gt; <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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (&lt;)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->&lt;!</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"->&lt;=!</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</A-></TD-><TD-><A HREF="doc-index-92.html"->\</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section1"->Index (&gt;)</TD-></TR-><TR-><TD-><TABLE CELLPADDING="0" CELLSPACING="5"-><TR-><TD CLASS="indexentry"->&gt;!</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"->&gt;=!</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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"->&lt;</A-></TD-><TD-><A HREF="doc-index-61.html"->=</A-></TD-><TD-><A HREF="doc-index-62.html"->&gt;</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->&gt; isBottom (head [])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->&gt; isBottom bottom</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->&gt; isBottom (\_ -&gt; bottom)</TT-></DT-><DD-> <TT->False</TT->-</DD-><DT-><TT->&gt; isBottom (bottom, bottom)</TT-></DT-><DD-> <TT->False</TT->-</DD-></DL-><P->Comparing finite, partial values:-</P-><DL-><DT-><TT->&gt; ((bottom, 3) :: (Bool, Int)) ==! (bottom, 2+5-4)</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->&gt; ((bottom, bottom) :: (Bool, Int)) &lt;! (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->&gt; approxShow 4 $ (True, bottom) \/! (bottom, 'b')</TT-></DT-><DD-> <TT->&quot;Just (True, 'b')&quot;</TT->-</DD-><DT-><TT->&gt; approxShow 4 $ (True, bottom) /\! (bottom, 'b')</TT-></DT-><DD-> <TT->&quot;(_|_, _|_)&quot;</TT->-</DD-><DT-><TT->&gt; approxShow 4 $ ([1..] :: [Int])</TT-></DT-><DD-> <TT->&quot;[1, 2, 3, _&quot;</TT->-</DD-><DT-><TT->&gt; approxShow 4 $ (cycle [bottom] :: [Bool])</TT-></DT-><DD-> <TT->&quot;[_|_, _|_, _|_, _&quot;</TT->-</DD-></DL-><P->Approximately comparing infinite, partial values:-</P-><DL-><DT-><TT->&gt; approx 100 [2,4..] ==! approx 100 (filter even [1..] :: [Int])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->&gt; 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-&quot;...&quot;</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->&gt; timeOut' 1 (reverse [1..5]) &gt;&gt;= print</TT-></DT-><DD-> <TT->Value [5,4,3,2,1]</TT->-</DD-><DT-><TT->&gt; timeOut' 1 (reverse [1..]) &gt;&gt;= print</TT-></DT-><DD-> <TT->NonTermination</TT->-</DD-></DL-><P->The time-out functionality can be used to treat &quot;slow&quot; computations as-bottoms:-</P-><DL-><DT-><TT->&gt; let tweak = Tweak { approxDepth = Just 5, timeOutLimit = Just 2 }</TT-></DT-><DD->-</DD-><DT-><TT->&gt; semanticEq tweak (reverse [1..], [1..]) (bottom :: [Int], [1..] :: [Int])</TT-></DT-><DD-> <TT->True</TT->-</DD-><DT-><TT->&gt; let tweak = noTweak { timeOutLimit = Just 2 }</TT-></DT-><DD->-</DD-><DT-><TT->&gt; 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->&gt; let tweak = noTweak { timeOutLimit = Just 0 }</TT-></DT-><DD->-</DD-><DT-><TT->&gt; 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->&gt; let primes = unfoldr (\(x:xs) -&gt; Just (x, filter ((/= 0) . (`mod` x)) xs)) [2..]</TT-></DT-><DD->-</DD-><DT-><TT->&gt; timeOutMicro 100 (print $ filter ((== 1) . (`mod` 83)) primes) &gt;&gt;= print</TT-></DT-><DD-> <TT->[167,499NonTermination</TT->-</DD-><DT-><TT->&gt; timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (`mod` 83)) primes) &gt;&gt;= print</TT-></DT-><DD-> <TT->[167,499,997NonTermination</TT->-</DD-><DT-><TT->&gt; timeOutMicro 100 (print $ take 4 $ filter ((== 1) . (`mod` 83)) primes) &gt;&gt;= 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 &quot;Chasing Bottoms, A Case Study in Program-Verification in the Presence of Partial and Infinite Values&quot;-(<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)