Some refactoring to expose functions that make the 3rd rule easier
remove pprint use
finish the 3rd rule. Now we solve our easy puzzle, time to put in a harder one
put in a puzzle it can’t solve
placeholder for rule 4
use recur to get tail recursion