From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p38GQOBn028399 for ; Fri, 8 Apr 2011 18:26:25 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmgDANQ1n03RVdg0kGdsb2JhbACCX5YhjQ0IFAEBAQEJCQ0HFAQhiHqcTopogiOEajCIXQEBAwaFZwSNTok2Og X-IronPort-AV: E=Sophos;i="4.63,324,1299452400"; d="scan'208";a="80472248" Received: from mail-qw0-f52.google.com ([209.85.216.52]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 08 Apr 2011 18:26:17 +0200 Received: by qwb8 with SMTP id 8so3217644qwb.39 for ; Fri, 08 Apr 2011 09:26:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=1A+Bz3RlAilDXRoMhSdYA5g38gP9wxtIp1B8DcUtQYk=; b=rMzy+yojv50dOxmnCMQGj1Aq2+mj3xsSCo4VIhblxKljIQ2C5xLaVXaFoWd78SZGKN t0qdY1Mqt665dlK1kgNzTJMXYQ6AAOpZONY162Dt3FLFXcR73ZwqcOC2OznXtzm0OKs8 H7y40JjPpnDntZAENNnONsdFrPty0TwUtqF1g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=iIJuuBvArc+Gp2fsUoSNFQaVe4T5Ql4aFsVLBIpysW55rguyReuzosKlLclDbimtLZ XJ1aeI0MXdW3vj0GFFvqVJStlxBzLkHxbktxRPgq4C9tmqDFZ+IvXJ9CUZLm2ll8Gjgu 4fnh+moXYqP5n4oIHyRc2Nm6Qe2FdA11gINn0= MIME-Version: 1.0 Received: by 10.224.207.194 with SMTP id fz2mr2029410qab.125.1302279975482; Fri, 08 Apr 2011 09:26:15 -0700 (PDT) Received: by 10.229.250.5 with HTTP; Fri, 8 Apr 2011 09:26:15 -0700 (PDT) In-Reply-To: <94bd910fac5bc093e62f73e0ba76d6a1.squirrel@mail.mpi-sws.org> References: <4D9E28D2.1050808@wp.pl> <1302212990.8429.1150.camel@thinkpad> <0F248A34-05CF-4640-B122-75C4CE7C2CD2@mpi-sws.org> <4D9EC172.1060205@lexifi.com> <4D9ECAF2.7070300@lexifi.com> <94bd910fac5bc093e62f73e0ba76d6a1.squirrel@mail.mpi-sws.org> Date: Fri, 8 Apr 2011 18:26:15 +0200 Message-ID: From: Julien Signoles To: rossberg@mpi-sws.org Cc: Alain Frisch , Jacques Garrigue , caml-list Content-Type: multipart/alternative; boundary=20cf300fb02f56336504a06aafdb Subject: Re: [Caml-list] What is an applicative functor? --20cf300fb02f56336504a06aafdb Content-Type: text/plain; charset=ISO-8859-1 2011/4/8 > > On 04/08/2011 10:20 AM, Jacques Garrigue wrote: > >> Applicative functors have other advantages, like the fact you can refer > to > >> a > >> type produced by a functor without having really applied it. > > I agree with Jacques. My primary argument for applicative functors is > diamond import in libraries. Assume you have a set functor in a library A > (e.g. the stdlib). Then there are two seperate libraries B and C, perhaps > from different sources. Both need to use sets. And you want to use B and C > and pass sets from one to the other. > That is exactly the third issue that we have in Frama-C and that I previously mentioned in my answer to Alain. -- Julien --20cf300fb02f56336504a06aafdb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

2011/4/8 <rossberg@mpi-sws.org>
> On 04/08/2011 10:20 AM, Jacques Garrigue wrote:
>> Applicative functors have other advantages, like the fact you can = refer to
>> a
>> type produced by a functor without having really applied it.

I agree with Jacques. My primary argument for applicative functors is=
diamond import in libraries. Assume you have a set functor in a library A (e.g. the stdlib). Then there are two seperate libraries B and C, perhaps from different sources. Both need to use sets. And you want to use B and C<= br> and pass sets from one to the other.

That is exact= ly the third issue that we have in Frama-C and that I previously mentioned = in my answer to Alain.

--
Julien
--20cf300fb02f56336504a06aafdb--