Proposal: System.Timeout module for base (Trac #980)

Simon Marlow simonmarhaskell at
Fri Mar 2 08:46:29 EST 2007

Peter Simons wrote:
> Oops, I almost forgot to respond to this point:
>  > Could you add an explanation why the module is non-portable?
> The module is unportable because it relies on asynchronous,
> dynamically-typed exceptions. That is a GHC extension, as far as
> I know. I guess it might be worth mentioning the exact details
> somewhere, but then I don't want to clutter the module header
> with long text -- almost all modules I have seen just say
> "non-portable" in that header field. If it's not a major point,
> I'd prefer to keep things the way they are in that regard.

Often I add a few keywords in parentheses after non-portable, e.g.

   Portability: non-portable (exceptions, concurrency)

but what might be more useful nowadays is to use the LANGUAGE pragma to specify 
extensions, and copy the value of the LANGUAGE pragma into the Portability field 
  for documentation.  It would be nice if Haddock automatically populated 
Portability from LANGUAGE, in fact.


More information about the Libraries mailing list