sig val compose : ('-> 'b) -> ('-> 'a) -> '-> 'end