And what's the denotational semantics of type classes?  As far as I know it has never been done, because it's very complex.

On Tue, May 6, 2008 at 2:57 PM, Achim Schneider <barsoap@web.de> wrote:
Well, it's an unformalised and not much thought about out-of-the-tub
idea, but here it goes:

Let there be a monad/typeclass representing the denotional semantics of
Haskell

Do some instances of it, called e.g. GHC or Hugs.

so, instead of

main :: IO ()

we have

main :: (Haskell h) => h (IO ())

or, if you need some feature of the Haskell runtime system XYZ

main :: XYZ (IO ())

or even

main :: (FFI h) => h (IO ())

and

main :: (SomeLib h) => h (IO ())

, and then go on and define every single language construct as part of
this type hierarchy, and define some syntactic sugar to make stuff look
exactly like haskell '98 if you're just hacking away.

I especially like the metacircularity of this approach, and the fact
that every Model (read: implementation) of Haskell would have to admit
that it is only a Model (read: instance) of Haskell.

--
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
signature prohibited.

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime