sig val serve : ('-> 'b) -> '-> unit end