名前的型と構造的型
型とは変数に付与されたメタ情報である
このメタ情報をどのように区別するか?という課題には2つのアプローチがある
名前的型
型に名前をつけ、名前によって型の相違を判断する
名前が異なるものには互換性がない
JavaやC++などで採用されている
構造的型
型の構造によって相違を判断する
型理論の研究においてはこちらが主流らしい
HaskellやTypeScriptなど
/nishio/名前的型と構造的型の勘違いによる実話