internal ArgumentData(string name, IReadOnlyType type, IReadOnlyFunction owner, Preposition prep)
 {
     this.Name = name;
     this.Type = type;
     this.Owner = owner;
     this.AlternateAccess = prep;
 }
        private void PrintFunction(IReadOnlyFunction function)
        {
            var argsAsStrings = function.AllArguments.Select(PrintArgument);
            string arguments = String.Join(", ", argsAsStrings);

            AppendFormatLine("public {0} {1}({2})", function.ReturnType.Name, function.Name, arguments);
            AppendLine("{");

            indentLevel++;
            foreach (IReadOnlyExpression expression in function.Expressions.Expressions)
            {
                PrintExpression(expression);
            }
            indentLevel--;

            AppendLine("}");
            AppendLine();
        }
 internal ArgumentData(string name, IReadOnlyType type, IReadOnlyFunction owner)
     : this(name, type, owner, Preposition.NONE)
 {
 }