Какова цель OCaml Lazy.lazy_from_val?

Документация Lazy.lazy_from_valутверждает, что эта функция предназначена для особых случаев:

val lazy_from_val : 'a -> 'a t
  lazy_from_val v returns an already-forced suspension of v This is for special purposes only and should not be confused with lazy (v).

О каких случаях идет речь?

Если я создам пару приостановленных вычислений из такого значения, как:

let l1 = lazy 123
let l2 = Lazy.lazy_from_val 123

В чем разница между этими двумя? Поскольку Lazy.lazy_is_val l1и Lazy.lazy_is_val l2оба возвращают true, говоря, что значение уже принудительно!

5
задан Ricardo 18 March 2012 в 17:39
поделиться