[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | John Prevost <prevost@m...> |
| Subject: | Re: Why is this not allowed? |
Damien Doligez <Damien.Doligez@inria.fr> 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.) John.