What is DocTest
DocTest is available from Hackage. Install it, by typing:
cabal install doctest
Below is a small Haskell module. The module contains a Haddock comment with some examples of interaction. The examples demonstrate how the module is supposed to be used.
module Fib where -- | Compute Fibonacci numbers -- -- Examples: -- -- >>> fib 10 -- 55 -- -- >>> fib 5 -- 5 fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2)
(A comment line starting with
>>> denotes an expression.
All comment lines following an expression denote the result of that expression.
Result is defined by what an
REPL (e.g. ghci)
stderr when evaluating that expression.)
With DocTest you may check whether the implementation satisfies the given examples, by typing:
You may produce Haddock documentation for that module with:
haddock -h Fib.hs -o doc/
DocTest is still experimental. Patches are gladly welcome!