Bike-shedding: if `Put` is a monad wouldn't `runPut` be both shorter and perhaps more idiomatic?