From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 D5A8EBC58 for ; Fri, 17 Sep 2010 16:08:44 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am8BAOISk0zRVdc0kGdsb2JhbACDG5EZjWcIFQEBAQEJCQwHEQMfp1mJADyCFIZ6LYhVAQEDBYEdgytzBIozhV8 X-IronPort-AV: E=Sophos;i="4.56,383,1280700000"; d="scan'208";a="69685887" Received: from mail-ew0-f52.google.com ([209.85.215.52]) by mail4-smtp-sop.national.inria.fr with ESMTP; 17 Sep 2010 16:08:44 +0200 Received: by ewy20 with SMTP id 20so1369178ewy.39 for ; Fri, 17 Sep 2010 07:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=ctHTmoJrh9h/SeTLF/LOny/cb5EAAbFtDqK0m+AkKIA=; b=N5ZKMNwi4XUCnC+D//7SoKitmV1mlw9Y1stkF9EOLoso7J3bAs21hwjZLHgdUSJHex NkbTrWjwiRtuMpev4kBHv4lOybh1Rl6xrt9zNE6LjqtEKLzrDNB3cyVTls/qYtmRKbDa 6GBSx/mkW2v2X2ZBNmUdn2KMc29IVmZ5nZX2M= 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 :content-type; b=dBG3p738wwyuyLROgmsCaDAUsMK0PnnWk7VcIess89oHfHwjR6w1Y57WJKHZJPK4y7 OToHfPp0AF3HGb+vV9uhPsRGzMxoI65scb91BNQHusm+ufbCl5sFltzRJ9k9gQDrfO17 8i0cKF5KpV0eOH2WtWJCwEZqj/aBzT4nRbzDI= MIME-Version: 1.0 Received: by 10.213.16.144 with SMTP id o16mr6773216eba.64.1284732523873; Fri, 17 Sep 2010 07:08:43 -0700 (PDT) Received: by 10.14.18.148 with HTTP; Fri, 17 Sep 2010 07:08:43 -0700 (PDT) In-Reply-To: References: Date: Fri, 17 Sep 2010 15:08:43 +0100 Message-ID: Subject: Re: mutable and polymorphism From: Radu Grigore To: caml-list@yquem.inria.fr Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; mutable:01 polymorphism:01 wrote:01 covariant:02 variables:02 variables:02 generalize:04 generalize:04 fri:05 radu:05 radu:05 sep:06 meant:06 sense:10 side-effects:13 I also meant to say... On Fri, Sep 17, 2010 at 3:04 PM, Radu Grigore wrote: > 1. Never generalize type variables that appear under ref.[...] > 2. Keep track of side-effects, [...] These are conservative, in the sense that they accept all pure programs that pass Hindley-Milner. > 3. Only generalize type variables if e1 [is a value] > 4. [...] generalize type variables when they appear only in covariant > positions. These are *not* conservative.