code: public static Type[] typeLambdaReturnConstructor(Type.Callable[] types) {
  		Type[] returnTypes = new Type[types.length];
  		for (int i = 0; i != types.length; ++i) {
  			// NOTE: this is an implicit assumption that typeLambdaFilter() only ever
  			// returns
  			// lambda types with exactly one return type.
  			returnTypes[i] = types[i].getReturns().get(0);
  		}
  		return returnTypes;
  	}
docs: Given an array of expected lambda types, construct corresponding expected
  return types. For example, consider the following simple Whiley snippet:
  
  <pre>
  type fun_t is function(int)->(int)
  
  method f(int x):
  fun_t|null xs = &(int y -> y+1)
  ...
  </pre>
  
  The expected type for the expression <code>&(int y -> y+1)</code> is
  <code>fun_t</code>. From this, we calculate the expected type for the
  expression <code>y+1</code> as <code>int</code>.
  
  @param field
  @param expected
  @return