diff --git a/.output/actual/examples/zot/eval/output/asciiOff/lambda/flipPrint10101010.output b/.output/actual/examples/zot/eval/output/asciiOff/calculus/flipPrint10101010.output similarity index 100% rename from .output/actual/examples/zot/eval/output/asciiOff/lambda/flipPrint10101010.output rename to .output/actual/examples/zot/eval/output/asciiOff/calculus/flipPrint10101010.output diff --git a/.output/actual/examples/zot/eval/output/asciiOff/lambda/id10101010.output b/.output/actual/examples/zot/eval/output/asciiOff/calculus/id10101010.output similarity index 100% rename from .output/actual/examples/zot/eval/output/asciiOff/lambda/id10101010.output rename to .output/actual/examples/zot/eval/output/asciiOff/calculus/id10101010.output diff --git a/.output/actual/examples/zot/eval/output/asciiOff/lambda/print310101010.output b/.output/actual/examples/zot/eval/output/asciiOff/calculus/print310101010.output similarity index 100% rename from .output/actual/examples/zot/eval/output/asciiOff/lambda/print310101010.output rename to .output/actual/examples/zot/eval/output/asciiOff/calculus/print310101010.output diff --git a/.output/actual/examples/zot/eval/output/asciiOff/lambda/reverse10101010.output b/.output/actual/examples/zot/eval/output/asciiOff/calculus/reverse10101010.output similarity index 100% rename from .output/actual/examples/zot/eval/output/asciiOff/lambda/reverse10101010.output rename to .output/actual/examples/zot/eval/output/asciiOff/calculus/reverse10101010.output diff --git a/.output/actual/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output b/.output/actual/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/actual/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output and /dev/null differ diff --git a/.output/actual/examples/zot/eval/output/asciiOn/lambda/id10101010.output b/.output/actual/examples/zot/eval/output/asciiOn/lambda/id10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/actual/examples/zot/eval/output/asciiOn/lambda/id10101010.output and /dev/null differ diff --git a/.output/actual/examples/zot/eval/output/asciiOn/lambda/print310101010.output b/.output/actual/examples/zot/eval/output/asciiOn/lambda/print310101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/actual/examples/zot/eval/output/asciiOn/lambda/print310101010.output and /dev/null differ diff --git a/.output/actual/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output b/.output/actual/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output deleted file mode 100644 index 4d52c5228..000000000 --- a/.output/actual/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ - Œ Œ Œ Œ \ No newline at end of file diff --git a/.output/golden/examples/lambda/eval/output/asciiOn/flipPrint10101010.output b/.output/golden/examples/lambda/eval/output/asciiOn/flipPrint10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/lambda/eval/output/asciiOn/flipPrint10101010.output and /dev/null differ diff --git a/.output/golden/examples/lambda/eval/output/asciiOn/id10101010.output b/.output/golden/examples/lambda/eval/output/asciiOn/id10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/lambda/eval/output/asciiOn/id10101010.output and /dev/null differ diff --git a/.output/golden/examples/lambda/eval/output/asciiOn/print310101010.output b/.output/golden/examples/lambda/eval/output/asciiOn/print310101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/lambda/eval/output/asciiOn/print310101010.output and /dev/null differ diff --git a/.output/golden/examples/lambda/eval/output/asciiOn/reverse10101010.output b/.output/golden/examples/lambda/eval/output/asciiOn/reverse10101010.output deleted file mode 100644 index 4d52c5228..000000000 --- a/.output/golden/examples/lambda/eval/output/asciiOn/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ - Œ Œ Œ Œ \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/lambda/flipPrint.lambda b/.output/golden/examples/lambda/lambda/lambda/flipPrint.lambda deleted file mode 100644 index c4ffa3e91..000000000 --- a/.output/golden/examples/lambda/lambda/lambda/flipPrint.lambda +++ /dev/null @@ -1 +0,0 @@ -\c1 c2 x print -> print c2 c1 \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/lambda/id.lambda b/.output/golden/examples/lambda/lambda/lambda/id.lambda deleted file mode 100644 index d76178d9a..000000000 --- a/.output/golden/examples/lambda/lambda/lambda/id.lambda +++ /dev/null @@ -1 +0,0 @@ -\c x print -> print c \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/lambda/print3.lambda b/.output/golden/examples/lambda/lambda/lambda/print3.lambda deleted file mode 100644 index a1a189e64..000000000 --- a/.output/golden/examples/lambda/lambda/lambda/print3.lambda +++ /dev/null @@ -1 +0,0 @@ -\c1 c2 c3 x print -> print c1 c2 c3 \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/lambda/rev.lambda b/.output/golden/examples/lambda/lambda/lambda/rev.lambda deleted file mode 100644 index 971377802..000000000 --- a/.output/golden/examples/lambda/lambda/lambda/rev.lambda +++ /dev/null @@ -1 +0,0 @@ -(\x -> x x (\x -> x)) (\self remainder c -> c (\x -> x) (\x -> x) (\x -> x) (\x y -> x) (self self) (self self) (\print -> remainder (print c))) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/lambda/reverse.lambda b/.output/golden/examples/lambda/lambda/lambda/reverse.lambda deleted file mode 100644 index 14f80cf18..000000000 --- a/.output/golden/examples/lambda/lambda/lambda/reverse.lambda +++ /dev/null @@ -1 +0,0 @@ -\c -> (\x -> c (\x -> x) (\x -> x) (\x -> x) (\x y -> x) x x (\x -> x)) (\ignore -> (\y -> y (\p -> p c) y) (\r s c -> c (\x -> x) (\x -> x) (\x -> x) (\x y -> x) (\ignore -> s (\p -> r (p c)) s) (\ignore -> s (\p -> r (p c)) s) r)) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/ski/flipPrint.lambda b/.output/golden/examples/lambda/lambda/ski/flipPrint.lambda deleted file mode 100644 index 92fc418a0..000000000 --- a/.output/golden/examples/lambda/lambda/ski/flipPrint.lambda +++ /dev/null @@ -1 +0,0 @@ -S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/ski/id.lambda b/.output/golden/examples/lambda/lambda/ski/id.lambda deleted file mode 100644 index 08e543c6a..000000000 --- a/.output/golden/examples/lambda/lambda/ski/id.lambda +++ /dev/null @@ -1 +0,0 @@ -S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/ski/print3.lambda b/.output/golden/examples/lambda/lambda/ski/print3.lambda deleted file mode 100644 index d9012eefd..000000000 --- a/.output/golden/examples/lambda/lambda/ski/print3.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K (S I)))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))))) (K (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))))) (K (K (S (K (S (K K))) (S (K K) I)))) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/ski/rev.lambda b/.output/golden/examples/lambda/lambda/ski/rev.lambda deleted file mode 100644 index d3af20ea1..000000000 --- a/.output/golden/examples/lambda/lambda/ski/rev.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S I I) (K I) (S (S (K S) (S (K (S (K S))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (S (S (S (S I (K I)) (K I)) (K I)) (K (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (S (K (S (K K))) (S (K K) I)))))) (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (K (S (K (S I)) (S (K K) I)))))) \ No newline at end of file diff --git a/.output/golden/examples/lambda/lambda/ski/reverse.lambda b/.output/golden/examples/lambda/lambda/ski/reverse.lambda deleted file mode 100644 index 21d4152d5..000000000 --- a/.output/golden/examples/lambda/lambda/ski/reverse.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (K K) I)) (K (K I)))) (K (K I)))) (K (K I)))) (K (K (S (K K) I))))) (K I))) (K I))) (K (K I))) (S (S (K S) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S I)))) (S (K (S (K (S (K (S I)))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))) (K (K I)))) (K (K (S (S (K S) (S (K (S (K S))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (S (S (S (S I (K I)) (K I)) (K I)) (K (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I)))))))) (K (K (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)))))))))) (K (S (K (S (K K))) (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I)))))))) (K (K (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)))))))))) (K (S (K (S (K K))) (S (K K) I))))))) (S (K (S (K K))) (S (K K) I)))))) \ No newline at end of file diff --git a/.output/golden/examples/lambda/ski/flipPrint.ski b/.output/golden/examples/lambda/ski/flipPrint.ski deleted file mode 100644 index c1a1113c1..000000000 --- a/.output/golden/examples/lambda/ski/flipPrint.ski +++ /dev/null @@ -1 +0,0 @@ -``s`k`s``s`ks``s`k`s`ks``s`k`s`k`si``s`k`s`kk``s`kki``s`k`s`k`s`kk``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/lambda/ski/id.ski b/.output/golden/examples/lambda/ski/id.ski deleted file mode 100644 index 664f44723..000000000 --- a/.output/golden/examples/lambda/ski/id.ski +++ /dev/null @@ -1 +0,0 @@ -``s`k`s`k`si``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/lambda/ski/print3.ski b/.output/golden/examples/lambda/ski/print3.ski deleted file mode 100644 index 580792b43..000000000 --- a/.output/golden/examples/lambda/ski/print3.ski +++ /dev/null @@ -1 +0,0 @@ -``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`k`si``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/lambda/ski/rev.ski b/.output/golden/examples/lambda/ski/rev.ski deleted file mode 100644 index 807b32608..000000000 --- a/.output/golden/examples/lambda/ski/rev.ski +++ /dev/null @@ -1 +0,0 @@ -```s``sii`ki``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s``s``s``s``si`ki`ki`ki`k``s`kki``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s`k`s`kk``s`kki`k``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki`k``s`k`si``s`kki \ No newline at end of file diff --git a/.output/golden/examples/lambda/ski/reverse.ski b/.output/golden/examples/lambda/ski/reverse.ski deleted file mode 100644 index 0a7526e79..000000000 --- a/.output/golden/examples/lambda/ski/reverse.ski +++ /dev/null @@ -1 +0,0 @@ -``s``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki`k`ki`k`ki`k`ki`k`k``s`kki`ki`ki`k`ki``s``s`ks``s``s`ks``s`k`s`ks``s`k`s`k`si``s`k`s`k`s`k`si``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`ki`k`k``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s``s``s``s``si`ki`ki`ki`k``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`k`si``s`k`s`kk``s`kki`k``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`k`si``s`k`s`kk``s`kki`k``s`k`s`kk``s`kki``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/eval/output/asciiOff/flipPrint10101010.output b/.output/golden/examples/ski/eval/output/asciiOff/flipPrint10101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/ski/eval/output/asciiOff/id10101010.output b/.output/golden/examples/ski/eval/output/asciiOff/id10101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/ski/eval/output/asciiOff/print310101010.output b/.output/golden/examples/ski/eval/output/asciiOff/print310101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/ski/eval/output/asciiOff/reverse10101010.output b/.output/golden/examples/ski/eval/output/asciiOff/reverse10101010.output deleted file mode 100644 index c89bfb423..000000000 --- a/.output/golden/examples/ski/eval/output/asciiOff/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ -01010101 \ No newline at end of file diff --git a/.output/golden/examples/ski/eval/output/asciiOn/flipPrint10101010.output b/.output/golden/examples/ski/eval/output/asciiOn/flipPrint10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/ski/eval/output/asciiOn/flipPrint10101010.output and /dev/null differ diff --git a/.output/golden/examples/ski/eval/output/asciiOn/id10101010.output b/.output/golden/examples/ski/eval/output/asciiOn/id10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/ski/eval/output/asciiOn/id10101010.output and /dev/null differ diff --git a/.output/golden/examples/ski/eval/output/asciiOn/print310101010.output b/.output/golden/examples/ski/eval/output/asciiOn/print310101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/ski/eval/output/asciiOn/print310101010.output and /dev/null differ diff --git a/.output/golden/examples/ski/eval/output/asciiOn/reverse10101010.output b/.output/golden/examples/ski/eval/output/asciiOn/reverse10101010.output deleted file mode 100644 index 4d52c5228..000000000 --- a/.output/golden/examples/ski/eval/output/asciiOn/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ - Œ Œ Œ Œ \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/lambda/flipPrint.lambda b/.output/golden/examples/ski/lambda/lambda/flipPrint.lambda deleted file mode 100644 index 2f406eb1f..000000000 --- a/.output/golden/examples/ski/lambda/lambda/flipPrint.lambda +++ /dev/null @@ -1 +0,0 @@ -\z0 z2 z5 z10 -> z10 z2 z0 \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/lambda/id.lambda b/.output/golden/examples/ski/lambda/lambda/id.lambda deleted file mode 100644 index b84f7b0d2..000000000 --- a/.output/golden/examples/ski/lambda/lambda/id.lambda +++ /dev/null @@ -1 +0,0 @@ -\z0 z2 z4 -> z4 z0 \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/lambda/print3.lambda b/.output/golden/examples/ski/lambda/lambda/print3.lambda deleted file mode 100644 index d901356a5..000000000 --- a/.output/golden/examples/ski/lambda/lambda/print3.lambda +++ /dev/null @@ -1 +0,0 @@ -\z0 z3 z8 z15 z24 -> z24 z0 z3 z8 \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/lambda/rev.lambda b/.output/golden/examples/ski/lambda/lambda/rev.lambda deleted file mode 100644 index 9c17a2f88..000000000 --- a/.output/golden/examples/ski/lambda/lambda/rev.lambda +++ /dev/null @@ -1 +0,0 @@ -\z14 -> z14 (\x35 -> x35) (\x37 -> x37) (\x39 -> x39) (\z41 y43 -> z41) ((\z6 z9 z14 -> z14 (\x35 -> x35) (\x37 -> x37) (\x39 -> x39) (\z41 y43 -> z41) (z6 z6) ((\z80 -> z6 z6) z14) ((\z103 z108 -> z9 ((\z121 -> z121 z103) z108)) z14)) ((\y67 z6 z9 z14 -> z14 (\x35 -> x35) (\x37 -> x37) (\x39 -> x39) (\z41 y43 -> z41) (z6 z6) ((\z80 -> z6 z6) z14) ((\z103 z108 -> z9 ((\z121 -> z121 z103) z108)) z14)) z14)) ((\z80 -> (\z6 z9 z14 -> z14 (\x35 -> x35) (\x37 -> x37) (\x39 -> x39) (\z41 y43 -> z41) (z6 z6) ((\z80 -> z6 z6) z14) ((\z103 z108 -> z9 ((\z121 -> z121 z103) z108)) z14)) ((\y94 z6 z9 z14 -> z14 (\x35 -> x35) (\x37 -> x37) (\x39 -> x39) (\z41 y43 -> z41) (z6 z6) ((\z80 -> z6 z6) z14) ((\z103 z108 -> z9 ((\z121 -> z121 z103) z108)) z14)) z80)) z14) ((\z103 z108 -> (\z121 -> z121 z103) z108) z14) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/lambda/reverse.lambda b/.output/golden/examples/ski/lambda/lambda/reverse.lambda deleted file mode 100644 index 96497743f..000000000 --- a/.output/golden/examples/ski/lambda/lambda/reverse.lambda +++ /dev/null @@ -1 +0,0 @@ -\z0 -> z0 (\x35 -> x35) (\x38 -> x38) (\x41 -> x41) (\z44 y46 -> z44) (\z58 -> (\z103 z106 z111 -> z111 (\x132 -> x132) (\x134 -> x134) (\x136 -> x136) (\z138 y140 -> z138) (\z157 -> z106 ((\z193 z202 -> z103 ((\z230 z232 z234 -> z234 z230) z111 z193 z202)) z157) ((\z248 y250 -> z106) z111 z157)) ((\z263 z270 -> z106 ((\z306 z315 -> z103 ((\z343 z345 z347 -> z347 z343) z263 z306 z315)) z270) ((\z361 y363 -> z106) z263 z270)) z111) z103) (\z80 -> z80 z0) (\z103 z106 z111 -> z111 (\x132 -> x132) (\x134 -> x134) (\x136 -> x136) (\z138 y140 -> z138) (\z157 -> z106 ((\z193 z202 -> z103 ((\z230 z232 z234 -> z234 z230) z111 z193 z202)) z157) ((\z248 y250 -> z106) z111 z157)) ((\z263 z270 -> z106 ((\z306 z315 -> z103 ((\z343 z345 z347 -> z347 z343) z263 z306 z315)) z270) ((\z361 y363 -> z106) z263 z270)) z111) ((\y372 -> z103) z111))) (\z58 -> (\z103 z106 z111 -> z111 (\x132 -> x132) (\x134 -> x134) (\x136 -> x136) (\z138 y140 -> z138) (\z157 -> z106 ((\z193 z202 -> z103 ((\z230 z232 z234 -> z234 z230) z111 z193 z202)) z157) ((\z248 y250 -> z106) z111 z157)) ((\z263 z270 -> z106 ((\z306 z315 -> z103 ((\z343 z345 z347 -> z347 z343) z263 z306 z315)) z270) ((\z361 y363 -> z106) z263 z270)) z111) z103) (\z80 -> z80 z0) (\z103 z106 z111 -> z111 (\x132 -> x132) (\x134 -> x134) (\x136 -> x136) (\z138 y140 -> z138) (\z157 -> z106 ((\z193 z202 -> z103 ((\z230 z232 z234 -> z234 z230) z111 z193 z202)) z157) ((\z248 y250 -> z106) z111 z157)) ((\z263 z270 -> z106 ((\z306 z315 -> z103 ((\z343 z345 z347 -> z347 z343) z263 z306 z315)) z270) ((\z361 y363 -> z106) z263 z270)) z111) ((\y372 -> z103) z111))) (\x54 -> x54) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/ski/flipPrint.lambda b/.output/golden/examples/ski/lambda/ski/flipPrint.lambda deleted file mode 100644 index 92fc418a0..000000000 --- a/.output/golden/examples/ski/lambda/ski/flipPrint.lambda +++ /dev/null @@ -1 +0,0 @@ -S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/ski/id.lambda b/.output/golden/examples/ski/lambda/ski/id.lambda deleted file mode 100644 index 08e543c6a..000000000 --- a/.output/golden/examples/ski/lambda/ski/id.lambda +++ /dev/null @@ -1 +0,0 @@ -S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/ski/print3.lambda b/.output/golden/examples/ski/lambda/ski/print3.lambda deleted file mode 100644 index d9012eefd..000000000 --- a/.output/golden/examples/ski/lambda/ski/print3.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K (S I)))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))))) (K (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))))) (K (K (S (K (S (K K))) (S (K K) I)))) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/ski/rev.lambda b/.output/golden/examples/ski/lambda/ski/rev.lambda deleted file mode 100644 index d3af20ea1..000000000 --- a/.output/golden/examples/ski/lambda/ski/rev.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S I I) (K I) (S (S (K S) (S (K (S (K S))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (S (S (S (S I (K I)) (K I)) (K I)) (K (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (S (K (S (K K))) (S (K K) I)))))) (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))) (K (S (K (S I)) (S (K K) I)))))) \ No newline at end of file diff --git a/.output/golden/examples/ski/lambda/ski/reverse.lambda b/.output/golden/examples/ski/lambda/ski/reverse.lambda deleted file mode 100644 index 21d4152d5..000000000 --- a/.output/golden/examples/ski/lambda/ski/reverse.lambda +++ /dev/null @@ -1 +0,0 @@ -S (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (S (K S) (S (K K) I)) (K (K I)))) (K (K I)))) (K (K I)))) (K (K (S (K K) I))))) (K I))) (K I))) (K (K I))) (S (S (K S) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S I)))) (S (K (S (K (S (K (S I)))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I))))))) (K (K I)))) (K (K (S (S (K S) (S (K (S (K S))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (S (S (S (S I (K I)) (K I)) (K I)) (K (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I)))))))) (K (K (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)))))))))) (K (S (K (S (K K))) (S (K K) I))))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (S (K S) (S (K (S (K S))) (S (K (S (K K))) (S (K K) I)))))) (S (S (K S) (S (K (S (K S))) (S (K (S (K (S (K S))))) (S (K (S (K (S (K (S (K S))))))) (S (K (S (K (S (K (S (K K))))))) (S (K (S (K (S (K K))))) (S (K (S (K K))) (S (K K) I)))))))) (K (K (S (K (S (K (S I)))) (S (K (S (K K))) (S (K K) I)))))))))) (K (S (K (S (K K))) (S (K K) I))))))) (S (K (S (K K))) (S (K K) I)))))) \ No newline at end of file diff --git a/.output/golden/examples/ski/ski/flipPrint.ski b/.output/golden/examples/ski/ski/flipPrint.ski deleted file mode 100644 index c1a1113c1..000000000 --- a/.output/golden/examples/ski/ski/flipPrint.ski +++ /dev/null @@ -1 +0,0 @@ -``s`k`s``s`ks``s`k`s`ks``s`k`s`k`si``s`k`s`kk``s`kki``s`k`s`k`s`kk``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/ski/id.ski b/.output/golden/examples/ski/ski/id.ski deleted file mode 100644 index 664f44723..000000000 --- a/.output/golden/examples/ski/ski/id.ski +++ /dev/null @@ -1 +0,0 @@ -``s`k`s`k`si``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/ski/print3.ski b/.output/golden/examples/ski/ski/print3.ski deleted file mode 100644 index 580792b43..000000000 --- a/.output/golden/examples/ski/ski/print3.ski +++ /dev/null @@ -1 +0,0 @@ -``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`k`si``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/ski/rev.ski b/.output/golden/examples/ski/ski/rev.ski deleted file mode 100644 index 807b32608..000000000 --- a/.output/golden/examples/ski/ski/rev.ski +++ /dev/null @@ -1 +0,0 @@ -```s``sii`ki``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s``s``s``s``si`ki`ki`ki`k``s`kki``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s`k`s`kk``s`kki`k``s``s`ks``s`k`s`ks``s`k`s`kk``s`kki`k``s`k`si``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/ski/reverse.ski b/.output/golden/examples/ski/ski/reverse.ski deleted file mode 100644 index 0a7526e79..000000000 --- a/.output/golden/examples/ski/ski/reverse.ski +++ /dev/null @@ -1 +0,0 @@ -``s``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s``s`ks``s`kki`k`ki`k`ki`k`ki`k`k``s`kki`ki`ki`k`ki``s``s`ks``s``s`ks``s`k`s`ks``s`k`s`k`si``s`k`s`k`s`k`si``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`ki`k`k``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`ks``s`k`s`k`s``s``s``s``si`ki`ki`ki`k``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`k`si``s`k`s`kk``s`kki`k``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s``s`ks``s`k`s`ks``s`k`s`kk``s`kki``s``s`ks``s`k`s`ks``s`k`s`k`s`ks``s`k`s`k`s`k`s`ks``s`k`s`k`s`k`s`kk``s`k`s`k`s`kk``s`k`s`kk``s`kki`k`k``s`k`s`k`si``s`k`s`kk``s`kki`k``s`k`s`kk``s`kki``s`k`s`kk``s`kki \ No newline at end of file diff --git a/.output/golden/examples/ski/zot/flipPrint.zot b/.output/golden/examples/ski/zot/flipPrint.zot deleted file mode 100644 index 3d111ba4a..000000000 --- a/.output/golden/examples/ski/zot/flipPrint.zot +++ /dev/null @@ -1 +0,0 @@ -1110101010011010100110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001001110101010011010100110101010011010100101010011101010100110101001010100100111010101001101010011010101001101010011010101001101010010101001110101010011010100110101010011010100101010011101010100110101001010100100 \ No newline at end of file diff --git a/.output/golden/examples/ski/zot/id.zot b/.output/golden/examples/ski/zot/id.zot deleted file mode 100644 index 1c29892b7..000000000 --- a/.output/golden/examples/ski/zot/id.zot +++ /dev/null @@ -1 +0,0 @@ -111010101001101010011010101001101010011010101001001110101010011010100110101010011010100101010011101010100110101001010100100 \ No newline at end of file diff --git a/.output/golden/examples/ski/zot/print3.zot b/.output/golden/examples/ski/zot/print3.zot deleted file mode 100644 index 26aee3a65..000000000 --- a/.output/golden/examples/ski/zot/print3.zot +++ /dev/null @@ -1 +0,0 @@ -11101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001101010011010101001101010010101010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001101010011010101001101010010101010011101010100110101001101010100110101001101010100110101001101010100110101001101010100100111010101001101010011010101001101010011010101001101010011010101001101010010101001110101010011010100110101010011010100110101010011010100101010011101010100110101001101010100110101001010100111010101001101010010101001001101010011101010100110101001101010100110101001101010100110101001010100111010101001101010011010101001101010010101001110101010011010100101010010011010100110101001110101010011010100110101010011010100101010011101010100110101001010100100 \ No newline at end of file diff --git a/.output/golden/examples/ski/zot/rev.zot b/.output/golden/examples/ski/zot/rev.zot deleted file mode 100644 index 8c20d2bcb..000000000 --- a/.output/golden/examples/ski/zot/rev.zot +++ /dev/null @@ -1 +0,0 @@ -111101010100111010101001001001101010010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001110101010011101010100111010101001110101010010011010100100110101001001101010010011010100111010101001101010010101001001110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010010101001110101010011010100101010010011101010100110101001101010100110101001010100111010101001101010010101001001110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010010101001110101010011010100101010010011101010100110101001101010100110101001010100111010101001101010010101001001101010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100101010011101010100110101001010100100110101001110101010011010100110101010010011101010100110101001010100100 \ No newline at end of file diff --git a/.output/golden/examples/ski/zot/reverse.zot b/.output/golden/examples/ski/zot/reverse.zot deleted file mode 100644 index 9bbb2aa87..000000000 --- a/.output/golden/examples/ski/zot/reverse.zot +++ /dev/null @@ -1 +0,0 @@ -11101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001110101010011010100101010100111010101001101010010101001001101010011010100100110101001101010010011010100110101001001101010011010100111010101001101010010101001001101010010011010100100110101001101010010011101010100111010101001101010010101010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010010011101010100110101001101010100110101001101010100110101001101010100100111010101001101010011010101001101010011010101001101010010101001110101010011010100110101010011010100101010011101010100110101001010100100110101001101010010011010100110101001110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001110101010011010100101010100111010101001101010011010101001101010010101010011101010100110101001101010100110101001101010100111010101001110101010011101010100111010101001001101010010011010100100110101001001101010011101010100110101001010100100111010101001110101010011010100101010100111010101001101010011010101001101010010101010011101010100110101001101010100110101001101010100110101001010101001110101010011010100110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010010101001110101010011010100101010010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001101010011010101001101010010101010011101010100110101001101010100110101001101010100110101001101010100110101001010100111010101001101010011010101001101010011010101001101010010101001110101010011010100110101010011010100101010011101010100110101001010100100110101001101010011101010100110101001101010100110101001101010100100111010101001101010011010101001101010010101001110101010011010100101010010011010100111010101001101010011010101001101010010101001110101010011010100101010010011101010100111010101001101010010101010011101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010011010100101010100111010101001101010011010101001110101010011010100101010100111010101001101010011010101001101010010101010011101010100110101001101010100110101001010100111010101001101010010101001001110101010011101010100110101001010101001110101010011010100110101010011010100101010100111010101001101010011010101001101010011010101001101010010101010011101010100110101001101010100110101001101010100110101001101010100110101001010101001110101010011010100110101010011010100110101010011010100110101010011010100101010011101010100110101001101010100110101001101010100110101001010100111010101001101010011010101001101010010101001110101010011010100101010010011010100110101001110101010011010100110101010011010100110101010010011101010100110101001101010100110101001010100111010101001101010010101001001101010011101010100110101001101010100110101001010100111010101001101010010101001001110101010011010100110101010011010100101010011101010100110101001010100100 \ No newline at end of file diff --git a/.output/golden/examples/lambda/eval/output/asciiOff/flipPrint10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/calculus/flipPrint10101010.output similarity index 100% rename from .output/golden/examples/lambda/eval/output/asciiOff/flipPrint10101010.output rename to .output/golden/examples/zot/eval/output/asciiOff/calculus/flipPrint10101010.output diff --git a/.output/golden/examples/lambda/eval/output/asciiOff/id10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/calculus/id10101010.output similarity index 100% rename from .output/golden/examples/lambda/eval/output/asciiOff/id10101010.output rename to .output/golden/examples/zot/eval/output/asciiOff/calculus/id10101010.output diff --git a/.output/golden/examples/lambda/eval/output/asciiOff/print310101010.output b/.output/golden/examples/zot/eval/output/asciiOff/calculus/print310101010.output similarity index 100% rename from .output/golden/examples/lambda/eval/output/asciiOff/print310101010.output rename to .output/golden/examples/zot/eval/output/asciiOff/calculus/print310101010.output diff --git a/.output/golden/examples/lambda/eval/output/asciiOff/reverse10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/calculus/reverse10101010.output similarity index 100% rename from .output/golden/examples/lambda/eval/output/asciiOff/reverse10101010.output rename to .output/golden/examples/zot/eval/output/asciiOff/calculus/reverse10101010.output diff --git a/.output/golden/examples/zot/eval/output/asciiOff/lambda/flipPrint10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/lambda/flipPrint10101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/zot/eval/output/asciiOff/lambda/id10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/lambda/id10101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/zot/eval/output/asciiOff/lambda/print310101010.output b/.output/golden/examples/zot/eval/output/asciiOff/lambda/print310101010.output deleted file mode 100644 index e69de29bb..000000000 diff --git a/.output/golden/examples/zot/eval/output/asciiOff/lambda/reverse10101010.output b/.output/golden/examples/zot/eval/output/asciiOff/lambda/reverse10101010.output deleted file mode 100644 index c89bfb423..000000000 --- a/.output/golden/examples/zot/eval/output/asciiOff/lambda/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ -01010101 \ No newline at end of file diff --git a/.output/golden/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output b/.output/golden/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/zot/eval/output/asciiOn/lambda/flipPrint10101010.output and /dev/null differ diff --git a/.output/golden/examples/zot/eval/output/asciiOn/lambda/id10101010.output b/.output/golden/examples/zot/eval/output/asciiOn/lambda/id10101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/zot/eval/output/asciiOn/lambda/id10101010.output and /dev/null differ diff --git a/.output/golden/examples/zot/eval/output/asciiOn/lambda/print310101010.output b/.output/golden/examples/zot/eval/output/asciiOn/lambda/print310101010.output deleted file mode 100644 index f76dd238a..000000000 Binary files a/.output/golden/examples/zot/eval/output/asciiOn/lambda/print310101010.output and /dev/null differ diff --git a/.output/golden/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output b/.output/golden/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output deleted file mode 100644 index 4d52c5228..000000000 --- a/.output/golden/examples/zot/eval/output/asciiOn/lambda/reverse10101010.output +++ /dev/null @@ -1 +0,0 @@ - Œ Œ Œ Œ \ No newline at end of file diff --git a/docs/reports/stan.html b/docs/reports/stan.html index f63e721fc..cee3cb0d5 100644 --- a/docs/reports/stan.html +++ b/docs/reports/stan.html @@ -1,5 +1,5 @@ -Stan Report

Stan Report

This is the Haskell Static Analysis report generated by Stan

Stan Info

In this section, you can find the general information about the used Stan tool, compile-time and run-time environment variables and settings, including build information, system data and execution configurations.

Stan Version
Version0.0.1.0
Git RevisionUNKNOWN
Release DateUNKNOWN
System Info
Operating Systemlinux
Architecturex86_64
Compilerghc
Compiler Version8.10
Environment
Environment VariablesSTAN_USE_DEFAULT_CONFIG=True
TOML configuration files/home/kamil-adam/git/helvm/helma/.stan.toml
CLI arguments-s --hide-solution report

Project Info

Information about the analysed project

Project namehelma
Cabal Fileshelma.cabal
HIE Files Directory.hie
Files Number112

Analysis Info

Summary stats from the static analysis

Modules112
LoC5056
Extensions32
SafeHaskell Extensions0
Available inspections44
Checked inspections44
Found Observations0
Ignored Observations0

Static Analysis Summary

Here you can find the overall conclusion based on the various metadata and gathered information during the work of Stan on this project.

Observations

Based on the analysis results, Stan found different vulnerabilities distributed among the analysed files. In Stan terminology, we call such vulnerability as Observation. Below you can see the more detailed information about each observation, and find the possible ways to fix them for your project.

Configurations

This section describes the final Stan configuration that was used on the project and explains how this result was assembled. Stan runtime settings have many parts, and each of them can come from different configuration sources. Stan is using Environment variables, TOML configuration file and CLI arguments to get the final results. If some option is specified through the multiple sources, the most prioritized one is used.

ActionFilterScope

Configuration Process Information

Information and warnings that were gathered during the configuration assemble process. This helps to understand how different parts of the configurations were retrieved.

  • No TOML value is specified for key: check
  • No CLI option specified for: checks
  • configChecks is set through the source: TOML
  • No TOML value is specified for key: remove
  • No CLI option specified for: remove
  • configRemoved is set through the source: TOML
  • No TOML value is specified for key: ignore
  • No CLI option specified for: ignore
  • configIgnored is set through the source: TOML

Report Explained

Inspections

List of Inspections used for analysing the project

Inspection STAN-0001

Partial: base/head

Usage of partial function 'head' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0002

Partial: base/tail

Usage of partial function 'tail' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0003

Partial: base/init

Usage of partial function 'init' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0004

Partial: base/last

Usage of partial function 'last' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0005

Partial: base/!!

Usage of partial function '!!' for lists

Warning
  • Partial
  • List

Inspection STAN-0006

Partial: base/cycle

Usage of partial function 'cycle' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0007

Partial: base/genericIndex

Usage of partial function 'genericIndex' for lists

Warning
  • Partial
  • List

Inspection STAN-0008

Partial: base/fromJust

Usage of partial function 'fromJust' for 'Maybe'

Warning
  • Partial

Possible solutions

  • Use explicit pattern-matching over Maybe
  • Use one of the standard functions: 'maybe', 'fromMaybe'

Inspection STAN-0009

Partial: base/read

Usage of partial function 'read' for parsing 'String'

Warning
  • Partial

Possible solutions

  • Use 'readMaybe' or 'readEither' to handle failed parsing

Inspection STAN-0010

Partial: base/succ

Usage of partial function 'succ' for enumerable types

Warning
  • Partial

Possible solutions

  • Use '(+ 1)' for integral types (but be aware of arithmetic overflow)
  • {Extra dependency} Use 'next' from 'Relude.Extra.Enum' in 'relude'

Inspection STAN-0011

Partial: base/pred

Usage of partial function 'pred' for enumerable types

Warning
  • Partial

Possible solutions

  • Use '(- 1)' for integral types (but be aware of arithmetic overflow)
  • {Extra dependency} Use 'prev' from 'Relude.Extra.Enum' in 'relude'

Inspection STAN-0012

Partial: base/toEnum

Usage of partial function 'toEnum' for enumerable types

Warning
  • Partial

Possible solutions

  • {Extra dependency} Use 'safeToEnum' from 'Relude.Extra.Enum' in 'relude'

Inspection STAN-0013

Partial: base/maximum

Usage of partial function 'maximum' for

Warning
  • Partial

Inspection STAN-0014

Partial: base/minimum

Usage of partial function 'minimum' for

Warning
  • Partial

Inspection STAN-0015

Partial: base/maximumBy

Usage of partial function 'maximumBy' for

Warning
  • Partial

Inspection STAN-0016

Partial: base/minimumBy

Usage of partial function 'minimumBy' for

Warning
  • Partial

Inspection STAN-0017

Partial: base/foldl1

Usage of partial function 'foldl1' for

Warning
  • Partial

Inspection STAN-0018

Partial: base/foldl1'

Usage of partial function 'foldl1'' for lists

Warning
  • Partial
  • List

Possible solutions

  • Replace list with 'NonEmpty' from 'Data.List.NonEmpty'
  • Use explicit pattern-matching over lists

Inspection STAN-0019

Partial: base/foldr1

Usage of partial function 'foldr1' for

Warning
  • Partial

Inspection STAN-0020

Partial: base/fromList

Usage of partial function 'fromList' for

Warning
  • Partial

Inspection STAN-0021

Partial: base/fromInteger

Usage of partial function 'fromInteger' for

Warning
  • Partial

Inspection STAN-0101

Infinite: base/reverse

Usage of the 'reverse' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'reverse' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0102

Infinite: base/isSuffixOf

Usage of the 'isSuffixOf' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'isSuffixOf' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0103

Infinite: base/length

Usage of the 'length' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'length' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0104

Infinite: base/genericLength

Usage of the 'genericLength' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'genericLength' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0105

Infinite: base/sum

Usage of the 'sum' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'sum' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0106

Infinite: base/product

Usage of the 'product' function that hangs on infinite lists

PotentialBug
  • Infinite
  • List

Possible solutions

  • Don't use 'product' if you expect your function to work with infinite lists
  • {Extra dependency} Use the 'slist' library for fast and safe functions on infinite lists

Inspection STAN-0201

Anti-pattern: [0 .. length xs]

Creating a list with wrong number of indices

PotentialBug
  • AntiPattern

Possible solutions

  • Replace '[0 .. length xs]' with '[0 .. length xs - 1]'
  • Use 'zip [0 ..] xs` to work with list of pairs: index and element

Inspection STAN-0202

Anti-pattern: foldl

Usage of space-leaking function 'foldl'

Error
  • SpaceLeak
  • AntiPattern

Possible solutions

  • Replace 'foldl' with 'foldl''
  • Use 'foldr (flip . f)` instead of 'foldl f'

Inspection STAN-0203

Anti-pattern: Data.ByteString.Char8.pack

Usage of 'pack' function that doesn't handle Unicode characters

Error
  • AntiPattern

Possible solutions

  • Convert to 'Text' and use 'encodeUtf8' from 'Data.Text.Encoding'
  • {Extra dependency} Use 'encodeUtf8' from 'relude'
  • {Extra dependency} Use the 'utf8-string' package

Inspection STAN-0204

Anti-pattern: HashMap size

Usage of 'size' or 'length' for 'HashMap' that runs in linear time

Performance
  • AntiPattern

Possible solutions

  • {Extra dependency} Switch to 'Map' from 'containers'

Inspection STAN-0205

Anti-pattern: HashSet size

Usage of 'size' or 'length' for 'HashSet' that runs in linear time

Performance
  • AntiPattern

Possible solutions

  • {Extra dependency} Switch to 'Set' from 'containers'

Inspection STAN-0206

Data types with non-strict fields

Defining lazy fields in data types can lead to unexpected space leaks

Performance
  • SpaceLeak
  • Syntax

Possible solutions

  • Add '!' before the type, e.g. !Int or !(Maybe Bool)
  • Enable the 'StrictData' extension: {-# LANGUAGE StrictData #-}

Inspection STAN-0207

Anti-pattern: Foldable methods on possibly error-prone structures

Usage of Foldable methods on (,), Maybe, Either

PotentialBug
  • AntiPattern

Possible solutions

  • Use more explicit functions with specific monomorphic types

Inspection STAN-0208

Anti-pattern: Slow 'length' for Text

Usage of 'length' for 'Text' that runs in linear time

Performance
  • AntiPattern

Possible solutions

  • {Extra dependency} Switch to 'ByteString' from 'bytestring'

Inspection STAN-0209

Anti-pattern: Slow 'nub' for lists

Usage of 'nub' on lists that runs in quadratic time

Performance
  • AntiPattern

Possible solutions

  • {Extra dependency} Switch list to 'Set' from 'containers'
  • {Extra dependency} Use 'ordNub/hashNub/sortNub/unstableNub' from 'relude'
  • {Extra dependency} Use 'nubOrd' from 'containers'
  • {Extra dependency} Use 'nubOrd' from 'extra'

Inspection STAN-0210

Anti-pattern: Slow 'for_' on ranges

Usage of 'for_' or 'forM_' on numerical ranges is slow

Performance
  • AntiPattern

Possible solutions

  • {Extra dependency} Use 'loop' library for fast monadic looping

Inspection STAN-0211

Anti-pattern: '</>' for URLs

Usage of '</>' for URLs results in the errors on Windows

Error
  • AntiPattern

Possible solutions

  • {Extra dependency} Use type-safe library for URLs
  • Concatenate URLs with slashes '/'

Inspection STAN-0212

Anti-pattern: unsafe functions

Usage of unsafe functions breaks referential transparency

Error
  • Unsafe
  • AntiPattern

Possible solutions

  • Remove 'undefined' or at least replace with 'error' to give better error messages
  • Replace 'unsafeCoerce' with 'coerce'
  • Rewrite the code to avoid using 'unsafePerformIO' and other unsafe IO functions

Inspection STAN-0213

Anti-pattern: Pattern matching on '_'

Pattern matching on '_' for sum types can create maintainability issues

Warning
  • AntiPattern

Possible solutions

  • Pattern match on each constructor explicitly
  • Add meaningful names to holes, e.g. '_anyOtherFailure'

Inspection STAN-0214

Anti-pattern: use 'compare'

Usage of multiple comparison operators instead of single 'compare'

Performance
  • AntiPattern

Possible solutions

  • Rewrite code to use single 'compare' instead of many comparison operators

Inspection STAN-0215

Anti-pattern: Slashes in paths

Usage of '/' or '\' in paths results in the errors on different operation systems

Error
  • AntiPattern

Possible solutions

  • {Extra dependency} Use '</>' operator from 'filepath'

Inspection STAN-0301

Missing fixity declaration for operator

Using the implicit default fixity for operator: infixl 9

Style
  • Syntax

Possible solutions

  • Add 'infix[l|r]' declaration to the operator with explicit precedence

Inspection STAN-0302

Big tuples

Using tuples of big size (>= 4) can decrease code readability

Style
  • AntiPattern
  • Syntax

Possible solutions

  • Consider defining and using a custom data type to improve code comprehension

Severity

We are using the following severity system to indicate the observation level

SeverityDescription
StyleCode style issues. Usually harmless.
PerformanceSerious defects that could cause slowness and space leaking.
PotentialBugHuman errors in code.
WarningPotential runtime errors on some inputs.
ErrorDangerous behaviour.