functor (X : Input_with_arg-> Int