• c は a も b も継承していることにしたい • row polymorphism で部分型になるには, 名前と型が一致してないといけない • しかし,同じ名前で複数のフィールドを レコード c に定義することはできない • c でどちらかをリネームすると. row polymorphism が壊れてしまう • a か b の foo を事前にリネームしておくことも できない(もし別ライブラリで定義されてたら…)
On the complexity of ML typability with overloading. https://ecommons.cornell.edu/handle/1813/7050 [2] Geoffrey S. Smith. Polymorphic Type Inference for Languages with Overloading and Subtyping. https://ecommons.cornell.edu/handle/1813/7070 [3] Sulzmann, Martin & Schrijvers, Tom & Stuckey, Peter. Principal Type Inference for GHC-Style Multi-parameter Type Classes. https://www.researchgate.net/publication/221323263 [1] Dennis M. Volpano and Geoffrey S. Smith. On the complexity of ML typability with overloading. https://ecommons.cornell.edu/handle/1813/7050 [4] François Pottier. Type Inference in the Presence of Subtyping: from Theory to Practice. https://hal.inria.fr/inria-00073205 [5] Fluet, Matthew and Pucella, Riccardo. Phantom Types and Subtyping. https://arxiv.org/abs/cs/0403034