protected internal virtual void Choose(E context, NodeState.NodeGender gender)
 {
     context.State.Choose <E>(context, gender, this);
 }
 protected internal void Choose(NodeState.NodeGender gender)
 {
     this.State.Choose(this, gender);
 }