Start haskell version with a dummy test
No order, no profit
With one order
Introduce plan
Two overlapping orders
generalize
Two consecutive orders
Push out the special case "no orders"
generalize plan
Introduce Plan
Simplify sameLanding
start induction on landing time
Avoid inefficient nub
Fix grouping bug
Allow for non-flights
Extract groupOrdersByLanding
Extract makeFakeOrders
Extract extractTimes
Avoid qualifying map
memoize