type list<e>={head:e,tail:list<e>} function append(a,b)= if a=nil then b else list{head=a.head,tail=append(a.tail,b)}
function append<d>(a:list<d>,b:list<d>):list<d>= if a=nil then b else list<d>{head=a.head,tail= append<d>(a.tail,b)}347 ページに示した関数と同一である.次のいくつかのページで,型推論 と generalization アルゴリズムを詳しく説明する.