Crazy suggestion for dealing with the naming disaster that is ByteString

Lana Black lanablack at
Sun Jan 28 15:24:04 UTC 2018

On 28/01/18 11:26, Merijn Verstraaten wrote:
> Ok, so every so often I've seen people bring up that we really should've called ByteString type Bytes to avoid a whole lot of newbie confusion, but we can't change it now, because it'd break everything.
> But would it really break everything? What's to stop us from creating a new package "bytes" which is just a copy of the bytestring source with ByteString renamed to Bytes, then turning the bytestring package into a shim that re-exports all of the bytes package with an added type alias "type ByteString = Bytes".
> Anything depending on bytestring right now should just compile as is. Sure, we'd probably be stuck with bytestring as shim package for the next 10 years or so while the ecosystem slowly transitions to "bytes", but maintaining a shim package like that should be near zero work and we'd avoid being stuck with this terribly misleading name forever.

Just to add, there are two problems with this proposal. First, there 
already is a package named 'bytes' [1]. Second, renaming the type and 
adding a type alias will break all the instances for ByteString in other 
packages, because Haskell forbids instance declaration for type aliases 
unless TypeSynonymInstances extension is enabled.


More information about the Libraries mailing list