code: private void generateReturnTypeInvariantCheck(WyilFile.Stmt.Return stmt, Expr[] exprs, Context context) {
  		WyilFile.Decl.FunctionOrMethod declaration = (WyilFile.Decl.FunctionOrMethod) context.getEnvironment()
  				.getParent().enclosingDeclaration;
  		Tuple<WyilFile.Type> returnTypes = declaration.getType().getReturns();
  		//
  		for (int i = 0; i != exprs.length; ++i) {
  			WyilFile.Type returnType = returnTypes.get(i);
  			// FIXME: at this point, we want to determine whether or not the
  			// check is actually required. To do this, we need to check whether
  			// the actualType is a true subtype of the returnType.
  			generateTypeInvariantCheck(returnType, exprs[i], context);
  		}
  	}
docs: Generate a return type check in the case that it is necessary. For example,
  if the return type contains a type invariant then it is likely to be
  necessary. However, in the special case that the value being returned is
  already of appropriate type, then it is not.
  
  @param stmt
  @param exprs
  @param context
  @throws ResolveError