
Am 15.07.2012 17:11, schrieb Thomas Schilling:
On 15 July 2012 14:53, Yitzchak Gale
wrote: Simon already pointed out that, in his opinion, the correct way to support SH would be:
- rename M to M.Internal (or suitable alternative) - rename M.Safe to M - add a (small) M.Unsafe where necessary
But that would break backwards compatibility for the unsafe parts of the API. It's up to the package maintainers whether or not they want to do that. If not, I would say revert to no Safe Haskell support and accept it in the platform. However, add a haddock comment something like this:
"Safe Haskell: If you do not use any functions in this module whose name contains the word 'unsafe', you can mark your module as 'Trustworthy'. Otherwise, please consult
." To be fair, regardless of SH, I'd consider it good API design to put unsafe things into a separate module. I'd be interested to know what exactly the problem is with moving these functions into a separate module. If the only argument for not making this change is to avoid breaking the API then we should do it *before* including vector into the platform.
+1