hxt-7.4: doc/hdoc/Control-Arrow-ArrowIO.html
<!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
>Control.Arrow.ArrowIO</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.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"
>Haskell Xml Toolbox 7.4: The complete API</TD
><TD CLASS="topbut"
><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"
>Source code</A
></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"
>Control.Arrow.ArrowIO</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Uwe Schmidt (uwe\@fh-wedel.de)</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>Version : $Id: ArrowIO.hs,v 1.6 2005<EM
>09</EM
>02 17:09:39 hxml Exp $
</P
><P
>Lifting of IO actions to arrows
</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"
>class</SPAN
> Arrow a => <A HREF="#t%3AArrowIO"
>ArrowIO</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%3AarrIO"
>arrIO</A
> :: (b -> IO c) -> a b c</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarrIO0"
>arrIO0</A
> :: IO c -> a b c</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarrIO2"
>arrIO2</A
> :: (b1 -> b2 -> IO c) -> a (b1, b2) c</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarrIO3"
>arrIO3</A
> :: (b1 -> b2 -> b3 -> IO c) -> a (b1, (b2, b3)) c</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AarrIO4"
>arrIO4</A
> :: (b1 -> b2 -> b3 -> b4 -> IO c) -> a (b1, (b2, (b3, b4))) c</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
>ArrowIO</A
> a) => <A HREF="#t%3AArrowIOIf"
>ArrowIOIf</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%3AisIOA"
>isIOA</A
> :: (b -> IO Bool) -> a b b</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
> Arrow a => <A NAME="t%3AArrowIO"
></A
><B
>ArrowIO</B
> a <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>the interface for converting an IO action into an arrow
</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%3AarrIO"
></A
><B
>arrIO</B
> :: (b -> IO c) -> a b c</TD
></TR
><TR
><TD CLASS="doc"
>construct an arrow from an IO action
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v%3AarrIO0"
></A
><B
>arrIO0</B
> :: IO c -> a b c</TD
></TR
><TR
><TD CLASS="doc"
>construct an arrow from an IO action without any parameter
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v%3AarrIO2"
></A
><B
>arrIO2</B
> :: (b1 -> b2 -> IO c) -> a (b1, b2) c</TD
></TR
><TR
><TD CLASS="doc"
>construction of a 2 argument arrow from a binary IO action
|
| example: <TT
> a1 &&& a2 >>> arr2 f </TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v%3AarrIO3"
></A
><B
>arrIO3</B
> :: (b1 -> b2 -> b3 -> IO c) -> a (b1, (b2, b3)) c</TD
></TR
><TR
><TD CLASS="doc"
>construction of a 3 argument arrow from a 3-ary IO action
|
| example: <TT
> a1 &&& a2 &&& a3 >>> arr3 f </TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v%3AarrIO4"
></A
><B
>arrIO4</B
> :: (b1 -> b2 -> b3 -> b4 -> IO c) -> a (b1, (b2, (b3, b4))) c</TD
></TR
><TR
><TD CLASS="doc"
>construction of a 4 argument arrow from a 4-ary IO action
|
| example: <TT
> a1 &&& a2 &&& a3 &&& a4 >>> arr4 f </TT
>
</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:ArrowIO')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ArrowIO" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
>ArrowIO</A
> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
>IOLA</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
>ArrowIO</A
> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
>IOSLA</A
> s)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (Arrow a, <A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIO"
>ArrowIO</A
> a) => <A NAME="t%3AArrowIOIf"
></A
><B
>ArrowIOIf</B
> a <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>the interface for converting an IO predicate into a list arrow
</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%3AisIOA"
></A
><B
>isIOA</B
> :: (b -> IO Bool) -> a b b</TD
></TR
><TR
><TD CLASS="doc"
><P
>builds an arrow from an IO predicate
</P
><P
>if the predicate holds, the single list containing the input is returned, else the empty list,
similar to <TT
><A HREF="Control-Arrow-ArrowList.html#v%3AisA"
>isA</A
></TT
>
</P
></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:ArrowIOIf')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:ArrowIOIf" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
>ArrowIOIf</A
> <A HREF="Control-Arrow-IOListArrow.html#t%3AIOLA"
>IOLA</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow-ArrowIO.html#t%3AArrowIOIf"
>ArrowIOIf</A
> (<A HREF="Control-Arrow-IOStateListArrow.html#t%3AIOSLA"
>IOSLA</A
> s)</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.8</TD
></TR
></TABLE
></BODY
></HTML
>