
1 Nov
2001
1 Nov
'01
3:45 p.m.
Simon Peyton-Jones writes: : | A key design choice in our system is to use *nominal* not *structural* | typing. The structural choice makes perfect sense, but it leads to | complications we don't have (as well as benefits). So we don't have | structural subtyping, and it would not be easy to add it. | | On the other hand, one could add nominal subtyping without too | much difficulty: | | record A = { x,y :: Int } | record B <: A = { z :: Int } | | We have not done that yet, but Mark thinks it would could be done | without bad interaction with what we have already. Hi. Could a function of type A->Int be applied to an argument of type B? That's arguably the most difficult part. Regards, Tom