Re: Deprecating haskell98 module aliases

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: Deprecating haskell98 module aliases

Simon Marlow-7
On 09/03/2010 12:11, Malcolm Wallace wrote:

>> And regarding guest's comments, doesn't the Haskell 2010 standard[1]
>> count as an "actual language standard"? If not, then what is it and
>> why isn't it one?
>
> Haskell 2010 has been decided, but the Language Report itself has not
> yet been published. So yes, it is a standard, but not one you can refer
> to (yet).
>
> IIRC, H'2010 makes no changes to the Libraries section of the Report.
> There was a proposal for 2010 to update the names of the libraries, to
> their new hierarchical forms. It was not accepted. Thus, the Haskell'98
> names are still part of the official 2010 language standard, if I am not
> mistaken.

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

_______________________________________________
Haskell-prime mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-prime