#include "share/atspre_staload.hats" fn {t1, t2, t3 : t@ype} compose (f : t2 - t3, g : t1 - t2) : t1 - t3 = lam x => f (g (x)) fn compose_char2int2double (f : int - double, g : char - int) : char - double = compose (f, g) implement main0 () = let val one_hundred = 100.0 val char_zero = '0' val f = (lam y = add_double_int (one_hundred, y)) val g = (lam x = char2i x - char2i char_zero) val z = compose_char2int2double (f, g) ('5') val fg = compose_char2int2double (f, g) val w = fg ('7') in println! (z : double); println! (w : double) end