public override string Visit(PlayerTypeNode node, object obj) { return("Player"); }
public abstract T Visit(PlayerTypeNode node, object obj);
public override TypeNode Visit(PlayerTypeNode node, object obj) { return(node); }