functor (Stack : Stack_intf.S-> Stack_intf.S