On 16/01/07, Seth J. Fogarty wrote: > > > 2) When I have different overlapping kinds of data, with a common root > and common parent, and functions that are only defined on certain > branches of the 'type tree.' This would be the hardest to replicate. > Could this be replicated by either using overloaded non-polymorphic variants, meaning that say Int of int can be shared by many types (almost like polymorphic variants, just that it is declared, and thus (at least I believe so) more typesafe) using records with overloaded fields and subtyping, so that you could have: type top = {common of string} type one_level_deep = {top | my_only of int} type independent = {my_only of string} so this would be possible: let to_str x -> x.common to_str {common = "first"}; to_str {common = "second"; my_only = 0} ? - Tom