In #Haskell, newtyping doesn't start to make sense while primitive value pieces always happen in context of some more complex struct (because you keep passing the complex struct, which leaves not much for confusion).
But as soon as you start to pass pieces of the struct around, it starts to feel unsafe to just pass a random ByteString. That is a good point to factor in a small newtype wrapper.



