Text this: Patterns in Datatype−Generic Programming