Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 04b8279fdc5e703609ad317fcd46531f > files > 28

ghc-lifted-base-devel-0.1.0.3-1.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Concurrent.MVar.Lifted</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Concurrent-MVar-Lifted.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Concurrent-MVar-Lifted.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lifted-base-0.1.0.3: lifted IO operations from the base library</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Bas van Dijk &lt;v.dijk.bas@gmail.com&gt;</td></tr></table><p class="caption">Control.Concurrent.MVar.Lifted</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is a wrapped version of <code>Control.Concurrent.MVar</code> with types generalized
from <code>IO</code> to all monads in either <code><a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a></code> or <code><a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a></code>.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:MVar">MVar</a> a</li><li class="src short"><a href="#v:newEmptyMVar">newEmptyMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m (<a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945;)</li><li class="src short"><a href="#v:newMVar">newMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; &#945; -&gt; m (<a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945;)</li><li class="src short"><a href="#v:takeMVar">takeMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:putMVar">putMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:readMVar">readMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:swapMVar">swapMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m &#945;</li><li class="src short"><a href="#v:tryTakeMVar">tryTakeMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#945;)</li><li class="src short"><a href="#v:tryPutMVar">tryPutMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isEmptyMVar">isEmptyMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:withMVar">withMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m &#946;) -&gt; m &#946;</li><li class="src short"><a href="#v:modifyMVar_">modifyMVar_</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m) =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m &#945;) -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:modifyMVar">modifyMVar</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m) =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m (&#945;, &#946;)) -&gt; m &#946;</li><li class="src short"><a href="#v:addMVarFinalizer">addMVarFinalizer</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a> -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MVar" class="def">MVar</a> a </p><div class="doc"><p>An <code><a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a></code> (pronounced &quot;em-var&quot;) is a synchronising variable, used
for communication between concurrent threads.  It can be thought of
as a a box, which may be empty or full.
</p></div><div class="subs instances"><p id="control.i:MVar" class="caption collapser" onclick="toggleSection('i:MVar')">Instances</p><div id="section.i:MVar" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable1">Typeable1</a> <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:newEmptyMVar" class="def">newEmptyMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; m (<a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945;)<a href="src/Control-Concurrent-MVar-Lifted.html#newEmptyMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:newEmptyMVar">newEmptyMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:newMVar" class="def">newMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; &#945; -&gt; m (<a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945;)<a href="src/Control-Concurrent-MVar-Lifted.html#newMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:newMVar">newMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:takeMVar" class="def">takeMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m &#945;<a href="src/Control-Concurrent-MVar-Lifted.html#takeMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:takeMVar">takeMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:putMVar" class="def">putMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Control-Concurrent-MVar-Lifted.html#putMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:putMVar">putMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:readMVar" class="def">readMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m &#945;<a href="src/Control-Concurrent-MVar-Lifted.html#readMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:readMVar">readMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:swapMVar" class="def">swapMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m &#945;<a href="src/Control-Concurrent-MVar-Lifted.html#swapMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:swapMVar">swapMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:tryTakeMVar" class="def">tryTakeMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> &#945;)<a href="src/Control-Concurrent-MVar-Lifted.html#tryTakeMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:tryTakeMVar">tryTakeMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:tryPutMVar" class="def">tryPutMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Concurrent-MVar-Lifted.html#tryPutMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:tryPutMVar">tryPutMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:isEmptyMVar" class="def">isEmptyMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Concurrent-MVar-Lifted.html#isEmptyMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:isEmptyMVar">isEmptyMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:withMVar" class="def">withMVar</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m &#946;) -&gt; m &#946;<a href="src/Control-Concurrent-MVar-Lifted.html#withMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:withMVar">withMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:modifyMVar_" class="def">modifyMVar_</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m) =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m &#945;) -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Control-Concurrent-MVar-Lifted.html#modifyMVar_" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:modifyMVar_">modifyMVar_</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:modifyMVar" class="def">modifyMVar</a> :: (<a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m, <a href="/usr/share/doc/ghc/html/libraries/transformers-base-0.4.1/Control-Monad-Base.html#t:MonadBase">MonadBase</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m) =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; (&#945; -&gt; m (&#945;, &#946;)) -&gt; m &#946;<a href="src/Control-Concurrent-MVar-Lifted.html#modifyMVar" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:modifyMVar">modifyMVar</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:addMVarFinalizer" class="def">addMVarFinalizer</a> :: <a href="/usr/share/doc/ghc/html/libraries/monad-control-0.3.1/Control-Monad-Trans-Control.html#t:MonadBaseControl">MonadBaseControl</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> m =&gt; <a href="Control-Concurrent-MVar-Lifted.html#t:MVar">MVar</a> &#945; -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a> -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Control-Concurrent-MVar-Lifted.html#addMVarFinalizer" class="link">Source</a></p><div class="doc"><p>Generalized version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Concurrent-MVar.html#v:addMVarFinalizer">addMVarFinalizer</a></code>.
</p><p>Note any monadic side effects in <code>m</code> of the &quot;finalizer&quot; computation are
 discarded.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>