add Reader#map, Writer#contramap