code: function parse (value) {
      if (/^[.\/]/.test(value)) {
          return new Path(value)
      }
      var bind = value.split(':')
      if (bind.length == 1) {
          bind.unshift('0.0.0.0')
      }
  // TODO You'll want string aliases so that `"foo is required" -> "generic required"
      if (!isNumeric(bind[1])) {
          return null
      }
      var parts = bind[0].split('.')
      if (parts.length != 4) {
          return null
      }
      if (parts.filter(function (part) {
          return isNumeric(part) && 0 <= +part && +part <= 255
      }).length != 4) {
          return null
      }
      var bind = value.split(':')
      if (bind.length == 1) {
          bind.unshift('0.0.0.0')
      }
      return new Bindable(bind[0], +bind[1])
  }
docs: TODO IPv6.