package org.scribble.ast.name;
import org.scribble.ast.NonRoleArgNode;
import org.scribble.sesstype.kind.PayloadTypeKind;
import org.scribble.sesstype.name.PayloadType;
// A datatype kind node: DataTypeNode or NonRoleParameterNode -- not necessarily simple nor qualified
// Actually, datatype or global protocol kind, if delegation supported -- for "structural delegation" this would not directly be a name node any more (like MessageNode)
//public interface PayloadElemNameNode extends NonRoleArgNode
public interface PayloadElemNameNode<K extends PayloadTypeKind> extends NonRoleArgNode
{
//PayloadType<? extends PayloadTypeKind> toPayloadType();
//PayloadType<DataTypeKind> toPayloadType(); // Currently can assume the only possible kind is DataTypeKind (delegation is by (non-ambig) delegationelem)
//PayloadType<? extends PayloadTypeKind> toPayloadType(); // FIXME: generic parameter for kind (data/local)
PayloadType<K> toPayloadType();
}