<!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.16939" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>Hi,</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>It has been some time ago (may be a year)
that I adapted Phil Bewig's srfi 41 for PLT. You did not like
me duplicating the code for promises. I don't like it either. However, in
order to discriminate streams from other promises without duplication of
promises.ss, I need a means to make a subtype of promises. The only thing I
need for that is that the promise struct descriptor is exported from promise.ss
and dependent modules (e.g. scheme scheme/base). Without the ability to make a
subtype of promises it is not possible to implement function =stream?=. Without
this function many argument checks become faulty. Would you be inclined to
export the promise struct descriptor (or any other means for the definition
of subtypes of promises) in mzscheme, scheme and scheme/base? As far as I
can see, wrapping stream promises in another struct type poses problems to
memory bound execution of examples that should be memory bound. I am not sure,
but I assume that using a subtype does not imply an extra layer of dereference.
This is crucial, of course.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>With the aforementioned tool, I can
simplify PLT's implementation of srfi 41 considerably. I also intend to expose
stream-lazy to the user (which is much simpler than providing additional binding
constructs (stream-lamdba, stream-let, etc) The binding constructs required by
srfi 41 will be maintained, of course.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV>
<DIV><FONT face="Courier New" size=2>Hoping all is well with you and your
family, Jos.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT> </DIV></BODY></HTML>