// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface StackFunction extends TableFunction {
// 	void accept(Pinto p, Stack s);
// 
// 	default void accept(Pinto p, Table t) {
// 			List<Stack> inputs = t.takeTop();
// 			for(int i = 0; i < inputs.size(); i++) {
// 				accept(p, inputs.get(i));
// 			}
// 			t.insertAtTop(inputs);
// 	}
// }
// 
// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface TableFunction extends BiConsumer<Pinto,Table> {}
// 
// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface TerminalFunction extends BiFunction<Pinto,Expression,Table> {}


import java.util.HashSet;
import java.util.Optional;
import tech.pinto.Pinto.StackFunction;
import tech.pinto.Pinto.TableFunction;
import tech.pinto.Pinto.TerminalFunction;

	}

	public boolean isBuiltIn() {
		return isBuiltIn;
	}

	public String getDescription() {
		return description;
	}
	
	public String getIndexString() {
		return indexString.orElse("[:]");
	}
	
	public String getHelp(String name) {
		StringBuilder sb = new StringBuilder();
    	String crlf = System.getProperty("line.separator");
		sb.append(name).append(" help").append(crlf);
		if(indexString.isPresent()) {
			sb.append("\t").append("Default indexer: ").append(indexString).append(crlf);
		}
		sb.append("\t").append(description).append(crlf);
		return sb.toString();
	}

	@Override
	public String toString() {
        return name;
    }
	

// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface StackFunction extends TableFunction {
// 	void accept(Pinto p, Stack s);
// 
// 	default void accept(Pinto p, Table t) {
// 			List<Stack> inputs = t.takeTop();
// 			for(int i = 0; i < inputs.size(); i++) {
// 				accept(p, inputs.get(i));
// 			}
// 			t.insertAtTop(inputs);
// 	}
// }
// 
// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface TableFunction extends BiConsumer<Pinto,Table> {}
// 
// Path: src/main/java/tech/pinto/Pinto.java
// @FunctionalInterface
// public static interface TerminalFunction extends BiFunction<Pinto,Expression,Table> {}


// Path: src/main/java/tech/pinto/Name.java
import java.util.HashSet;
import java.util.Optional;
import tech.pinto.Pinto.StackFunction;
import tech.pinto.Pinto.TableFunction;
import tech.pinto.Pinto.TerminalFunction;

	}

	public boolean isBuiltIn() {
		return isBuiltIn;
	}

	public String getDescription() {
		return description;
	}
	
	public String getIndexString() {
		return indexString.orElse("[:]");
	}
	
	public String getHelp(String name) {
		StringBuilder sb = new StringBuilder();
    	String crlf = System.getProperty("line.separator");
		sb.append(name).append(" help").append(crlf);
		if(indexString.isPresent()) {
			sb.append("\t").append("Default indexer: ").append(indexString).append(crlf);
		}
		sb.append("\t").append(description).append(crlf);
		return sb.toString();
	}

	@Override
	public String toString() {
        return name;
    }
	

	public static Builder nameBuilder(String name, StackFunction function) {
