recursion by combinators and let* for prelude creation