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 PAA32211 for caml-redistribution; Thu, 2 Dec 1999 15:11:17 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id MAA32531 for ; Thu, 2 Dec 1999 12:13:34 +0100 (MET) Received: from tobago.inria.fr (tobago.inria.fr [128.93.8.21]) by concorde.inria.fr (8.8.7/8.8.7) with ESMTP id MAA08877 for ; Thu, 2 Dec 1999 12:13:32 +0100 (MET) Received: (from doligez@localhost) by tobago.inria.fr (8.6.10/8.6.6) id MAA11254 for caml-list@inria.fr; Thu, 2 Dec 1999 12:13:32 +0100 Date: Thu, 2 Dec 1999 12:13:32 +0100 From: Damien Doligez Message-Id: <199912021113.MAA11254@tobago.inria.fr> To: caml-list@inria.fr Subject: Re: Why is this not allowed? Sender: weis >From: Claudio Sacerdoti Coen [...] >can you explain me why is this not allowed? >I can't see a problematic counterexample. [...] ># let rec id'' = id;; >This kind of expression is not allowed as right-hand side of `let rec' Because we don't know how to compile "let rec x = x" or let rec x = y and y = x Moreover, you can just remove the "rec" and it works. It is possible to implement "let rec var1 = var2", but the usefulness is quite small compared to the amount of code we would need to write. -- Damien