http://web.archive.org/web/20080622204226/http://www.cs.vu.nl/boilerplate/に示されている例では
-- Increase salary by percentage
increase :: Float -> Company -> Company
increase k = everywhere (mkT (incS k))
-- "interesting" code for increase
incS :: Float -> Salary -> Salary
incS k (S s) = S (s * (1+k))
型署名で言及された最初のCompanyに対して、increase関数が何もバインドせずにコンパイルされるのはなぜですか。
部分関数に割り当てるようなものですか?なぜそのように行われるのですか?