Should the caller pass a ByteString? It would be awesome to get away from naked byte[] instances.