
Ross Paterson wrote:
On Mon, Nov 19, 2007 at 10:30:11PM +1100, Roman Leshchinskiy wrote:
I have to disagree here. Our streams can be used to model both inductive (i.e. tail-strict) and coinductive lists. What data structure is being modelled is not a property of the Stream data type but rather of the stream operations. For inductive data types, we just have to make sure that streams are always fully consumed.
I was saying that your "streams" are themselves coinductive objects. Is that controversial?
They aren't recursive so in my view, they themselves are just as (co)inductive as, say, a function of type (a -> a). My point was that since they can faithfully model both inductive and coinductive types, putting them under a Coinductive hierarchy would be counterintuitive. Roman