From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id TAA18358 for caml-redistribution; Fri, 29 Oct 1999 19:21:45 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id PAA04331 for ; Fri, 29 Oct 1999 15:25:41 +0200 (MET DST) Received: from mail5.microsoft.com (mail5.microsoft.com [131.107.3.121]) by nez-perce.inria.fr (8.8.7/8.8.7) with SMTP id PAA10116 for ; Fri, 29 Oct 1999 15:25:38 +0200 (MET DST) Received: from 157.54.9.108 by mail5.microsoft.com (InterScan E-Mail VirusWall NT); Fri, 29 Oct 1999 06:25:22 -0700 (Pacific Daylight Time) Received: by INET-IMC-05 with Internet Mail Service (5.5.2650.21) id ; Fri, 29 Oct 1999 06:25:22 -0700 Message-ID: <39ADCF833E74D111A2D700805F1951EF1801426B@RED-MSG-06> From: Don Syme To: caml-list@inria.fr Subject: Record typing question Date: Fri, 29 Oct 1999 06:25:21 -0700 X-Mailer: Internet Mail Service (5.5.2650.21) Sender: weis The typing rule for record overriding seems slightly more restrictive than necessary, though I can imagine this is because it was simplest to implement it this way. e.g. # type 'a foo = { a: 'a; b: int };; type 'a foo = { a: 'a; b:int } # let f x = {x with a=1 };; val f : int foo -> int foo = Why doesn't f have type 'a foo -> int foo?? It's not a big deal, since I can always construct a whole new record term, but there may be an easy fix. BTW adding record overriding in 2.02 has saved me _heaps_ of time, and made it much more productive to use records. Thanks! Don