
my own opinion is that this scheme is like classes - they can be resolved at compile time in most real cases but noone do it because code will be too large. if some function can accept any records which has field 'a' then to use this function on records of different types we need either to do specialization or use scheme with non-constant access time
for those who haven't seen it, the following paper explored the former possibility with good success (at a time when type classes where still somewhat simpler:): Dictionary-free Overloading by Partial Evaluation Mark P. Jones, ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Orlando, Florida, June 1994. http://www.cse.ogi.edu/~mpj/pubs/pepm94.html cheers, claus