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.