Pearls Of Functional Algorithm Design by Richard Bird