Simplify delay, add subtype-specific flatMap impls, add comments