Text this: Category theory applied to functional programming