haskell
Abstract class to manipulate sequence of bytes
The use case of this class is abstracting manipulation of
types that are just wrapping a bytestring with stronger and
more meaniful name.
Usual definition is of the form: newtype MyType = MyType ByteString