anchor.diff:  library darter.http.path;
   
   /**
  - * Turns it easy to:
  + * Its main goals is to turn it easy to:
    * 1. compare whether two paths are equal or not.
  - * 2. get subpaths from paths.
  - * 3. handle path parts.
  + *  2. get subpaths from paths.
  + *  3. efficiently handle path parts.
    */
   class Path {
     List<String> parts = [];
  
positive.code:     return result;
    }
  
    int get length {
      return parts.length;
    }
  
    String getPathParams(String url) {
  
    }
  
    bool hasPathParam() {
      bool result = false;
  
      for (var i = 0;i < parts.length; i++) {
        if (parts[i].indexOf(":") > 0) {
          result = true;
          break;
        }
      }
  
      return result;
    }
  
    Path join(Path path) {
      Path result = new Path();
      parts.forEach((p) => result.parts.add(p));
      path.parts.forEach((p) => result.parts.add(p));
  
negative.code:   Path() {
    }
  
    /**
     * Create a new instance from a String that represents a URI.
     */
    Path.fromString(String path) {
      if (path != null) {
        for (String part in path.split("/")) {
          if (part != null && !part.isEmpty) parts.add(part);
        }
      }
    }
  
    /**
     * Create a child path from this one.
     */
    Path subPath({int start, int end}) {
      Path result = null;
  
      if (start != null) {
        if (parts.getRange(start, end).length > 0) {
          result = new Path();
          parts.getRange(start, end).forEach((String p) => result.parts.add(p));
        }
  