Tests go to separate file
List.map + Tree.fold (last one is hard!)