This seems like exactly what I want, but there are two problems: I can&#39;t access the paper and it requires Generic Haskell. I&#39;m just too much of newb to jump into generic Haskell :).<br><br><div class="gmail_quote">
On Mon, Dec 28, 2009 at 7:41 PM, Dan Weston <span dir="ltr">&lt;<a href="mailto:westondan@imageworks.com" target="_blank">westondan@imageworks.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This might be pertinent:<br>
<br>
Alimarine et al, &quot;There and Back Again: Arrows for Invertible Programming&quot;<br>
<a href="http://www.cs.ru.nl/A.vanWeelden/bi-arrows/" target="_blank">http://www.cs.ru.nl/A.vanWeelden/bi-arrows/</a><div><div></div><div><br>
<br>
Jonathan Fischoff wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi, <br>
I would to create a list of tuples (or something similar) of invertible functions<br>
<br>
[((a -&gt; b), (b -&gt; a)), ((b -&gt; c), (c -&gt; b)), ....<br>
<br>
Such that I could call<br>
<br>
forward invertibleFuctionList domainValue = ? -- composite all the functions<br>
backward invertibleFuctionList rangeValue =     forward (reverse invertibleFuctionList) rangeValue  -- or something similar<br>
<br>
<br>
I would also like to concat them. This sounds like a job for GADT that someone might have already tackled. Any ideas?<br>
<br>
-Jonathan<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br>