adamc@40: signature S = sig adamc@40: type t adamc@40: val z : t adamc@40: val s : t -> t adamc@40: end adamc@40: adamc@40: signature T = sig adamc@40: type t adamc@40: val three : t adamc@40: end adamc@40: adamc@40: structure F = functor (M : S) : T => struct adamc@40: val t = M.t adamc@40: val three = M.s (M.s (M.s M.z)) adamc@40: end