shithub: MicroHs

Download patch

ref: 0fa45340259974b27d3c6d45a493421a4b1363fe
parent: 7f9059470afbb7ee5e3bca0cbf4c2b86a095a18a
author: Lennart Augustsson <lennart@augustsson.net>
date: Mon Aug 28 14:49:13 EDT 2023

Make it compile.

--- a/comb/mhs.comb
+++ b/comb/mhs.comb
@@ -1,3 +1,3 @@
 v3.2
-715
+720
 (($A :0 ((_536 _490) ((($S' ($C ((($C' ($S' _536)) ($C _2)) (($B ($B (_536 _564))) ((($C' ($S' $C)) ((($C' ($C' $C)) ((($C' ($C' ($C' $S'))) (($B ($B ($B $C))) ((($C' ($C' ($C' ($C' $C)))) ((($C' ($C' ($C' ($C' ($S' $B))))) ((($C' ($C' ($C' ($C' ($C' $S))))) ((($C' ($C' ($C' $B))) (($B ($B ($B ($C' $C)))) ((($C' ($C' ($C' ($C' ($C' $S'))))) (($B ($B ($B ($B ($B $C))))) ((($C' ($C' ($C' ($C' ($C' ($C' $B)))))) ((($C' ($C' ($C' ($S' ($C' $B))))) (($B ($B ($B ($B ($B $B))))) ((($C' ($C' ($C' ($C' $B)))) ((($S' $B) (($B $B) (($B $B) (($B $C') (($B ($S' _537)) ((($C' $B) (($B _625) (($B _554) ((($C' _663) _8) 0)))) (($B (_625 _557)) (($B (_570 "top level defns: ")) _518)))))))) ((($S' $B) (($B $B) (($B ($C' $B)) (($B ($B $B)) (($B ($B _537)) ((($C' $B) (($B _625) (($B _554) ((($C' _663) _8) 1)))) (_553 ($T (($B ($B (_625 _557))) ((($C' $B) _570) (($B (_570 " = ")) _386))))))))))) ((($C' $B) ((($S' $C') (($B $C') (($B $C') _9))) ((($S' $B) (($B ($C' ($C' _537))) ((($C' $B) (($B $B) (($B _625) (($B _559) _11)))) (($B ($B (_570 _1))) (($B (($C' _570) _518)) (_570 (($O 10) $K))))))) (($B ($B (_536 _564))) ((($C' $B) (($B $B) (($B _625) (($B _554) ((($C' _663) _8) 0))))) (($B ($B (_625 _557))) (($B ($B (_570 "final pass            "))) ((($C' ($C' _570)) (($B ($B (_531 6))) (($B ($B _518)) _657))) "ms")))))))) _3)))) _515))) (($B (($C' $C) (($B ($C _575)) _386))) (($C _588) (_605 0))))) (($B ($C $B)) (($B ($B ($C $B))) (($B ($B $BK)) (($B ($B ($B ($B (_570 "(($A :"))))) (($B ($B (($C' $B) (($B _570) _518)))) (($B ($B ($B (_570 (($O 32) $K))))) ((($C' $B) (($B ($C' _570)) ($B _386))) (($B (_570 ") ")) (($C _570) (($O 41) $K))))))))))))) (($B $Y) ((($C' ($C' $S)) ((($C' ($C' $S)) ((($C' $B) $P) ((($S' ($C' $B)) ($B _363)) $I))) ($BK $K))) $K))))) $T)) (($B (($S' _625) (($B _622) (($B (_625 _672)) (($B (_570 "main: findIdent: ")) _462))))) ($C _508)))) (($B ($B _512)) (($B (($C' _572) (($B $T) (($B ($C $B)) (($B ($B $BK)) ((($C' ($C' ($C' $O))) ($B ($C $P))) $K)))))) (($C _588) (_605 0)))))) (($B (_625 _362)) (($B (_570 (($O 95) $K))) _518))))) ($T $A))) ($T $K))) (($B $Y) $K)))))) (($S (($S ((($S' _7) (($B _587) (_574 (_529 "-v")))) ((_604 _529) "-r"))) (($B (_568 (($O 46) $K))) (($B _624) (_573 ((_592 _648) "-i")))))) (($B (_625 _599)) ((($C' _570) (($B _624) (_573 ((_592 _648) "-o")))) (($O "out.comb") $K))))) (($B (($S (($C ((($C' _659) _587) 1)) (_672 "Usage: uhs [-v] [-r] [-iPATH] [-oFILE] ModuleName"))) _599)) (_574 ((_626 _668) ((_626 (_529 (($O 45) $K))) (_585 1)))))))) (($A :1 "v3.2\10&") (($A :2 ((($S' ($S' _536)) _16) (($B ($B ($B (_536 _564)))) ((($C' ($C' $B)) (($B ($B ($C' (($S' _537) (($B (_625 _555)) (($B (_625 (_586 1000000))) _189)))))) (($B ($B ($B ($B (_536 _564))))) ((($C' $B) (($B ($C' $B)) (($B ($B ($C' _537))) ((($C' $B) (($B $B) (($B _625) (($B _554) ((($C' _663) _8) 0))))) (($B ($B (_625 _557))) (($B ($B (_570 "combinator conversion "))) ((($C' ($C' _570)) (($B ($B (_531 6))) (($B ($B _518)) _657))) "ms"))))))) (($B ($B _538)) (($B $P) (($C _414) "main"))))))) (_572 ($T ((($C' ($C' $O)) ((($C' $B) $P) _389)) $K))))))) (($A :3 ($T (($C ((($C' $C') (($B ($S' ($B (_625 _6)))) ($C $C))) (($B ($B $Y)) (($B ($B ($B _356))) (($C' ($C' _572)) (($B ($B $T)) ((($C' ($C' ($C' ($C' $O)))) (($B ($B (($C' $B) $P))) ($B _4))) $K))))))) (($B (($S' _625) (($B _622) (($B (_625 _672)) (_570 "not found "))))) ($C _357))))) (($A :4 ((($C' $C) ((($S' $C) ((($C' ($C' $S')) (($S $P) ((($S' ($C' $B)) (($B ($B _6)) _4)) _4))) ($BK $K))) ((($C' ($C' $C)) (($B (($C' $C) (($B ($P _6)) $K))) ((($C' $B) _4) _388))) (($B (_625 (_622 (_672 "primlookup")))) (($C (_608 _529)) _5))))) (_672 "trans: impossible"))) (($A :5 (($O (($P (($O 66) $K)) $B)) (($O (($P (($O 79) $K)) $O)) (($O (($P (($O 75) $K)) $K)) (($O (($P "C'") $C')) (($O (($P (($O 67) $K)) $C)) (($O (($P (($O 65) $K)) $A)) (($O (($P "S'") $S')) (($O (($P (($O 80) $K)) $P)) (($O (($P (($O 73) $K)) $I)) (($O (($P (($O 83) $K)) $S)) (($O (($P (($O 84) $K)) $T)) (($O (($P (($O 89) $K)) $Y)) (($O (($P "B'") $B')) (($O (($P "BK") $BK)) (($O (($P (($O 43) $K)) $+)) (($O (($P (($O 45) $K
\ No newline at end of file
--- a/ghc/Primitives.hs
+++ b/ghc/Primitives.hs
@@ -2,6 +2,7 @@
   module Primitives,
   Char,
   Int,
+  Word,
   IO,
   Handle,
   ) where
@@ -99,7 +100,7 @@
 primWordQuot = quot
 
 primWordRem :: Word -> Word -> Word
-primIntRem = rem
+primWordRem = rem
 
 ------
 
--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -250,6 +250,7 @@
       [("IO",     [entry "Primitives.IO"       tt]),
        ("->",     [entry "Primitives.->"       ttt]),
        ("Int",    [entry "Primitives.Int"      t]),
+       ("Word",   [entry "Primitives.Word"     t]),
        ("Char",   [entry "Primitives.Char"     t]),
        ("Handle", [entry "Primitives.Handle"   t]),
        ("Any",    [entry "Primitives.Any"      t]),
--