/usr/share/doc/libghc-hspec-core-doc/html/src/Test-Hspec-Compat.html is in libghc-hspec-core-doc 2.2.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://code.haskell.org/~malcolm/hscolour/ -->
<title>src/Test/Hspec/Compat.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>{-# LANGUAGE CPP #-}</span>
<a name="line-2"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Test</span><span class='hs-varop'>.</span><span class='hs-conid'>Hspec</span><span class='hs-varop'>.</span><span class='hs-conid'>Compat</span> <span class='hs-layout'>(</span>
<a name="line-3"></a> <span class='hs-varid'>getDefaultConcurrentJobs</span>
<a name="line-4"></a><span class='hs-layout'>,</span> <span class='hs-varid'>showType</span>
<a name="line-5"></a><span class='hs-layout'>,</span> <span class='hs-varid'>showFullType</span>
<a name="line-6"></a><span class='hs-layout'>,</span> <span class='hs-varid'>readMaybe</span>
<a name="line-7"></a><span class='hs-layout'>,</span> <span class='hs-varid'>lookupEnv</span>
<a name="line-8"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>IORef</span>
<a name="line-9"></a>
<a name="line-10"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Prelude</span>
<a name="line-11"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span>
<a name="line-12"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span>
<a name="line-13"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Traversable</span>
<a name="line-14"></a><span class='hs-layout'>,</span> <span class='hs-keyword'>module</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span>
<a name="line-15"></a>
<a name="line-16"></a><span class='hs-cpp'>#if !MIN_VERSION_base(4,6,0)</span>
<a name="line-17"></a><span class='hs-layout'>,</span> <span class='hs-varid'>modifyIORef'</span>
<a name="line-18"></a><span class='hs-cpp'>#endif</span>
<a name="line-19"></a><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-20"></a>
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Applicative</span>
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Foldable</span>
<a name="line-23"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Traversable</span>
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Monoid</span>
<a name="line-25"></a>
<a name="line-26"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span>
<a name="line-27"></a> <span class='hs-varid'>all</span>
<a name="line-28"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>and</span>
<a name="line-29"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>any</span>
<a name="line-30"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>concat</span>
<a name="line-31"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>concatMap</span>
<a name="line-32"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>elem</span>
<a name="line-33"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>foldl</span>
<a name="line-34"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>foldl1</span>
<a name="line-35"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>foldr</span>
<a name="line-36"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>foldr1</span>
<a name="line-37"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>mapM</span>
<a name="line-38"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>mapM_</span>
<a name="line-39"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>maximum</span>
<a name="line-40"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>minimum</span>
<a name="line-41"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>notElem</span>
<a name="line-42"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>or</span>
<a name="line-43"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>product</span>
<a name="line-44"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sequence</span>
<a name="line-45"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sequence_</span>
<a name="line-46"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>sum</span>
<a name="line-47"></a> <span class='hs-layout'>)</span>
<a name="line-48"></a>
<a name="line-49"></a><span class='hs-cpp'>#if !MIN_VERSION_base(4,3,0)</span>
<a name="line-50"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span><span class='hs-varop'>.</span><span class='hs-conid'>Trans</span><span class='hs-varop'>.</span><span class='hs-conid'>Error</span> <span class='hs-conid'>()</span> <span class='hs-comment'>-- for Monad (Either e)</span>
<a name="line-51"></a><span class='hs-cpp'>#endif</span>
<a name="line-52"></a>
<a name="line-53"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Typeable</span> <span class='hs-layout'>(</span><span class='hs-conid'>Typeable</span><span class='hs-layout'>,</span> <span class='hs-varid'>typeOf</span><span class='hs-layout'>,</span> <span class='hs-varid'>typeRepTyCon</span><span class='hs-layout'>)</span>
<a name="line-54"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Read</span>
<a name="line-55"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>IORef</span>
<a name="line-56"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Environment</span>
<a name="line-57"></a>
<a name="line-58"></a><span class='hs-cpp'>#if MIN_VERSION_base(4,4,0)</span>
<a name="line-59"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Typeable</span><span class='hs-varop'>.</span><span class='hs-conid'>Internal</span> <span class='hs-layout'>(</span><span class='hs-varid'>tyConModule</span><span class='hs-layout'>,</span> <span class='hs-varid'>tyConName</span><span class='hs-layout'>)</span>
<a name="line-60"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Concurrent</span>
<a name="line-61"></a><span class='hs-cpp'>#endif</span>
<a name="line-62"></a>
<a name="line-63"></a><span class='hs-cpp'>#if !MIN_VERSION_base(4,6,0)</span>
<a name="line-64"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>ParserCombinators</span><span class='hs-varop'>.</span><span class='hs-conid'>ReadP</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>P</span>
<a name="line-65"></a><span class='hs-cpp'>#endif</span>
<a name="line-66"></a>
<a name="line-67"></a><a name="getDefaultConcurrentJobs"></a><span class='hs-definition'>getDefaultConcurrentJobs</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Int</span>
<a name="line-68"></a><span class='hs-cpp'>#if MIN_VERSION_base(4,4,0)</span>
<a name="line-69"></a><span class='hs-definition'>getDefaultConcurrentJobs</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>getNumCapabilities</span>
<a name="line-70"></a><span class='hs-cpp'>#else</span>
<a name="line-71"></a><span class='hs-definition'>getDefaultConcurrentJobs</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>return</span> <span class='hs-num'>1</span>
<a name="line-72"></a><span class='hs-cpp'>#endif</span>
<a name="line-73"></a>
<a name="line-74"></a><span class='hs-cpp'>#if !MIN_VERSION_base(4,6,0)</span>
<a name="line-75"></a><a name="modifyIORef'"></a><span class='hs-comment'>-- |Strict version of 'modifyIORef'</span>
<a name="line-76"></a><span class='hs-definition'>modifyIORef'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IORef</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-77"></a><span class='hs-definition'>modifyIORef'</span> <span class='hs-varid'>ref</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-78"></a> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readIORef</span> <span class='hs-varid'>ref</span>
<a name="line-79"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>x'</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>f</span> <span class='hs-varid'>x</span>
<a name="line-80"></a> <span class='hs-varid'>x'</span> <span class='hs-varop'>`seq`</span> <span class='hs-varid'>writeIORef</span> <span class='hs-varid'>ref</span> <span class='hs-varid'>x'</span>
<a name="line-81"></a>
<a name="line-82"></a><a name="readEither"></a><span class='hs-comment'>-- | Parse a string using the 'Read' instance.</span>
<a name="line-83"></a><span class='hs-comment'>-- Succeeds if there is exactly one valid result.</span>
<a name="line-84"></a><span class='hs-comment'>-- A 'Left' value indicates a parse error.</span>
<a name="line-85"></a><span class='hs-definition'>readEither</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Read</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Either</span> <span class='hs-conid'>String</span> <span class='hs-varid'>a</span>
<a name="line-86"></a><span class='hs-definition'>readEither</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>=</span>
<a name="line-87"></a> <span class='hs-keyword'>case</span> <span class='hs-keyglyph'>[</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-layout'>,</span><span class='hs-str'>""</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readPrec_to_S</span> <span class='hs-varid'>read'</span> <span class='hs-varid'>minPrec</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>]</span> <span class='hs-keyword'>of</span>
<a name="line-88"></a> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Right</span> <span class='hs-varid'>x</span>
<a name="line-89"></a> <span class='hs-conid'>[]</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Left</span> <span class='hs-str'>"Prelude.read: no parse"</span>
<a name="line-90"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Left</span> <span class='hs-str'>"Prelude.read: ambiguous parse"</span>
<a name="line-91"></a> <span class='hs-keyword'>where</span>
<a name="line-92"></a> <span class='hs-varid'>read'</span> <span class='hs-keyglyph'>=</span>
<a name="line-93"></a> <span class='hs-keyword'>do</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'><-</span> <span class='hs-varid'>readPrec</span>
<a name="line-94"></a> <span class='hs-varid'>lift</span> <span class='hs-conid'>P</span><span class='hs-varop'>.</span><span class='hs-varid'>skipSpaces</span>
<a name="line-95"></a> <span class='hs-varid'>return</span> <span class='hs-varid'>x</span>
<a name="line-96"></a>
<a name="line-97"></a><a name="readMaybe"></a><span class='hs-comment'>-- | Parse a string using the 'Read' instance.</span>
<a name="line-98"></a><span class='hs-comment'>-- Succeeds if there is exactly one valid result.</span>
<a name="line-99"></a><span class='hs-definition'>readMaybe</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Read</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Maybe</span> <span class='hs-varid'>a</span>
<a name="line-100"></a><span class='hs-definition'>readMaybe</span> <span class='hs-varid'>s</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <span class='hs-varid'>readEither</span> <span class='hs-varid'>s</span> <span class='hs-keyword'>of</span>
<a name="line-101"></a> <span class='hs-conid'>Left</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Nothing</span>
<a name="line-102"></a> <span class='hs-conid'>Right</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Just</span> <span class='hs-varid'>a</span>
<a name="line-103"></a>
<a name="line-104"></a><a name="lookupEnv"></a><span class='hs-comment'>-- | Return the value of the environment variable @var@, or @Nothing@ if</span>
<a name="line-105"></a><span class='hs-comment'>-- there is no such value.</span>
<a name="line-106"></a><span class='hs-comment'>--</span>
<a name="line-107"></a><span class='hs-comment'>-- For POSIX users, this is equivalent to 'System.Posix.Env.getEnv'.</span>
<a name="line-108"></a><span class='hs-definition'>lookupEnv</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>String</span><span class='hs-layout'>)</span>
<a name="line-109"></a><span class='hs-definition'>lookupEnv</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>lookup</span> <span class='hs-varid'>k</span> <span class='hs-varop'>`fmap`</span> <span class='hs-varid'>getEnvironment</span>
<a name="line-110"></a><span class='hs-cpp'>#endif</span>
<a name="line-111"></a>
<a name="line-112"></a><a name="showType"></a><span class='hs-definition'>showType</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Typeable</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span>
<a name="line-113"></a><span class='hs-definition'>showType</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>typeRepTyCon</span> <span class='hs-layout'>(</span><span class='hs-varid'>typeOf</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>in</span>
<a name="line-114"></a><span class='hs-cpp'>#if MIN_VERSION_base(4,4,0)</span>
<a name="line-115"></a> <span class='hs-varid'>show</span> <span class='hs-varid'>t</span>
<a name="line-116"></a><span class='hs-cpp'>#else</span>
<a name="line-117"></a> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span> <span class='hs-varop'>.</span> <span class='hs-varid'>takeWhile</span> <span class='hs-layout'>(</span><span class='hs-varop'>/=</span> <span class='hs-chr'>'.'</span><span class='hs-layout'>)</span> <span class='hs-varop'>.</span> <span class='hs-varid'>reverse</span> <span class='hs-varop'>.</span> <span class='hs-varid'>show</span><span class='hs-layout'>)</span> <span class='hs-varid'>t</span>
<a name="line-118"></a><span class='hs-cpp'>#endif</span>
<a name="line-119"></a>
<a name="line-120"></a>
<a name="line-121"></a><a name="showFullType"></a><span class='hs-definition'>showFullType</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Typeable</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=></span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span>
<a name="line-122"></a><span class='hs-definition'>showFullType</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>typeRepTyCon</span> <span class='hs-layout'>(</span><span class='hs-varid'>typeOf</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>in</span>
<a name="line-123"></a><span class='hs-cpp'>#if MIN_VERSION_base(4,4,0)</span>
<a name="line-124"></a> <span class='hs-varid'>tyConModule</span> <span class='hs-varid'>t</span> <span class='hs-varop'>++</span> <span class='hs-str'>"."</span> <span class='hs-varop'>++</span> <span class='hs-varid'>tyConName</span> <span class='hs-varid'>t</span>
<a name="line-125"></a><span class='hs-cpp'>#else</span>
<a name="line-126"></a> <span class='hs-varid'>show</span> <span class='hs-varid'>t</span>
<a name="line-127"></a><span class='hs-cpp'>#endif</span>
</pre></body>
</html>
|