code: private void createFunctionOrMethodPrototype(WyilFile.Decl.FunctionOrMethod declaration) {
  		Tuple<WyilFile.Decl.Variable> params = declaration.getParameters();
  		Tuple<WyilFile.Decl.Variable> returns = declaration.getReturns();
  		//
  		WyalFile.VariableDeclaration[] parameters = new WyalFile.VariableDeclaration[params.size()];
  		// second, set initial environment
  		for (int i = 0; i != params.size(); ++i) {
  			WyilFile.Decl.Variable var = params.get(i);
  			WyalFile.Type parameterType = convert(var.getType(), declaration);
  			WyalFile.Identifier parameterName = new WyalFile.Identifier(var.getName().get());
  			parameters[i] = new WyalFile.VariableDeclaration(parameterType, parameterName);
  		}
  		WyalFile.VariableDeclaration[] wyalReturns = new WyalFile.VariableDeclaration[returns.size()];
  		// second, set initial environment
  		for (int i = 0; i != returns.size(); ++i) {
  			WyilFile.Decl.Variable var = returns.get(i);
  			WyalFile.Type returnType = convert(var.getType(), declaration);
  			WyalFile.Identifier returnName = new WyalFile.Identifier(var.getName().get());
  			wyalReturns[i] = new WyalFile.VariableDeclaration(returnType, returnName);
  		}
  		//
  		Name name = declaration.getQualifiedName().toName();
  		wyalFile.allocate(new Declaration.Named.Function(name, parameters, wyalReturns));
  	}
docs: Construct a function or method prototype with a given name and type. The
  function or method can then be called elsewhere as an uninterpreted function.
  The function or method doesn't have a body but is used as a name to be
  referred to from assertions.
  
  @param declaration
  --- the function or method declaration in question
  @param wyalFile
  --- the file onto which this function is created.
  @return