F # usando o cache de seqüência corretamente
Eu estou tentando usar Seq.cache com uma função que eu fiz que retorna uma seqüência de primos até um número N excluindo o número 1. Estou tendo problemas para descobrir como manter a seqüência em cache no escopo, mas ainda usá-lo na minha definição.
let rec primesNot1 n =
{2 .. n}
|> Seq.filter (fun i ->
(primesNot1 (i / 2) |> Seq.for_all (fun o -> i % o <> 0)))
|> Seq.append {2 .. 2}
|> Seq.cache
Alguma idéia de como eu poderia usar Seq.cache para tornar isso mais rápido? Atualmente, ele continua caindo do escopo e está apenas reduzindo o desempenho.