package code.type;

import code.type.visitor.TypeVisitor;

/**
 * A Type Constructor Application
 *
 * @author amey
 * @since October 2, 2002
 *
 * Revised Tue Apr 12 21:17:19 PDT 2005
 */
public class TypeConstructorApplication implements TypeExpression {

    public final String typeConstructor;

    public final TypeExpression[] arguments;

    // Package scope constructor for use by TypeFactory
    TypeConstructorApplication(String typeConstructor, 
				      TypeExpression ... arguments) {
        this.typeConstructor = typeConstructor;
        this.arguments = arguments;
    }

    public <R,T> R accept(TypeVisitor<R,T> v, T o) {
        return v.visit(this, o);
    }
}

