From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.4 required=5.0 tests=AWL,DNS_FROM_RFC_POST, HTML_MESSAGE,MIME_BASE64_TEXT,RCVD_IN_NJABL_PROXY autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 9CB7CBBAF for ; Thu, 30 Jul 2009 23:26:00 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArkDAFmscUpQDPJhZmdsb2JhbACCKSyWFAGBKQsNCAgUA7h7hBcF X-IronPort-AV: E=Sophos;i="4.43,297,1246831200"; d="scan'208,217";a="31914270" Received: from smtp23.orange.fr ([80.12.242.97]) by mail3-smtp-sop.national.inria.fr with ESMTP; 30 Jul 2009 23:26:00 +0200 Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf2308.orange.fr (SMTP Server) with ESMTP id AC7181C00085 for ; Thu, 30 Jul 2009 23:25:59 +0200 (CEST) Received: from Thinkpad-R60 (Mix-Lyon-303-1-22.w193-248.abo.wanadoo.fr [193.248.43.22]) by mwinf2308.orange.fr (SMTP Server) with ESMTP id A0C491C00084 for ; Thu, 30 Jul 2009 23:25:57 +0200 (CEST) X-ME-UUID: 20090730212557658.A0C491C00084@mwinf2308.orange.fr Date: Thu, 30 Jul 2009 23:26:07 +0200 From: "Damien Guichard" To: "caml-list@yquem.inria.fr" References: <8401c38a0907301056x470687aah94b2b1295c6d1068@mail.gmail.com> Subject: Re: [Caml-list] Cartesian product Message-ID: <200907302326059843328@orange.fr> X-mailer: Foxmail 6, 10, 201, 20 [-fr-] Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="=====003_Dragon677728023516_=====" X-Spam: no; 0.00; damien:01 guichard:01 functor:01 functor:01 flatten:01 flatten:01 damien:01 guichard:01 ocaml:01 ocaml:01 2009:98 2009:98 margin-top:98 margin-top:98 W8:98 This is a multi-part message in MIME format. --=====003_Dragon677728023516_===== Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 DQpIaSBMaWdpYSBOaXN0b3IsDQoNClN1cHBvc2luZyB5b3Ugd2FudCB0byBpbXBsZW1lbnQgdGhl IENhcnRlc2lhbiBwcm9kdWN0IG9mIDIgc2V0cywgYW5kIHN1cHBvc2luZyB5b3UgaW1wbGVtZW50 IHNldHMgYXMgKGJhbGFuY2VkKSBzb3J0ZWQgYmluYXJ5IHRyZWVzLCBoZXJlIGlzIGhvdyBpIHdv dWxkIGRvIHRoYXQgOg0KDQppbXBsZW1lbnQgYSBmdW5jdG9yIHRoYXQsIGdpdmVuIHg6QSBhbmQg YSBzZXQgQiwgbWFwcyBCIHRvIGEgbmV3IHNldCBvZiBwYWlycyAoeCx5KSwgeTpCICANCnRoaXMg ZnVuY3RvciB0cmFuc2Zvcm1zIGVhY2ggaXRlbSBvZiBBIGludG8gYSBuZXcgYmFsYW5jZWQgdHJl ZQ0KaWYgeW91IG1hcCB0aGlzIGZ1bmN0b3IgdG8gQSB0aGUgcmVzdWx0IGlzIGEgdHJlZSBvZiB0 cmVlcw0Kc3VwcG9zaW5nIHlvdSBjYW4gbWVyZ2UgYWxsIHRoZXNlIHRyZWVzIHlvdSB0aGVuIGdl dCB0aGUgY2FydGVzaWFuIHByb2R1Y3QNCmhvd2V3ZXIgeW91IGRvbid0IGFjdHVhbGx5IG5lZWQg dGhlIHRyZWUgb2YgdHJlZXMsIGFsbCB5b3UgbmVlZCBpcyB0aGUgbWVyZ2VkIHJlc3VsdA0KdGh1 cywgaW5zdGVhZCBvZiBkb2luZyAoMykgeW91IGFwcGx5IHRoZSAoMSkgZnVuY3RvciBhcyBmIGFy Z3VtZW50IG9mIHRoZSBmb2xsb3dpbmcgZmxhdHRlbl9tYXAgZnVuY3Rpb24gOg0KDQogIHR5cGUg J2Egc2V0ID0NCiAgICB0cmVlIG9wdGlvbg0KICBhbmQgdHJlZSA9DQogICAge2xlZnQ6ICdhIHNl dDsgaXRlbTogJ2E7IHJpZ2h0OiAnYSBzZXR9DQoNCiAgbGV0IHJlYyBmbGF0dGVuX21hcCBmIHAg PSBmdW5jdGlvbg0KICAgIHwgTm9uZSAtPiBwDQogICAgfCBTb21lIG4gLT4NCiAgICAgICAgdW5p b24NCiAgICAgICAgKGZsYXR0ZW5fbWFwIGYgcCBuLmxlZnQpDQogICAgICAgIChmbGF0dGVuX21h cCBmIChmIG4uaXRlbSkgbi5yaWdodCkNCg0KICBsZXQgZmxhdHRlbl9tYXAgZiA9IGZsYXR0ZW5f bWFwIGYgTm9uZQ0KDQpJdCBzZWVtcyB0byBtZSB0aGF0IG15IHNvbHV0aW9uIGdpdmVzIHlvdSB0 aGUgY2FydGVzaWFuIHByb2R1Y3QgYXMgYW4gb3JkZXJlZCAoYmFsYW5jZWQpIGJpbmFyeSB0cmVl IHNldCBpbiBvcHRpbWFsIHRpbWUuDQoNCi0gZGFtaWVuDQoNCg0KDQoNCg0KRGFtaWVuIEd1aWNo YXJkDQoyMDA5LTA3LTMwDQoNCg0KDQpFbiBy6XBvbnNlIGF1IG1lc3NhZ2UNCmRlIDogTGlnaWEg TmlzdG9yDQpkdSA6IDIwMDktMDctMzAgMTk6NTY6NTcNCsAgOiBjYW1sLWxpc3RAeXF1ZW0uaW5y aWEuZnINCkNDIDogDQpTdWpldCA6IFtDYW1sLWxpc3RdIENhcnRlc2lhbiBwcm9kdWN0DQoNCkhp LA0KDQpJcyB0aGVyZSBhbiBhbHJlYWR5IGltcGxlbWVudGVkIHdheSBvZiBkb2luZyB0aGUgQ2Fy dGVzaWFuIHByb2R1Y3Qgb2YgMiBzZXRzIGluIE9DYW1sPyBNeSBzZXRzIGFyZSBvZiB0eXBlIFNl dC5NYWtlKFR5cGVzKSwgd2hlcmUgVHlwZXMgaXMgYSBtb2R1bGUgSSBoYXZlIGRlZmluZWQuDQoN ClRoYW5rcywNCg0KTGlnaWENCg== --=====003_Dragon677728023516_===== Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPg0KPE1FVEEgY29udGVudD0iTVNIVE1M IDYuMDAuMjkwMC4yOTYzIiBuYW1lPUdFTkVSQVRPUj4NCjxTVFlMRT5AZm9udC1mYWNlIHsNCglm b250LWZhbWlseTogU2ltU3VuOw0KfQ0KQGZvbnQtZmFjZSB7DQoJZm9udC1mYW1pbHk6IFRhaG9t YTsNCn0NCkBmb250LWZhY2Ugew0KCWZvbnQtZmFtaWx5OiBAU2ltU3VuOw0KfQ0KQHBhZ2UgU2Vj dGlvbjEge3NpemU6IDU5NS4zcHQgODQxLjlwdDsgbWFyZ2luOiA3Mi4wcHQgOTAuMHB0IDcyLjBw dCA5MC4wcHQ7IGxheW91dC1ncmlkOiAxNS42cHQ7IH0NClAuTXNvTm9ybWFsIHsNCglURVhULUpV U1RJRlk6IGludGVyLWlkZW9ncmFwaDsgRk9OVC1TSVpFOiAxMC41cHQ7IE1BUkdJTjogMGNtIDBj bSAwcHQ7IEZPTlQtRkFNSUxZOiAiVGltZXMgTmV3IFJvbWFuIjsgVEVYVC1BTElHTjoganVzdGlm eQ0KfQ0KTEkuTXNvTm9ybWFsIHsNCglURVhULUpVU1RJRlk6IGludGVyLWlkZW9ncmFwaDsgRk9O VC1TSVpFOiAxMC41cHQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IEZPTlQtRkFNSUxZOiAiVGltZXMg TmV3IFJvbWFuIjsgVEVYVC1BTElHTjoganVzdGlmeQ0KfQ0KRElWLk1zb05vcm1hbCB7DQoJVEVY VC1KVVNUSUZZOiBpbnRlci1pZGVvZ3JhcGg7IEZPTlQtU0laRTogMTAuNXB0OyBNQVJHSU46IDBj bSAwY20gMHB0OyBGT05ULUZBTUlMWTogIlRpbWVzIE5ldyBSb21hbiI7IFRFWFQtQUxJR046IGp1 c3RpZnkNCn0NCkE6bGluayB7DQoJQ09MT1I6IGJsdWU7IFRFWFQtREVDT1JBVElPTjogdW5kZXJs aW5lDQp9DQpTUEFOLk1zb0h5cGVybGluayB7DQoJQ09MT1I6IGJsdWU7IFRFWFQtREVDT1JBVElP TjogdW5kZXJsaW5lDQp9DQpBOnZpc2l0ZWQgew0KCUNPTE9SOiBwdXJwbGU7IFRFWFQtREVDT1JB VElPTjogdW5kZXJsaW5lDQp9DQpTUEFOLk1zb0h5cGVybGlua0ZvbGxvd2VkIHsNCglDT0xPUjog cHVycGxlOyBURVhULURFQ09SQVRJT046IHVuZGVybGluZQ0KfQ0KU1BBTi5FbWFpbFN0eWxlMTcg ew0KCUZPTlQtV0VJR0hUOiBub3JtYWw7IENPTE9SOiB3aW5kb3d0ZXh0OyBGT05ULVNUWUxFOiBu b3JtYWw7IEZPTlQtRkFNSUxZOiBWZXJkYW5hOyBURVhULURFQ09SQVRJT046IG5vbmU7IG1zby1z dHlsZS10eXBlOiBwZXJzb25hbC1jb21wb3NlDQp9DQpESVYuU2VjdGlvbjEgew0KCXBhZ2U6IFNl Y3Rpb24xDQp9DQpCTE9DS1FVT1RFIHsNCglNQVJHSU4tVE9QOiAwcHg7IE1BUkdJTi1CT1RUT006 IDBweDsgTUFSR0lOLUxFRlQ6IDJlbQ0KfQ0KT0wgew0KCU1BUkdJTi1UT1A6IDBweDsgTUFSR0lO LUJPVFRPTTogMHB4DQp9DQpVTCB7DQoJTUFSR0lOLVRPUDogMHB4OyBNQVJHSU4tQk9UVE9NOiAw cHgNCn0NCjwvU1RZTEU+DQo8L0hFQUQ+DQo8Qk9EWT4NCjxESVY+PEZPTlQgZmFjZT1WZXJkYW5h IGNvbG9yPSMwMDAwZmYgc2l6ZT0yPjwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1WZXJk YW5hIGNvbG9yPSMwMDAwZmYgc2l6ZT0yPjwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1W ZXJkYW5hIGNvbG9yPSMwMDAwZmYgc2l6ZT0yPjwvRk9OVD4mbmJzcDs8L0RJVj4NCjxESVY+PEZP TlQgZmFjZT1WZXJkYW5hIGNvbG9yPSMwMDAwZmYgc2l6ZT0yPkhpIExpZ2lhIE5pc3Rvciw8L0ZP TlQ+PC9ESVY+DQo8RElWPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPVZlcmRhbmEgc2l6 ZT0yPlN1cHBvc2luZyB5b3Ugd2FudCB0byBpbXBsZW1lbnQgdGhlIENhcnRlc2lhbiANCnByb2R1 Y3Qgb2YgMiBzZXRzLCBhbmQgc3VwcG9zaW5nIHlvdSBpbXBsZW1lbnQgc2V0cyBhcyZuYnNwOyhi YWxhbmNlZCkgc29ydGVkIA0KYmluYXJ5IHRyZWVzLCBoZXJlIGlzIGhvdyBpIHdvdWxkIGRvIHRo YXQgOjwvRk9OVD48L0RJVj4NCjxESVY+PEZPTlQgc2l6ZT0yPjwvRk9OVD4mbmJzcDs8L0RJVj4N CjxPTD4NCiAgPExJPjxGT05UIGZhY2U9VmVyZGFuYSBzaXplPTI+aW1wbGVtZW50IGEgZnVuY3Rv ciB0aGF0LCBnaXZlbiB4OkEgYW5kJm5ic3A7YSANCiAgc2V0IEIsIG1hcHMmbmJzcDtCJm5ic3A7 dG8gYSBuZXcgc2V0IG9mIHBhaXJzICh4LHkpLCANCiAgeTpCJm5ic3A7Jm5ic3A7PC9GT05UPjwv TEk+DQogIDxMST48Rk9OVCBmYWNlPVZlcmRhbmEgc2l6ZT0yPnRoaXMgZnVuY3RvciB0cmFuc2Zv cm1zIGVhY2ggaXRlbSBvZiBBIGludG8gYSANCiAgbmV3IGJhbGFuY2VkIHRyZWU8L0ZPTlQ+PC9M ST4NCiAgPExJPjxGT05UIGZhY2U9VmVyZGFuYSBzaXplPTI+aWYgeW91IG1hcCB0aGlzIGZ1bmN0 b3IgdG8gQSB0aGUgcmVzdWx0IGlzIGEgDQogIHRyZWUgb2YgdHJlZXM8L0ZPTlQ+PC9MST4NCiAg PExJPjxGT05UIGZhY2U9VmVyZGFuYT48Rk9OVCBzaXplPTI+c3VwcG9zaW5nIHlvdSBjYW4gbWVy Z2UgYWxsIHRoZXNlIHRyZWVzIA0KICB5b3UgdGhlbiBnZXQgdGhlIGNhcnRlc2lhbiBwcm9kdWN0 PC9GT05UPjwvRk9OVD48L0xJPg0KICA8TEk+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9Mj5ob3dl d2VyIHlvdSBkb24ndCBhY3R1YWxseSBuZWVkIHRoZSB0cmVlIG9mIA0KICB0cmVlcywgYWxsIHlv dSBuZWVkIGlzIHRoZSBtZXJnZWQgcmVzdWx0PC9GT05UPjwvTEk+DQogIDxMST48Rk9OVCBmYWNl PVZlcmRhbmEgc2l6ZT0yPnRodXMsIGluc3RlYWQgb2YgZG9pbmcgKDMpIHlvdSBhcHBseSB0aGUg KDEpIA0KICBmdW5jdG9yJm5ic3A7YXMgPEZPTlQgZmFjZT1Db3VyaWVyPmY8L0ZPTlQ+IGFyZ3Vt ZW50IG9mIHRoZSBmb2xsb3dpbmcgPEZPTlQgDQogIGZhY2U9Q291cmllciBzaXplPTM+ZmxhdHRl bl9tYXAgPC9GT05UPmZ1bmN0aW9uIDo8L0ZPTlQ+PC9MST48L09MPg0KPERJVj4mbmJzcDs8L0RJ Vj4NCjxESVY+PEZPTlQgZmFjZT1Db3VyaWVyPiZuYnNwOyB0eXBlICdhIHNldCA9PEJSPiZuYnNw OyZuYnNwOyZuYnNwOyB0cmVlIA0Kb3B0aW9uPEJSPiZuYnNwOyBhbmQgdHJlZSA9PEJSPiZuYnNw OyZuYnNwOyZuYnNwOyB7bGVmdDogJ2Egc2V0OyBpdGVtOiAnYTsgDQpyaWdodDogJ2Egc2V0fTwv Rk9OVD48L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1Db3VyaWVyPjwvRk9OVD4mbmJzcDs8L0RJVj4N CjxESVY+PEZPTlQgZmFjZT1Db3VyaWVyPiZuYnNwOyBsZXQgcmVjIGZsYXR0ZW5fbWFwIGYgcCA9 IA0KZnVuY3Rpb248QlI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwgTm9uZSAtJmd0OyBwPEJSPiZuYnNw OyZuYnNwOyZuYnNwOyB8IFNvbWUgbiANCi0mZ3Q7PEJSPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3VuaW9uPEJSPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyANCihmbGF0dGVuX21hcCBmIHAgbi5sZWZ0KTxCUj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgDQooZmxhdHRlbl9tYXAgZiAoZiBu Lml0ZW0pIG4ucmlnaHQpPC9GT05UPjwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUNvdXJpZXI+PC9G T05UPiZuYnNwOzwvRElWPg0KPERJVj48Rk9OVCBmYWNlPUNvdXJpZXI+Jm5ic3A7IGxldCBmbGF0 dGVuX21hcCBmID0gZmxhdHRlbl9tYXAgZiANCk5vbmU8L0ZPTlQ+PC9ESVY+DQo8RElWPiZuYnNw OzwvRElWPg0KPERJVj5JdCBzZWVtcyB0byBtZSZuYnNwO3RoYXQgbXkmbmJzcDtzb2x1dGlvbiBn aXZlcyB5b3UgdGhlIGNhcnRlc2lhbiBwcm9kdWN0IA0KYXMgYW4gb3JkZXJlZCZuYnNwOyhiYWxh bmNlZCkgYmluYXJ5IHRyZWUgc2V0IGluIG9wdGltYWwgdGltZS48L0RJVj4NCjxESVY+Jm5ic3A7 PC9ESVY+DQo8RElWPi0gZGFtaWVuPC9ESVY+DQo8RElWPjxGT05UIGZhY2U9VmVyZGFuYSBjb2xv cj0jMDAwMDAwIHNpemU9Mj48L0ZPTlQ+Jm5ic3A7PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9VmVy ZGFuYSBzaXplPTI+PC9GT05UPjxGT05UIGNvbG9yPSMwMDAwMDA+PC9GT05UPiZuYnNwOzwvRElW Pg0KPERJViBhbGlnbj1sZWZ0Pg0KPERJViBhbGlnbj1sZWZ0PjxGT05UIGZhY2U9VmVyZGFuYSBz aXplPTI+DQo8SFIgc3R5bGU9IldJRFRIOiAxMjJweDsgSEVJR0hUOiAycHgiIFNJWkU9Mj4NCjwv Rk9OVD48L0RJVj4NCjxESVY+PEZPTlQgY29sb3I9I2MwYzBjMD48Rk9OVCBmYWNlPVZlcmRhbmEg c2l6ZT0yPjxTUEFOPkRhbWllbiANCkd1aWNoYXJkPC9TUEFOPjwvRk9OVD48L0RJVj4NCjxESVY+ PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9Mj4yMDA5LTA3LTMwPC9GT05UPjwvRk9OVD48L0RJVj48 L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9Mj4NCjxIUj4NCjwvRk9OVD48L0RJ Vj4NCjxESVY+PEZPTlQgZmFjZT1WZXJkYW5hPjxGT05UIHNpemU9Mj48ST5FbiBy6XBvbnNlIGF1 IG1lc3NhZ2U8L0k+PEJSPjxTVFJPTkc+ZGUgDQo6PC9TVFJPTkc+IExpZ2lhIE5pc3RvcjwvRk9O VD48L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9VmVyZGFuYT48Rk9OVCBzaXplPTI+PFNU Uk9ORz5kdSA6PC9TVFJPTkc+IA0KMjAwOS0wNy0zMCZuYnNwOzE5OjU2OjU3PC9GT05UPjwvRk9O VD48L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1WZXJkYW5hPjxGT05UIHNpemU9Mj48U1RST05HPsAg OjwvU1RST05HPiANCmNhbWwtbGlzdEB5cXVlbS5pbnJpYS5mcjwvRk9OVD48L0ZPTlQ+PC9ESVY+ DQo8RElWPjxGT05UIGZhY2U9VmVyZGFuYT48Rk9OVCBzaXplPTI+PFNUUk9ORz5DQyA6PC9TVFJP Tkc+IDwvRk9OVD48L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIGZhY2U9VmVyZGFuYT48Rk9OVCBz aXplPTI+PFNUUk9ORz5TdWpldCA6PC9TVFJPTkc+IFtDYW1sLWxpc3RdIA0KQ2FydGVzaWFuIHBy b2R1Y3Q8L0ZPTlQ+PC9GT05UPjwvRElWPg0KPERJVj48Rk9OVCBmYWNlPVZlcmRhbmEgc2l6ZT0y PjwvRk9OVD4mbmJzcDs8L0RJVj4NCjxESVY+PEZPTlQgZmFjZT1WZXJkYW5hIHNpemU9Mj5IaSw8 QlI+PEJSPklzIHRoZXJlIGFuIGFscmVhZHkgaW1wbGVtZW50ZWQgd2F5IG9mIA0KZG9pbmcgdGhl IENhcnRlc2lhbiBwcm9kdWN0IG9mIDIgc2V0cyBpbiBPQ2FtbD8gTXkgc2V0cyBhcmUgb2YgdHlw ZSANClNldC5NYWtlKFR5cGVzKSwgd2hlcmUgVHlwZXMgaXMgYSBtb2R1bGUgSSBoYXZlIA0KZGVm aW5lZC48QlI+PEJSPlRoYW5rcyw8QlI+PEJSPkxpZ2lhPEJSPjwvRk9OVD48L0RJVj48L0JPRFk+ PC9IVE1MPg0K --=====003_Dragon677728023516_=====--