On 2003-11-24T08:53:56-0800, Steve Dekorte wrote: > Yes, and the only union may be introspection methods. In which case we > might be able to validly send any method that the introspection API > reveals to us, even though our type system (which restricted us to the > introspection methods) wouldn't allow it. Maybe -your- type system wouldn't allow it, but mine does: import Char (ord) data Union = A Char | B Int unionToInt :: Union -> Int unionToInt (A c) = ord c unionToInt (B i) = i Here I send the "ord" message, which only characters respond to, to a value that introspection reveals at runtime is a character rather than an integer. This has already been explained on this thread at Message-ID: <20031120022752.GB14598@proper.eecs.harvard.edu> See also dynamic_cast in C++. Ken -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig Sexy types in action: http://www.eecs.harvard.edu/~ccshan/cs252/usage.pdf new journal Physical Biology: http://sansom.biop.ox.ac.uk/images/physbio.gif What if All Chemists Went on Strike? (science fiction): http://www.iupac.org/publications/ci/2003/2506/iw3_letters.html
Attachment:
signature.asc
Description: Digital signature