code: function _Json_equality(x, y) {
      if (x === y) {
        return true;
      }
  
      if (x.$ !== y.$) {
        return false;
      }
  
      switch (x.$) {
        case 0:
        case 1:
          return x.a === y.a;
  
        case 3:
        case 2:
        case 4:
        case 6:
        case 5:
          return true;
  
        case 9:
          return x.c === y.c;
  
        case 7:
        case 8:
        case 12:
          return _Json_equality(x.b, y.b);
  
        case 10:
          return x.d === y.d && _Json_equality(x.b, y.b);
  
        case 11:
          return x.e === y.e && _Json_equality(x.b, y.b);
  
        case 13:
          return x.f === y.f && _Json_listEquality(x.g, y.g);
  
        case 14:
          return x.h === y.h && _Json_equality(x.b, y.b);
  
        case 15:
          return _Json_listEquality(x.g, y.g);
      }
    }
docs: EQUALITY