Generalize to arrows. Add lazy ByteString (i guess I was too lazy the last time).