Marc Weber wrote:
http://impredicative.com/wiki/index.php/Polymorphic_Variants_Usage_Example

(* The commented out functions below do not compile .. the Medium constructor 
is not polymorphic;
  * it must "decide" on one of temp or size type
  *)

[...snip...]

 From reading the definitions in basis.urs I find it hard to find out how
to use them.

The code you quoted doesn't use polymorphic variants, which probably explains why you found the definition of polymorphic variants unhelpful. ;)

Rather, the code you quoted uses normal ML variants, which are already quite well accepted in SML, OCaml, and F#. Thus, I see no reason to change the behavior. Just like with any other identifier in ML, it is possible to shadow datatype constructor names, such that they literally become unmentionable in future code. You can use modules as a namespace mechanism to reuse constructor names, just as you can use this technique to reuse any identifier.

_______________________________________________
Ur mailing list
Ur@impredicative.com
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to