Always define the base case explicitly — it is the #1 source of recursion bugs. Ask for the trace on a small input to verify the logic before using it.