I was wondering how many ways you can construct return values from a function that returns either something or nothing depending on a simple piece of logic, easier to understand from my examples above ...