
On Wed, Sep 18, 2013 at 09:02:16AM +0200, Bas van Dijk wrote:
On 18 September 2013 06:30, Niklas Hambüchen
wrote: On 18/09/13 04:02, Dan Burton wrote:
Everybody already uses, trusts, and loves aeson.
There's only one thing about it that I don't trust:
"Partial instances" that will call error in pure code and crash my program.
ByteString has such an instance that simply assumes that ByteString is the same as Text, so it calls Data.Text.Encoding.decodeUtf8 on it.
What about settling that issue by adding documentation to the ToJSON ByteString instance and the 'encode' function warning users about this?
That looks scary. I'd either make it total or remove the instance all together. I think by now almost everybody in the Haskell community agrees that we do not want pure partial functions. Cheers, Simon