<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Download my PLT implementation of Phil Bewig's 
SRFI-41 form the following link.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2><A 
href="http://www.telefonica.net/web2/koot/zipped-streams.zip">http://www.telefonica.net/web2/koot/zipped-streams.zip</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>At Phil's request,&nbsp;the code 
has been modified as little as possible.</FONT></DIV>
<DIV><FONT face=Arial size=2>The included tests, leak tests included,&nbsp;run 
well&nbsp;on DrScheme, version 3.99.0.12-svn14feb2008 [3m].</FONT></DIV>
<DIV><FONT face=Arial size=2>Documentation is included in msword (doc) and html 
format (without having been touched by me)&nbsp;</FONT></DIV>
<DIV><FONT face=Arial size=2>Docs have not yet been scribled (I am not much of a 
scribbler, I'm afraid)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Especially for Matthew Flatt:</FONT></DIV>
<DIV><FONT face=Arial size=2>Thanks for fixing&nbsp;<FONT face="Times New Roman" 
size=3>&nbsp;</FONT><A 
href="http://bugs.plt-scheme.org/query/?cmd=view&amp;pr=8963" 
target=_blank><FONT face="Times New Roman" 
size=3>http://bugs.plt-scheme.org/query/?cmd=view&amp;pr=8963</FONT></A>.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Especially for Eli Barzilay</FONT></DIV>
<DIV><FONT face=Arial size=2>Initially I thought native PLT promises could be 
used.</FONT></DIV>
<DIV><FONT face=Arial size=2>Nevertheless&nbsp;the code includes its own code 
for van Tonder promises (SRFI 45)</FONT></DIV>
<DIV><FONT face=Arial size=2>For two reasons:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>1:&nbsp;&nbsp;&nbsp; there is still a problem with 
the van Tonder promises as now implemented in PLT Scheme.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>2:&nbsp;&nbsp;&nbsp; streams must be a distinct 
type, for they must not be confused with promises as delivered by syntaxes delay 
and lazy.</FONT></DIV>
<DIV><FONT face=Arial size=2>Otherwise we&nbsp;would get in trouble with 
something like: </FONT><FONT face=Arial size=2>(stream 1 (delay 1) (lazy (delay 
1)))</FONT></DIV>
<DIV><FONT face=Arial size=2>There is no such thing as 
'make-promise-type'.</FONT></DIV>
<DIV><FONT face=Arial size=2>An alternative would be to wrap PLT's promises in a 
struct-type, but I find this extra layer not attractive.</FONT></DIV>
<DIV><FONT face=Arial size=2>As they are now, the streams are already slow 
enough.</FONT></DIV>
<DIV><FONT face=Arial size=2>The implementation of the van Tonder promises is as 
simple as possible (in fact copied from SRFI 45)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I suggested to Phil Bewig several ways of improving 
the performance, some of which he copied.</FONT></DIV>
<DIV><FONT face=Arial size=2>However,&nbsp;with&nbsp;respect to many other 
suggestions&nbsp;Phil Bewig asked me with some force to keep as close to his 
code as possible. So I did.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>When PLT R6RS arrives, it will be little work to 
adapt the code or may be just copy the R6RS version as already prepared by Phil 
Bewig.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Of course I am available in case of problems, bugs, 
questions, and so on.</FONT></DIV>
<DIV><FONT face=Arial size=2>I am sure the same holds for Phil 
Bewig.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Kind regards,</FONT></DIV>
<DIV><FONT face=Arial size=2>Jos Koot</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>(define-syntax expose-stream-lazy (syntax-rules ( ) 
((_ expr) ((stream-lambda ( ) expr)))))&nbsp; ;)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BODY></HTML>