diff --git a/benchmark-results/csv/ackermann.csv b/benchmark-results/csv/ackermann.csv
index 9341f323..d8d47fdf 100644
--- a/benchmark-results/csv/ackermann.csv
+++ b/benchmark-results/csv/ackermann.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.6974466846667156,0.6971085067498279,0.6980356024168941,6.135167076890207e-4,3.223077142478967e-5,7.329966806601092e-4
-0x1f78b4,ocaml byte,1.8594559404167892,1.8572196913750076,1.860773326875119,2.221911449611058e-3,8.827834999465267e-4,3.0423737053740262e-3
-0xb2df8a,haskell,1.3621283808333449,1.3621124349999718,1.362144326666718,2.7891502142244138e-5,6.951100763552126e-6,3.666636091837988e-5
-0x33a02c,haskell strict,0.5240376764376151,0.5219131130002097,0.525674794312522,2.531302356734862e-3,2.1266494630237166e-3,2.8986111306512894e-3
-0xfb9a99,juvix,2.2589469975624183,2.239043556624779,2.2733354259999032,2.389959116896453e-2,1.6885996781277786e-2,2.9536889897754468e-2
-0xe31a1c,juvix wasm,1.0039412180417646,1.0006276328332813,1.0072548032502482,5.984037310160442e-3,9.345569292269814e-4,7.076032569521958e-3
-0xfdbf6f,c,6.509036525002364e-4,6.492250274601181e-4,6.532671460176832e-4,7.863248291872335e-6,5.814611277422292e-6,1.2035769273918718e-5
-0xff7f00,c wasm,0.46521176695811545,0.46083920074966045,0.46830258149987003,5.155211802772062e-3,4.411811759492999e-3,5.877680929484873e-3
-0xcab2d6,runtime,2.800900270166627,2.770197622374951,2.820658255666634,3.263730262901868e-2,2.0353498107158398e-2,4.562911298829547e-2
-0x6a3d9a,runtime wasm,3.1177660597917907,3.111378974750096,3.12402578550018,8.029468969140986e-3,4.021591499963506e-3,1.0106607202488628e-2
+0xa6cee3,ocaml,0.6968024978540749,0.6967299362082333,0.6968432896665414,8.443278805593997e-5,7.588605135949322e-5,9.420465563311907e-5
+0x1f78b4,ocaml byte,1.8581485031458744,1.8565321934374879,1.8598662984167427,2.2082670762918603e-3,1.1148875776119365e-3,2.77694610859364e-3
+0xb2df8a,haskell,1.3531695761666924,1.3523007603748738,1.3547332938751424,1.5947218673159427e-3,6.761579954383244e-5,1.938828325586911e-3
+0x33a02c,haskell strict,0.5227872584374609,0.5219496216876678,0.5244524448124821,1.6674912549059337e-3,6.724749709974276e-6,1.9307013022688885e-3
+0xfb9a99,juvix,2.271816671458396,2.264506226166759,2.2768153272080554,8.697753494298374e-3,6.528803606152391e-3,1.0467289462339496e-2
+0xe31a1c,juvix wasm,1.005883935270731,1.0025032430623924,1.0078453808332597,3.3084325828866804e-3,1.5255909839827944e-3,4.529764494107087e-3
+0xfdbf6f,c,6.489112130678465e-4,6.473890815553284e-4,6.508171201413917e-4,6.998728021051818e-6,5.776732434820031e-6,9.085659055363262e-6
+0xff7f00,c wasm,0.46515550341666767,0.46209890483351046,0.4682121019998249,4.434774985196285e-3,1.7619601912203294e-3,6.000472361557605e-3
+0xcab2d6,runtime,2.7382480593540586,2.7113162794373125,2.773523422916393,4.010967970637142e-2,1.7510080247474295e-2,5.293746095624075e-2
+0x6a3d9a,runtime wasm,3.1203223021457993,3.1161412750002455,3.125097520770813,6.140501959032249e-3,2.983753689404326e-3,7.737506231505092e-3
diff --git a/benchmark-results/csv/combinations.csv b/benchmark-results/csv/combinations.csv
index 14e2fafa..7d7fabe1 100644
--- a/benchmark-results/csv/combinations.csv
+++ b/benchmark-results/csv/combinations.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,10.774911501395877,10.738120636875124,10.793047933645767,3.6578503831192294e-2,1.0214466512561277e-4,4.249397289647796e-2
-0x1f78b4,ocaml byte,56.93956347116659,56.49612731537502,57.358484557374936,0.5694075862174676,0.34002561785443836,0.6939293699784027
-0xb2df8a,haskell,10.107453095250113,10.103668164249882,10.109958125250216,4.287431005270764e-3,2.0172221147902467e-3,5.796847273073717e-3
-0x33a02c,haskell strict,10.105556935791602,10.10184411649982,10.109291993499937,4.775375814580662e-3,2.476895019678962e-3,5.789114628154703e-3
-0xfb9a99,juvix,13.007609183187432,13.002528936000243,13.010897685187237,6.190789953740681e-3,3.855479868947816e-3,7.594470059271681e-3
-0xe31a1c,juvix wasm,23.513021728375026,23.504220663624892,23.52160953062537,1.1397923029026898e-2,6.185846220825648e-3,1.3939404892423294e-2
-0xfdbf6f,c,7.607396875999901,7.607052105750047,7.607785364499856,5.119905728897285e-4,2.238236882822753e-4,6.733520718230917e-4
-0xff7f00,c wasm,9.793480786875117,9.790025254499898,9.796783107124876,5.103880723205524e-3,2.943096690855499e-3,7.164261836802524e-3
-0xcab2d6,runtime,11.420865956479304,11.417840923916856,11.424081427958413,4.440217917795844e-3,1.8704729356705035e-3,5.892461240294157e-3
-0x6a3d9a,runtime wasm,25.012089118229067,25.008557099333153,25.014795125416565,4.441533926485728e-3,2.401936853352275e-3,5.602680335744932e-3
+0xa6cee3,ocaml,10.787056941166648,10.784782581374998,10.790849029374954,4.04029453416834e-3,5.044209166653602e-4,4.861801675437515e-3
+0x1f78b4,ocaml byte,57.561399851354146,56.85868739910402,58.494006209750296,1.1827607263959798,0.469668732692494,1.6228448938780475
+0xb2df8a,haskell,10.101775586208248,10.101756659374985,10.101803297833158,3.063013332751018e-5,1.1024648795011207e-5,3.945727201007097e-5
+0x33a02c,haskell strict,10.101773168458388,10.101755912666665,10.101790424250112,2.7969610113643064e-5,1.4271094291197852e-5,3.928041032297799e-5
+0xfb9a99,juvix,12.99613727475016,12.99361488400018,12.997664833250138,2.9785942930736567e-3,2.4738117181424646e-3,3.52774524466e-3
+0xe31a1c,juvix wasm,23.5216342553958,23.48533730731242,23.5405462525833,3.4824092260430095e-2,1.824682912501885e-2,4.3675386668469936e-2
+0xfdbf6f,c,7.602442325416803,7.601934563500038,7.602683516291904,4.8812531270589927e-4,5.8612983986990725e-5,6.156194506505773e-4
+0xff7f00,c wasm,9.789507235187537,9.787623454187553,9.791474867000034,2.5748911506401125e-3,1.2128371903235631e-3,3.2200869774191513e-3
+0xcab2d6,runtime,11.44290862260425,11.423634137479098,11.452136870333561,1.8625020225951163e-2,1.982435687382423e-3,2.329416093004764e-2
+0x6a3d9a,runtime wasm,24.99902431543768,24.993560461312825,25.001765479062612,5.224345452536154e-3,9.331843749578184e-4,6.33044622699058e-3
diff --git a/benchmark-results/csv/cps.csv b/benchmark-results/csv/cps.csv
index 1f72fadb..f91c7b4c 100644
--- a/benchmark-results/csv/cps.csv
+++ b/benchmark-results/csv/cps.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.40556931020838266,0.4054799946667723,0.40562035445835437,1.045375632974583e-4,9.203052872036244e-5,1.1788164584699747e-4
-0x1f78b4,ocaml byte,3.102472933416815,3.101089602000229,3.1039834615002064,2.6232235003302022e-3,2.9201466683548283e-4,3.129655753660263e-3
-0xb2df8a,haskell,180.14588842475007,174.53162438949994,183.46263324425013,6.597176271667582,5.60421814447918,7.659694057486623
-0x33a02c,haskell strict,1.711926315666119,1.7117814461249736,1.712150769373693,2.4082393645097667e-4,2.7348985734612923e-5,2.9417473254124285e-4
-0xfb9a99,juvix,2.007769161145878,2.001517901437751,2.0108980756249366,6.205344437512213e-3,1.6030274549483532e-4,7.298484323270327e-3
-0xe31a1c,juvix wasm,2.0390104720412787,2.037015074583299,2.040553419416407,2.392024993309129e-3,1.6791066661123732e-3,2.8328420341957035e-3
-0xfdbf6f,c,0.17236365628746017,0.1713566567757323,0.17420571082314745,2.0678525531243304e-3,9.134730606440182e-4,2.902553050684924e-3
-0xff7f00,c wasm,0.2692379359899375,0.2639822345300005,0.27974584269983704,1.1222963187766683e-2,1.5345125221446227e-3,1.439014140680919e-2
-0xcab2d6,runtime,0.4091354446246669,0.4089237053750594,0.4092787144995782,2.382366121047181e-4,1.2579333727503458e-4,3.308676033872388e-4
-0x6a3d9a,runtime wasm,0.5131610040416869,0.508347309499527,0.5151284062919027,4.9713140980393025e-3,2.628696557143492e-3,6.9931116424197075e-3
+0xa6cee3,ocaml,0.40566810758328603,0.4055321466666252,0.40577636774992243,1.6395916523893308e-4,1.1668399997688539e-4,1.98707219527039e-4
+0x1f78b4,ocaml byte,3.101575145333394,3.1011383452500922,3.1019100241250612,5.624777445121374e-4,3.180932196933667e-4,7.733694420592111e-4
+0xb2df8a,haskell,189.0187591371457,183.31498063024992,194.5411141393747,8.088491519409562,3.560620998374816,10.3670331320728
+0x33a02c,haskell strict,1.7119955298750635,1.7118138529998912,1.7122970093753338,3.0753597648840246e-4,3.681374967834383e-5,3.8610357008778693e-4
+0xfb9a99,juvix,2.001439890812852,1.99728865243776,2.00823349237506,7.460769403681165e-3,1.905524374478773e-3,9.265802382643365e-3
+0xe31a1c,juvix wasm,2.035625290291667,2.032957642749807,2.039488126625656,4.537088407410541e-3,1.42789468987204e-3,6.09763261839617e-3
+0xfdbf6f,c,0.17151611205984776,0.17119908248170798,0.17241358463108963,8.060441137369464e-4,7.593682203576983e-5,1.1557479461708855e-3
+0xff7f00,c wasm,0.26355807040649476,0.2611250771663132,0.2652827948798949,2.910038608521969e-3,1.8265132072431437e-3,4.39825359952774e-3
+0xcab2d6,runtime,0.4088095745623832,0.40869838599974173,0.4089797463125251,1.8190437350049788e-4,3.773749995161779e-5,2.2336685974655071e-4
+0x6a3d9a,runtime wasm,0.5133089066040762,0.5102027368748168,0.5164150763333357,4.874665556789439e-3,2.0511349999715023e-3,6.698317075685091e-3
diff --git a/benchmark-results/csv/fibonacci.csv b/benchmark-results/csv/fibonacci.csv
index 69ca158c..109a19fd 100644
--- a/benchmark-results/csv/fibonacci.csv
+++ b/benchmark-results/csv/fibonacci.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.40350719927081496,0.4034394569999904,0.40355513299996915,8.043186731133587e-5,4.641813207858427e-5,1.1069820572174921e-4
-0x1f78b4,ocaml byte,2.1448309581875358,2.144339813625,2.1452735310625712,6.48057294425757e-4,3.288272500299172e-4,8.715655127002564e-4
-0xb2df8a,haskell,176.85546717164587,168.27907271431252,181.0506878559792,8.406942779170098,0.42944026319346307,10.11788742883238
-0x33a02c,haskell strict,1.7118607647083575,1.7117931517916722,1.7119878267500326,1.270251609068265e-4,1.043333342443109e-5,1.5614534259576377e-4
-0xfb9a99,juvix,0.3100911604067096,0.31002102317323077,0.31021576073344476,1.4052944807589355e-4,2.670715732167496e-5,1.8663230889106287e-4
-0xe31a1c,juvix wasm,0.3794969211250532,0.3773602366250657,0.3806777393750167,2.0537205105849495e-3,9.004846659658218e-4,2.7269829379218493e-3
-0xfdbf6f,c,0.19270764650265795,0.19268085235279767,0.1927308219609788,4.210795128722853e-5,3.184813561761495e-5,5.5196484060827884e-5
-0xff7f00,c wasm,0.25244940597317206,0.2509320247998403,0.25418048910634145,2.595602798187462e-3,1.6381824145961707e-3,3.912246484233222e-3
-0xcab2d6,runtime,0.31014799173336544,0.31000046706672946,0.3104078344667869,2.862864104629929e-4,8.613470616836226e-5,3.9837285686807506e-4
-0x6a3d9a,runtime wasm,0.37895800720811695,0.37608432924986346,0.38036060633307517,2.738714923970761e-3,5.052417499200601e-4,3.3973110416087955e-3
+0xa6cee3,ocaml,0.4031518685833693,0.40293305737502294,0.4035641121250251,4.2083046523536723e-4,4.2225750007673923e-5,5.004022755451598e-4
+0x1f78b4,ocaml byte,2.146563461374967,2.1449705839999638,2.147595707124964,1.927366927860773e-3,1.2585554778804507e-3,2.3838694465218107e-3
+0xb2df8a,haskell,195.07198961181254,179.27274879237504,204.439264066875,16.334859312577155,7.444013783736668,22.68820220459227
+0x33a02c,haskell strict,1.711498106812409,1.7105321493125416,1.711974716562338,9.512942981621094e-4,3.515087485084223e-5,1.1301002206171333e-3
+0xfb9a99,juvix,0.3101622914533831,0.30966446040010853,0.3111568538001393,1.0952607835012943e-3,3.619947035132668e-5,1.3623002045934896e-3
+0xe31a1c,juvix wasm,0.37811649337493236,0.3766287156249746,0.3788537883748404,1.4666599940016713e-3,5.4850749620527495e-5,1.7180727445899188e-3
+0xfdbf6f,c,0.192772726391604,0.19256602587499097,0.19317947722765386,4.903584853419098e-4,2.375414087545292e-5,6.634827589939977e-4
+0xff7f00,c wasm,0.2506006699165725,0.24889425396665202,0.2519837304998691,2.489460465201902e-3,2.085414926612097e-3,2.773748264287748e-3
+0xcab2d6,runtime,0.3097320014133372,0.309687880733342,0.3097819539998454,6.831112690482492e-5,5.0160098867654814e-5,9.011993270319972e-5
+0x6a3d9a,runtime wasm,0.37567467793741116,0.37493659118746336,0.3768104626873878,1.315127819473698e-3,4.612739999174664e-4,1.610114078383757e-3
diff --git a/benchmark-results/csv/fold.csv b/benchmark-results/csv/fold.csv
index 03978910..b7fd5ca6 100644
--- a/benchmark-results/csv/fold.csv
+++ b/benchmark-results/csv/fold.csv
@@ -1,9 +1,9 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.41592270897880707,0.4154011172291045,0.41617828616623836,4.939421846612069e-4,1.2030941676735574e-4,6.025233947821821e-4
-0x1f78b4,ocaml byte,3.1036733699789543,3.1034457354376173,3.1038024809161775,2.2391401420695118e-4,9.823364667083215e-5,2.9816893744462987e-4
-0xb2df8a,haskell,1.6922888660828903,1.692230479124646,1.6923202757493527,5.6463969691086574e-5,2.9217388019168057e-5,7.253751754894523e-5
-0x33a02c,haskell strict,1.6962844665420487,1.6921265040004982,1.6995999898753098,4.994441285743538e-3,3.319488518937484e-3,5.787449453203255e-3
-0xfb9a99,juvix,0.31889706812674073,0.31430337242029055,0.3279394382998362,1.0042473927700631e-2,4.328356925985457e-4,1.2549843308694502e-2
-0xe31a1c,juvix wasm,0.4851900617915514,0.48230496233312203,0.48750469399988106,3.4512908078186155e-3,2.5069625447925506e-3,4.155889251059601e-3
-0xcab2d6,runtime,0.42657012814602996,0.424914053416766,0.4297861039375448,3.2102512512827783e-3,9.310821903059114e-5,3.781542312579615e-3
-0x6a3d9a,runtime wasm,1.262630714770277,1.2611301608746999,1.2637040989786406,1.8890032018235756e-3,1.2954792754538101e-3,2.4788746465699923e-3
+0xa6cee3,ocaml,0.4131248119584825,0.4124044090830239,0.41421679712561854,1.2522482150983565e-3,3.4333475036874006e-4,1.6636991762840206e-3
+0x1f78b4,ocaml byte,3.104385040478784,3.1039081833748696,3.1047010843118414,5.167065033878984e-4,3.0416039216860693e-4,7.298719683653622e-4
+0xb2df8a,haskell,1.692319326458346,1.6921541572501155,1.6924276895831554,1.9985651849961205e-4,1.4229240366566285e-4,2.502539171155822e-4
+0x33a02c,haskell strict,1.692125052500046,1.6920773380002174,1.6921710759999087,5.5501714913048936e-5,5.0855291070433916e-5,6.136425051690772e-5
+0xfb9a99,juvix,0.3127636650198838,0.31270216871998857,0.312825161319779,9.60312629767667e-5,7.758377018661264e-5,1.1876454410652985e-4
+0xe31a1c,juvix wasm,0.4815477981253859,0.4776949865010162,0.4839925372500602,4.096468462914669e-3,2.264262904498e-3,5.776424083682564e-3
+0xcab2d6,runtime,0.4244433309166122,0.4243032117499297,0.42459972949984603,2.3082127593993055e-4,1.2211801615065568e-4,3.235913544110266e-4
+0x6a3d9a,runtime wasm,1.2604270253958323,1.2564239877501677,1.2646087194998472,5.571763559502049e-3,2.524831141821077e-3,7.549447900419465e-3
diff --git a/benchmark-results/csv/mapfold.csv b/benchmark-results/csv/mapfold.csv
index 2a7791b9..226ed8b1 100644
--- a/benchmark-results/csv/mapfold.csv
+++ b/benchmark-results/csv/mapfold.csv
@@ -1,9 +1,9 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,1.9791384072913918,1.9731650513332775,1.983479039249005,7.2069082933188585e-3,4.799865072248116e-3,8.911176814794832e-3
-0x1f78b4,ocaml byte,5.989908322583498,5.9775140765004835,5.99794934775025,1.4828935158251375e-2,1.0539677764459285e-2,1.8189531659249386e-2
-0xb2df8a,haskell,2.2665517848956824,2.2634409708748535,2.2696473747496384,4.237712050383674e-3,1.459408545892593e-3,5.724708703405143e-3
-0x33a02c,haskell strict,2.2014404114166077,2.198330465374738,2.202711933249816,3.128729064985076e-3,1.2664336657549865e-3,4.315703077239828e-3
-0xfb9a99,juvix,3.4674965259373116,3.458256454499709,3.476628236749548,1.1889711557717295e-2,6.382356375297604e-3,1.4489172540469525e-2
-0xe31a1c,juvix wasm,1.40689813891629,1.3989053934164986,1.421945710499017,1.5298895175680794e-2,1.3316838333139458e-3,1.8144891441275613e-2
-0xcab2d6,runtime,3.293472634166278,3.288581346623914,3.297147497541573,6.290226229178292e-3,3.869665337955173e-3,8.486733435846638e-3
-0x6a3d9a,runtime wasm,3.183778390583105,3.1781730866665994,3.189383694499611,7.470443145594737e-3,4.510462449069216e-3,1.0200698841054425e-2
+0xa6cee3,ocaml,1.964364113792082,1.9627045867503057,1.965625678750257,2.028899431150222e-3,1.2431339507729636e-3,2.4808140628867423e-3
+0x1f78b4,ocaml byte,5.941511790250122,5.939549981999865,5.942601551500275,2.0275017992932324e-3,8.193186241552989e-4,2.7650083814412274e-3
+0xb2df8a,haskell,2.2435372052707785,2.2420782802498707,2.24458515550009,1.7093713499347274e-3,1.4463982134772233e-3,1.938861907991125e-3
+0x33a02c,haskell strict,2.1953934484794977,2.192889960666738,2.1995512906257773,4.7149614552062825e-3,1.6860940833491878e-3,5.774537991290433e-3
+0xfb9a99,juvix,3.461402611708271,3.4545983469997736,3.4637383698332846,4.583262269099157e-3,2.0873377314297066e-4,5.500549819059398e-3
+0xe31a1c,juvix wasm,1.3917368246662818,1.3903439317499533,1.392412791875131,1.3684965688288582e-3,6.631758378716768e-5,1.6085287174098814e-3
+0xcab2d6,runtime,3.3000349847703396,3.295603972082366,3.302140461145503,4.3544913722535486e-3,4.738787174078914e-4,5.37059606484458e-3
+0x6a3d9a,runtime wasm,3.1725208333125465,3.1658763518748856,3.1767098459999943,8.141135185907004e-3,4.910937500426371e-3,9.674110410946882e-3
diff --git a/benchmark-results/csv/mapfun.csv b/benchmark-results/csv/mapfun.csv
index 6e6384e4..8a968c48 100644
--- a/benchmark-results/csv/mapfun.csv
+++ b/benchmark-results/csv/mapfun.csv
@@ -1,9 +1,9 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.26762158993669194,0.2642254062667538,0.2687899117866376,2.5623210348221536e-3,1.3885719872819237e-4,3.2115153349750215e-3
-0x1f78b4,ocaml byte,0.970954668666991,0.9689220072500575,0.9719474052503756,1.9890295695477846e-3,1.0897659573967785e-4,2.4016035303456593e-3
-0xb2df8a,haskell,2.6115939826252847,2.6103454051255994,2.612215952500113,1.2433998694899313e-3,1.0710424910226292e-5,1.4417530025034714e-3
-0x33a02c,haskell strict,1.2552143148957764,1.2526669402290813,1.2603028873123776,4.8173218893948246e-3,1.2541441249140917e-3,5.882909798173077e-3
-0xfb9a99,juvix,1.8404007909377167,1.836200100500264,1.8425286666877128,4.086885466100385e-3,2.3888190463144153e-3,4.914118548249352e-3
-0xe31a1c,juvix wasm,1.8436505023330483,1.8401317399166146,1.846152385624464,4.251614427922541e-3,2.855047847974119e-3,5.29115973927607e-3
-0xcab2d6,runtime,3.6311428175833576,3.622702809124803,3.6466373015001636,1.5851793745570584e-2,5.557247485743176e-4,1.8706770899660215e-2
-0x6a3d9a,runtime wasm,2.5604240006666337,2.558187236833457,2.5643361317496556,3.9430499402896e-3,8.152211667795672e-4,4.741866650862082e-3
+0xa6cee3,ocaml,0.2669749019031466,0.26385975004013745,0.26848602416976064,3.3558653195355486e-3,1.601406592150645e-4,4.184929052150116e-3
+0x1f78b4,ocaml byte,0.971448858624702,0.9695971327498683,0.9722937529998793,1.773189335830883e-3,6.420444917558125e-4,2.3571280251369364e-3
+0xb2df8a,haskell,2.5913713769997835,2.589693134749723,2.592209191750044,1.6715116797593073e-3,6.033886601613863e-6,1.9378719265590548e-3
+0x33a02c,haskell strict,1.2593669184791831,1.2579185848333814,1.260621297229174,2.0847382364972346e-3,1.0612638142040128e-3,2.8968636358917203e-3
+0xfb9a99,juvix,1.8406653514372238,1.8390623378743385,1.8417886641874475,1.9068765385271956e-3,1.4648837779451724e-3,2.289347970522223e-3
+0xe31a1c,juvix wasm,1.8413806280620975,1.8403486597499068,1.843233717186422,1.8900863201312458e-3,2.026468750955246e-4,2.257330441505132e-3
+0xcab2d6,runtime,3.6245580338958994,3.614851152541557,3.630938849083426,1.1443055941520189e-2,9.735869454378663e-3,1.3416998834715185e-2
+0x6a3d9a,runtime wasm,2.557122337124914,2.553212266874501,2.5588971002501544,3.7652792497405913e-3,7.21087999863812e-4,4.931280574083252e-3
diff --git a/benchmark-results/csv/maybe.csv b/benchmark-results/csv/maybe.csv
index 4f583030..252eff90 100644
--- a/benchmark-results/csv/maybe.csv
+++ b/benchmark-results/csv/maybe.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,0.42392944818747463,0.42388278099982324,0.42396254031257286,5.879494756655874e-5,2.8283625094133177e-5,7.51141362879415e-5
-0x1f78b4,ocaml byte,4.293842141249911,4.242751781499919,4.3286602369998946,5.981995395606527e-2,5.394595951535354e-2,6.642797226102601e-2
-0xb2df8a,haskell,14.361075224541802,14.324175892666668,14.422703718625485,6.575383446620697e-2,1.0585300166591871e-2,8.155525743429703e-2
-0x33a02c,haskell strict,0.7613884738126065,0.7601040138124139,0.7620371988754187,1.269373990682163e-3,4.131027740007266e-5,1.5038217924491218e-3
-0xfb9a99,juvix,2.9231789465209395,2.917028952333643,2.927661653895844,7.529217303945902e-3,4.533834120138109e-3,1.0352369238398308e-2
-0xe31a1c,juvix wasm,2.735317708145658,2.7268416501871116,2.7402025575207745,8.295864326700672e-3,4.591874329401788e-3,1.1281076406697316e-2
-0xfdbf6f,c,0.45819792243764823,0.45769951637498707,0.45847093100030634,5.797520562273321e-4,5.205332292057299e-4,6.304862685669207e-4
-0xff7f00,c wasm,0.6133339797500147,0.6104472074999876,0.6153104325000148,3.5678381183260567e-3,2.212210084883764e-3,4.564422109012616e-3
-0xcab2d6,runtime,0.8996571559374615,0.8994752916875086,0.8997913824374564,2.290367839667668e-4,1.4152936618263358e-4,3.09982823617605e-4
-0x6a3d9a,runtime wasm,1.5236222014792513,1.5099853741252218,1.5325095480000073,1.616967358272326e-2,1.3368441352173587e-2,1.9376634826714072e-2
+0xa6cee3,ocaml,0.42185481006259806,0.4207100500002525,0.42248630112510455,1.3349756040329105e-3,1.1899307486939183e-3,1.4583661397158452e-3
+0x1f78b4,ocaml byte,4.332636810666846,4.26146070475005,4.385203287250192,8.137198371805175e-2,4.717658988903201e-2,0.11471757504576517
+0xb2df8a,haskell,14.026229943562631,13.999335427437984,14.038031116187446,2.6078926852832803e-2,7.966705122028194e-3,3.4856583730399876e-2
+0x33a02c,haskell strict,0.75345201318756,0.7520370630002162,0.7546311015624573,1.6848648211991758e-3,1.2590847451170622e-3,2.0086027410943673e-3
+0xfb9a99,juvix,2.9033732411040396,2.8988289414373867,2.9116471969998656,8.332928284866979e-3,1.110660259538156e-3,1.0494610543281324e-2
+0xe31a1c,juvix wasm,2.7270724509792594,2.7247605620625563,2.728515404562586,2.43242941068404e-3,9.757960540940384e-4,3.3323585590464277e-3
+0xfdbf6f,c,0.458041565791613,0.4576357097916836,0.4587938889998213,7.744223487120578e-4,4.674424997119786e-5,9.110962413617939e-4
+0xff7f00,c wasm,0.6134963860833599,0.6110546173333281,0.6148748478334104,2.35925560380412e-3,9.546375115544116e-4,3.1834210498370794e-3
+0xcab2d6,runtime,0.9013245133957449,0.8999382665416154,0.9024962983329866,1.6960319706100667e-3,1.0343387156478696e-3,2.058246011377535e-3
+0x6a3d9a,runtime wasm,1.519577685833345,1.5125648442499369,1.5242063197499647,8.749867500239487e-3,4.962183112238525e-3,1.0523171579990432e-2
diff --git a/benchmark-results/csv/mergesort.csv b/benchmark-results/csv/mergesort.csv
index 861be35a..7fe76e3c 100644
--- a/benchmark-results/csv/mergesort.csv
+++ b/benchmark-results/csv/mergesort.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,3.4298933565416854,3.420377364500027,3.4374975061250126,1.1480535283799064e-2,8.306869333315037e-3,1.4007157523288696e-2
-0x1f78b4,ocaml byte,5.241191222229155,5.229592770874987,5.2501129218749725,1.4528522261509556e-2,7.6359839977955014e-3,1.834174760413619e-2
-0xb2df8a,haskell,7.75816775245831,7.665625745916666,7.922031699374955,0.1709876864146769,1.7320876416656805e-2,0.20121242290981345
-0x33a02c,haskell strict,7.824127800999969,7.596446446999948,7.98047800199996,0.2848959918226369,0.1472599931164299,0.3610753225407857
-0xfb9a99,juvix,3.475298764687461,3.4697786048749792,3.4808189244999426,8.569818207552073e-3,3.1832065139807356e-3,1.1539230785077126e-2
-0xe31a1c,juvix wasm,1.8759058633958243,1.8204718236458557,1.9032676114166711,5.404844086017899e-2,4.489664250058922e-3,6.660182440716816e-2
-0xfdbf6f,c,0.13441552747752353,0.13402480866562883,0.13479114272543719,7.270020471306744e-4,5.453662419386689e-4,1.0236543678776825e-3
-0xff7f00,c wasm,0.23427486096942718,0.2327214001249729,0.23656130601386535,3.0046845352975876e-3,1.7150233246856577e-3,4.441068462758412e-3
-0xcab2d6,runtime,1.4108787683958421,1.4078726931874712,1.4128187355625244,3.2101163947467876e-3,1.6630379115246561e-3,4.480162263612168e-3
-0x6a3d9a,runtime wasm,0.7712469226875195,0.7679007656249912,0.7744962453125197,4.2595612807377e-3,2.1825232499850244e-3,5.263951097860487e-3
+0xa6cee3,ocaml,3.36841170497915,3.3675452392291567,3.368843347333306,8.373185021123483e-4,1.6794859521518575e-4,1.0844827656122632e-3
+0x1f78b4,ocaml byte,5.178483263520834,5.170515393937528,5.1840979647708165,9.21651645720723e-3,5.119895896766254e-3,1.2966597112385953e-2
+0xb2df8a,haskell,6.602422396895828,6.575490968187523,6.621122410020813,3.0928818900291803e-2,1.926405171222681e-2,4.318583044623756e-2
+0x33a02c,haskell strict,6.661119968500027,6.641165763500018,6.678809661250028,2.4380630254818524e-2,1.515461970407189e-2,3.02855088146218e-2
+0xfb9a99,juvix,3.393187266437503,3.3870866440000214,3.399649428875013,8.214240985071031e-3,4.3239719182401925e-3,1.027159129648683e-2
+0xe31a1c,juvix wasm,1.7968453092291792,1.7918970375000072,1.8046696739375392,8.86970588168507e-3,2.1670654715960115e-3,1.142754405944336e-2
+0xfdbf6f,c,0.13174363919941526,0.13156677974109174,0.1319399754940542,3.4321495093748636e-4,2.583755240291559e-4,4.5267188725129135e-4
+0xff7f00,c wasm,0.23159206205275748,0.2300588886944297,0.2329706473388784,2.2850368082131477e-3,1.681884504726153e-3,3.1083452662770215e-3
+0xcab2d6,runtime,1.41693726541664,1.415747325624963,1.4176098776666397,1.1976918144217653e-3,7.393098389617444e-4,1.5533314543905333e-3
+0x6a3d9a,runtime wasm,0.7671100953541649,0.765053397166677,0.7685270589791552,2.3999265624317914e-3,1.2712317900170664e-3,3.272337321280301e-3
diff --git a/benchmark-results/csv/prime.csv b/benchmark-results/csv/prime.csv
index 86b8d082..720b4a26 100644
--- a/benchmark-results/csv/prime.csv
+++ b/benchmark-results/csv/prime.csv
@@ -1,11 +1,11 @@
Color,Name,Mean,MeanLB,MeanUB,Stddev,StddevLB,StddevUB
-0xa6cee3,ocaml,16.246694900479003,16.239986802979235,16.250688742291306,6.869691798085897e-3,4.433235028604132e-3,9.223382581735424e-3
-0x1f78b4,ocaml byte,29.71061298631268,29.682127897063083,29.73957859762489,5.452351250344955e-2,3.810093839525422e-3,6.578349578457708e-2
-0xb2df8a,haskell,22.542160006104307,22.535844149875402,22.548475862333213,9.560606642120153e-3,4.715032499461813e-3,1.3192213280467695e-2
-0x33a02c,haskell strict,22.556194368520853,22.546809526999823,22.563715911187842,1.1967355348375092e-2,5.810623042801432e-3,1.586274007107425e-2
-0xfb9a99,juvix,13.092037271792,13.091277679417393,13.092496714666899,7.686030076779086e-4,4.253464705191363e-4,1.0610378700001751e-3
-0xe31a1c,juvix wasm,5.81029903252075,5.8055729312917865,5.813552727124488,5.97785365681543e-3,2.9996715828324305e-3,7.450740875380308e-3
-0xfdbf6f,c,0.3636170474375149,0.3631689356876677,0.3644717373123285,8.661616918455974e-4,6.697112507936254e-5,1.025660860214938e-3
-0xff7f00,c wasm,0.5898728575414225,0.5880458433330205,0.5916998717498245,3.1024881407856536e-3,1.0213050953418227e-3,4.189764123367105e-3
-0xcab2d6,runtime,13.042234365645527,13.039541811499475,13.04373961347892,2.645180532107531e-3,1.262959000086994e-3,3.4762209672257053e-3
-0x6a3d9a,runtime wasm,5.086886118708094,5.077820425999562,5.093734318249972,1.0808263770659288e-2,8.880316000467589e-3,1.2639550894159588e-2
+0xa6cee3,ocaml,16.243506690208317,16.242902594874863,16.243800127708408,5.888363514097757e-4,3.9768656201022694e-5,6.981157990438002e-4
+0x1f78b4,ocaml byte,29.687541125729126,29.682322145354078,29.690044276416756,4.953536573018739e-3,2.159720856097576e-3,6.271940004415102e-3
+0xb2df8a,haskell,22.53723357937531,22.529723530874776,22.540990550000515,7.126360234280764e-3,1.6952840579728158e-3,8.676352007196885e-3
+0x33a02c,haskell strict,22.53827641818744,22.528694584312348,22.54242420068738,9.301506204414958e-3,3.182860845962367e-3,1.2549404096947986e-2
+0xfb9a99,juvix,13.085721493583302,13.084347080083413,13.086724588666431,1.5900195483190796e-3,8.58346356604511e-4,2.2380434699917273e-3
+0xe31a1c,juvix wasm,5.8086541436246835,5.807557716249903,5.809467482624541,1.3726724043907255e-3,9.079787344520579e-4,1.845474442895333e-3
+0xfdbf6f,c,0.36340451860432194,0.36320893470845783,0.36371901193786016,3.407052771643441e-4,5.5554958256237574e-5,4.354238610760078e-4
+0xff7f00,c wasm,0.5894044484789447,0.5849072791656909,0.5928319376043873,5.865031533522466e-3,3.4796385140880414e-3,7.915447076875344e-3
+0xcab2d6,runtime,13.038958584333196,13.03857350033301,13.039197410000043,4.015288770804024e-4,2.022640034160851e-4,5.632551285758711e-4
+0x6a3d9a,runtime wasm,5.164035552917009,5.148109673667174,5.175548183791913,1.9314764042899217e-2,1.1800559940446391e-2,2.6587282138826628e-2
diff --git a/benchmark-results/plot/ackermann.svg b/benchmark-results/plot/ackermann.svg
index 448fd0f2..898f31f7 100644
--- a/benchmark-results/plot/ackermann.svg
+++ b/benchmark-results/plot/ackermann.svg
@@ -228,65 +228,65 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
Mean
- 0.6974
+ 0.6968
-
- 1.8595
+
+ 1.8581
-
- 1.3621
+
+ 1.3532
-
- 0.5240
+
+ 0.5228
-
- 2.2589
+
+ 2.2718
-
- 1.0039
+
+ 1.0059
- 0.0007
+ 0.0006
-
+
0.4652
-
- 2.8009
+
+ 2.7382
-
- 3.1178
+
+ 3.1203
@@ -318,11 +318,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.2
@@ -331,11 +331,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.4
@@ -344,11 +344,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.6
@@ -357,11 +357,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.8
@@ -370,11 +370,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
1
@@ -383,11 +383,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
1.2
@@ -395,13 +395,26 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
+
+
+
+
+
+
+ 1.4
+
+
+
+
+
+
- 1.4
+ 1.6
@@ -468,68 +481,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.09%
+
+ 0.01%
-
+
0.12%
-
- 0.00%
+
+ 0.12%
-
- 0.48%
+
+ 0.32%
-
- 1.06%
+
+ 0.38%
-
- 0.60%
+
+ 0.33%
-
- 1.21%
+
+ 1.08%
-
- 1.11%
+
+ 0.95%
-
- 1.17%
+
+ 1.46%
-
- 0.26%
+
+ 0.20%
@@ -557,7 +570,7 @@ gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 10.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 1.4;
+gnuplot_svg.plot_axis_ymax = 1.6;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/combinations.svg b/benchmark-results/plot/combinations.svg
index cbe90ce5..2cad27cf 100644
--- a/benchmark-results/plot/combinations.svg
+++ b/benchmark-results/plot/combinations.svg
@@ -215,65 +215,65 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
Mean
- 10.7749
+ 10.7871
-
- 56.9396
+
+ 57.5614
-
- 10.1075
+
+ 10.1018
-
- 10.1056
+
+ 10.1018
-
- 13.0076
+
+ 12.9961
- 23.5130
+ 23.5216
-
- 7.6074
+
+ 7.6024
- 9.7935
+ 9.7895
-
- 11.4209
+
+ 11.4429
-
- 25.0121
+
+ 24.9990
@@ -305,12 +305,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.2
+
+ 0.5
@@ -318,25 +318,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.4
-
-
-
-
-
-
-
-
-
-
-
-
- 0.6
+
+ 1
@@ -344,12 +331,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.8
+
+ 1.5
@@ -357,12 +344,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1
+
+ 2
@@ -375,7 +362,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 1.2
+ 2.5
@@ -442,67 +429,67 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.34%
+
+ 0.04%
-
- 1.00%
+
+ 2.05%
-
- 0.04%
+
+ 0.00%
-
- 0.05%
+
+ 0.00%
-
- 0.05%
+
+ 0.02%
-
- 0.05%
+
+ 0.15%
-
+
0.01%
-
- 0.05%
+
+ 0.03%
-
- 0.04%
+
+ 0.16%
-
+
0.02%
@@ -531,7 +518,7 @@ gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 10.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 1.2;
+gnuplot_svg.plot_axis_ymax = 2.5;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/cps.svg b/benchmark-results/plot/cps.svg
index 5c6e2792..d0502910 100644
--- a/benchmark-results/plot/cps.svg
+++ b/benchmark-results/plot/cps.svg
@@ -270,9 +270,9 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
@@ -298,34 +298,34 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
Mean
- 0.4056
+ 0.4057
- 3.1025
+ 3.1016
-
- 180.1459
+
+ 189.0188
- 1.7119
+ 1.7120
- 2.0078
+ 2.0014
- 2.0390
+ 2.0356
- 0.1724
+ 0.1715
- 0.2692
+ 0.2636
- 0.4091
+ 0.4088
- 0.5132
+ 0.5133
@@ -533,68 +533,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.03%
+
+ 0.04%
-
- 0.08%
+
+ 0.02%
-
- 3.66%
+
+ 4.28%
-
- 0.01%
+
+ 0.02%
-
- 0.31%
+
+ 0.37%
-
- 0.12%
+
+ 0.22%
-
- 1.20%
+
+ 0.47%
-
- 4.17%
+
+ 1.10%
-
- 0.06%
+
+ 0.04%
-
- 0.97%
+
+ 0.95%
diff --git a/benchmark-results/plot/fibonacci.svg b/benchmark-results/plot/fibonacci.svg
index 998d950c..8802045b 100644
--- a/benchmark-results/plot/fibonacci.svg
+++ b/benchmark-results/plot/fibonacci.svg
@@ -70,11 +70,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
20
@@ -83,11 +83,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
40
@@ -96,11 +96,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
60
@@ -109,11 +109,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
80
@@ -122,11 +122,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
100
@@ -135,11 +135,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
120
@@ -148,11 +148,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
140
@@ -161,11 +161,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
160
@@ -173,13 +173,26 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
+
+
+
+
+
+
+ 180
+
+
+
+
+
+
- 180
+ 200
@@ -251,68 +264,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Mean
-
- 0.4035
+
+ 0.4032
-
- 2.1448
+
+ 2.1466
-
- 176.8555
+
+ 195.0720
-
- 1.7119
+
+ 1.7115
- 0.3101
+ 0.3102
-
- 0.3795
+
+ 0.3781
- 0.1927
+ 0.1928
-
- 0.2524
+
+ 0.2506
- 0.3101
+ 0.3097
-
- 0.3790
+
+ 0.3757
@@ -331,11 +344,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0
@@ -344,24 +357,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.5
-
-
-
-
-
-
-
-
-
-
-
-
+
1
@@ -370,12 +370,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.5
+
+ 2
@@ -383,12 +383,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2
+
+ 3
@@ -396,12 +396,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2.5
+
+ 4
@@ -409,12 +409,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3
+
+ 5
@@ -422,12 +422,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3.5
+
+ 6
@@ -435,12 +435,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 4
+
+ 7
@@ -448,12 +448,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 4.5
+
+ 8
@@ -461,70 +461,70 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 5
+
+ 9
-
+
ocaml
-
+
ocaml byte
-
+
haskell
-
+
haskell strict
-
+
juvix
-
+
juvix wasm
-
+
c
-
+
c wasm
-
+
runtime
-
+
runtime wasm
-
+
-
+
Standard deviation
@@ -533,68 +533,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.02%
+
+ 0.10%
-
- 0.03%
+
+ 0.09%
-
- 4.75%
+
+ 8.37%
-
- 0.01%
+
+ 0.06%
-
- 0.05%
+
+ 0.35%
-
- 0.54%
+
+ 0.39%
-
- 0.02%
+
+ 0.25%
-
- 1.03%
+
+ 0.99%
-
- 0.09%
+
+ 0.02%
-
- 0.72%
+
+ 0.35%
@@ -605,7 +605,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
@@ -613,16 +613,16 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
// plot boundaries and axis scaling information for mousing
gnuplot_svg.plot_term_xmax = 800;
gnuplot_svg.plot_term_ymax = 1100;
-gnuplot_svg.plot_xmin = 53.9;
+gnuplot_svg.plot_xmin = 37.3;
gnuplot_svg.plot_xmax = 775.0;
gnuplot_svg.plot_ybot = 1042.3;
gnuplot_svg.plot_ytop = 622.0;
-gnuplot_svg.plot_width = 721.1;
+gnuplot_svg.plot_width = 737.7;
gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 10.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 5;
+gnuplot_svg.plot_axis_ymax = 9;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/fold.svg b/benchmark-results/plot/fold.svg
index 75f97613..e716d7da 100644
--- a/benchmark-results/plot/fold.svg
+++ b/benchmark-results/plot/fold.svg
@@ -215,56 +215,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
Mean
-
- 0.4159
+
+ 0.4131
-
- 3.1037
+
+ 3.1044
1.6923
-
- 1.6963
+
+ 1.6921
-
- 0.3189
+
+ 0.3128
-
- 0.4852
+
+ 0.4815
-
- 0.4266
+
+ 0.4244
-
- 1.2626
+
+ 1.2604
@@ -296,12 +296,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.5
+
+ 0.1
@@ -309,12 +309,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1
+
+ 0.2
@@ -322,12 +322,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.5
+
+ 0.3
@@ -335,12 +335,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2
+
+ 0.4
@@ -348,12 +348,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2.5
+
+ 0.5
@@ -361,12 +361,38 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3
+
+ 0.6
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.7
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.8
@@ -379,7 +405,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 3.5
+ 0.9
@@ -436,56 +462,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.12%
+
+ 0.30%
+
+
+ 0.02%
-
+
0.01%
-
+
0.00%
-
- 0.29%
-
-
- 3.15%
+
+ 0.03%
-
- 0.71%
+
+ 0.85%
-
- 0.75%
+
+ 0.05%
-
- 0.15%
+
+ 0.44%
@@ -513,7 +539,7 @@ gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 8.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 3.5;
+gnuplot_svg.plot_axis_ymax = 0.9;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/mapfold.svg b/benchmark-results/plot/mapfold.svg
index a0e4290d..01bdc495 100644
--- a/benchmark-results/plot/mapfold.svg
+++ b/benchmark-results/plot/mapfold.svg
@@ -202,56 +202,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
Mean
-
- 1.9791
+
+ 1.9644
-
- 5.9899
+
+ 5.9415
-
- 2.2666
+
+ 2.2435
-
- 2.2014
+
+ 2.1954
-
- 3.4675
+
+ 3.4614
-
- 1.4069
+
+ 1.3917
-
- 3.2935
+
+ 3.3000
-
- 3.1838
+
+ 3.1725
@@ -270,11 +270,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0
@@ -283,12 +283,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.2
+
+ 0.05
@@ -296,12 +296,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.4
+
+ 0.1
@@ -309,12 +309,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.6
+
+ 0.15
@@ -322,12 +322,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.8
+
+ 0.2
@@ -335,12 +335,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1
+
+ 0.25
@@ -348,60 +348,60 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.2
+
+ 0.3
-
+
ocaml
-
+
ocaml byte
-
+
haskell
-
+
haskell strict
-
+
juvix
-
+
juvix wasm
-
+
runtime
-
+
runtime wasm
-
+
-
+
Standard deviation
@@ -410,56 +410,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.36%
+
+ 0.10%
-
- 0.25%
+
+ 0.03%
-
- 0.19%
+
+ 0.08%
-
- 0.14%
+
+ 0.21%
-
- 0.34%
+
+ 0.13%
-
- 1.09%
+
+ 0.10%
-
- 0.19%
+
+ 0.13%
-
- 0.23%
+
+ 0.26%
@@ -470,7 +470,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
@@ -478,16 +478,16 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
// plot boundaries and axis scaling information for mousing
gnuplot_svg.plot_term_xmax = 800;
gnuplot_svg.plot_term_ymax = 1100;
-gnuplot_svg.plot_xmin = 53.9;
+gnuplot_svg.plot_xmin = 62.2;
gnuplot_svg.plot_xmax = 775.0;
gnuplot_svg.plot_ybot = 1042.3;
gnuplot_svg.plot_ytop = 622.0;
-gnuplot_svg.plot_width = 721.1;
+gnuplot_svg.plot_width = 712.8;
gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 8.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 1.2;
+gnuplot_svg.plot_axis_ymax = 0.3;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/mapfun.svg b/benchmark-results/plot/mapfun.svg
index 913a11cf..2ae52614 100644
--- a/benchmark-results/plot/mapfun.svg
+++ b/benchmark-results/plot/mapfun.svg
@@ -228,56 +228,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
Mean
-
- 0.2676
+
+ 0.2670
-
- 0.9710
+
+ 0.9714
-
- 2.6116
+
+ 2.5914
-
- 1.2552
+
+ 1.2594
-
- 1.8404
+
+ 1.8407
-
- 1.8437
+
+ 1.8414
-
- 3.6311
+
+ 3.6246
-
- 2.5604
+
+ 2.5571
@@ -309,24 +309,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.1
-
-
-
-
-
-
-
-
-
-
-
-
+
0.2
@@ -335,24 +322,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.3
-
-
-
-
-
-
-
-
-
-
-
-
+
0.4
@@ -361,24 +335,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.5
-
-
-
-
-
-
-
-
-
-
-
-
+
0.6
@@ -387,12 +348,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.7
+
+ 0.8
@@ -400,12 +361,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.8
+
+ 1
@@ -413,12 +374,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.9
+
+ 1.2
@@ -431,7 +392,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 1
+ 1.4
@@ -488,55 +449,55 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.96%
+
+ 1.26%
-
- 0.20%
+
+ 0.18%
-
- 0.05%
+
+ 0.06%
-
- 0.38%
+
+ 0.17%
-
- 0.22%
+
+ 0.10%
-
- 0.23%
+
+ 0.10%
-
- 0.44%
+
+ 0.32%
-
+
0.15%
@@ -565,7 +526,7 @@ gnuplot_svg.plot_height = 420.3;
gnuplot_svg.plot_axis_xmin = -1;
gnuplot_svg.plot_axis_xmax = 8.5;
gnuplot_svg.plot_axis_ymin = 0;
-gnuplot_svg.plot_axis_ymax = 1;
+gnuplot_svg.plot_axis_ymax = 1.4;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/maybe.svg b/benchmark-results/plot/maybe.svg
index e6ce48a4..90de4858 100644
--- a/benchmark-results/plot/maybe.svg
+++ b/benchmark-results/plot/maybe.svg
@@ -241,65 +241,65 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
Mean
- 0.4239
+ 0.4219
-
- 4.2938
+
+ 4.3326
-
- 14.3611
+
+ 14.0262
-
- 0.7614
+
+ 0.7535
-
- 2.9232
+
+ 2.9034
-
- 2.7353
+
+ 2.7271
- 0.4582
+ 0.4580
- 0.6133
+ 0.6135
-
- 0.8997
+
+ 0.9013
-
- 1.5236
+
+ 1.5196
@@ -331,11 +331,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.2
@@ -344,11 +344,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.4
@@ -357,11 +357,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.6
@@ -370,11 +370,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.8
@@ -383,11 +383,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
1
@@ -396,11 +396,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
1.2
@@ -408,13 +408,52 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
+
+
+
+
+
+
+ 1.4
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.6
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
- 1.4
+ 2
@@ -481,68 +520,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.01%
+
+ 0.32%
-
- 1.39%
+
+