code: public static Type[] typeArrayElementConstructor(Type.Array[] types) {
  		Type[] elements = new Type[types.length];
  		for (int i = 0; i != types.length; ++i) {
  			elements[i] = types[i].getElement();
  		}
  		return elements;
  	}
docs: Given an array of expected array types, construct corresponding expected
  element types. For example, consider the following simple Whiley snippet:
  
  <pre>
  function f(int x) -> int[]:
  return [x]
  </pre>
  
  The expected type for the expression <code>[x]</code> is <code>int[]</code>.
  From this, we calculate the expected type for the expression <code>x</code>
  as <code>int</code>.
  
  @return