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=0.6 required=5.0 tests=AWL,HTML_MESSAGE autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 72781BBCA for ; Thu, 20 Mar 2008 03:07:55 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AngBAONj4UfRVca9jWdsb2JhbACCPDaOEAEBAQEJAwkJFJJNhkU X-IronPort-AV: E=Sophos;i="4.25,527,1199660400"; d="scan'208";a="23978549" Received: from rv-out-0910.google.com ([209.85.198.189]) by mail4-smtp-sop.national.inria.fr with ESMTP; 20 Mar 2008 03:07:54 +0100 Received: by rv-out-0910.google.com with SMTP id k20so342855rvb.3 for ; Wed, 19 Mar 2008 19:07:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; bh=xv0dD1TEIpi7R8ZX7hVUwWAg4tKW+qNbIt+Tz4mNMjU=; b=nEm7N/L2a8LVoO1iPHkdKBNnyn3Rc/eRwufcx4rGqEvFX/BbdQL3zMSVh68Y9m3hS5+dbyXzR7LqOYm+KXElosVFwx6VinYclqZpju5m3wAISctxrXvqxDz67ApunWcPdnnZeS/PGRgWuILjoUjhZg63QYkrKj5aaAcvU8BRDcQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; b=dv1PYWZQFRI97sWbhqyiFrVAgWtbHSUArYVDkMZ05uzRb2TkoABdEtIlYLUEDUUwqJMOJ8QChhc+mlvPPviNoX8Z385ytmRl1qmqRMMHzfjAmKiyKb6Hqm75LmyTJOzZq6YZTdb0r10B1UQzWHRQcfy+AhUFaZLoVHcLLNnfkVg= Received: by 10.140.203.9 with SMTP id a9mr543399rvg.288.1205978872643; Wed, 19 Mar 2008 19:07:52 -0700 (PDT) Received: by 10.141.12.14 with HTTP; Wed, 19 Mar 2008 19:07:52 -0700 (PDT) Message-ID: <891bd3390803191907q5838ee66u83cb35e549805af0@mail.gmail.com> Date: Wed, 19 Mar 2008 22:07:52 -0400 From: "Yaron Minsky" Reply-To: yminsky@gmail.com To: "Christopher L Conway" Subject: Re: [Caml-list] The Bridge Pattern in OCaml Cc: "Caml Mailing List" In-Reply-To: <4a051d930803191106v74fa5de3j92530c3bf15ea9d5@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_23339_31083814.1205978872642" References: <4a051d930803190929q60d31012kb6c9d2b03a2d2ca6@mail.gmail.com> <0A1AD394-2F3B-488E-926B-1839C7C321E6@erratique.ch> <4a051d930803191044t1a1e9cb6h65ddbbda24cd7e1d@mail.gmail.com> <4a051d930803191106v74fa5de3j92530c3bf15ea9d5@mail.gmail.com> X-Spam: no; 0.00; yaron:01 minsky:01 yminsky:01 ocaml:01 existential:01 subtyping:01 existential:01 subtyping:01 closures:01 closures:01 wrote:01 wrote:01 caml-list:01 precisely:01 precisely:01 ------=_Part_23339_31083814.1205978872642 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wed, Mar 19, 2008 at 2:06 PM, Christopher L Conway wrote: > > Are people here using this language feature in the real world? If so, how? For what it's worth, not at Jane Street. We've looked at using existential types once or twice, but have yet to find a really compelling application. We don't really use objects much either. I'm actually a bit puzzled by your original post, in that I don't have a clear sense of what kind of situations you've run up against where using poor-man's objects (e.g., collections of closures wrapped up in a bundle) doesn't do the job. On the whole, I've found that collections of closures are easier to think about than objects precisely because you don't have to worry about subtyping. I'd be quite curious to hear about concrete examples where that approach doesn't fit well. y ------=_Part_23339_31083814.1205978872642 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wed, Mar 19, 2008 at 2:06 PM, Christopher L Conway <cconway@cs.nyu.edu> wrote:

Are people here using this language feature in the real world? If so, how?

For what it's worth, not at Jane Street.  We've looked at using existential types once or twice, but have yet to find a really compelling application.  We don't really use objects much either.

I'm actually a bit puzzled by your original post, in that I don't have a clear sense of what kind of situations you've run up against where using poor-man's objects (e.g., collections of closures wrapped up in a bundle) doesn't do the job.  On the whole, I've found that collections of closures are easier to think about than objects precisely because you don't have to worry about subtyping.  I'd be quite curious to hear about concrete examples where that approach doesn't fit well.

y

------=_Part_23339_31083814.1205978872642--