correctly GCs recursive calls to letrec functions