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.fairba...@cl.cam.ac.uk> wrote: > Andrew Coppin <andrewcop...@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.fairba...@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@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe