Module '{0}' contains {1} but its signature specifies {2} The arities in the signature and implementation differ. The signature ...

Module '{0}' contains
    {1}    
but its signature specifies
    {2}    
The arities in the signature and implementation differ. The signature specifies that '{3}' is function definition or lambda expression accepting at least {4} argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.
	val {5}: int -> (int -> int)
instead of
	val {6}: int -> int -> int.