472 lines
14 KiB
JavaScript
472 lines
14 KiB
JavaScript
|
|
Elm.Dict=function(){
|
|
for(this['i'] in Elm.Prelude){
|
|
eval('var ' + this['i'] + '=Elm.Prelude[this.i];'); }
|
|
var isJust=Elm.Maybe.isJust;
|
|
var Red_0=["Red"];
|
|
var Black_1=["Black"];
|
|
function RBNode_2(a1){
|
|
return function(a2){
|
|
return function(a3){
|
|
return function(a4){
|
|
return function(a5){
|
|
return ["RBNode",a1,a2,a3,a4,a5];};};};};};
|
|
var RBEmpty_3=["RBEmpty"];
|
|
var empty_4=RBEmpty_3;
|
|
var raise_5=function(x){return x;};
|
|
function min_6(t_43){
|
|
return function(){
|
|
switch(t_43[0]){
|
|
case "RBEmpty":
|
|
return raise_5(Value.str("(min RBEmpty) is not defined"));
|
|
case "RBNode":
|
|
switch(t_43[4][0]){
|
|
case "RBEmpty":
|
|
return ["Tuple2",t_43[2],t_43[3]];
|
|
}
|
|
return min_6(t_43[4]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
function lookup_7(k_47){
|
|
return function(t_48){
|
|
return function(){
|
|
switch(t_48[0]){
|
|
case "RBEmpty":
|
|
return Nothing;
|
|
case "RBNode":
|
|
return function(){
|
|
var case6=compare(k_47)(t_48[2]);
|
|
switch(case6[0]){
|
|
case "EQ":
|
|
return Just(t_48[3]);
|
|
case "GT":
|
|
return lookup_7(k_47)(t_48[5]);
|
|
case "LT":
|
|
return lookup_7(k_47)(t_48[4]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};};
|
|
function findWithDefault_8(base_53){
|
|
return function(k_54){
|
|
return function(t_55){
|
|
return function(){
|
|
switch(t_55[0]){
|
|
case "RBEmpty":
|
|
return base_53;
|
|
case "RBNode":
|
|
return function(){
|
|
var case6=compare(k_54)(t_55[2]);
|
|
switch(case6[0]){
|
|
case "EQ":
|
|
return t_55[3];
|
|
case "GT":
|
|
return findWithDefault_8(base_53)(k_54)(t_55[5]);
|
|
case "LT":
|
|
return findWithDefault_8(base_53)(k_54)(t_55[4]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};};};
|
|
function member_10(k_66){
|
|
return function(t_67){
|
|
return isJust(lookup_7(k_66)(t_67));};};
|
|
function rotateLeft_11(t_68){
|
|
return function(){
|
|
switch(t_68[0]){
|
|
case "RBNode":
|
|
switch(t_68[5][0]){
|
|
case "RBNode":
|
|
return RBNode_2(t_68[1])(t_68[5][2])(t_68[5][3])(RBNode_2(Red_0)(t_68[2])(t_68[3])(t_68[4])(t_68[5][4]))(t_68[5][5]);
|
|
}break;
|
|
}
|
|
return raise_5(Value.str("rotateLeft of a node without enough children"));}();};
|
|
function rotateRight_12(t_78){
|
|
return function(){
|
|
switch(t_78[0]){
|
|
case "RBNode":
|
|
switch(t_78[4][0]){
|
|
case "RBNode":
|
|
return RBNode_2(t_78[1])(t_78[4][2])(t_78[4][3])(t_78[4][4])(RBNode_2(Red_0)(t_78[2])(t_78[3])(t_78[4][5])(t_78[5]));
|
|
}break;
|
|
}
|
|
return raise_5(Value.str("rotateRight of a node without enough children"));}();};
|
|
function rotateLeftIfNeeded_13(t_88){
|
|
return function(){
|
|
switch(t_88[0]){
|
|
case "RBNode":
|
|
switch(t_88[5][0]){
|
|
case "RBNode":
|
|
switch(t_88[5][1][0]){
|
|
case "Red":
|
|
return rotateLeft_11(t_88);
|
|
}break;
|
|
}break;
|
|
}
|
|
return t_88;}();};
|
|
function rotateRightIfNeeded_14(t_89){
|
|
return function(){
|
|
switch(t_89[0]){
|
|
case "RBNode":
|
|
switch(t_89[4][0]){
|
|
case "RBNode":
|
|
switch(t_89[4][1][0]){
|
|
case "Red":
|
|
switch(t_89[4][4][0]){
|
|
case "RBNode":
|
|
switch(t_89[4][4][1][0]){
|
|
case "Red":
|
|
return rotateRight_12(t_89);
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}
|
|
return t_89;}();};
|
|
function otherColor_15(c_90){
|
|
return function(){
|
|
switch(c_90[0]){
|
|
case "Black":
|
|
return Red_0;
|
|
case "Red":
|
|
return Black_1;
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
function color_flip_16(t_91){
|
|
return function(){
|
|
switch(t_91[0]){
|
|
case "RBNode":
|
|
switch(t_91[4][0]){
|
|
case "RBNode":
|
|
switch(t_91[5][0]){
|
|
case "RBNode":
|
|
return RBNode_2(otherColor_15(t_91[1]))(t_91[2])(t_91[3])(RBNode_2(otherColor_15(t_91[4][1]))(t_91[4][2])(t_91[4][3])(t_91[4][4])(t_91[4][5]))(RBNode_2(otherColor_15(t_91[5][1]))(t_91[5][2])(t_91[5][3])(t_91[5][4])(t_91[5][5]));
|
|
}break;
|
|
}break;
|
|
}
|
|
return raise_5(Value.str("color_flip called on a RBEmpty or RBNode with a RBEmpty child"));}();};
|
|
function color_flipIfNeeded_17(t_105){
|
|
return function(){
|
|
switch(t_105[0]){
|
|
case "RBNode":
|
|
switch(t_105[4][0]){
|
|
case "RBNode":
|
|
switch(t_105[4][1][0]){
|
|
case "Red":
|
|
switch(t_105[5][0]){
|
|
case "RBNode":
|
|
switch(t_105[5][1][0]){
|
|
case "Red":
|
|
return color_flip_16(t_105);
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}
|
|
return t_105;}();};
|
|
function fixUp_18(t_106){
|
|
return color_flipIfNeeded_17(rotateRightIfNeeded_14(rotateLeftIfNeeded_13(t_106)));};
|
|
function ensureBlackRoot_19(t_107){
|
|
return function(){
|
|
switch(t_107[0]){
|
|
case "RBNode":
|
|
switch(t_107[1][0]){
|
|
case "Red":
|
|
return RBNode_2(Black_1)(t_107[2])(t_107[3])(t_107[4])(t_107[5]);
|
|
}break;
|
|
}
|
|
return t_107;}();};
|
|
function insert_20(k_112){
|
|
return function(v_113){
|
|
return function(t_114){
|
|
return function(){
|
|
function ins_115(t_116){
|
|
return function(){
|
|
switch(t_116[0]){
|
|
case "RBEmpty":
|
|
return RBNode_2(Red_0)(k_112)(v_113)(RBEmpty_3)(RBEmpty_3);
|
|
case "RBNode":
|
|
return function(){
|
|
var h_122=function(){
|
|
var case6=compare(k_112)(t_116[2]);
|
|
switch(case6[0]){
|
|
case "EQ":
|
|
return RBNode_2(t_116[1])(t_116[2])(v_113)(t_116[4])(t_116[5]);
|
|
case "GT":
|
|
return RBNode_2(t_116[1])(t_116[2])(t_116[3])(t_116[4])(ins_115(t_116[5]));
|
|
case "LT":
|
|
return RBNode_2(t_116[1])(t_116[2])(t_116[3])(ins_115(t_116[4]))(t_116[5]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();
|
|
return fixUp_18(h_122);}();
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
return ensureBlackRoot_19(ins_115(t_114));}();};};};
|
|
function singleton_21(k_123){
|
|
return function(v_124){
|
|
return insert_20(k_123)(v_124)(RBEmpty_3);};};
|
|
function isRed_22(t_125){
|
|
return function(){
|
|
switch(t_125[0]){
|
|
case "RBNode":
|
|
switch(t_125[1][0]){
|
|
case "Red":
|
|
return true;
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
function isRedLeft_23(t_126){
|
|
return function(){
|
|
switch(t_126[0]){
|
|
case "RBNode":
|
|
switch(t_126[4][0]){
|
|
case "RBNode":
|
|
switch(t_126[4][1][0]){
|
|
case "Red":
|
|
return true;
|
|
}break;
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
function isRedLeftLeft_24(t_127){
|
|
return function(){
|
|
switch(t_127[0]){
|
|
case "RBNode":
|
|
switch(t_127[4][0]){
|
|
case "RBNode":
|
|
switch(t_127[4][4][0]){
|
|
case "RBNode":
|
|
switch(t_127[4][4][1][0]){
|
|
case "Red":
|
|
return true;
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
function isRedRight_25(t_128){
|
|
return function(){
|
|
switch(t_128[0]){
|
|
case "RBNode":
|
|
switch(t_128[5][0]){
|
|
case "RBNode":
|
|
switch(t_128[5][1][0]){
|
|
case "Red":
|
|
return true;
|
|
}break;
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
function isRedRightLeft_26(t_129){
|
|
return function(){
|
|
switch(t_129[0]){
|
|
case "RBNode":
|
|
switch(t_129[5][0]){
|
|
case "RBNode":
|
|
switch(t_129[5][4][0]){
|
|
case "RBNode":
|
|
switch(t_129[5][4][1][0]){
|
|
case "Red":
|
|
return true;
|
|
}break;
|
|
}break;
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
function moveRedLeft_27(t_130){
|
|
return function(){
|
|
var t__131=color_flip_16(t_130);
|
|
return function(){
|
|
switch(t__131[0]){
|
|
case "RBNode":
|
|
return function(){
|
|
switch(t__131[5][0]){
|
|
case "RBNode":
|
|
switch(t__131[5][4][0]){
|
|
case "RBNode":
|
|
switch(t__131[5][4][1][0]){
|
|
case "Red":
|
|
return color_flip_16(rotateLeft_11(RBNode_2(t__131[1])(t__131[2])(t__131[3])(t__131[4])(rotateRight_12(t__131[5]))));
|
|
}break;
|
|
}break;
|
|
}
|
|
return t__131;}();
|
|
}
|
|
return t__131;}();}();};
|
|
function moveRedRight_28(t_137){
|
|
return function(){
|
|
var t__138=color_flip_16(t_137);
|
|
return (isRedLeftLeft_24(t__138)?color_flip_16(rotateRight_12(t__138)):t__138);}();};
|
|
function moveRedLeftIfNeeded_29(t_139){
|
|
return ((not(isRedLeft_23(t_139))&¬(isRedLeftLeft_24(t_139)))?moveRedLeft_27(t_139):t_139);};
|
|
function moveRedRightIfNeeded_30(t_140){
|
|
return ((not(isRedRight_25(t_140))&¬(isRedRightLeft_26(t_140)))?moveRedRight_28(t_140):t_140);};
|
|
function deleteMin_31(t_141){
|
|
return function(){
|
|
function del_142(t_143){
|
|
return function(){
|
|
switch(t_143[0]){
|
|
case "RBNode":
|
|
switch(t_143[4][0]){
|
|
case "RBEmpty":
|
|
return RBEmpty_3;
|
|
}break;
|
|
}
|
|
return function(){
|
|
var t__144=moveRedLeftIfNeeded_29(t_143);
|
|
return function(){
|
|
switch(t__144[0]){
|
|
case "RBEmpty":
|
|
return RBEmpty_3;
|
|
case "RBNode":
|
|
return fixUp_18(RBNode_2(t__144[1])(t__144[2])(t__144[3])(del_142(t__144[4]))(t__144[5]));
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();}();}();};
|
|
return ensureBlackRoot_19(del_142(t_141));}();};
|
|
function remove_32(k_150){
|
|
return function(t_151){
|
|
return function(){
|
|
function eq_and_noRightNode_152(t_153){
|
|
return function(){
|
|
switch(t_153[0]){
|
|
case "RBNode":
|
|
switch(t_153[5][0]){
|
|
case "RBEmpty":
|
|
return eq(k_150,t_153[2]);
|
|
}break;
|
|
}
|
|
return false;}();};
|
|
return function(){
|
|
function eq_155(t_156){
|
|
return function(){
|
|
switch(t_156[0]){
|
|
case "RBNode":
|
|
return eq(k_150,t_156[2]);
|
|
}
|
|
return false;}();};
|
|
return function(){
|
|
function delLT_158(t_159){
|
|
return function(){
|
|
var t__160=moveRedLeftIfNeeded_29(t_159);
|
|
return function(){
|
|
switch(t__160[0]){
|
|
case "RBEmpty":
|
|
return raise_5(Value.str("delLT on RBEmpty"));
|
|
case "RBNode":
|
|
return fixUp_18(RBNode_2(t__160[1])(t__160[2])(t__160[3])(del(t__160[4]))(t__160[5]));
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();}();};
|
|
return function(){
|
|
function delEQ_166(t_167){
|
|
return function(){
|
|
switch(t_167[0]){
|
|
case "RBEmpty":
|
|
return raise_5(Value.str("delEQ called on a RBEmpty"));
|
|
case "RBNode":
|
|
return function(){
|
|
var Tuple2$k_v__171=min_6(t_167[5]);
|
|
var k__172=function(){
|
|
switch(Tuple2$k_v__171[0]){
|
|
case "Tuple2":
|
|
return Tuple2$k_v__171[1];
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();
|
|
var v__173=function(){
|
|
switch(Tuple2$k_v__171[0]){
|
|
case "Tuple2":
|
|
return Tuple2$k_v__171[2];
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();
|
|
return fixUp_18(RBNode_2(t_167[1])(k__172)(v__173)(t_167[4])(deleteMin_31(t_167[5])));}();
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
return function(){
|
|
function delGT_178(t_179){
|
|
return function(){
|
|
switch(t_179[0]){
|
|
case "RBEmpty":
|
|
return raise_5(Value.str("delGT called on a RBEmpty"));
|
|
case "RBNode":
|
|
return fixUp_18(RBNode_2(t_179[1])(t_179[2])(t_179[3])(t_179[4])(del(t_179[5])));
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
return function(){
|
|
function del_185(t_186){
|
|
return function(){
|
|
switch(t_186[0]){
|
|
case "RBEmpty":
|
|
return RBEmpty_3;
|
|
case "RBNode":
|
|
return ((compare(k_150)(t_186[2])[0] === 'LT')?delLT_158(t_186):function(){
|
|
var t__188=(isRedLeft_23(t_186)?rotateRight_12(t_186):t_186);
|
|
return (eq_and_noRightNode_152(t__188)?RBEmpty_3:function(){
|
|
var t_189=moveRedRightIfNeeded_30(t_189);
|
|
return (eq_155(t_189)?delEQ_166(t_189):delGT_178(t_189));}());}());
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};
|
|
return ensureBlackRoot_19(del_185(t_151));}();}();}();}();}();}();};};
|
|
function map_33(f_190){
|
|
return function(t_191){
|
|
return function(){
|
|
switch(t_191[0]){
|
|
case "RBEmpty":
|
|
return RBEmpty_3;
|
|
case "RBNode":
|
|
return RBNode_2(t_191[1])(t_191[2])(f_190(t_191[3]))(map_33(f_190)(t_191[4]))(map_33(f_190)(t_191[5]));
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};};
|
|
function foldl_34(f_197){
|
|
return function(acc_198){
|
|
return function(t_199){
|
|
return function(){
|
|
switch(t_199[0]){
|
|
case "RBEmpty":
|
|
return acc_198;
|
|
case "RBNode":
|
|
return foldl_34(f_197)(f_197(t_199[2])(t_199[3])(foldl_34(f_197)(acc_198)(t_199[4])))(t_199[5]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};};};
|
|
function foldr_35(f_204){
|
|
return function(acc_205){
|
|
return function(t_206){
|
|
return function(){
|
|
switch(t_206[0]){
|
|
case "RBEmpty":
|
|
return acc_205;
|
|
case "RBNode":
|
|
return foldr_35(f_204)(f_204(t_206[2])(t_206[3])(foldr_35(f_204)(acc_205)(t_206[5])))(t_206[4]);
|
|
}
|
|
throw "Non-exhaustive pattern match in case";}();};};};
|
|
function union_36(t1_211){
|
|
return function(t2_212){
|
|
return foldl_34(insert_20)(t2_212)(t1_211);};};
|
|
function intersect_37(t1_213){
|
|
return function(t2_214){
|
|
return foldl_34(function(k_215){
|
|
return function(v_216){
|
|
return function(t_217){
|
|
return (member_10(k_215)(t2_214)?insert_20(k_215)(v_216)(t_217):t_217);};};})(empty_4)(t1_213);};};
|
|
function diff_38(t1_218){
|
|
return function(t2_219){
|
|
return foldl_34(function(k_220){
|
|
return function(__221){
|
|
return function(t_222){
|
|
return remove_32(k_220)(t_222);};};})(t1_218)(t2_219);};};
|
|
function keys_39(t_223){
|
|
return foldl_34(function(k_224){
|
|
return function(__225){
|
|
return function(acc_226){
|
|
return ["Cons",k_224,acc_226];};};})(["Nil"])(t_223);};
|
|
function values_40(t_227){
|
|
return foldl_34(function(__228){
|
|
return function(x_229){
|
|
return function(y_230){
|
|
return ["Cons",x_229,y_230];};};})(["Nil"])(t_227);};
|
|
function toList_41(t_231){
|
|
return foldl_34(function(k_232){
|
|
return function(v_233){
|
|
return function(acc_234){
|
|
return ["Cons",["Tuple2",k_232,v_233],acc_234];};};})(["Nil"])(t_231);};
|
|
function fromList_42(assocs_235){
|
|
return Elm.List.foldl(uncurry(insert_20))(empty_4)(assocs_235);};
|
|
return {empty:empty_4,lookup:lookup_7,findWithDefault:findWithDefault_8,member:member_10,insert:insert_20,singleton:singleton_21,remove:remove_32,map:map_33,foldl:foldl_34,foldr:foldr_35,union:union_36,intersect:intersect_37,diff:diff_38,keys:keys_39,values:values_40,toList:toList_41,fromList:fromList_42};}();
|