From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id 6DABA7EE20 for ; Thu, 15 Nov 2012 04:17:17 +0100 (CET) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of lambda.q.q@gmail.com) identity=pra; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="lambda.q.q@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail1-smtp-roc.national.inria.fr: domain of lambda.q.q@gmail.com designates 209.85.215.54 as permitted sender) identity=mailfrom; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="lambda.q.q@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-la0-f54.google.com) identity=helo; client-ip=209.85.215.54; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="lambda.q.q@gmail.com"; x-sender="postmaster@mail-la0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DABNepFDRVdc2k2dsb2JhbABEhVa9aQgjAQEBAQkJFBQEI4IeAQEEAScTBgE4AQMMAQUFISUPAQQgAQUBNYd5AwkGBAedFI8rhRAnDYlOAQUMjyaDJwOIVIl2gzKBHI1GP4FYgj4 X-IronPort-AV: E=Sophos;i="4.83,254,1352070000"; d="scan'208";a="181561166" Received: from mail-la0-f54.google.com ([209.85.215.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 15 Nov 2012 04:17:16 +0100 Received: by mail-la0-f54.google.com with SMTP id j13so1562184lah.27 for ; Wed, 14 Nov 2012 19:17:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type; bh=y5Lwf1kLs2aMJ/hDfVNNiNnRe270vktdx8FXxvRfddU=; b=zcAdc5arz8iKAbrxK7Kv9qOg1uHICKLy61oWFnQMTily0VtbAxA2J1B7uUtrX1JlEw NQWSDjhtt2/tfxWYjLOwW0vFNa52nBrYeOhSMuqK85vlaOadF4i0LlIdMiMP8fIZiGtq WRga9VkU/0obpfAy81Au3R13ZnDnITZ7PuyGtND5knPRC3rQo6MeXSlJj38J7OtkQ61A /KeTN319roGj4GZdmQ/ooTzrReTfTeGxXOZEO19HiS6h1d1bP46R5VmSOQwmHDDRCJXZ B1x+LiY0cIaTnym+O3W8cVEtaS4AH0ABai/Kmbqd+YIwJ1jsMT51Xo6xAfco97zjD7iG Q4zQ== Received: by 10.112.25.166 with SMTP id d6mr49013lbg.55.1352949436017; Wed, 14 Nov 2012 19:17:16 -0800 (PST) Received: from golf.niidar.ru.niidar.ru ([178.176.225.185]) by mx.google.com with ESMTPS id sy1sm5669278lab.16.2012.11.14.19.17.13 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 14 Nov 2012 19:17:14 -0800 (PST) Sender: Ivan Gotovchits From: Ivan Gotovchits To: oleg@okmij.org Cc: Didier.Cassirame@gmail.com, caml-list@inria.fr In-Reply-To: <20121113081952.36138.qmail@www1.g3.pair.com> (oleg@okmij.org's message of "13 Nov 2012 08:19:52 -0000") References: <20121113081952.36138.qmail@www1.g3.pair.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) Date: Thu, 15 Nov 2012 07:17:06 +0400 Message-ID: <874nkrlfm5.fsf@golf.niidar.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Caml-list] Re: Higher order functors over tuples oleg@okmij.org writes: > > Well, if we re-write it in object style, but without objects, we obtain > > type 'r stream_v = EOF | Stream of 'r option * 'r stream > and 'r stream = unit -> 'r stream_v > > which is what it says. Here's the important paper that describes the > pattern in great detail and with many applications: > > Duncan Coutts and Roman Leshchinskiy and Don Stewart > Stream Fusion. From Lists to Streams to Nothing at All > ICFP 07 > http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.104.7401 > > Incidentally, iteratees are somewhat similar. > Many thanks! This is what I was searching for.