From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 1E9F3BBAF for ; Sun, 8 Aug 2010 22:52:23 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AisCAJy1XkxKfVIukGdsb2JhbACgPAgVAQEBAQkJDAcRAx+nR4kQghGFAC6IVAEBAwWFNQSEJg X-IronPort-AV: E=Sophos;i="4.55,338,1278280800"; d="scan'208";a="55211567" Received: from mail-ww0-f46.google.com ([74.125.82.46]) by mail3-smtp-sop.national.inria.fr with ESMTP; 08 Aug 2010 22:52:22 +0200 Received: by wwb17 with SMTP id 17so505860wwb.3 for ; Sun, 08 Aug 2010 13:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:subject :to:cc:in-reply-to:references:mime-version:content-type:content-id; bh=Ldxyy2T/V6L3+lL4YIkUdU8ag4XfOaply4wmwwXBdMQ=; b=wpRf8INTuVMdS/V32X96z/NKHib4zbpiz/99D68IW8/HW8aYRZN06yKn7KUIbb9Xjn DhdZBz3qxo3gsHXKhwcQeGecwWwtUTe/v75bWF1AxuBwKzikgda7oPGUvmqY6WSXtaGJ IuFTjrMrSL1Uua+9EChZgFL30nrofhTlrEp3c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:subject:to:cc:in-reply-to:references :mime-version:content-type:content-id; b=xyT9sNb7zQBTiFM1IpWWYqLpbT1/YNyd7+qn9fP6onJeXk/qKta/zNN5djeBTksKjs NTze+JhNQ4nZ9qioc41qsTjwnifc8KQ1RdivPN1qLlY0Ye66FXvolOhFOrU3aI5IphkX 4RXPvtYeoPCOh6Gw8+qBhaVNFwf7liXIo9fYU= Received: by 10.216.0.76 with SMTP id 54mr1859798wea.38.1281300742231; Sun, 08 Aug 2010 13:52:22 -0700 (PDT) Received: from localhost (sk.feydakins.org [94.23.4.142]) by mx.google.com with ESMTPS id e8sm2165501wej.22.2010.08.08.13.52.21 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 08 Aug 2010 13:52:21 -0700 (PDT) Message-ID: <4c5f1905.888cd80a.7152.651b@mx.google.com> Date: Sun, 08 Aug 2010 13:52:21 -0700 (PDT) From: Nicolas Pouillard Subject: Re: [Caml-list] interest in a much simpler, but modern, Caml? To: Jeremy Bem , Florian Weimer Cc: caml-list List In-Reply-To: References: <877hk1m1df.fsf@mid.deneb.enyo.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <7499.1281300740.1@sk.feydakins.org> X-Spam: no; 0.00; ocaml:01 typechecker:01 mutable:01 type-safe:01 ocaml:01 owing:98 equality:01 equality:01 polymorphic:01 polymorphic:01 wrote:01 wrote:01 caml-list:01 functions:01 immutable:01 On Sun, 8 Aug 2010 14:44:11 -0400, Jeremy Bem wrote: > On Sun, Aug 8, 2010 at 1:59 PM, Florian Weimer wrote: > > > * Jeremy Bem: > > > > > To support my research, I've developed an implementation ("Llama Light") > > of > > > the core Caml language. Modules, objects, labels etc are not supported > > > (except for file-level modules). The system strongly resembles OCaml, > > > however the completely rewritten typechecker is not only much smaller in > > > terms of lines-of-code; it has a genuinely simpler design owing > > especially > > > to the lack of first-class modules. > > > > How do you deal with strings (are they mutable?) and polymorphic > > equality (is it type-safe?)? > > > > Yes and no, respectively. In other words, nothing new here. > > Strings can be made immutable (in both Llama and OCaml) by disabling > String.set in the standard library (the s.[i] <- c construct is just sugar > for a call to that function). And removing the other functions of String module which mutates strings (actually I've made an experiment in which I removed string mutability). > Is there a better approach to polymorphic equality floating around? Type classes! -- Nicolas Pouillard http://nicolaspouillard.fr