[Haskell-cafe] Re: Mysterious fact

Lennart Augustsson lennart at augustsson.net
Tue Nov 2 18:08:56 EDT 2010

Jon, you beat me to it.  I was going to mention Ponder.

But Ponder did have a builtin type, it had the function type built in. :)

  -- Lennart

On Tue, Nov 2, 2010 at 9:47 PM, Jon Fairbairn
<jon.fairbairn at cl.cam.ac.uk> wrote:
> Andrew Coppin <andrewcoppin at btinternet.com> writes:
>> The other day, I accidentally came up with this:
>> |{-# LANGUAGE RankNTypes #-}
>> type  Either  x y=  forall r.  (x ->  r) ->  (y ->  r) ->  r
>> left :: x ->  Either  x y
>> left x f g=  f x
>> right :: y ->  Either  x y
>> right y f g=  g y
>> |
>> This is one example; it seems that just about any algebraic
>> type can be encoded this way. I presume that somebody else
>> has thought of this before. Does it have a name?
> You could try reading my PhD thesis!
> <http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-75.html>
> contains a link to the full text scanned to a pdf. (That -- 1985
> -- was a long time ago. One thing I really regret about it is
> that there should have been a comma between "simple" and "typed"
> in the title. I suspect people think "simply typed" when they
> see it). It isn't hard to read (one of my examiners said it made
> good bed-time reading).
> Anyway, the relevant part is that Ponder was a programming
> language (Stuart Wray even wrote a GUI programme in it) that had
> (in principle) no built-in types, relying on the type system
> being powerful enough to express anything and the optimiser
> being good enough to convert them to something more sensible.
> In practice neither was /quite/ true, but it got quite close.
> --
> Jón Fairbairn                                 Jon.Fairbairn at cl.cam.ac.uk
> http://www.chaos.org.uk/~jf/Stuff-I-dont-want.html  (updated 2010-09-14)
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list