Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > a47f0719970f9f829128f311a437816d > files > 184

ghc-ForSyDe-devel-3.1.1-4.fc14.i686.rpm

<!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
>ForSyDe.Process.SynchProc</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_ForSyDe-Process-SynchProc.html")};</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"
>ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.</TD
><TD CLASS="topbut"
><A HREF="src/ForSyDe-Process-SynchProc.html"
>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"
>ForSyDe.Process.SynchProc</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>non-portable (Template Haskell)</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>forsyde-dev@ict.kth.se</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"
>Combinational process constructors
</A
></DT
><DT
><A HREF="#2"
>Sequential process constructors
</A
></DT
><DT
><A HREF="#3"
>Synchronous Processes
</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"
>This module provides the synchronous process constructors of
 ForSyDe and some useful synchronous processes.
</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%3AconstSY"
>constSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmapSY"
>mapSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWithSY"
>zipWithSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith3SY"
>zipWith3SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith4SY"
>zipWith4SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith5SY"
>zipWith5SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e -&gt; f) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith6SY"
>zipWith6SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f g. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> g) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e -&gt; f -&gt; g) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> g</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWithxSY"
>zipWithxSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s a b. (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a -&gt; b) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdelaySY"
>delaySY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdelaynSY"
>delaynSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AscanlSY"
>scanlSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanl2SY"
>scanl2SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanl3SY"
>scanl3SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AscanldSY"
>scanldSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanld2SY"
>scanld2SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanld3SY"
>scanld3SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmooreSY"
>mooreSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; c) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amoore2SY"
>moore2SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; d) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amoore3SY"
>moore3SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; e) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmealySY"
>mealySY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amealy2SY"
>mealy2SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amealy3SY"
>mealy3SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a) -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsourceSY"
>sourceSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfilterSY"
>filterSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfillSY"
>fillSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AholdSY"
>holdSY</A
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwhenSY"
>whenSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipSY"
>zipSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip3SY"
>zip3SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip4SY"
>zip4SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip5SY"
>zip5SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip6SY"
>zip6SY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e, f)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunzipSY"
>unzipSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip3SY"
>unzip3SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip4SY"
>unzip4SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip5SY"
>unzip5SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip6SY"
>unzip6SY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e, f) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipxSY"
>zipxSY</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AunzipxSY"
>unzipxSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s a. (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmapxSY"
>mapxSY</A
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfstSY"
>fstSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsndSY"
>sndSY</A
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgroupSY"
>groupSY</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> k a. (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> k, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> k, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; k -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> k 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"
><A NAME="1"
>Combinational process constructors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
>Combinational process constructors are used for processes that do not 
   have a state.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:constSY"
><A NAME="v%3AconstSY"
></A
></A
><B
>constSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#constSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Value to output
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Resulting output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>Creates a constant process. A process which outputs the 
   same signal value in every clock cycle.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mapSY"
><A NAME="v%3AmapSY"
></A
></A
><B
>mapSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mapSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b)</TD
><TD CLASS="rdoc"
>Function applied to the input signal 
   in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
> 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Output <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmapSY"
>mapSY</A
></TT
> takes an identifier and a 
   combinational function as arguments and returns a process with one 
   input signal and one output signal.         
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWithSY"
><A NAME="v%3AzipWithSY"
></A
></A
><B
>zipWithSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWithSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b c . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c)</TD
><TD CLASS="rdoc"
>Function applied to the input signals 
   in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>First input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Second input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Output Signal 
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWithSY"
>zipWithSY</A
></TT
> takes an identifier and a 
  combinational function as arguments and returns a process with 
  two input signals and one output signal.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWith3SY"
><A NAME="v%3AzipWith3SY"
></A
></A
><B
>zipWith3SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWith3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d)</TD
><TD CLASS="rdoc"
>Function applied to the input 
 signals in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>First input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Second input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Third input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Output Signal 
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWith3SY"
>zipWith3SY</A
></TT
> takes an identifier and a 
   combinational function as arguments and returns a process with 
   three input signals and one output signal. 
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWith4SY"
><A NAME="v%3AzipWith4SY"
></A
></A
><B
>zipWith4SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWith4SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e)</TD
><TD CLASS="rdoc"
>Function applied to the  
   input signals in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>First input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Second input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Third input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Fourth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
><TD CLASS="rdoc"
>Output Signal 
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWith4SY"
>zipWith4SY</A
></TT
> takes an identifier and a 
   combinational function as arguments and returns a process with 
   four input signals and one output signal. 
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWith5SY"
><A NAME="v%3AzipWith5SY"
></A
></A
><B
>zipWith5SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWith5SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e -&gt; f)</TD
><TD CLASS="rdoc"
>Function applied to the  
   input signals in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>First input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Second input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Third input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Fourth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
><TD CLASS="rdoc"
>Fifth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f</TD
><TD CLASS="rdoc"
>Output Signal 
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWith5SY"
>zipWith5SY</A
></TT
> takes an identifier and a 
   combinational function as arguments and returns a process with 
   five input signals and one output signal. 
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWith6SY"
><A NAME="v%3AzipWith6SY"
></A
></A
><B
>zipWith6SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWith6SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f g . (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> g)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e -&gt; f -&gt; g)</TD
><TD CLASS="rdoc"
>Function applied to the  
   input signals in every cycle
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>First input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Second input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Third input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Fourth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
><TD CLASS="rdoc"
>Fifth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f</TD
><TD CLASS="rdoc"
>Sixth input <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> g</TD
><TD CLASS="rdoc"
>Output Signal 
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWith6SY"
>zipWith6SY</A
></TT
> takes an identifier and a 
   combinational function as arguments and returns a process with 
   five input signals and one output signal. 
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipWithxSY"
><A NAME="v%3AzipWithxSY"
></A
></A
><B
>zipWithxSY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s a b. (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a -&gt; b) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipWithxSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWithxSY"
>zipWithxSY</A
></TT
> works as <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipWithSY"
>zipWithSY</A
></TT
>, but takes a 
   vector of signals as input.                                             
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Sequential process constructors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
>Sequential process constructors are used for processes that have a state.
   One of the input parameters is the initial state.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:delaySY"
><A NAME="v%3AdelaySY"
></A
></A
><B
>delaySY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#delaySY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier of the process
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial value
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
><TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
> to be delayed         
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Resulting delayed <TT
><A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
></TT
>
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AdelaySY"
>delaySY</A
></TT
> delays the signal one event cycle      
   by introducing an initial value at the beginning of the output signal.   
   Note, that this implies that there is one event (the first) at the       
   output signal that has no corresponding event at the input signal.       
   One could argue that input and output signals are not fully synchronized,
   even though all input events are synchronous with a corresponding output 
   event. However, this is necessary to initialize feed-back loops.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:delaynSY"
><A NAME="v%3AdelaynSY"
></A
></A
><B
>delaynSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#delaynSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Identifier
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>Number of Delay cycles 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AdelaynSY"
>delaynSY</A
></TT
> delays the signal n events by 
   introducing n identical default values. It creates a chain of <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AdelaySY"
>delaySY</A
></TT
>
   processes.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanlSY"
><A NAME="v%3AscanlSY"
></A
></A
><B
>scanlSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanlSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Process Identifier
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
> is used to construct a finite state 
   machine process without output decoder. It takes an initial value and 
   a function for the next state decoder. The process constructor behaves 
   similar to the Haskell prelude function <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
> and has the value of 
   the new state as its output value as illustrated by the 
   following example.  
</P
><P
>This is in contrast to the function <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
>, which has its current 
   state as its output value. 
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanl2SY"
><A NAME="v%3Ascanl2SY"
></A
></A
><B
>scanl2SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanl2SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Process Identifier
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Ascanl2SY"
>scanl2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
>, but has two 
   input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanl3SY"
><A NAME="v%3Ascanl3SY"
></A
></A
><B
>scanl3SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanl3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Process Identifier
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Third Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Ascanl2SY"
>scanl2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
>, but has two 
   input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanldSY"
><A NAME="v%3AscanldSY"
></A
></A
><B
>scanldSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanldSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function 
 for next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
> is used to construct a finite state
  machine process without output decoder. It takes an initial value and a
  function for the next state decoder. The process constructor behaves
  similarly to the Haskell prelude function <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
>. In contrast to the
  process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanlSY"
>scanlSY</A
></TT
> here the output value is the current state
  and not the one of the next state.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanld2SY"
><A NAME="v%3Ascanld2SY"
></A
></A
><B
>scanld2SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanld2SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function 
 for next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Ascanld2SY"
>scanld2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
>, but has 
   two input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:scanld3SY"
><A NAME="v%3Ascanld3SY"
></A
></A
><B
>scanld3SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#scanld3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function 
 for next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Ascanld2SY"
>scanld2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
>, but has 
   two input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mooreSY"
><A NAME="v%3AmooreSY"
></A
></A
><B
>mooreSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mooreSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for
   next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; c)</TD
><TD CLASS="rdoc"
>Combinational function for output decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmooreSY"
>mooreSY</A
></TT
> is used to model state machines
 of &quot;Moore&quot; type, where the output only depends on the current
 state. The process constructor is based on the process constructor
 <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
>, since it is natural for state machines in hardware, that
 the output operates on the current state and not on the next
 state. The process constructors takes a function to calculate the
 next state, another function to calculate the output and a value for
 the initial state.
</P
><P
>In contrast the output of a process created by the process constructor
 <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmealySY"
>mealySY</A
></TT
> depends not only on the state, but also on the input values.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:moore2SY"
><A NAME="v%3Amoore2SY"
></A
></A
><B
>moore2SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#moore2SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for
   next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; d)</TD
><TD CLASS="rdoc"
>Combinational function for output decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Amoore2SY"
>moore2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmooreSY"
>mooreSY</A
></TT
>, but has two 
   input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:moore3SY"
><A NAME="v%3Amoore3SY"
></A
></A
><B
>moore3SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#moore3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for
   next state decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; e)</TD
><TD CLASS="rdoc"
>Combinational function for output decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Third Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Amoore2SY"
>moore2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmooreSY"
>mooreSY</A
></TT
>, but has two 
   input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mealySY"
><A NAME="v%3AmealySY"
></A
></A
><B
>mealySY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mealySY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder  
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c)</TD
><TD CLASS="rdoc"
>Combinational function for output decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>The process constructor melaySY is used to model state machines of
 &quot;Mealy&quot; type, where the output only depends on the current state and
 the input values. The process constructor is based on the process
 constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AscanldSY"
>scanldSY</A
></TT
>, since it is natural for state machines in
 hardware, that the output operates on the current state and not on the
 next state. The process constructors takes a function to calculate the
 next state, another function to calculate the output and a value for the
 initial state.
</P
><P
>In contrast the output of a process created by the process constructor 
 <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmooreSY"
>mooreSY</A
></TT
> depends only on the state, but not on the input values.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mealy2SY"
><A NAME="v%3Amealy2SY"
></A
></A
><B
>mealy2SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mealy2SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder  
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d)</TD
><TD CLASS="rdoc"
>Combinational function for output 
 decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Amealy2SY"
>mealy2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmealySY"
>mealySY</A
></TT
>, but has 
   two input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mealy3SY"
><A NAME="v%3Amealy3SY"
></A
></A
><B
>mealy3SY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mealy3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e)</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; a)</TD
><TD CLASS="rdoc"
>Combinational function for next 
 state decoder  
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b -&gt; c -&gt; d -&gt; e)</TD
><TD CLASS="rdoc"
>Combinational function for 
 output decoder
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Initial state
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="rdoc"
>First Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c</TD
><TD CLASS="rdoc"
>Second Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d</TD
><TD CLASS="rdoc"
>Third Input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Amealy2SY"
>mealy2SY</A
></TT
> behaves like <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmealySY"
>mealySY</A
></TT
>, but has 
   two input signals.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:sourceSY"
><A NAME="v%3AsourceSY"
></A
></A
><B
>sourceSY</B
> :: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; a) -&gt; a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#sourceSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AsourceSY"
>sourceSY</A
></TT
> takes a function and an initial state and generates
   an infinite signal starting with the initial state as first output 
   followed by the recursive application of the function on the current 
   state. The state also serves as output value.             
</P
><P
>The process that has the infinite signal of natural numbers as output is 
 con structed by                                                            
</P
><P
>sourceSY &quot;naturals&quot; (+1) 0
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:filterSY"
><A NAME="v%3AfilterSY"
></A
></A
><B
>filterSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#filterSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
>)</TD
><TD CLASS="rdoc"
>Predicate function
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Input signal
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AfilterSY"
>filterSY</A
></TT
> discards the values who do not fulfill a predicate given by a predicate function and replaces them with absent events.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fillSY"
><A NAME="v%3AfillSY"
></A
></A
><B
>fillSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#fillSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>Default value                                
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
><TD CLASS="rdoc"
>Absent extended input signal             
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal                                
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AfillSY"
>fillSY</A
></TT
> creates a process that fills a signal 
   with present values by replacing absent values with a given value. The 
   output signal is not any more of the type <TT
><A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
></TT
>.        
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:holdSY"
><A NAME="v%3AholdSY"
></A
></A
><B
>holdSY</B
></TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#holdSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>=&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
></TD
><TD CLASS="rdoc"
>Default value 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
><TD CLASS="rdoc"
>Absent extended input signal 
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="rdoc"
>Output signal
</TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AholdSY"
>holdSY</A
></TT
> creates a process that fills a signal 
   with values by replacing absent values by the preceding present value. 
   Only in cases, where no preceding value exists, the absent value is 
   replaced by a default value. The output signal is not any more of the 
   type <TT
><A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
></TT
>.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Synchronous Processes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="doc"
>The library contains a few simple processes that are applicable to many 
 cases.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:whenSY"
><A NAME="v%3AwhenSY"
></A
></A
><B
>whenSY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> a)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#whenSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AwhenSY"
>whenSY</A
></TT
> creates a process that synchronizes a 
   signal of absent extended values with another signal of absent extended 
   values. The output signal has the value of the first signal whenever an 
   event has a present value and <TT
><A HREF="ForSyDe-AbsentExt.html#v%3AAbst"
>Abst</A
></TT
> when the event has an absent value.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipSY"
><A NAME="v%3AzipSY"
></A
></A
><B
>zipSY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipSY"
>zipSY</A
></TT
> &quot;zips&quot; two incoming signals into one signal of 
   tuples.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zip3SY"
><A NAME="v%3Azip3SY"
></A
></A
><B
>zip3SY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zip3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Azip3SY"
>zip3SY</A
></TT
> works as <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipSY"
>zipSY</A
></TT
>, but takes three input signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zip4SY"
><A NAME="v%3Azip4SY"
></A
></A
><B
>zip4SY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zip4SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Azip4SY"
>zip4SY</A
></TT
> works as <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipSY"
>zipSY</A
></TT
>, but takes four input signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zip5SY"
><A NAME="v%3Azip5SY"
></A
></A
><B
>zip5SY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zip5SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Azip5SY"
>zip5SY</A
></TT
> works as <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipSY"
>zipSY</A
></TT
>, but takes five input signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zip6SY"
><A NAME="v%3Azip6SY"
></A
></A
><B
>zip6SY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e, f)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zip6SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Azip6SY"
>zip6SY</A
></TT
> works as <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipSY"
>zipSY</A
></TT
>, but takes six input signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzipSY"
><A NAME="v%3AunzipSY"
></A
></A
><B
>unzipSY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzipSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AunzipSY"
>unzipSY</A
></TT
> &quot;unzips&quot; a signal of tuples into two signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzip3SY"
><A NAME="v%3Aunzip3SY"
></A
></A
><B
>unzip3SY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzip3SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Aunzip3SY"
>unzip3SY</A
></TT
> &quot;unzips&quot; a signal of tuples into three signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzip4SY"
><A NAME="v%3Aunzip4SY"
></A
></A
><B
>unzip4SY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzip4SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Aunzip4SY"
>unzip4SY</A
></TT
> &quot;unzips&quot; a signal of tuples into four signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzip5SY"
><A NAME="v%3Aunzip5SY"
></A
></A
><B
>unzip5SY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzip5SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Aunzip5SY"
>unzip5SY</A
></TT
> &quot;unzips&quot; a signal of tuples into five signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzip6SY"
><A NAME="v%3Aunzip6SY"
></A
></A
><B
>unzip6SY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b c d e f. (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> c, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> d, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> e, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> f) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b, c, d, e, f) -&gt; (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> c, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> d, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> e, <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> f)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzip6SY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3Aunzip6SY"
>unzip6SY</A
></TT
> &quot;unzips&quot; a signal of tuples into six signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:zipxSY"
><A NAME="v%3AzipxSY"
></A
></A
><B
>zipxSY</B
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#zipxSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AzipxSY"
>zipxSY</A
></TT
> &quot;zips&quot; a signal of vectors into a vector of signals.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:unzipxSY"
><A NAME="v%3AunzipxSY"
></A
></A
><B
>unzipxSY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> s a. (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> s, <A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s a) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#unzipxSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AunzipxSY"
>unzipxSY</A
></TT
> &quot;unzips&quot; a vector of n signals into a signal of 
   vectors.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:mapxSY"
><A NAME="v%3AmapxSY"
></A
></A
><B
>mapxSY</B
> :: (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> s, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Process.html#t%3AProcFun"
>ProcFun</A
> (a -&gt; b) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a) -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> s (<A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b)</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#mapxSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process constructor <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AmapxSY"
>mapxSY</A
></TT
> creates a process network that maps a 
 function onto all signals in a vector of signals. The identifier is used 
 as the identifier prefix of the processes created (a number starting with 1
 will be appended to each identifier)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fstSY"
><A NAME="v%3AfstSY"
></A
></A
><B
>fstSY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#fstSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AfstSY"
>fstSY</A
></TT
> selects always the first value from a signal of pairs
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:sndSY"
><A NAME="v%3AsndSY"
></A
></A
><B
>sndSY</B
> :: (<A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> b) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (a, b) -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> b</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#sndSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The process <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AsndSY"
>sndSY</A
></TT
> selects always the second value from a signal of pairs
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:groupSY"
><A NAME="v%3AgroupSY"
></A
></A
><B
>groupSY</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> k a. (<A HREF="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t%3ANat"
>Nat</A
> k, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> k, <A HREF="ForSyDe-Process.html#t%3AProcType"
>ProcType</A
> a) =&gt; <A HREF="ForSyDe-Ids.html#t%3AProcId"
>ProcId</A
> -&gt; k -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> a -&gt; <A HREF="ForSyDe-Signal.html#t%3ASignal"
>Signal</A
> (<A HREF="ForSyDe-AbsentExt.html#t%3AAbstExt"
>AbstExt</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/parameterized-data-0.1.5/Data-Param-FSVec.html#t%3AFSVec"
>FSVec</A
> k a))</TD
><TD CLASS="declbut"
><A HREF="src/ForSyDe-Process-SynchProc.html#groupSY"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>The function <TT
><A HREF="ForSyDe-Process-SynchProc.html#v%3AgroupSY"
>groupSY</A
></TT
> groups values into a vector of size n, which takes 
   n cycles. While the grouping takes place the output from this process 
   consists of absent values.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>