code: public GlstringBuilder locus(final String glstring) {
          if (tree.isEmpty()) {
              locus = glstring;
          }
          else if (tree.root.isOperator() && tree.root.right == null) {
              throw new IllegalStateException("must call allele(String) between successive calls to any operator (allelicAmbiguity, inPhase, plus, genotypicAmbiguity, locus)");
          }        
          else {
              Node root = new Node();
              root.value = "^";
              root.left = tree.root;
              tree.root = root;
          }
          return this;
      }
docs: Return this GL String builder configured with the specified locus.  If an allele has already been added
  to this builder, this call provides the locus operator ('<code>^</code>' character).  The locus
  operator combines two or more genotype lists into a multilocus unphased genotype.
  
  <p>As an operator, calls to this method must be interspersed by calls to {@link #allele(String)}.</p>
  
  @param glstring locus in GL String format, must not be null
  @return this GL String builder configured with the specified locus
  @throws IllegalStateException if successive calls to any operator methods ({@link #allelicAmbiguity()},
  {@link #inPhase()}, {@link #plus()}, {@link #genotypicAmbiguity()}, and {@link #locus(String)}) are
  made without an interspersed call to {@link #allele(String)}