Deprecating haskell98 module aliases

Gwern Branwen gwern0 at gmail.com
Thu Apr 29 15:43:41 EDT 2010


On Wed, Mar 17, 2010 at 9:48 AM, Simon Marlow <marlowsd at gmail.com> wrote:
> The discussion didn't result in a concrete proposal, but there was general
> agreement that we should remove
>
>  Directory
>  System
>  Time
>  Locale
>  CPUTime
>  Random
>
> and update the others to use hierarchical names:
>
>    1. Ratio     keep as Data.Ratio
>    2. Complex   keep as Data.Complex
>    3. Numeric   keep as Numeric (?)
>    4. Ix        keep as Data.Ix
>    5. Array     keep as Data.Array
>    6. List      keep as Data.List
>    7. Maybe     keep as Data.Maybe
>    8. Char      keep as Data.Char
>    9. Monad     keep as Control.Monad
>   10. IO        keep as System.IO
>
> and the FFI libraries would be added as
>
>   CError       -> Foreign.C.Error
>   CForeign     -> Foreign.C
>   CString      -> Foreign.C.C.String
>   CTypes       -> Foreign.C.Types
>   ForeignPtr   -> Foreign.ForeignPtr
>   Int          -> Data.Int
>   MarshalAlloc -> Foreign.Marshal.Alloc
>   MarshalArray -> Foreign.Marshal.Array
>   MarshalError -> Foreign.Marshal.Error
>   MarshalUtils -> Foreign.Marshal.Utils
>   StablePtr    -> Foreign.StablePtr
>   Storable     -> Foreign.Storable
>   Word         -> Data.Word
>
> (this proposal wasn't discussed publicly, unfortunately.  I think that was
> an oversight.)
>
> I was actually planning to look at doing this during the H2010 report
> update. However, updating the libraries in the report to use the
> hierarchical names actually gives us a slight problem, in that we then have
> to provide those modules with exactly those interfaces for ever, presumably
> via some well-known package.  The module names overlap with base, so we'd
> have to do some package reorganisation.  Things could get painful really
> fast.  I'm tempted to not do this in H2010, but defer it until we've really
> thought about how to manage the transition and future updates.
>
> I would like to remove the old superseded modules though: Directory, Time,
> System, Random, Locale, CPUTime.  That would be an easy change, and we can
> provide a haskell2010 package exporting just the remaining modules.
>
> Cheers,
>        Simon

How goes the removal of those old modules?

-- 
gwern


More information about the Libraries mailing list