Use correct contract for Procedure type

The only problem with this contract is that it does
not produce a very good error message