Tackling the atrocious squad
Achim Schneider
barsoap at web.de
Tue May 6 09:57:21 EDT 2008
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.
More information about the Haskell-prime
mailing list