Tackling the atrocious squad

View: New views
3 Messages — Rating Filter:   Alert me  

Tackling the atrocious squad

by Achim Schneider :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...
http://www.haskell.org/mailman/listinfo/haskell-prime

Re: Tackling the atrocious squad

by Lennart Augustsson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...> 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@...
http://www.haskell.org/mailman/listinfo/haskell-prime


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

Re: Tackling the atrocious squad

by Achim Schneider :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

"Lennart Augustsson" <lennart@...>
wrote:

> And what's the denotational semantics of type classes?  As far as I
> know it has never been done, because it's very complex.
>
I have no idea whatsoever, but dare to say that the target language
just isn't appropriate, iff it turns out to be complex.

As a matter of taste, I'd go for axiomatic semantics instead,
exspecially if considering metacircularity. Lisp, for example, can be
reduced to get! == set!, leaving all the confusion as an implementation
detail.


--
(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@...
http://www.haskell.org/mailman/listinfo/haskell-prime
LightInTheBox - Buy quality products at wholesale price