Skip to content

[Builtins] Allow casing on booleans and integers #7029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: master
Choose a base branch
from

Conversation

effectfully
Copy link
Contributor

This adds support for casing on booleans and integers using Case, which is the first part of #6602.

@effectfully effectfully self-assigned this Apr 10, 2025
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 8358a8f to 5244c96 Compare April 10, 2025 15:19
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 5244c96 to 8b55532 Compare April 10, 2025 23:30
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 8b55532 to 2344b92 Compare April 11, 2025 00:23
@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 2344b92 to c0df0c1 Compare April 11, 2025 00:24
@effectfully
Copy link
Contributor Author

/benchmark nofib

1 similar comment
@effectfully
Copy link
Contributor Author

/benchmark nofib

@effectfully
Copy link
Contributor Author

/benchmark lists

1 similar comment
@effectfully
Copy link
Contributor Author

/benchmark lists

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

Comparing benchmark results of 'nofib' on '27d2bc3905' (base) and 'c0df0c158b' (PR)

Results table
Script 27d2bc3 c0df0c1 Change
clausify/formula1 2.170 ms 2.076 ms -4.3%
clausify/formula2 2.920 ms 2.781 ms -4.8%
clausify/formula3 8.083 ms 7.722 ms -4.5%
clausify/formula4 17.54 ms 15.77 ms -10.1%
clausify/formula5 39.41 ms 37.72 ms -4.3%
knights/4x4 14.83 ms 12.75 ms -14.0%
knights/6x6 36.46 ms 30.90 ms -15.2%
knights/8x8 63.35 ms 53.63 ms -15.3%
primetest/05digits 8.958 ms 7.917 ms -11.6%
primetest/10digits 17.63 ms 15.46 ms -12.3%
primetest/30digits 54.52 ms 48.51 ms -11.0%
primetest/50digits 89.72 ms 81.07 ms -9.6%
queens4x4/bt 4.102 ms 3.695 ms -9.9%
queens4x4/bm 5.038 ms 4.674 ms -7.2%
queens4x4/bjbt1 4.899 ms 4.434 ms -9.5%
queens4x4/bjbt2 4.620 ms 4.155 ms -10.1%
queens4x4/fc 10.09 ms 9.234 ms -8.5%
queens5x5/bt 57.19 ms 50.59 ms -11.5%
queens5x5/bm 57.94 ms 53.51 ms -7.6%
queens5x5/bjbt1 66.18 ms 58.87 ms -11.0%
queens5x5/bjbt2 64.42 ms 56.83 ms -11.8%
queens5x5/fc 128.3 ms 116.3 ms -9.4%
27d2bc3 c0df0c1 Change
TOTAL 758.4 ms 678.6 ms -10.5%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

Comparing benchmark results of 'nofib' on '27d2bc3905' (base) and 'c0df0c158b' (PR)

Results table
Script 27d2bc3 c0df0c1 Change
clausify/formula1 2.166 ms 2.087 ms -3.6%
clausify/formula2 2.938 ms 2.805 ms -4.5%
clausify/formula3 8.124 ms 7.760 ms -4.5%
clausify/formula4 17.62 ms 15.82 ms -10.2%
clausify/formula5 39.61 ms 37.70 ms -4.8%
knights/4x4 14.80 ms 12.85 ms -13.2%
knights/6x6 36.39 ms 30.89 ms -15.1%
knights/8x8 63.15 ms 53.57 ms -15.2%
primetest/05digits 8.955 ms 7.963 ms -11.1%
primetest/10digits 17.64 ms 15.65 ms -11.3%
primetest/30digits 56.05 ms 48.66 ms -13.2%
primetest/50digits 93.60 ms 81.50 ms -12.9%
queens4x4/bt 4.107 ms 3.728 ms -9.2%
queens4x4/bm 5.039 ms 4.691 ms -6.9%
queens4x4/bjbt1 4.913 ms 4.403 ms -10.4%
queens4x4/bjbt2 4.626 ms 4.171 ms -9.8%
queens4x4/fc 10.09 ms 9.257 ms -8.3%
queens5x5/bt 57.20 ms 50.61 ms -11.5%
queens5x5/bm 57.91 ms 53.43 ms -7.7%
queens5x5/bjbt1 66.11 ms 59.00 ms -10.8%
queens5x5/bjbt2 64.38 ms 56.64 ms -12.0%
queens5x5/fc 128.3 ms 116.1 ms -9.5%
27d2bc3 c0df0c1 Change
TOTAL 763.7 ms 679.3 ms -11.1%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

Comparing benchmark results of 'lists' on '27d2bc3905' (base) and 'c0df0c158b' (PR)

Results table
Script 27d2bc3 c0df0c1 Change
sort/ghcSort/50 179.4 μs 149.0 μs -16.9%
sort/ghcSort/100 416.6 μs 343.6 μs -17.5%
sort/ghcSort/150 717.7 μs 593.0 μs -17.4%
sort/ghcSort/200 966.7 μs 793.8 μs -17.9%
sort/ghcSort/250 1.249 ms 1.031 ms -17.5%
sort/ghcSort/300 1.646 ms 1.354 ms -17.7%
sort/insertionSort/50 615.3 μs 481.1 μs -21.8%
sort/insertionSort/100 2.452 ms 1.910 ms -22.1%
sort/insertionSort/150 5.524 ms 4.284 ms -22.4%
sort/insertionSort/200 9.831 ms 7.630 ms -22.4%
sort/insertionSort/250 15.41 ms 11.98 ms -22.3%
sort/insertionSort/300 22.27 ms 17.28 ms -22.4%
sort/mergeSort/50 542.2 μs 463.8 μs -14.5%
sort/mergeSort/100 1.253 ms 1.064 ms -15.1%
sort/mergeSort/150 2.013 ms 1.709 ms -15.1%
sort/mergeSort/200 2.855 ms 2.408 ms -15.7%
sort/mergeSort/250 3.702 ms 3.157 ms -14.7%
sort/mergeSort/300 4.510 ms 3.829 ms -15.1%
sort/quickSort/50 1.418 ms 1.095 ms -22.8%
sort/quickSort/100 5.869 ms 4.640 ms -20.9%
sort/quickSort/150 13.18 ms 10.41 ms -21.0%
sort/quickSort/200 23.33 ms 18.41 ms -21.1%
sort/quickSort/250 36.76 ms 29.08 ms -20.9%
sort/quickSort/300 52.82 ms 42.05 ms -20.4%
sum/compiled-from-Haskell/sum-right-builtin/100 77.94 μs 78.40 μs +0.6%
sum/compiled-from-Haskell/sum-right-builtin/500 409.1 μs 410.7 μs +0.4%
sum/compiled-from-Haskell/sum-right-builtin/1000 865.4 μs 871.9 μs +0.8%
sum/compiled-from-Haskell/sum-right-builtin/2500 2.665 ms 2.690 ms +0.9%
sum/compiled-from-Haskell/sum-right-builtin/5000 5.764 ms 5.804 ms +0.7%
sum/compiled-from-Haskell/sum-right-Scott/100 43.86 μs 44.62 μs +1.7%
sum/compiled-from-Haskell/sum-right-Scott/500 232.8 μs 234.0 μs +0.5%
sum/compiled-from-Haskell/sum-right-Scott/1000 494.8 μs 504.5 μs +2.0%
sum/compiled-from-Haskell/sum-right-Scott/2500 1.725 ms 1.738 ms +0.8%
sum/compiled-from-Haskell/sum-right-Scott/5000 4.168 ms 4.191 ms +0.6%
sum/compiled-from-Haskell/sum-right-data/100 255.9 μs 215.3 μs -15.9%
sum/compiled-from-Haskell/sum-right-data/500 1.407 ms 1.173 ms -16.6%
sum/compiled-from-Haskell/sum-right-data/1000 3.270 ms 2.701 ms -17.4%
sum/compiled-from-Haskell/sum-right-data/2500 8.443 ms 7.444 ms -11.8%
sum/compiled-from-Haskell/sum-right-data/5000 18.05 ms 15.81 ms -12.4%
sum/compiled-from-Haskell/sum-left-builtin/100 75.87 μs 76.84 μs +1.3%
sum/compiled-from-Haskell/sum-left-builtin/500 396.0 μs 400.8 μs +1.2%
sum/compiled-from-Haskell/sum-left-builtin/1000 848.9 μs 859.0 μs +1.2%
sum/compiled-from-Haskell/sum-left-builtin/2500 2.596 ms 2.626 ms +1.2%
sum/compiled-from-Haskell/sum-left-builtin/5000 5.730 ms 5.788 ms +1.0%
sum/compiled-from-Haskell/sum-left-Scott/100 42.72 μs 43.96 μs +2.9%
sum/compiled-from-Haskell/sum-left-Scott/500 228.7 μs 231.1 μs +1.0%
sum/compiled-from-Haskell/sum-left-Scott/1000 495.1 μs 505.6 μs +2.1%
sum/compiled-from-Haskell/sum-left-Scott/2500 1.629 ms 1.656 ms +1.7%
sum/compiled-from-Haskell/sum-left-Scott/5000 4.072 ms 4.144 ms +1.8%
sum/compiled-from-Haskell/sum-left-data/100 260.4 μs 236.8 μs -9.1%
sum/compiled-from-Haskell/sum-left-data/500 1.433 ms 1.294 ms -9.7%
sum/compiled-from-Haskell/sum-left-data/1000 3.246 ms 2.915 ms -10.2%
sum/compiled-from-Haskell/sum-left-data/2500 8.609 ms 7.845 ms -8.9%
sum/compiled-from-Haskell/sum-left-data/5000 18.35 ms 16.75 ms -8.7%
sum/hand-written-PLC/sum-right-builtin/100 52.08 μs 53.60 μs +2.9%
sum/hand-written-PLC/sum-right-builtin/500 262.7 μs 274.4 μs +4.5%
sum/hand-written-PLC/sum-right-builtin/1000 548.2 μs 566.6 μs +3.4%
sum/hand-written-PLC/sum-right-builtin/2500 1.582 ms 1.634 ms +3.3%
sum/hand-written-PLC/sum-right-builtin/5000 3.510 ms 3.617 ms +3.0%
sum/hand-written-PLC/sum-right-Scott/100 34.63 μs 34.80 μs +0.5%
sum/hand-written-PLC/sum-right-Scott/500 181.6 μs 185.9 μs +2.4%
sum/hand-written-PLC/sum-right-Scott/1000 406.7 μs 412.6 μs +1.5%
sum/hand-written-PLC/sum-right-Scott/2500 1.365 ms 1.371 ms +0.4%
sum/hand-written-PLC/sum-right-Scott/5000 4.126 ms 4.098 ms -0.7%
sum/hand-written-PLC/sum-left-builtin/100 56.56 μs 57.16 μs +1.1%
sum/hand-written-PLC/sum-left-builtin/500 280.2 μs 282.8 μs +0.9%
sum/hand-written-PLC/sum-left-builtin/1000 559.2 μs 560.1 μs +0.2%
sum/hand-written-PLC/sum-left-builtin/2500 1.391 ms 1.398 ms +0.5%
sum/hand-written-PLC/sum-left-builtin/5000 2.755 ms 2.777 ms +0.8%
sum/hand-written-PLC/sum-left-Scott/100 38.73 μs 38.76 μs +0.1%
sum/hand-written-PLC/sum-left-Scott/500 206.8 μs 211.9 μs +2.5%
sum/hand-written-PLC/sum-left-Scott/1000 462.1 μs 465.3 μs +0.7%
sum/hand-written-PLC/sum-left-Scott/2500 1.592 ms 1.599 ms +0.4%
sum/hand-written-PLC/sum-left-Scott/5000 4.448 ms 4.449 ms +0.0%
27d2bc3 c0df0c1 Change
TOTAL 329.3 ms 279.5 ms -15.1%

Copy link
Contributor

Click here to check the status of your benchmark.

Copy link
Contributor

Comparing benchmark results of 'lists' on '27d2bc3905' (base) and 'c0df0c158b' (PR)

Results table
Script 27d2bc3 c0df0c1 Change
sort/ghcSort/50 178.2 μs 145.7 μs -18.2%
sort/ghcSort/100 413.2 μs 335.3 μs -18.9%
sort/ghcSort/150 712.0 μs 577.6 μs -18.9%
sort/ghcSort/200 957.7 μs 771.1 μs -19.5%
sort/ghcSort/250 1.237 ms 1.002 ms -19.0%
sort/ghcSort/300 1.628 ms 1.318 ms -19.0%
sort/insertionSort/50 607.9 μs 463.0 μs -23.8%
sort/insertionSort/100 2.426 ms 1.845 ms -23.9%
sort/insertionSort/150 5.458 ms 4.132 ms -24.3%
sort/insertionSort/200 9.704 ms 7.366 ms -24.1%
sort/insertionSort/250 15.23 ms 11.55 ms -24.2%
sort/insertionSort/300 21.99 ms 16.69 ms -24.1%
sort/mergeSort/50 540.0 μs 454.2 μs -15.9%
sort/mergeSort/100 1.238 ms 1.042 ms -15.8%
sort/mergeSort/150 1.991 ms 1.668 ms -16.2%
sort/mergeSort/200 2.797 ms 2.355 ms -15.8%
sort/mergeSort/250 3.665 ms 3.089 ms -15.7%
sort/mergeSort/300 4.456 ms 3.759 ms -15.6%
sort/quickSort/50 1.407 ms 1.085 ms -22.9%
sort/quickSort/100 5.825 ms 4.593 ms -21.2%
sort/quickSort/150 13.08 ms 10.30 ms -21.3%
sort/quickSort/200 23.17 ms 18.34 ms -20.8%
sort/quickSort/250 36.49 ms 28.76 ms -21.2%
sort/quickSort/300 52.37 ms 41.55 ms -20.7%
sum/compiled-from-Haskell/sum-right-builtin/100 77.00 μs 77.53 μs +0.7%
sum/compiled-from-Haskell/sum-right-builtin/500 402.9 μs 406.0 μs +0.8%
sum/compiled-from-Haskell/sum-right-builtin/1000 858.2 μs 864.8 μs +0.8%
sum/compiled-from-Haskell/sum-right-builtin/2500 2.642 ms 2.666 ms +0.9%
sum/compiled-from-Haskell/sum-right-builtin/5000 5.710 ms 5.758 ms +0.8%
sum/compiled-from-Haskell/sum-right-Scott/100 43.41 μs 44.23 μs +1.9%
sum/compiled-from-Haskell/sum-right-Scott/500 230.7 μs 232.4 μs +0.7%
sum/compiled-from-Haskell/sum-right-Scott/1000 489.2 μs 498.7 μs +1.9%
sum/compiled-from-Haskell/sum-right-Scott/2500 1.713 ms 1.730 ms +1.0%
sum/compiled-from-Haskell/sum-right-Scott/5000 4.133 ms 4.160 ms +0.7%
sum/compiled-from-Haskell/sum-right-data/100 253.0 μs 213.0 μs -15.8%
sum/compiled-from-Haskell/sum-right-data/500 1.393 ms 1.159 ms -16.8%
sum/compiled-from-Haskell/sum-right-data/1000 3.170 ms 2.673 ms -15.7%
sum/compiled-from-Haskell/sum-right-data/2500 8.376 ms 7.367 ms -12.0%
sum/compiled-from-Haskell/sum-right-data/5000 17.85 ms 15.61 ms -12.5%
sum/compiled-from-Haskell/sum-left-builtin/100 74.85 μs 76.17 μs +1.8%
sum/compiled-from-Haskell/sum-left-builtin/500 390.2 μs 394.6 μs +1.1%
sum/compiled-from-Haskell/sum-left-builtin/1000 837.4 μs 848.8 μs +1.4%
sum/compiled-from-Haskell/sum-left-builtin/2500 2.569 ms 2.596 ms +1.1%
sum/compiled-from-Haskell/sum-left-builtin/5000 5.661 ms 5.725 ms +1.1%
sum/compiled-from-Haskell/sum-left-Scott/100 42.22 μs 43.38 μs +2.7%
sum/compiled-from-Haskell/sum-left-Scott/500 223.3 μs 228.4 μs +2.3%
sum/compiled-from-Haskell/sum-left-Scott/1000 490.2 μs 499.6 μs +1.9%
sum/compiled-from-Haskell/sum-left-Scott/2500 1.618 ms 1.637 ms +1.2%
sum/compiled-from-Haskell/sum-left-Scott/5000 4.024 ms 4.092 ms +1.7%
sum/compiled-from-Haskell/sum-left-data/100 256.9 μs 232.9 μs -9.3%
sum/compiled-from-Haskell/sum-left-data/500 1.420 ms 1.282 ms -9.7%
sum/compiled-from-Haskell/sum-left-data/1000 3.199 ms 2.889 ms -9.7%
sum/compiled-from-Haskell/sum-left-data/2500 8.522 ms 7.773 ms -8.8%
sum/compiled-from-Haskell/sum-left-data/5000 18.10 ms 16.59 ms -8.3%
sum/hand-written-PLC/sum-right-builtin/100 52.25 μs 53.82 μs +3.0%
sum/hand-written-PLC/sum-right-builtin/500 262.3 μs 270.4 μs +3.1%
sum/hand-written-PLC/sum-right-builtin/1000 538.7 μs 559.6 μs +3.9%
sum/hand-written-PLC/sum-right-builtin/2500 1.572 ms 1.618 ms +2.9%
sum/hand-written-PLC/sum-right-builtin/5000 3.484 ms 3.567 ms +2.4%
sum/hand-written-PLC/sum-right-Scott/100 34.26 μs 34.56 μs +0.9%
sum/hand-written-PLC/sum-right-Scott/500 180.2 μs 184.3 μs +2.3%
sum/hand-written-PLC/sum-right-Scott/1000 403.0 μs 408.7 μs +1.4%
sum/hand-written-PLC/sum-right-Scott/2500 1.356 ms 1.360 ms +0.3%
sum/hand-written-PLC/sum-right-Scott/5000 4.088 ms 4.103 ms +0.4%
sum/hand-written-PLC/sum-left-builtin/100 55.40 μs 57.21 μs +3.3%
sum/hand-written-PLC/sum-left-builtin/500 274.7 μs 280.7 μs +2.2%
sum/hand-written-PLC/sum-left-builtin/1000 547.1 μs 557.6 μs +1.9%
sum/hand-written-PLC/sum-left-builtin/2500 1.363 ms 1.387 ms +1.8%
sum/hand-written-PLC/sum-left-builtin/5000 2.714 ms 2.760 ms +1.7%
sum/hand-written-PLC/sum-left-Scott/100 37.67 μs 38.47 μs +2.1%
sum/hand-written-PLC/sum-left-Scott/500 205.9 μs 210.8 μs +2.4%
sum/hand-written-PLC/sum-left-Scott/1000 456.2 μs 466.3 μs +2.2%
sum/hand-written-PLC/sum-left-Scott/2500 1.578 ms 1.594 ms +1.0%
sum/hand-written-PLC/sum-left-Scott/5000 4.401 ms 4.446 ms +1.0%
27d2bc3 c0df0c1 Change
TOTAL 325.9 ms 275.5 ms -15.5%

@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from c0df0c1 to 06d1a16 Compare April 14, 2025 22:41
…to effectfully/builtins/allow-casing-on-booleans
@effectfully
Copy link
Contributor Author

/benchmark lists

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'nofib' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
clausify/formula1 2.245 ms 2.097 ms -6.6%
clausify/formula2 3.023 ms 2.806 ms -7.2%
clausify/formula3 8.351 ms 7.762 ms -7.1%
clausify/formula4 17.80 ms 15.95 ms -10.4%
clausify/formula5 40.62 ms 37.44 ms -7.8%
knights/4x4 15.28 ms 12.94 ms -15.3%
knights/6x6 36.36 ms 31.26 ms -14.0%
knights/8x8 63.21 ms 54.16 ms -14.3%
primetest/05digits 5.462 ms 4.828 ms -11.6%
primetest/10digits 10.78 ms 9.512 ms -11.8%
primetest/30digits 31.47 ms 28.11 ms -10.7%
primetest/50digits 50.62 ms 45.95 ms -9.2%
queens4x4/bt 4.166 ms 3.709 ms -11.0%
queens4x4/bm 5.186 ms 4.729 ms -8.8%
queens4x4/bjbt1 4.963 ms 4.472 ms -9.9%
queens4x4/bjbt2 4.690 ms 4.187 ms -10.7%
queens4x4/fc 10.19 ms 9.333 ms -8.4%
queens5x5/bt 57.76 ms 50.76 ms -12.1%
queens5x5/bm 58.44 ms 54.29 ms -7.1%
queens5x5/bjbt1 66.63 ms 59.13 ms -11.3%
queens5x5/bjbt2 64.87 ms 57.40 ms -11.5%
queens5x5/fc 129.3 ms 117.3 ms -9.3%
40b3e8c 5f34838 Change
TOTAL 691.4 ms 618.1 ms -10.6%

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'nofib' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
clausify/formula1 2.241 ms 2.096 ms -6.5%
clausify/formula2 3.028 ms 2.816 ms -7.0%
clausify/formula3 8.327 ms 7.734 ms -7.1%
clausify/formula4 17.78 ms 15.91 ms -10.5%
clausify/formula5 40.43 ms 37.35 ms -7.6%
knights/4x4 15.19 ms 12.89 ms -15.1%
knights/6x6 36.82 ms 31.35 ms -14.9%
knights/8x8 63.24 ms 54.23 ms -14.2%
primetest/05digits 5.531 ms 4.828 ms -12.7%
primetest/10digits 10.71 ms 9.534 ms -11.0%
primetest/30digits 31.36 ms 28.15 ms -10.2%
primetest/50digits 50.58 ms 45.94 ms -9.2%
queens4x4/bt 4.155 ms 3.719 ms -10.5%
queens4x4/bm 5.149 ms 4.728 ms -8.2%
queens4x4/bjbt1 4.948 ms 4.480 ms -9.5%
queens4x4/bjbt2 4.676 ms 4.189 ms -10.4%
queens4x4/fc 10.20 ms 9.336 ms -8.5%
queens5x5/bt 57.62 ms 50.64 ms -12.1%
queens5x5/bm 58.36 ms 54.33 ms -6.9%
queens5x5/bjbt1 66.44 ms 59.16 ms -11.0%
queens5x5/bjbt2 64.68 ms 57.24 ms -11.5%
queens5x5/fc 129.0 ms 117.4 ms -9.0%
40b3e8c 5f34838 Change
TOTAL 690.5 ms 618.0 ms -10.5%

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'lists' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
sort/ghcSort/50 182.2 μs 150.8 μs -17.2%
sort/ghcSort/100 423.7 μs 347.5 μs -18.0%
sort/ghcSort/150 735.6 μs 596.0 μs -19.0%
sort/ghcSort/200 987.0 μs 802.4 μs -18.7%
sort/ghcSort/250 1.281 ms 1.043 ms -18.6%
sort/ghcSort/300 1.682 ms 1.369 ms -18.6%
sort/insertionSort/50 613.1 μs 475.2 μs -22.5%
sort/insertionSort/100 2.446 ms 1.888 ms -22.8%
sort/insertionSort/150 5.516 ms 4.240 ms -23.1%
sort/insertionSort/200 9.846 ms 7.573 ms -23.1%
sort/insertionSort/250 15.49 ms 11.85 ms -23.5%
sort/insertionSort/300 22.37 ms 17.13 ms -23.4%
sort/mergeSort/50 555.3 μs 453.9 μs -18.3%
sort/mergeSort/100 1.273 ms 1.046 ms -17.8%
sort/mergeSort/150 2.045 ms 1.686 ms -17.6%
sort/mergeSort/200 2.884 ms 2.366 ms -18.0%
sort/mergeSort/250 3.765 ms 3.097 ms -17.7%
sort/mergeSort/300 4.582 ms 3.773 ms -17.7%
sort/quickSort/50 1.472 ms 1.124 ms -23.6%
sort/quickSort/100 6.043 ms 4.731 ms -21.7%
sort/quickSort/150 13.62 ms 10.57 ms -22.4%
sort/quickSort/200 24.13 ms 18.74 ms -22.3%
sort/quickSort/250 37.89 ms 29.47 ms -22.2%
sort/quickSort/300 54.94 ms 42.78 ms -22.1%
sum/compiled-from-Haskell/sum-right-builtin/100 83.15 μs 80.66 μs -3.0%
sum/compiled-from-Haskell/sum-right-builtin/500 435.4 μs 420.6 μs -3.4%
sum/compiled-from-Haskell/sum-right-builtin/1000 933.7 μs 903.2 μs -3.3%
sum/compiled-from-Haskell/sum-right-builtin/2500 2.854 ms 2.775 ms -2.8%
sum/compiled-from-Haskell/sum-right-builtin/5000 6.170 ms 6.008 ms -2.6%
sum/compiled-from-Haskell/sum-right-Scott/100 48.32 μs 46.45 μs -3.9%
sum/compiled-from-Haskell/sum-right-Scott/500 259.7 μs 247.0 μs -4.9%
sum/compiled-from-Haskell/sum-right-Scott/1000 560.3 μs 540.2 μs -3.6%
sum/compiled-from-Haskell/sum-right-Scott/2500 1.951 ms 1.889 ms -3.2%
sum/compiled-from-Haskell/sum-right-Scott/5000 4.412 ms 4.282 ms -2.9%
sum/compiled-from-Haskell/sum-right-data/100 263.2 μs 215.3 μs -18.2%
sum/compiled-from-Haskell/sum-right-data/500 1.454 ms 1.190 ms -18.2%
sum/compiled-from-Haskell/sum-right-data/1000 3.257 ms 2.724 ms -16.4%
sum/compiled-from-Haskell/sum-right-data/2500 8.723 ms 7.449 ms -14.6%
sum/compiled-from-Haskell/sum-right-data/5000 18.29 ms 15.75 ms -13.9%
sum/compiled-from-Haskell/sum-left-builtin/100 83.61 μs 80.03 μs -4.3%
sum/compiled-from-Haskell/sum-left-builtin/500 429.7 μs 409.6 μs -4.7%
sum/compiled-from-Haskell/sum-left-builtin/1000 931.9 μs 886.2 μs -4.9%
sum/compiled-from-Haskell/sum-left-builtin/2500 2.821 ms 2.711 ms -3.9%
sum/compiled-from-Haskell/sum-left-builtin/5000 6.215 ms 5.957 ms -4.2%
sum/compiled-from-Haskell/sum-left-Scott/100 48.20 μs 43.75 μs -9.2%
sum/compiled-from-Haskell/sum-left-Scott/500 257.6 μs 235.8 μs -8.5%
sum/compiled-from-Haskell/sum-left-Scott/1000 563.1 μs 520.3 μs -7.6%
sum/compiled-from-Haskell/sum-left-Scott/2500 1.907 ms 1.798 ms -5.7%
sum/compiled-from-Haskell/sum-left-Scott/5000 4.352 ms 4.141 ms -4.8%
sum/compiled-from-Haskell/sum-left-data/100 270.1 μs 231.2 μs -14.4%
sum/compiled-from-Haskell/sum-left-data/500 1.524 ms 1.323 ms -13.2%
sum/compiled-from-Haskell/sum-left-data/1000 3.371 ms 2.810 ms -16.6%
sum/compiled-from-Haskell/sum-left-data/2500 8.973 ms 7.938 ms -11.5%
sum/compiled-from-Haskell/sum-left-data/5000 18.63 ms 16.71 ms -10.3%
sum/hand-written-PLC/sum-right-builtin/100 56.02 μs 55.68 μs -0.6%
sum/hand-written-PLC/sum-right-builtin/500 287.3 μs 282.0 μs -1.8%
sum/hand-written-PLC/sum-right-builtin/1000 592.1 μs 582.6 μs -1.6%
sum/hand-written-PLC/sum-right-builtin/2500 1.730 ms 1.700 ms -1.7%
sum/hand-written-PLC/sum-right-builtin/5000 3.775 ms 3.701 ms -2.0%
sum/hand-written-PLC/sum-right-Scott/100 38.09 μs 36.30 μs -4.7%
sum/hand-written-PLC/sum-right-Scott/500 205.4 μs 196.1 μs -4.5%
sum/hand-written-PLC/sum-right-Scott/1000 443.2 μs 423.6 μs -4.4%
sum/hand-written-PLC/sum-right-Scott/2500 1.626 ms 1.571 ms -3.4%
sum/hand-written-PLC/sum-right-Scott/5000 4.558 ms 4.438 ms -2.6%
sum/hand-written-PLC/sum-left-builtin/100 62.41 μs 58.77 μs -5.8%
sum/hand-written-PLC/sum-left-builtin/500 310.2 μs 289.9 μs -6.5%
sum/hand-written-PLC/sum-left-builtin/1000 620.2 μs 577.5 μs -6.9%
sum/hand-written-PLC/sum-left-builtin/2500 1.537 ms 1.434 ms -6.7%
sum/hand-written-PLC/sum-left-builtin/5000 3.061 ms 2.858 ms -6.6%
sum/hand-written-PLC/sum-left-Scott/100 41.18 μs 39.09 μs -5.1%
sum/hand-written-PLC/sum-left-Scott/500 223.8 μs 218.4 μs -2.4%
sum/hand-written-PLC/sum-left-Scott/1000 504.9 μs 489.4 μs -3.1%
sum/hand-written-PLC/sum-left-Scott/2500 1.833 ms 1.792 ms -2.2%
sum/hand-written-PLC/sum-left-Scott/5000 4.638 ms 4.568 ms -1.5%
40b3e8c 5f34838 Change
TOTAL 341.0 ms 282.9 ms -17.0%

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'lists' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
sort/ghcSort/50 182.2 μs 150.5 μs -17.4%
sort/ghcSort/100 423.9 μs 346.1 μs -18.4%
sort/ghcSort/150 737.0 μs 593.7 μs -19.4%
sort/ghcSort/200 989.8 μs 799.8 μs -19.2%
sort/ghcSort/250 1.285 ms 1.040 ms -19.1%
sort/ghcSort/300 1.686 ms 1.360 ms -19.3%
sort/insertionSort/50 614.3 μs 469.7 μs -23.5%
sort/insertionSort/100 2.449 ms 1.866 ms -23.8%
sort/insertionSort/150 5.519 ms 4.180 ms -24.3%
sort/insertionSort/200 9.847 ms 7.439 ms -24.5%
sort/insertionSort/250 15.44 ms 11.67 ms -24.4%
sort/insertionSort/300 22.32 ms 16.92 ms -24.2%
sort/mergeSort/50 549.8 μs 453.0 μs -17.6%
sort/mergeSort/100 1.267 ms 1.038 ms -18.1%
sort/mergeSort/150 2.032 ms 1.687 ms -17.0%
sort/mergeSort/200 2.862 ms 2.357 ms -17.6%
sort/mergeSort/250 3.746 ms 3.090 ms -17.5%
sort/mergeSort/300 4.560 ms 3.777 ms -17.2%
sort/quickSort/50 1.471 ms 1.117 ms -24.1%
sort/quickSort/100 6.043 ms 4.708 ms -22.1%
sort/quickSort/150 13.61 ms 10.58 ms -22.3%
sort/quickSort/200 24.08 ms 18.69 ms -22.4%
sort/quickSort/250 37.84 ms 29.32 ms -22.5%
sort/quickSort/300 54.89 ms 42.57 ms -22.4%
sum/compiled-from-Haskell/sum-right-builtin/100 82.16 μs 81.05 μs -1.4%
sum/compiled-from-Haskell/sum-right-builtin/500 429.6 μs 422.8 μs -1.6%
sum/compiled-from-Haskell/sum-right-builtin/1000 921.2 μs 907.6 μs -1.5%
sum/compiled-from-Haskell/sum-right-builtin/2500 2.814 ms 2.788 ms -0.9%
sum/compiled-from-Haskell/sum-right-builtin/5000 6.095 ms 6.021 ms -1.2%
sum/compiled-from-Haskell/sum-right-Scott/100 47.14 μs 46.30 μs -1.8%
sum/compiled-from-Haskell/sum-right-Scott/500 252.6 μs 248.9 μs -1.5%
sum/compiled-from-Haskell/sum-right-Scott/1000 547.8 μs 541.6 μs -1.1%
sum/compiled-from-Haskell/sum-right-Scott/2500 1.921 ms 1.889 ms -1.7%
sum/compiled-from-Haskell/sum-right-Scott/5000 4.347 ms 4.281 ms -1.5%
sum/compiled-from-Haskell/sum-right-data/100 260.4 μs 215.9 μs -17.1%
sum/compiled-from-Haskell/sum-right-data/500 1.445 ms 1.186 ms -17.9%
sum/compiled-from-Haskell/sum-right-data/1000 3.245 ms 2.720 ms -16.2%
sum/compiled-from-Haskell/sum-right-data/2500 8.702 ms 7.441 ms -14.5%
sum/compiled-from-Haskell/sum-right-data/5000 18.26 ms 15.71 ms -14.0%
sum/compiled-from-Haskell/sum-left-builtin/100 81.36 μs 79.86 μs -1.8%
sum/compiled-from-Haskell/sum-left-builtin/500 416.1 μs 410.8 μs -1.3%
sum/compiled-from-Haskell/sum-left-builtin/1000 900.2 μs 886.5 μs -1.5%
sum/compiled-from-Haskell/sum-left-builtin/2500 2.755 ms 2.718 ms -1.3%
sum/compiled-from-Haskell/sum-left-builtin/5000 6.065 ms 5.972 ms -1.5%
sum/compiled-from-Haskell/sum-left-Scott/100 44.97 μs 43.57 μs -3.1%
sum/compiled-from-Haskell/sum-left-Scott/500 243.1 μs 236.3 μs -2.8%
sum/compiled-from-Haskell/sum-left-Scott/1000 533.5 μs 519.4 μs -2.6%
sum/compiled-from-Haskell/sum-left-Scott/2500 1.846 ms 1.802 ms -2.4%
sum/compiled-from-Haskell/sum-left-Scott/5000 4.249 ms 4.156 ms -2.2%
sum/compiled-from-Haskell/sum-left-data/100 266.1 μs 232.4 μs -12.7%
sum/compiled-from-Haskell/sum-left-data/500 1.481 ms 1.332 ms -10.1%
sum/compiled-from-Haskell/sum-left-data/1000 3.325 ms 2.827 ms -15.0%
sum/compiled-from-Haskell/sum-left-data/2500 8.900 ms 7.958 ms -10.6%
sum/compiled-from-Haskell/sum-left-data/5000 18.53 ms 16.77 ms -9.5%
sum/hand-written-PLC/sum-right-builtin/100 56.46 μs 54.57 μs -3.3%
sum/hand-written-PLC/sum-right-builtin/500 284.4 μs 274.4 μs -3.5%
sum/hand-written-PLC/sum-right-builtin/1000 588.7 μs 570.7 μs -3.1%
sum/hand-written-PLC/sum-right-builtin/2500 1.725 ms 1.670 ms -3.2%
sum/hand-written-PLC/sum-right-builtin/5000 3.764 ms 3.643 ms -3.2%
sum/hand-written-PLC/sum-right-Scott/100 37.95 μs 35.62 μs -6.1%
sum/hand-written-PLC/sum-right-Scott/500 204.5 μs 196.1 μs -4.1%
sum/hand-written-PLC/sum-right-Scott/1000 440.0 μs 423.4 μs -3.8%
sum/hand-written-PLC/sum-right-Scott/2500 1.624 ms 1.572 ms -3.2%
sum/hand-written-PLC/sum-right-Scott/5000 4.548 ms 4.452 ms -2.1%
sum/hand-written-PLC/sum-left-builtin/100 59.63 μs 57.11 μs -4.2%
sum/hand-written-PLC/sum-left-builtin/500 295.7 μs 283.2 μs -4.2%
sum/hand-written-PLC/sum-left-builtin/1000 591.1 μs 565.8 μs -4.3%
sum/hand-written-PLC/sum-left-builtin/2500 1.464 ms 1.406 ms -4.0%
sum/hand-written-PLC/sum-left-builtin/5000 2.918 ms 2.806 ms -3.8%
sum/hand-written-PLC/sum-left-Scott/100 40.75 μs 39.79 μs -2.4%
sum/hand-written-PLC/sum-left-Scott/500 225.5 μs 216.9 μs -3.8%
sum/hand-written-PLC/sum-left-Scott/1000 505.2 μs 488.7 μs -3.3%
sum/hand-written-PLC/sum-left-Scott/2500 1.835 ms 1.797 ms -2.1%
sum/hand-written-PLC/sum-left-Scott/5000 4.653 ms 4.571 ms -1.8%
40b3e8c 5f34838 Change
TOTAL 339.3 ms 281.8 ms -17.0%

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'lists' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
sort/ghcSort/50 181.9 μs 149.6 μs -17.8%
sort/ghcSort/100 421.2 μs 345.5 μs -18.0%
sort/ghcSort/150 733.6 μs 591.7 μs -19.3%
sort/ghcSort/200 983.0 μs 797.4 μs -18.9%
sort/ghcSort/250 1.275 ms 1.037 ms -18.7%
sort/ghcSort/300 1.678 ms 1.362 ms -18.8%
sort/insertionSort/50 612.8 μs 469.9 μs -23.3%
sort/insertionSort/100 2.451 ms 1.867 ms -23.8%
sort/insertionSort/150 5.513 ms 4.171 ms -24.3%
sort/insertionSort/200 9.829 ms 7.466 ms -24.0%
sort/insertionSort/250 15.36 ms 11.70 ms -23.8%
sort/insertionSort/300 22.23 ms 16.93 ms -23.8%
sort/mergeSort/50 547.8 μs 450.0 μs -17.9%
sort/mergeSort/100 1.265 ms 1.031 ms -18.5%
sort/mergeSort/150 2.018 ms 1.666 ms -17.4%
sort/mergeSort/200 2.854 ms 2.340 ms -18.0%
sort/mergeSort/250 3.723 ms 3.071 ms -17.5%
sort/mergeSort/300 4.533 ms 3.733 ms -17.6%
sort/quickSort/50 1.463 ms 1.112 ms -24.0%
sort/quickSort/100 5.995 ms 4.701 ms -21.6%
sort/quickSort/150 13.52 ms 10.54 ms -22.0%
sort/quickSort/200 23.99 ms 18.60 ms -22.5%
sort/quickSort/250 37.69 ms 29.27 ms -22.3%
sort/quickSort/300 54.54 ms 42.56 ms -22.0%
sum/compiled-from-Haskell/sum-right-builtin/100 81.38 μs 80.53 μs -1.0%
sum/compiled-from-Haskell/sum-right-builtin/500 426.7 μs 419.2 μs -1.8%
sum/compiled-from-Haskell/sum-right-builtin/1000 914.6 μs 903.2 μs -1.2%
sum/compiled-from-Haskell/sum-right-builtin/2500 2.802 ms 2.768 ms -1.2%
sum/compiled-from-Haskell/sum-right-builtin/5000 6.078 ms 5.995 ms -1.4%
sum/compiled-from-Haskell/sum-right-Scott/100 46.84 μs 46.04 μs -1.7%
sum/compiled-from-Haskell/sum-right-Scott/500 251.8 μs 247.5 μs -1.7%
sum/compiled-from-Haskell/sum-right-Scott/1000 549.2 μs 540.0 μs -1.7%
sum/compiled-from-Haskell/sum-right-Scott/2500 1.915 ms 1.889 ms -1.4%
sum/compiled-from-Haskell/sum-right-Scott/5000 4.344 ms 4.277 ms -1.5%
sum/compiled-from-Haskell/sum-right-data/100 259.0 μs 215.2 μs -16.9%
sum/compiled-from-Haskell/sum-right-data/500 1.432 ms 1.183 ms -17.4%
sum/compiled-from-Haskell/sum-right-data/1000 3.234 ms 2.698 ms -16.6%
sum/compiled-from-Haskell/sum-right-data/2500 8.666 ms 7.418 ms -14.4%
sum/compiled-from-Haskell/sum-right-data/5000 18.15 ms 15.67 ms -13.7%
sum/compiled-from-Haskell/sum-left-builtin/100 80.61 μs 81.98 μs +1.7%
sum/compiled-from-Haskell/sum-left-builtin/500 413.4 μs 419.9 μs +1.6%
sum/compiled-from-Haskell/sum-left-builtin/1000 894.9 μs 901.4 μs +0.7%
sum/compiled-from-Haskell/sum-left-builtin/2500 2.741 ms 2.758 ms +0.6%
sum/compiled-from-Haskell/sum-left-builtin/5000 6.043 ms 6.062 ms +0.3%
sum/compiled-from-Haskell/sum-left-Scott/100 45.24 μs 43.56 μs -3.7%
sum/compiled-from-Haskell/sum-left-Scott/500 244.1 μs 235.3 μs -3.6%
sum/compiled-from-Haskell/sum-left-Scott/1000 535.2 μs 517.2 μs -3.4%
sum/compiled-from-Haskell/sum-left-Scott/2500 1.839 ms 1.792 ms -2.6%
sum/compiled-from-Haskell/sum-left-Scott/5000 4.257 ms 4.109 ms -3.5%
sum/compiled-from-Haskell/sum-left-data/100 264.7 μs 232.7 μs -12.1%
sum/compiled-from-Haskell/sum-left-data/500 1.475 ms 1.323 ms -10.3%
sum/compiled-from-Haskell/sum-left-data/1000 3.295 ms 2.815 ms -14.6%
sum/compiled-from-Haskell/sum-left-data/2500 8.844 ms 7.962 ms -10.0%
sum/compiled-from-Haskell/sum-left-data/5000 18.39 ms 16.74 ms -9.0%
sum/hand-written-PLC/sum-right-builtin/100 55.55 μs 53.89 μs -3.0%
sum/hand-written-PLC/sum-right-builtin/500 284.8 μs 275.8 μs -3.2%
sum/hand-written-PLC/sum-right-builtin/1000 585.1 μs 569.5 μs -2.7%
sum/hand-written-PLC/sum-right-builtin/2500 1.721 ms 1.665 ms -3.3%
sum/hand-written-PLC/sum-right-builtin/5000 3.728 ms 3.628 ms -2.7%
sum/hand-written-PLC/sum-right-Scott/100 37.42 μs 35.80 μs -4.3%
sum/hand-written-PLC/sum-right-Scott/500 200.7 μs 195.8 μs -2.4%
sum/hand-written-PLC/sum-right-Scott/1000 435.2 μs 423.5 μs -2.7%
sum/hand-written-PLC/sum-right-Scott/2500 1.604 ms 1.568 ms -2.2%
sum/hand-written-PLC/sum-right-Scott/5000 4.527 ms 4.431 ms -2.1%
sum/hand-written-PLC/sum-left-builtin/100 60.01 μs 56.99 μs -5.0%
sum/hand-written-PLC/sum-left-builtin/500 294.5 μs 283.1 μs -3.9%
sum/hand-written-PLC/sum-left-builtin/1000 587.1 μs 565.4 μs -3.7%
sum/hand-written-PLC/sum-left-builtin/2500 1.457 ms 1.403 ms -3.7%
sum/hand-written-PLC/sum-left-builtin/5000 2.899 ms 2.793 ms -3.7%
sum/hand-written-PLC/sum-left-Scott/100 40.19 μs 39.69 μs -1.2%
sum/hand-written-PLC/sum-left-Scott/500 221.9 μs 216.9 μs -2.3%
sum/hand-written-PLC/sum-left-Scott/1000 501.7 μs 486.1 μs -3.1%
sum/hand-written-PLC/sum-left-Scott/2500 1.818 ms 1.791 ms -1.5%
sum/hand-written-PLC/sum-left-Scott/5000 4.631 ms 4.555 ms -1.6%
40b3e8c 5f34838 Change
TOTAL 337.6 ms 281.3 ms -16.7%

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Click here to check the status of your benchmark.

Copy link
Contributor

github-actions bot commented Jun 5, 2025

Comparing benchmark results of 'nofib' on '40b3e8c4d' (base) and '5f3483866' (PR)

Results table
Script 40b3e8c 5f34838 Change
clausify/formula1 2.261 ms 2.097 ms -7.3%
clausify/formula2 3.050 ms 2.817 ms -7.6%
clausify/formula3 8.396 ms 7.726 ms -8.0%
clausify/formula4 17.95 ms 15.93 ms -11.3%
clausify/formula5 40.86 ms 37.38 ms -8.5%
knights/4x4 15.26 ms 12.97 ms -15.0%
knights/6x6 36.93 ms 31.31 ms -15.2%
knights/8x8 64.09 ms 54.22 ms -15.4%
primetest/05digits 5.535 ms 4.819 ms -12.9%
primetest/10digits 11.09 ms 9.533 ms -14.0%
primetest/30digits 31.58 ms 28.05 ms -11.2%
primetest/50digits 51.31 ms 46.01 ms -10.3%
queens4x4/bt 4.186 ms 3.714 ms -11.3%
queens4x4/bm 5.193 ms 4.729 ms -8.9%
queens4x4/bjbt1 4.988 ms 4.476 ms -10.3%
queens4x4/bjbt2 4.722 ms 4.180 ms -11.5%
queens4x4/fc 10.25 ms 9.334 ms -8.9%
queens5x5/bt 58.06 ms 50.74 ms -12.6%
queens5x5/bm 58.93 ms 54.24 ms -8.0%
queens5x5/bjbt1 67.01 ms 59.03 ms -11.9%
queens5x5/bjbt2 65.04 ms 57.21 ms -12.0%
queens5x5/fc 129.9 ms 117.5 ms -9.5%
40b3e8c 5f34838 Change
TOTAL 696.6 ms 618.0 ms -11.3%

@effectfully
Copy link
Contributor Author

Performance looks pretty much unaffected.

Copy link
Member

@zliu41 zliu41 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment, otherwise looks good.

-- this type isn't supported at all).
caseBuiltin :: UniOf term ~ uni => Some (ValueOf uni) -> Vector term -> Either Text term

data CaserBuiltin uni = CaserBuiltin
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems CaserBuiltin should render the CaseBuiltin class superfluous, since an instance of CaseBuiltin can just be represented with a CaserBuiltin value?

Also, why not newtype?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do use CaseBuiltin as an actual constraint

image

Also, why not newtype?

See this for a similar case.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do use CaseBuiltin as an actual constraint

Ok, so Case is used to define how a universe normally handles casing on builtins, and Caser exists so that it can vary based on protocol version. I guess that's fine, but not easy to tell, and their similar names don't help.

See this for a similar case.

Create a Note and link to it?

Copy link
Member

@zliu41 zliu41 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This overall looks great. Very nice improvement to the language.

-- this type isn't supported at all).
caseBuiltin :: UniOf term ~ uni => Some (ValueOf uni) -> Vector term -> Either Text term

data CaserBuiltin uni = CaserBuiltin
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do use CaseBuiltin as an actual constraint

Ok, so Case is used to define how a universe normally handles casing on builtins, and Caser exists so that it can vary based on protocol version. I guess that's fine, but not easy to tell, and their similar names don't help.

See this for a similar case.

Create a Note and link to it?

@kwxm
Copy link
Contributor

kwxm commented Jun 10, 2025

I'll review this soon so that I actually have some idea of what's going on.

If we're committed to releasing this then there are some other things that'll need to be done:

  • Do we have to worry about costing? I guess it'll just be the standard machine step cost but we should think about that.
  • Specification
  • Metatheory
  • More conformance tests? We'll need to make sure that case works on all the things that it's supposed to.
  • End-to-end tests.

@effectfully effectfully force-pushed the effectfully/builtins/allow-casing-on-booleans branch from 5f34838 to 2748dbb Compare June 10, 2025 14:05
…to effectfully/builtins/allow-casing-on-booleans
Copy link
Contributor

github-actions bot commented Jun 11, 2025

PR Preview Action v1.6.1

🚀 View preview at
https://IntersectMBO.github.io/plutus/pr-preview/pr-7029/

Built to branch gh-pages at 2025-06-11 19:00 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants