code: public HString head() {
        return tokens()
                  .stream()
                  .filter(t -> t
                                  .parent()
                                  .isEmpty())
                  .map(Cast::<HString>as)
                  .findFirst()
                  .orElseGet(() -> tokens()
                                      .stream()
                                      .filter(t -> !this.overlaps(t.parent()))
                                      .map(Cast::<HString>as)
                                      .findFirst()
                                      .orElse(this));
     }
docs: Gets head.
  
  @return the head