Два языка, в которых я использовал символы, - это Ruby и Erlang, и я всегда находил их чрезвычайно полезными.
В Haskell действительно есть алгебраические типы данных, но я все еще думаю, символы были бы очень удобны. Сразу приходит в голову следующий вариант использования: поскольку символы изоморфны целым числам, вы можете использовать их там, где вы использовали бы целочисленный или строковый «первичный ключ».
Синтаксический сахар для атомов может быть второстепенным -: something или
type ErrorCode = Atom
type Message = String
data Error = Error ErrorCode Message
loginError = Error :redirect "Please login first"
В этом случае: перенаправление более эффективно, чем использование строки («перенаправление»), и его легче понять, чем целое число (404).
Преимущество может быть кажутся второстепенными, но я считаю, что стоит добавить атомы в качестве языковой особенности (или, по крайней мере, расширения GHC).
Так почему же символы не были добавлены в язык? Или я неправильно думаю об этом?