[Ur] Deriving show instances

Ron de Bruijn rmbruijn at gmail.com
Wed Oct 12 04:31:00 EDT 2011


Hi,

In Haskell one can write:

module Blah where

data Omg a = Omg a
  deriving Show


ghci> show (Omg 1)
"Omg 1",

but in Ur/Web we need to write this boilerplate by hand.

I would even prefer to have everything which can be be derived to be 
automatically there unless a manual instance is specified.

So,

I would like that

datatype Foo a = Foo of a

val y = show (Foo 1)

compiles and does what is obviously intended unless another Foo specific show 
instance has been defined.

Since Ur/Web uses whole-program compilation anyway, this is not a problem.

Also, everywhere I write 'show' you should read every typeclass mentioned on 
http://www.haskell.org/ghc/docs/latest/html/users_guide/deriving.html , since 
that is the level of sophistication users of modern languages expect these days.

Completely unrelated: opalang.org doesn't appear to have actual datatypes. Or 
rather they have disjoint sums of record types to make the language more 
uniform. Is there any particular reason that this isn't done in Ur/Web? It seems 
that their approach is more sensible in a language with row variables.

-- 
Best regards,
   Ron de Bruijn



More information about the Ur mailing list