* For the moment, only the elaboration phase was checking that
  value restriction was respected. Now, we make type inference
  aware of value restriction in order to accept some extra programs
  like:

  let id = fun x -> x
  let id2 = id id
  let main = id2 0