Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: Why is this not allowed?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-12-03 (13:53)
From: John Prevost <prevost@m...>
Subject: Re: Why is this not allowed?
Damien Doligez <> writes:

> ># 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.

Well, you can't quite.  Because of the value restriction, id'' defined
like this:

let id'' = id;;

has type:

id'' : '_a -> '_a

(That is, it'll only work for a single type.)