Initial recursion

How to match the return type of guard(s)?