Números primos en Erlang y la expresion Case

estoy aprendiendo Erlang y necesito hacer una función que retorne la lista de los números primos entre L y O. Por ejemplo, si L = 10 y O = 20, tiene que retornar 11, 13, 17 y 19. El código es el siguiente, pero solo me retorna el primer número primo.

primes(L,O) ->     case L =< O of         true ->             case prime(L) of                 true ->                     primes (L+1, O),                     L;                 false ->                     primes(L+1,O)             end;         false ->             false         end. 

Cómo hago para hacer bien la recursión y que me devuelva todos los primos?

Gracias