Abstract
Extensional polymorphism provides non-parametric polymorphic values called generic values in ML. We pointed out semantical and efficiency problems of classical compilation of generic values by type dispatching. To overcome these difficulties, we proposed a new compilation by dispatching directed integer graphs called “flows” which encode typing information of generic values. By reusing well-typed witness obtained in static typing, troublesome run-time type pattern matches become redundant and can be simplified to mere array accesses, which provide better semantics and efficiency.