with applicative, we don't have to use parens
the correct way to do recursion ourselves