diff --git a/benchmark-results/csv/ackermann.csv b/benchmark-results/csv/ackermann.csv
index 8a737278..82722e00 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.697040335479206,0.6969101217082805,0.6971340443749341,1.6280591511435376e-4,8.4304398087699e-5,2.056373475704107e-4
-0x1f78b4,ocaml byte,1.8564425350624372,1.8532574163124877,1.8586035925623985,3.6768127973059598e-3,1.8571505250161249e-3,4.990748517347703e-3
-0xb2df8a,haskell,1.3677249993539629,1.363873926166472,1.370279989603868,4.247739180868044e-3,2.1314238093576012e-3,5.900497234238388e-3
-0x33a02c,haskell strict,0.5320667096873611,0.5320455233749044,0.5320878959998179,3.206223001487535e-5,1.3367362665665012e-5,4.413900519084287e-5
-0xfb9a99,juvix,2.2325723042291465,2.2144156549376817,2.2611486578748554,3.2330512785106506e-2,1.0004924541628268e-2,3.9578600868722814e-2
-0xe31a1c,juvix wasm,1.073276172291609,1.0703763297499336,1.0766941298749089,4.158616537704337e-3,1.7378861769613732e-3,5.075724161388011e-3
-0xfdbf6f,c,6.555802545426093e-4,6.539883621346843e-4,6.575499714978823e-4,7.232692319653658e-6,6.068147113180943e-6,8.948890955129382e-6
-0xff7f00,c wasm,0.4630410569375272,0.46209859131249686,0.46474713131260614,1.7061846890401788e-3,2.9930285398403127e-4,2.1765311292528703e-3
-0xcab2d6,runtime,2.755533717583603,2.7167423380838045,2.7727865107501657,3.8163922376660206e-2,9.870910500012542e-3,5.049139962722013e-2
-0x6a3d9a,runtime wasm,2.9509043594169193,2.9482790774168657,2.9545032591669647,3.932291362195486e-3,1.1011095000412752e-3,4.817110039196094e-3
+0xa6cee3,ocaml,0.6971293586876565,0.6970938914376081,0.6971781037501993,6.022167952631133e-5,2.209561057697848e-5,8.190810545120448e-5
+0x1f78b4,ocaml byte,1.8577895781666598,1.85503114162492,1.8601702075000617,3.4103454882132896e-3,2.1184561490212857e-3,4.0472253870404064e-3
+0xb2df8a,haskell,1.3623423167290791,1.362323652499981,1.3623558041873594,2.3226763932240096e-5,1.3585371814969033e-5,3.1147950675217034e-5
+0x33a02c,haskell strict,0.5260350726249499,0.5233064132501113,0.5296029591246452,4.302671194028871e-3,1.4583252920255451e-3,5.8193001355196445e-3
+0xfb9a99,juvix,2.2259131806457426,2.2148591515832927,2.243026654937296,1.9704657313393877e-2,4.495585916705069e-3,2.5528186619341583e-2
+0xe31a1c,juvix wasm,1.0724303239165351,1.0711216443334024,1.073315517916626,1.583521922567135e-3,1.0887362235685546e-3,1.983461638725415e-3
+0xfdbf6f,c,6.49433021066877e-4,6.474545700667813e-4,6.517719167913417e-4,8.683798356690586e-6,7.1897813967421135e-6,1.089842613521201e-5
+0xff7f00,c wasm,0.46334097081241526,0.46053990524994026,0.46614203637489027,3.6013091718271302e-3,2.400647874845916e-3,4.787828228643634e-3
+0xcab2d6,runtime,2.7661142599790955,2.6925274089373374,2.802671069895818,7.077343325283536e-2,1.0928806620337655e-3,8.497429055735954e-2
+0x6a3d9a,runtime wasm,2.9517789379790997,2.946910935437529,2.9595722607914468,8.506497084571255e-3,2.4247370416787817e-3,1.067997452432723e-2
diff --git a/benchmark-results/csv/combinations.csv b/benchmark-results/csv/combinations.csv
index 1e8f116e..d47fb430 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.787875609812525,10.786786540125263,10.788449113562345,1.0467622471962217e-3,3.3464937966418986e-4,1.3921941487069099e-3
-0x1f78b4,ocaml byte,56.519323197354005,56.44528223999987,56.57133243599981,8.55597005767451e-2,5.2973449185249176e-2,0.12011019173000043
-0xb2df8a,haskell,10.883054348229203,10.096769142250196,11.40809929068746,0.9194316119263477,0.8025443304502999,1.0133035708769025
-0x33a02c,haskell strict,10.106399240979044,10.103491711208335,10.109306770749754,4.154261312846896e-3,2.3385485823978454e-3,5.753780550810899e-3
-0xfb9a99,juvix,12.399144880458323,12.393018078749947,12.40427878200012,7.596247930137437e-3,4.010689250094401e-3,9.518097426053964e-3
-0xe31a1c,juvix wasm,29.702765329770823,29.604301946583444,29.752598664166577,9.788992009543529e-2,3.192443031281522e-3,0.11546652853707605
-0xfdbf6f,c,7.604743131312603,7.60423986468777,7.604981253874939,4.8340298580695946e-4,1.1978603565519427e-4,6.410152604700823e-4
-0xff7f00,c wasm,9.790579046833463,9.78126118975024,9.797098759583454,1.1646623884533825e-2,6.971891187458417e-3,1.505663164498631e-2
-0xcab2d6,runtime,11.424859962395677,11.419919621958078,11.428500744208312,6.08208999465649e-3,3.652849783193791e-3,8.408025438341907e-3
-0x6a3d9a,runtime wasm,26.794507829875027,26.782432510000035,26.816631303875056,2.2928274715311493e-2,3.1311535000586588e-3,2.762025818814699e-2
+0xa6cee3,ocaml,10.787590605500062,10.786308879000066,10.789740129500046,2.364271795073817e-3,7.109690001625424e-4,2.8927096047556607e-3
+0x1f78b4,ocaml byte,56.52563326552083,56.46785865445846,56.623733330708056,0.10296037509201146,2.8632917478017328e-2,0.13342474899674261
+0xb2df8a,haskell,10.094119676895843,10.089300206250073,10.097258895458253,5.939215602325178e-3,3.654521179225492e-3,7.249714728209821e-3
+0x33a02c,haskell strict,10.102772945270866,10.098154983812549,10.10486227216673,4.446065032178721e-3,2.107309635817163e-3,5.839631381255936e-3
+0xfb9a99,juvix,12.447746662833367,12.42394048645832,12.488930516958476,4.383967298239592e-2,4.826221107658665e-3,5.4855569912867434e-2
+0xe31a1c,juvix wasm,29.741784316208186,29.72390656974966,29.766426203749916,2.9445957276737877e-2,9.80807575012932e-3,3.5998614407643625e-2
+0xfdbf6f,c,7.604203986604072,7.6031957603750016,7.604707954895693,9.726855828935947e-4,1.2952483333128484e-4,1.1641994655986322e-3
+0xff7f00,c wasm,9.795042724104158,9.792417410166687,9.796953861208255,2.9957805519672705e-3,1.707792124294845e-3,4.224810102516103e-3
+0xcab2d6,runtime,11.434246101499943,11.432366454499896,11.437718733749989,3.60126600154461e-3,2.213965091737817e-5,4.329817282133811e-3
+0x6a3d9a,runtime wasm,26.782303092708275,26.775847849166666,26.787545227875057,7.855906143379185e-3,5.367018999777429e-3,9.593045670018546e-3
diff --git a/benchmark-results/csv/cps.csv b/benchmark-results/csv/cps.csv
index 798b9114..64a76e2c 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.4055867367077326,0.4054579202493187,0.405676228874313,1.5823472111568156e-4,7.86485836670181e-5,2.0667330586219234e-4
-0x1f78b4,ocaml byte,3.1014928676877767,3.1013358031251146,3.1016284552503444,1.9094865266722674e-4,1.1951172355506143e-4,2.2967037027328557e-4
-0xb2df8a,haskell,183.2082776387916,177.3162882759998,190.0592696138749,9.056265664751995,4.115254669697031,12.553054720732115
-0x33a02c,haskell strict,1.7128030418119806,1.7119014257491472,1.7144370865624978,1.6686676141424322e-3,1.8478487459105963e-4,1.993956171594728e-3
-0xfb9a99,juvix,2.007199436499832,2.006130412499715,2.0077407232497535,1.0427234635986577e-3,1.2180049998278264e-4,1.3047241399276653e-3
-0xe31a1c,juvix wasm,2.06585997872916,2.06411372704171,2.0685771899998144,3.0218270655800873e-3,1.2691614197362837e-3,4.032795527288937e-3
-0xfdbf6f,c,0.17128374590149337,0.1711880300955229,0.17143202871090088,2.010777735597313e-4,1.1655820862765753e-4,2.794904557505202e-4
-0xff7f00,c wasm,0.26243260672345664,0.25942513052323796,0.26678324886718957,5.384275215353696e-3,3.038534233491233e-3,8.236312780098422e-3
-0xcab2d6,runtime,0.4088258996874856,0.40872687237492755,0.4089203086874704,1.2782469996798813e-4,6.375794541099455e-5,1.6493583683909997e-4
-0x6a3d9a,runtime wasm,0.48887933825009594,0.485239722750066,0.4907232150001164,3.651030723686902e-3,2.7823895112667222e-3,4.258250951907244e-3
+0xa6cee3,ocaml,0.40595535416673556,0.4055939315833257,0.40662525687514517,6.604742508886605e-4,1.0348491673539684e-4,7.795155840114623e-4
+0x1f78b4,ocaml byte,3.102258626104117,3.1009435652501907,3.104615043312492,2.391416572205389e-3,2.3736483308312017e-4,2.861160326456559e-3
+0xb2df8a,haskell,184.4755869287917,179.33995722775035,187.42024724916655,5.0614806559867045,2.6805622005317953,6.80040171456172
+0x33a02c,haskell strict,1.7120158417913747,1.7118670724994445,1.7122051039162518,2.1537449752443062e-4,7.463425026799086e-5,2.658746099404914e-4
+0xfb9a99,juvix,2.0192184454792823,2.017106343354044,2.021985073833548,3.6344045683442327e-3,1.688314927174927e-3,4.565951943184714e-3
+0xe31a1c,juvix wasm,2.0635572613958857,2.0588379460000397,2.066282694562574,4.655406364975597e-3,2.4765693333392846e-3,6.294118289782979e-3
+0xfdbf6f,c,0.1711944968696339,0.1711263889595232,0.17134251207114307,1.6242129977787502e-4,6.569434423007217e-5,2.331209207016183e-4
+0xff7f00,c wasm,0.2645031054169037,0.260514663467208,0.2665114841667188,4.219610899777202e-3,1.4036605429867829e-3,5.461628443635067e-3
+0xcab2d6,runtime,0.4088447987289025,0.4086969775829251,0.4091269846248906,2.853770329351067e-4,6.950083237228233e-6,3.324055613919575e-4
+0x6a3d9a,runtime wasm,0.48714995022930907,0.48271099266730744,0.48938954706238746,4.30082983193337e-3,6.469465244748236e-4,5.449139948923347e-3
diff --git a/benchmark-results/csv/fibonacci.csv b/benchmark-results/csv/fibonacci.csv
index 1a51a421..f9700542 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.4030649656667151,0.403011402000061,0.4031036415000244,6.696131021200742e-5,3.4381978357084666e-5,8.484335411527695e-5
-0x1f78b4,ocaml byte,2.149149761145831,2.1485728957708354,2.1494480775000113,5.809923287257634e-4,1.0025233334931549e-4,7.508894914340385e-4
-0xb2df8a,haskell,186.5989814790208,181.23596445349995,190.389077236,6.430185758216677,4.385373753644647,7.866478487693937
-0x33a02c,haskell strict,1.7119360680832567,1.7117816457080532,1.7121791611251638,2.6716253758978664e-4,7.961391664446094e-5,3.366509215717088e-4
-0xfb9a99,juvix,0.30972672907335436,0.3097021270133701,0.3097513311333387,3.996539053150465e-5,3.174614630332636e-5,4.577523512706322e-5
-0xe31a1c,juvix wasm,0.3795632837292449,0.3775905605626235,0.38056966556251837,1.9861160193488177e-3,1.3912638750070982e-3,2.324139289391872e-3
-0xfdbf6f,c,0.19271341548626422,0.1926197657224091,0.19286434201397798,1.9168058443596973e-4,6.300649368750388e-5,2.6820971453229937e-4
-0xff7f00,c wasm,0.25395471336002323,0.25237682476011586,0.2566058858999592,3.0815138615128863e-3,4.8274130936982237e-4,4.079283391516721e-3
-0xcab2d6,runtime,0.3099519082664968,0.3097188751332457,0.31043097639958434,5.066483480046301e-4,3.8994623095285315e-5,6.353318809376557e-4
-0x6a3d9a,runtime wasm,0.3825911910832171,0.3798617144582674,0.3841043546666091,2.686801158150417e-3,8.96734355453671e-4,3.6230498969655332e-3
+0xa6cee3,ocaml,0.4033965447499715,0.4030452555000039,0.40406424349995024,6.806138461203864e-4,6.333424996304848e-5,8.075600457389585e-4
+0x1f78b4,ocaml byte,2.145357461354133,2.145057075854164,2.1455509799166443,3.2098949004878593e-4,1.6441063790334758e-4,4.469119766367822e-4
+0xb2df8a,haskell,179.90508058216673,171.8786654850001,184.70217155233343,9.443661690884621,8.10275258699994,11.078407051811404
+0x33a02c,haskell strict,1.7119401502082876,1.7118330908332762,1.7120530056666516,2.0923932298178214e-4,1.1592166705098883e-5,2.460707358778295e-4
+0xfb9a99,juvix,0.30978066968662765,0.3097323154200694,0.3098377703331304,7.947623926765918e-5,4.476858478393128e-5,1.0290852384534849e-4
+0xe31a1c,juvix wasm,0.38097792958329063,0.38039822008327445,0.38135252958333393,6.737461836357046e-4,2.963205994669364e-4,8.651016434537356e-4
+0xfdbf6f,c,0.1925563737609688,0.19253982924446975,0.19258365597190477,3.48003930164655e-5,1.4480003904167629e-5,4.847373446119801e-5
+0xff7f00,c wasm,0.25382335996988026,0.25014779654979974,0.2569466456499413,5.056961563172879e-3,3.882869047447412e-3,6.585056751145755e-3
+0xcab2d6,runtime,0.30977842741330885,0.30971742589333795,0.3098885598332496,1.2333884263596008e-4,1.859281175400993e-5,1.5983059662331232e-4
+0x6a3d9a,runtime wasm,0.3821865552501625,0.3790901893750818,0.38371961912533453,2.9204131816730344e-3,9.373160003936787e-4,3.5757163050665745e-3
diff --git a/benchmark-results/csv/fold.csv b/benchmark-results/csv/fold.csv
index db40bf12..a742a238 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.4131394006873279,0.41294362674898366,0.4134199890002037,3.1313464653771997e-4,7.74331448577005e-5,4.0311057800731414e-4
-0x1f78b4,ocaml byte,3.107567676312442,3.1064759016251173,3.108390111250401,1.3260541802174388e-3,8.58316538608998e-4,1.6530502383084998e-3
-0xb2df8a,haskell,1.7046618919371213,1.702127824937179,1.7097075469991978,5.05320113098167e-3,1.6754500393290073e-5,5.852177058244931e-3
-0x33a02c,haskell strict,1.704217823957985,1.7021409569997559,1.7058664111243615,2.4912061051791832e-3,1.6704304612088503e-3,2.8950729836713747e-3
-0xfb9a99,juvix,0.3835122003126041,0.3834231288751653,0.38365253925000314,1.683221495338496e-4,7.462637495336821e-5,2.052767693297304e-4
-0xe31a1c,juvix wasm,0.6206014776456262,0.6178623094372142,0.6235695137497714,3.80421487771909e-3,1.9697912498486403e-3,4.828726278153953e-3
-0xcab2d6,runtime,0.42536096122887557,0.4252401474371936,0.4254848418331676,1.6195466655765585e-4,7.667214033838222e-5,2.0016964804604216e-4
-0x6a3d9a,runtime wasm,1.2017469712705708,1.2004807531873212,1.2025747756872534,1.3690059967172172e-3,6.808254128854273e-4,1.9117324112319035e-3
+0xa6cee3,ocaml,0.4142782329165963,0.4140645626245032,0.4143878597917971,2.0252636145489219e-4,4.688958332130233e-5,2.4689361740506835e-4
+0x1f78b4,ocaml byte,3.1075943162921553,3.105223918001002,3.1121212375420177,4.568992798428431e-3,2.5908366645421843e-4,5.377016386997418e-3
+0xb2df8a,haskell,1.6947052659377277,1.6921541999374767,1.699799081125775,5.096173087550613e-3,1.5323375464504352e-5,5.890678192137169e-3
+0x33a02c,haskell strict,1.6936238250207605,1.6921621952496935,1.694876386020989,1.722026703301467e-3,1.4574687531311937e-3,1.9420892965215045e-3
+0xfb9a99,juvix,0.3823447611663748,0.3820213554995462,0.38288494562493725,5.554012525933262e-4,1.8107413850639953e-4,7.468733952037181e-4
+0xe31a1c,juvix wasm,0.6217251402918009,0.6201761608749621,0.6242228653754864,2.614861791773429e-3,5.752874929123631e-4,3.341609250410372e-3
+0xcab2d6,runtime,0.4246462427916337,0.4245443161245248,0.4247963516247637,1.677157846259147e-4,3.9707842002505985e-5,2.142871131018151e-4
+0x6a3d9a,runtime wasm,1.2022991245831918,1.2002697071666262,1.2038546524998992,2.5778526126628513e-3,1.646140825979975e-3,3.417393978376633e-3
diff --git a/benchmark-results/csv/mapfold.csv b/benchmark-results/csv/mapfold.csv
index 1d50f623..9abba981 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.9727090909167373,1.9723183362498276,1.9730467409997345,4.6142727236740466e-4,2.666032268513439e-4,6.358060216584263e-4
-0x1f78b4,ocaml byte,5.970762849917112,5.964653690333458,5.980105048251062,1.0641914177971232e-2,2.8496043329746534e-3,1.4088087309067082e-2
-0xb2df8a,haskell,2.254221690541802,2.2496292577502572,2.2608437859998958,7.825090589024659e-3,2.519022336566496e-3,1.0544461274405075e-2
-0x33a02c,haskell strict,2.2021028067706916,2.2020841070836163,2.2021321633325592,3.238371606474677e-5,6.191359782050854e-6,4.134212759693478e-5
-0xfb9a99,juvix,3.4580829929587176,3.451848819250472,3.4629244598337814,8.22704713675898e-3,5.048056316502482e-3,1.1180888814363e-2
-0xe31a1c,juvix wasm,1.3215415107710744,1.314122010083641,1.3248344003961467,7.130422548463323e-3,2.8974009795255723e-3,9.530000030780061e-3
-0xcab2d6,runtime,3.3021107167917307,3.300830413083304,3.303510973250013,2.313754143859095e-3,3.6828788756682464e-4,2.7847940379610294e-3
-0x6a3d9a,runtime wasm,3.50746153881236,3.5011307896252974,3.511436668562169,7.5478927804831725e-3,5.84516623256574e-3,9.180168924463824e-3
+0xa6cee3,ocaml,1.9699135513543145,1.9684326794379103,1.9717036839372213,2.3984150529719125e-3,1.1271650498521902e-3,3.202751457913845e-3
+0x1f78b4,ocaml byte,5.960988828270804,5.955219760374803,5.964525761270882,6.842322373570899e-3,5.753484474129924e-3,8.168196878801949e-3
+0xb2df8a,haskell,2.24227118489614,2.242234045624855,2.2423337888127435,6.737641377018966e-5,1.1616968995671454e-5,8.571231471071011e-5
+0x33a02c,haskell strict,2.200293253562753,2.1983803381253892,2.2015643551877324,2.436094432223064e-3,1.2838049827421506e-3,2.9354834613972897e-3
+0xfb9a99,juvix,3.4693426583539804,3.459371489187106,3.4882927676662803,1.911909094814883e-2,3.446652170634307e-4,2.2682763593457632e-2
+0xe31a1c,juvix wasm,1.3289944291043791,1.3250188959374327,1.333125650000511,5.278266711670831e-3,2.720508671467182e-3,6.537464837434783e-3
+0xcab2d6,runtime,3.29571017758326,3.2919214553330676,3.2978128589165863,3.7300914380630585e-3,8.834339996610652e-4,4.884890479581992e-3
+0x6a3d9a,runtime wasm,3.4977648907085572,3.4970310511668385,3.498229608625479,9.020050950720235e-4,5.452362919825968e-4,1.0683850377034422e-3
diff --git a/benchmark-results/csv/mapfun.csv b/benchmark-results/csv/mapfun.csv
index 05008952..7cb44dd4 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.2693639582000712,0.26931759560005347,0.26941569859998704,7.470832762844673e-5,4.508371832032754e-5,1.0883082905632291e-4
-0x1f78b4,ocaml byte,0.9742759058959033,0.9732928903328381,0.9755074481258816,1.4605889617421016e-3,5.450882085066833e-4,1.8327750478259006e-3
-0xb2df8a,haskell,2.6116206149168115,2.6047323214167286,2.6147500666667534,6.587763230203232e-3,2.056234559246227e-3,8.680673185140611e-3
-0x33a02c,haskell strict,1.2540940227918327,1.2519775442501668,1.2557858080001552,2.54075785519043e-3,1.7180300833388173e-3,2.964597503498453e-3
-0xfb9a99,juvix,1.8305799311038602,1.8258988629161952,1.83273168072886,4.460393098623233e-3,1.142866493267185e-3,5.841211012084142e-3
-0xe31a1c,juvix wasm,1.5503942111043898,1.5472070204376678,1.5522710231250585,3.201485785653359e-3,1.3389268237700659e-3,4.422695608364007e-3
-0xcab2d6,runtime,3.6881231324580313,3.68158876162488,3.6980596625830913,1.0884847287866772e-2,2.115951497330586e-3,1.3811087735856145e-2
-0x6a3d9a,runtime wasm,2.251077311312997,2.245905068000866,2.2545974871252383,6.427382849253205e-3,3.7615862981297643e-3,8.129497811169013e-3
+0xa6cee3,ocaml,0.2694505857135118,0.2690298672933932,0.2698713041336305,6.57052033949149e-4,4.0313487392463815e-4,9.273543206973029e-4
+0x1f78b4,ocaml byte,0.9737093534375466,0.9725854013749995,0.9745065921876328,1.3525449828574421e-3,7.693632385400316e-4,1.8411440278825939e-3
+0xb2df8a,haskell,2.6005921151878133,2.5972464725000464,2.6022612852507336,3.3392851310364052e-3,1.3283124644658528e-5,3.8632277572806487e-3
+0x33a02c,haskell strict,1.2621554313123322,1.26212692437457,1.2621708775625016,2.716394669926711e-5,1.0331647630778002e-5,3.567158677287241e-5
+0xfb9a99,juvix,1.8274679368546458,1.8251923514167174,1.831235621563792,4.1092630698148554e-3,5.815037084175856e-4,5.255239460607781e-3
+0xe31a1c,juvix wasm,1.551264944958272,1.547078680249797,1.5534515513333342,4.0738441676934625e-3,3.738960832985194e-4,5.049751117015613e-3
+0xcab2d6,runtime,3.7048879428124337,3.6999993140624383,3.710532059812408,6.855646630426918e-3,2.755427000010968e-3,8.36477602604958e-3
+0x6a3d9a,runtime wasm,2.2305927726876384,2.2259016478748586,2.2341041328751694,5.8692299761494825e-3,3.271211625057502e-3,8.109138997970925e-3
diff --git a/benchmark-results/csv/maybe.csv b/benchmark-results/csv/maybe.csv
index 3bb418f9..0bf57b60 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.4231118738333824,0.42290052300006664,0.4232458909583177,2.5324493918620674e-4,1.7859454940350817e-4,3.09499292629721e-4
-0x1f78b4,ocaml byte,4.290464394812337,4.240982275312414,4.387753479999674,9.780640827312832e-2,3.085220625052898e-3,0.11427406005341481
-0xb2df8a,haskell,14.29848043968741,14.259511041124824,14.337061848624899,5.319919227173489e-2,2.5798802380025267e-2,7.20686107790389e-2
-0x33a02c,haskell strict,0.762103431499952,0.7620828612499508,0.762113109999973,1.9653764463367056e-5,4.571014935418307e-6,2.5153419131934534e-5
-0xfb9a99,juvix,2.9353341293541653,2.930419166416717,2.942304319874893,8.611375779625044e-3,3.892323853466004e-3,1.0765965073503844e-2
-0xe31a1c,juvix wasm,3.033433909145837,3.025123101666698,3.040693691062586,1.0286102856320771e-2,5.634153583211399e-3,1.2687227565210209e-2
-0xfdbf6f,c,0.4574934139167037,0.45731675783345815,0.4576029589999848,2.0711881318090158e-4,1.8064281407565482e-4,2.3629811052597145e-4
-0xff7f00,c wasm,0.6166844164791693,0.6128064565415722,0.6196295733542266,4.927033042948881e-3,2.1542163970328892e-3,6.8015484584801845e-3
-0xcab2d6,runtime,0.9023617064167979,0.9007216375417215,0.9051064496251797,3.053913989525581e-3,9.557850833061821e-4,3.7378523500437143e-3
-0x6a3d9a,runtime wasm,1.9509271524376004,1.9469429676876757,1.9565139186875626,6.638972619707293e-3,2.2657550534065938e-3,8.720557840565385e-3
+0xa6cee3,ocaml,0.4231067206458003,0.4226323882916935,0.4233844923124366,5.579201748930479e-4,4.8692383768191293e-4,6.414861860228701e-4
+0x1f78b4,ocaml byte,4.263752689187527,4.236246832000006,4.283392259000152,3.235460010221579e-2,2.7464459130446615e-2,3.673100103202016e-2
+0xb2df8a,haskell,14.742478077395939,14.599346511583386,14.8158942108127,0.13968491936915348,9.254346117815698e-3,0.16542415315419484
+0x33a02c,haskell strict,0.7542787380208628,0.7519759144998943,0.756982819500081,3.1536873194340327e-3,1.2696571711429505e-3,3.8610203025830785e-3
+0xfb9a99,juvix,2.9578859741250767,2.945867486624877,2.972095747375306,1.8227458937902053e-2,8.06917635311939e-3,2.3906452581936074e-2
+0xe31a1c,juvix wasm,3.0263184216249592,3.0158565422500105,3.0339705323748944,1.2566781349058493e-2,9.4525652499442e-3,1.5340881678302765e-2
+0xfdbf6f,c,0.45780710412505715,0.4572939437499599,0.45820770312502646,6.21208985978726e-4,4.0043073017246596e-4,7.242818712656161e-4
+0xff7f00,c wasm,0.6165261700626274,0.6137223595003434,0.6191267794999931,3.8853173457019468e-3,2.1182833748980556e-3,5.361238803554415e-3
+0xcab2d6,runtime,0.9004370662080797,0.9001091892499744,0.9006187487497073,3.1478515408716684e-4,1.2927476929922837e-4,4.1957785726279127e-4
+0x6a3d9a,runtime wasm,1.9534849875205964,1.9488191478120598,1.9561762698540406,4.68505071728661e-3,1.2790817115932388e-3,6.2152503187171216e-3
diff --git a/benchmark-results/csv/mergesort.csv b/benchmark-results/csv/mergesort.csv
index 49474692..76380c5d 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.3798820147708426,3.3772847235000256,3.3812602408125088,3.001391355677136e-3,2.6284773749978285e-3,3.1108554820652723e-3
-0x1f78b4,ocaml byte,5.200050304958339,5.188847291125015,5.218196491249984,1.9998405678771113e-2,3.0299627915683115e-3,2.5622987581769625e-2
-0xb2df8a,haskell,7.081606312979157,6.9865399319999995,7.172869157624973,0.12484437433336759,7.36368797581692e-2,0.17040795798840042
-0x33a02c,haskell strict,7.056982747270861,7.023253335541645,7.081974116000083,4.147900069531163e-2,2.4985533731253718e-2,4.9057481962290976e-2
-0xfb9a99,juvix,3.425669941083356,3.4195127074583525,3.429633031708363,6.507043529370067e-3,3.459275052107316e-3,9.152365756682166e-3
-0xe31a1c,juvix wasm,1.826543839541652,1.752310002916668,1.863456014416651,7.299344557227375e-2,3.6172759166485102e-3,8.619068583183193e-2
-0xfdbf6f,c,0.13395396553942898,0.1336757385937612,0.13428593996126895,5.56852725558982e-4,3.678203929054103e-4,8.027533306367072e-4
-0xff7f00,c wasm,0.23258065006108886,0.23084861250555377,0.23407685299995742,2.5273456424555257e-3,2.0088134940932823e-3,3.3807798354410657e-3
-0xcab2d6,runtime,1.407375384333297,1.4051410908749347,1.4085027867083018,2.113181225320666e-3,8.886304167200487e-4,2.603624258776061e-3
-0x6a3d9a,runtime wasm,0.7775093410833401,0.7748246865833531,0.7818525975000199,4.799942893847299e-3,9.092367997709833e-4,6.19994399299455e-3
+0xa6cee3,ocaml,3.4914409827499973,3.487083235874991,3.498623195250005,7.7370862535074275e-3,1.180320456578187e-3,9.742075074409993e-3
+0x1f78b4,ocaml byte,5.261565228874983,5.257577681749993,5.264902098125013,5.137075737337492e-3,2.963343473809137e-3,6.8408590834918e-3
+0xb2df8a,haskell,7.3341417957499955,7.259635965000021,7.40864762649997,0.12083692047864274,4.548498607934108e-2,0.16480612101713457
+0x33a02c,haskell strict,7.4747084809167035,7.332845447500091,7.570959579416652,0.17945755093185967,9.605906543397817e-2,0.2222823905149693
+0xfb9a99,juvix,3.556173385500036,3.5432926461249963,3.5756573799999956,2.079401045167809e-2,4.184989500079839e-3,2.553566777989992e-2
+0xe31a1c,juvix wasm,1.6283890438333657,1.4327386236666655,1.7653305690834031,0.22980674786273364,0.19617483680791536,0.2567552043258461
+0xfdbf6f,c,0.1341624993148941,0.1338306188690515,0.1344708993500106,5.94369911067167e-4,4.899796383956263e-4,7.257680436710997e-4
+0xff7f00,c wasm,0.2356454794860844,0.23424461608334216,0.23817316513879583,3.0063347509074216e-3,1.2523876440139368e-3,4.16888192461449e-3
+0xcab2d6,runtime,1.4536488353750059,1.451158174249997,1.4560489777500152,3.748663168997915e-3,2.136560719147331e-3,5.276711837847677e-3
+0x6a3d9a,runtime wasm,0.7771452384375171,0.7735441480000418,0.7798130205625,4.253976679552831e-3,3.434943757524543e-3,4.932437727937587e-3
diff --git a/benchmark-results/csv/prime.csv b/benchmark-results/csv/prime.csv
index 332d4fd3..005a8a93 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.24532441322909,16.242952754874523,16.246613917270942,2.292830630160772e-3,1.166573916058913e-3,2.977982022742878e-3
-0x1f78b4,ocaml byte,29.68204134812485,29.68043002099997,29.68330935037515,2.00756344472776e-3,1.1251586794997724e-3,2.5960419177115945e-3
-0xb2df8a,haskell,22.55728019258326,22.549361613999963,22.563110465125305,9.766658934434881e-3,6.855279679598569e-3,1.254523524282086e-2
-0x33a02c,haskell strict,22.552680816937595,22.54516892975016,22.55643314281258,7.282108964102894e-3,8.025162501326122e-4,8.682334943110435e-3
-0xfb9a99,juvix,13.053600333645855,13.052252612375241,13.05494805491647,2.168546668323979e-3,9.502884717288876e-4,3.0046160079450434e-3
-0xe31a1c,juvix wasm,5.818600500229574,5.815592524333473,5.821009517187576,3.754491274867465e-3,1.867066000613704e-3,4.790720657221598e-3
-0xfdbf6f,c,0.3633085373125671,0.3632495907496983,0.36335507593810235,7.220540514009503e-5,4.6389253455228945e-5,9.161639470574573e-5
-0xff7f00,c wasm,0.5866918235831614,0.5851790387492883,0.5875307266665761,1.490894457568385e-3,5.298070473449049e-4,2.021908548560049e-3
-0xcab2d6,runtime,13.043822702500051,13.043511584000044,13.044044679875014,3.658384391471543e-4,3.154757627101953e-4,4.167906027716304e-4
-0x6a3d9a,runtime wasm,6.318813890833364,6.315613283750054,6.320512469750042,3.071572406318786e-3,1.1078685621891547e-3,4.069201070159068e-3
+0xa6cee3,ocaml,16.24127537349989,16.23875577399997,16.243859144499766,3.2924830855837798e-3,1.7007204996843939e-3,4.039492068465002e-3
+0x1f78b4,ocaml byte,29.684320037270595,29.681386644999975,29.68665816049952,3.527498396945903e-3,1.8391270064283458e-3,4.935252261896694e-3
+0xb2df8a,haskell,22.539825841375166,22.534421379875425,22.543572889875083,6.284991217953729e-3,3.4475073488819154e-3,8.653437840375998e-3
+0x33a02c,haskell strict,22.545025540625375,22.536877406000713,22.55628076687526,1.378106183752243e-2,5.042442324799334e-3,1.881731087576745e-2
+0xfb9a99,juvix,13.049077032708169,13.048161043749815,13.050090150499727,1.3232551682493415e-3,5.66283267189766e-4,1.8069088887913245e-3
+0xe31a1c,juvix wasm,5.814510375603845,5.809200833999057,5.816328016916486,3.623785274695503e-3,6.114003747370589e-4,4.393095123580796e-3
+0xfdbf6f,c,0.36348334431253687,0.3632364082500317,0.36386197631247796,4.092435785848773e-4,1.0808987531163439e-4,5.176620665751966e-4
+0xff7f00,c wasm,0.5913304431662331,0.5893207120415885,0.5934936363325203,2.7785899120592425e-3,1.8498056238223873e-3,3.690622394384362e-3
+0xcab2d6,runtime,13.038990374667113,13.038316150000355,13.039664599333872,1.1247468024896316e-3,4.187557506156736e-4,1.5347887918067355e-3
+0x6a3d9a,runtime wasm,6.322481087687417,6.319145689499844,6.32686641774967,5.635411746483558e-3,2.7284303940251103e-3,7.1088543973973056e-3
diff --git a/benchmark-results/plot/ackermann.svg b/benchmark-results/plot/ackermann.svg
index e0b22359..afdf51ed 100644
--- a/benchmark-results/plot/ackermann.svg
+++ b/benchmark-results/plot/ackermann.svg
@@ -215,65 +215,65 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
Mean
- 0.6970
+ 0.6971
-
- 1.8564
+
+ 1.8578
-
- 1.3677
+
+ 1.3623
-
- 0.5321
+
+ 0.5260
-
- 2.2326
+
+ 2.2259
-
- 1.0733
+
+ 1.0724
- 0.0007
+ 0.0006
- 0.4630
+ 0.4633
-
- 2.7555
+
+ 2.7661
-
- 2.9509
+
+ 2.9518
@@ -305,25 +305,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.2
-
-
-
-
-
-
-
-
-
-
-
-
- 0.4
+
+ 0.5
@@ -331,12 +318,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.6
+
+ 1
@@ -349,20 +336,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 0.8
-
-
-
-
-
-
-
-
-
-
-
-
- 1
+ 1.5
@@ -370,12 +344,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.2
+
+ 2
@@ -383,12 +357,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.4
+
+ 2.5
@@ -401,7 +375,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 1.6
+ 3
@@ -468,68 +442,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.02%
+
+ 0.01%
-
- 0.20%
+
+ 0.18%
-
- 0.31%
+
+ 0.00%
-
- 0.01%
+
+ 0.82%
-
- 1.45%
+
+ 0.89%
-
- 0.39%
+
+ 0.15%
-
- 1.10%
+
+ 1.34%
-
- 0.37%
+
+ 0.78%
-
- 1.38%
+
+ 2.56%
-
- 0.13%
+
+ 0.29%
@@ -557,7 +531,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.6;
+gnuplot_svg.plot_axis_ymax = 3;
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 0eb06b4b..8684e335 100644
--- a/benchmark-results/plot/combinations.svg
+++ b/benchmark-results/plot/combinations.svg
@@ -212,68 +212,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
Mean
-
- 10.7879
+
+ 10.7876
-
- 56.5193
+
+ 56.5256
-
- 10.8831
+
+ 10.0941
- 10.1064
+ 10.1028
-
- 12.3991
+
+ 12.4477
-
- 29.7028
+
+ 29.7418
- 7.6047
+ 7.6042
- 9.7906
+ 9.7950
-
- 11.4249
+
+ 11.4342
-
- 26.7945
+
+ 26.7823
@@ -292,11 +292,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0
@@ -305,12 +305,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1
+
+ 0.05
@@ -318,12 +318,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2
+
+ 0.1
@@ -331,12 +331,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3
+
+ 0.15
@@ -344,12 +344,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 4
+
+ 0.2
@@ -357,12 +357,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 5
+
+ 0.25
@@ -370,12 +370,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 6
+
+ 0.3
@@ -383,12 +383,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 7
+
+ 0.35
@@ -396,83 +396,70 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 8
+
+ 0.4
-
-
-
-
-
-
-
-
-
- 9
-
-
-
-
+
ocaml
-
+
ocaml byte
-
+
haskell
-
+
haskell strict
-
+
juvix
-
+
juvix wasm
-
+
c
-
+
c wasm
-
+
runtime
-
+
runtime wasm
-
+
-
+
Standard deviation
@@ -481,68 +468,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.01%
+
+ 0.02%
-
- 0.15%
+
+ 0.18%
-
- 8.45%
+
+ 0.06%
-
+
0.04%
-
- 0.06%
+
+ 0.35%
-
- 0.33%
+
+ 0.10%
-
+
0.01%
-
- 0.12%
+
+ 0.03%
-
- 0.05%
+
+ 0.03%
-
- 0.09%
+
+ 0.03%
@@ -553,7 +540,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
@@ -561,16 +548,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 = 37.3;
+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 = 737.7;
+gnuplot_svg.plot_width = 712.8;
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 = 9;
+gnuplot_svg.plot_axis_ymax = 0.4;
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 1ee09c87..d66d5c8a 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.4060
- 3.1015
+ 3.1023
-
- 183.2083
+
+ 184.4756
- 1.7128
+ 1.7120
- 2.0072
+ 2.0192
- 2.0659
+ 2.0636
- 0.1713
+ 0.1712
- 0.2624
+ 0.2645
0.4088
- 0.4889
+ 0.4871
@@ -357,11 +357,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0.5
@@ -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.5
@@ -396,11 +396,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
2
@@ -409,11 +409,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
2.5
@@ -421,65 +421,13 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
-
-
-
-
-
- 3
-
-
-
-
-
-
-
-
-
-
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
-
- 4
-
-
-
-
-
-
-
-
-
-
-
-
- 4.5
-
-
-
-
-
-
- 5
+ 3
@@ -546,68 +494,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.04%
+
+ 0.16%
-
- 0.01%
+
+ 0.08%
-
- 4.94%
+
+ 2.74%
-
- 0.10%
+
+ 0.01%
-
- 0.05%
+
+ 0.18%
-
- 0.15%
+
+ 0.23%
-
- 0.12%
+
+ 0.09%
-
- 2.05%
+
+ 1.60%
-
- 0.03%
+
+ 0.07%
-
- 0.75%
+
+ 0.88%
@@ -635,7 +583,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 = 3;
gnuplot_svg.polar_mode = false;
gnuplot_svg.plot_axis_x2min = "none"
gnuplot_svg.plot_axis_y2min = "none"
diff --git a/benchmark-results/plot/fibonacci.svg b/benchmark-results/plot/fibonacci.svg
index ef615cb5..d19e14fe 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,26 +173,13 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
-
-
-
-
-
- 180
-
-
-
-
-
-
- 200
+ 180
@@ -264,68 +251,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1a
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
Mean
-
- 0.4031
+
+ 0.4034
-
- 2.1491
+
+ 2.1454
-
- 186.5990
+
+ 179.9051
-
+
1.7119
- 0.3097
+ 0.3098
-
- 0.3796
+
+ 0.3810
- 0.1927
+ 0.1926
-
- 0.2540
+
+ 0.2538
- 0.3100
+ 0.3098
-
- 0.3826
+
+ 0.3822
@@ -344,11 +331,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0
@@ -357,24 +344,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
-
-
-
-
- 0.5
-
-
-
-
-
-
-
-
+
-
+
1
@@ -383,12 +357,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 1.5
+
+ 2
@@ -396,12 +370,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2
+
+ 3
@@ -409,12 +383,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 2.5
+
+ 4
@@ -422,12 +396,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3
+
+ 5
@@ -435,70 +409,70 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 3.5
+
+ 6
-
+
ocaml
-
+
ocaml byte
-
+
haskell
-
+
haskell strict
-
+
juvix
-
+
juvix wasm
-
+
c
-
+
c wasm
-
+
runtime
-
+
runtime wasm
-
+
-
+
Standard deviation
@@ -507,68 +481,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.02%
-
-
- 0.03%
+
+ 0.17%
-
- 3.45%
+
+ 0.01%
-
- 0.02%
+
+ 5.25%
-
+
0.01%
-
- 0.52%
+
+ 0.03%
+
+
+ 0.18%
-
- 0.10%
+
+ 0.02%
-
- 1.21%
+
+ 1.99%
-
- 0.16%
+
+ 0.04%
-
- 0.70%
+
+ 0.76%
@@ -579,7 +553,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
@@ -587,16 +561,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 = 3.5;
+gnuplot_svg.plot_axis_ymax = 6;
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 49024e69..8c2b8fed 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.4131
+
+ 0.4143
3.1076
-
- 1.7047
+
+ 1.6947
-
- 1.7042
+
+ 1.6936
-
- 0.3835
+
+ 0.3823
-
- 0.6206
+
+ 0.6217
-
- 0.4254
+
+ 0.4246
- 1.2017
+ 1.2023
@@ -283,11 +283,11 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
0
@@ -296,11 +296,24 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
+
+ 0.05
+
+
+
+
+
+
+
+
+
+
+
+
0.1
@@ -309,11 +322,24 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
+
+
+
+
+ 0.15
+
+
+
+
+
+
+
+
-
+
0.2
@@ -322,12 +348,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.3
+
+ 0.25
@@ -335,12 +361,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.4
+
+ 0.3
@@ -348,12 +374,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.5
+
+ 0.35
@@ -361,12 +387,12 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.6
+
+ 0.4
@@ -374,60 +400,60 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
- 0.7
+
+ 0.45
-
+
ocaml
-
+
ocaml byte
-
+
haskell
-
+
haskell strict
-
+
juvix
-
+
juvix wasm
-
+
runtime
-
+
runtime wasm
-
+
-
+
Standard deviation
@@ -436,56 +462,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.08%
+
+ 0.05%
-
- 0.04%
+
+ 0.15%
-
+
0.30%
-
- 0.15%
+
+ 0.10%
-
- 0.04%
+
+ 0.15%
-
- 0.61%
+
+ 0.42%
-
+
0.04%
-
- 0.11%
+
+ 0.21%
@@ -496,7 +522,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
@@ -504,16 +530,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 = 0.7;
+gnuplot_svg.plot_axis_ymax = 0.45;
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 bbdad6b3..f4a31612 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.9727
+
+ 1.9699
-
- 5.9708
+
+ 5.9610
-
- 2.2542
+
+ 2.2423
-
- 2.2021
+
+ 2.2003
-
- 3.4581
+
+ 3.4693
-
- 1.3215
+
+ 1.3290
-
- 3.3021
+
+ 3.2957
-
- 3.5075
+
+ 3.4978
@@ -410,56 +410,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.02%
+
+ 0.12%
-
- 0.18%
+
+ 0.11%
-
- 0.35%
-
-
+
0.00%
-
- 0.24%
+
+ 0.11%
+
+
+ 0.55%
-
- 0.54%
+
+ 0.40%
-
- 0.07%
+
+ 0.11%
-
- 0.22%
+
+ 0.03%
diff --git a/benchmark-results/plot/mapfun.svg b/benchmark-results/plot/mapfun.svg
index f2eb342e..127a0ec4 100644
--- a/benchmark-results/plot/mapfun.svg
+++ b/benchmark-results/plot/mapfun.svg
@@ -234,50 +234,50 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
Mean
- 0.2694
+ 0.2695
- 0.9743
+ 0.9737
-
- 2.6116
+
+ 2.6006
-
- 1.2541
+
+ 1.2622
-
- 1.8306
+
+ 1.8275
-
- 1.5504
+
+ 1.5513
-
- 3.6881
+
+ 3.7049
-
- 2.2511
+
+ 2.2306
@@ -436,56 +436,56 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.03%
+
+ 0.24%
-
- 0.15%
+
+ 0.14%
-
- 0.25%
+
+ 0.13%
-
- 0.20%
+
+ 0.00%
-
- 0.24%
+
+ 0.22%
-
- 0.21%
+
+ 0.26%
-
- 0.30%
+
+ 0.19%
-
- 0.29%
+
+ 0.26%
diff --git a/benchmark-results/plot/maybe.svg b/benchmark-results/plot/maybe.svg
index 6e93b5d3..708f267d 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.4231
-
- 4.2905
+
+ 4.2638
-
- 14.2985
+
+ 14.7425
-
- 0.7621
+
+ 0.7543
-
- 2.9353
+
+ 2.9579
-
- 3.0334
+
+ 3.0263
- 0.4575
+ 0.4578
- 0.6167
+ 0.6165
-
- 0.9024
+
+ 0.9004
-
- 1.9509
+
+ 1.9535
@@ -330,13 +330,39 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
+
+
+
+
+
+
+ 0.1
+
+
+
+
+
+
- 0.5
+ 0.2
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.3
@@ -349,7 +375,20 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 1
+ 0.4
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.5
@@ -362,7 +401,20 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 1.5
+ 0.6
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.7
@@ -375,7 +427,20 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 2
+ 0.8
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.9
@@ -388,7 +453,7 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
- 2.5
+ 1
@@ -455,68 +520,68 @@ onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox
gnuplot_plot_1b
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
gnuplot_plot_2b
-
- 0.06%
+
+ 0.13%
-
- 2.28%
+
+ 0.76%
-
- 0.37%
+
+ 0.95%
-
- 0.00%
+
+ 0.42%
-
- 0.29%
+
+ 0.62%
-
- 0.34%
+
+ 0.42%
-
- 0.05%
+
+ 0.14%
-
- 0.80%
+
+