Edison RC3

Bulat Ziganshin bulat.ziganshin at gmail.com
Wed Apr 5 04:54:50 EDT 2006

Hello Robert,

Wednesday, April 5, 2006, 3:50:41 AM, you wrote:

> And one final meta-API question; what are your thoughts about portability in
> general?  I would like to support as many implementations as possible, but
> I'm already relying on MPTC, fundeps and undecidable instances (which may or
> may not be in H'), and I'm considering the following:

> -- instances of Typeable/Data (listed as non-portable)
> -- assertions (for checking preconditions)
> -- newtype deriving

> Anyway, I'm interested in your thoughts about how important portability is.

according to my experience - one can't write real programs in H98. one
of the reasons why H' was started is to define standard for writing
such programs. on the current moment GHC and Hugs are close enough to
that we should see in this standard. They supports MPTC, FD, Typeable,
more flexible instances declarations, and i think that you can work
with assertions via preprocessor. so i recommend you to use GHC+Hugs
compatibility as the first goal but avoid using of features that they
both support but there is no exact definition (such as undecidable
instances), as i itself do. This allows you and your users to use two
the best Haskell implementations - one for debugging, other for
production code, and almost ensure that your code will be H'
compatible or require minimal changes.

about Typeable - i attached file from ghc sources that allows to
define instances both for Hugs and GHC. you can see examples of it's
use in base libraries. it works for me for ghc641 and hugs2005

about undecidable instances - hugs and ghc 6.5 contains more liberate
rule for checking decidability and i hope that it will be included in the
H', see details on the

and last but not least ;)  language extensions that we absolutely need
to use will probably go into the standard. may be the library/apps
authors that use some extensions should write about this on the
appropriate H' proposals pages to let committee know?

ps: may be, we can/should create page with the list of extensions that
probably will go into the standard? or just adjust the corresponding
fields in the existing table? such info would be very helpful for
developers, imho. not anyone has enough time and willing to follow all
of the H' discussions

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Typeable.h
Type: application/octet-stream
Size: 2259 bytes
Desc: not available
Url : http://www.haskell.org//pipermail/haskell-prime/attachments/20060405/b531a776/Typeable.obj

More information about the Haskell-prime mailing list