shithub: MicroHs

Download patch

ref: e3da74f84da2a17e8f9528eb1d1b139482b3c167
parent: b8cf988cc6a3ffece499c70ccf3289a793a5f571
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Nov 2 16:17:42 EDT 2023

Include Integer in Prelude

--- a/Makefile
+++ b/Makefile
@@ -78,6 +78,7 @@
 	$(GHCC) -c lib/Data/Word.hs
 	$(GHCC) -c lib/System/IO.hs
 	$(GHCC) -c lib/System/Environment.hs
+	$(GHCC) -c lib/Data/Integer.hs
 	$(GHCC) -c lib/Prelude.hs
 	$(GHCC) -c lib/PreludeNoIO.hs
 	$(GHCC) -c lib/Data/Map.hs
--- a/comb/mhs.comb
+++ b/comb/mhs.comb
@@ -1,3 +1,3 @@
 v4.0
-1213
-((A :0 ((B (B (B (B C)))) ((B (B (B C))) ((B (B C)) P)))) ((A :1 (T (BK (BK (BK K))))) ((A :2 (T (K (BK (BK K))))) ((A :3 (T (K (K (BK K))))) ((A :4 (T (K (K (K K))))) ((A :5 (T (K (K (K A))))) ((A :6 (K (noDefault "Alternative.empty"))) ((A :7 (K (noDefault "Alternative.<|>"))) ((A :8 ((S (((S' S') ((B _14) _1)) (((C' _122) ((B _12) _1)) _239))) _5)) ((A :9 ((S (((S' C') _3) _4)) (((C' _13) _1) _238))) ((A :10 (((S' P) _2) (((C' _13) _1) _973))) ((A :11 ((B (B (B (B C)))) ((B (B (B C))) ((B (B C)) P)))) ((A :12 (T (BK (BK (BK K))))) ((A :13 (T (K (BK (BK K))))) ((A :14 (T (K (K (BK K))))) ((A :15 (T (K (K (K K))))) ((A :16 (T (K (K (K A))))) ((A :17 (K (noDefault "Applicative.pure"))) ((A :18 (K (noDefault "Applicative.<*>"))) ((A :19 (((S' B) _14) (((C' _119) _12) _111))) ((A :20 (((S' B) _14) (((C' _122) _12) _112))) ((A :21 _1046) ((A :22 ((B _1089) _21)) ((A :23 (((S' _1089) _21) I)) ((A :24 _1016) ((A :25 (_24 "undefined")) ((A :26 I) ((A :27 (((C' B) _1045) ((C _110) _26))) ((A :28 (((C' _27) ((_118 _1059) _91)) ((_110 (_34 _1061)) _90))) ((A :29 ((B ((S _1089) (_34 _1061))) _24)) ((A :30 ((B (B (B C))) ((B (B C)) P))) ((A :31 (T (BK (BK K)))) ((A :32 (T (K (BK K)))) ((A :33 (T (K (K K)))) ((A :34 (T (K (K A)))) ((A :35 (K (noDefault "Monad.>>="))) ((A :36 (((C' (C' B)) _32) K)) ((A :37 ((B _13) _31)) ((A :38 (((S' (C' B)) _32) (((S' (C' B)) _32) (B' _34)))) ((A :39 P) ((A :40 (T K)) ((A :41 (T A)) ((A :42 (K _24)) ((A :43 ((B (B Y)) (((S' B) (B' ((B P) ((C _34) _238)))) (((S' (C' B)) ((B (B (C' B))) (B' _32))) (((S' (C' (C' B))) (B' _32)) (((C' B) (B' _34)) _239)))))) ((A :44 ((B (B Y)) (((S' B) (B' ((B P) ((C _34) _973)))) (((C' (C' B)) ((B (B (C' B))) (B' _32))) BK)))) ((A :45 ((B T) ((C _34) _973))) ((A :46 ((C _43) _111)) ((A :47 ((B _113) _32)) ((A :48 ((B C) ((B C') _32))) ((A :49 ((B _113) _48)) ((A :50 T) ((A :51 ((_117 ((B (B (_108 _50))) ((B ((C' C) _54)) (B P)))) (_121 _51))) ((A :52 (((((_11 _51) ((B (_108 _50)) P)) (_38 _53)) ((B (B (_108 _50))) (((C' B) ((B C) _54)) (BK _54)))) (_20 _52))) ((A :53 ((((_30 _52) ((B (B (_108 _50))) (((C' B) ((B C) _54)) (B _54)))) (_15 _52)) (_13 _52))) ((A :54 (T I)) ((A :55 ((B (_110 _293)) _54)) ((A :56 ((B (_108 _50)) (B (P _973)))) ((A :57 ((B (_108 _50)) (BK (P _973)))) ((A :58 ((_108 _50) ((S P) I))) ((A :59 ((B (_108 _50)) ((C (S' P)) I))) ((A :60 ((_95 ((C ((C S') _64)) I)) (_99 _60))) ((A :61 (((_1187 (K ((P (_1196 "False")) (_1196 "True")))) (_1192 _61)) (_1193 _61))) ((A :62 (R _67)) ((A :63 (T _66)) ((A :64 ((P _67) _66)) ((A :65 _67) ((A :66 K) ((A :67 A) ((A :68 ((_95 _1010) _1011)) ((A :69 ((((((((_271 _68) (_280 _69)) _1012) _1013) _1014) _1015) (_285 _69)) (_286 _69))) ((A :70 ((_95 _1020) (_99 _70))) ((A :71 ((((((((_271 _70) _1019) (((C' (C' (_96 _287))) _1019) _290)) (((C' (C' (_97 _287))) _1019) _292)) (((C' (C' (_96 _287))) _1019) _292)) (((C' (C' (_97 _287))) _1019) _292)) (_285 _71)) (_286 _71))) ((A :72 _1021) ((A :73 _1022) ((A :74 (((S' _63) (_1013 #97)) ((C _1013) #122))) ((A :75 (((S' _63) (_1013 #65)) ((C _1013) #90))) ((A :76 (((S' _62) _74) _75)) ((A :77 (((S' _63) (_1013 #48)) ((C _1013) #57))) ((A :78 (((S' _62) _76) _77)) ((A :79 (((S' _63) (_1013 #32)) ((C _1013) #126))) ((A :80 (((S' _62) ((C (_96 _68)) #32)) (((S' _62) ((C (_96 _68)) #9)) ((C (_96 _68)) #10)))) ((A :81 ((S ((S (((S' _63) (_1013 #65)) ((C _1013) #90))) (_67 (((noMatch "lib/Data/Char.hs") #80) #9)))) ((B _72) (((C' (_256 _123)) (((C' (_257 _123)) _73) (_73 #65))) (_73 #97))))) ((A :82 ((S ((S (((S' _63) (_1013 #97)) ((C _1013) #97))) (_67 (((noMatch "lib/Data/Char.hs") #84) #9)))) ((B _72) (((C' (_256 _123)) (((C' (_257 _123)) _73) (_73 #97))) (_73 #65))))) ((A :83 (((_1187 (K ((C ((S ((C ==) #39)) ((B (_110 (_1195 #39))) (((C' _110) ((B _1196) _84)) (_1195 #39))))) (_1196 "'\92&''")))) (_1192 _83)) ((B (_110 (_1195 #34))) (Y ((B (P (_1195 #34))) (((S' C) ((B ((S' S') ((C (_96 _68)) #34))) ((C' B) ((B _110) ((B _1196) _84))))) (B (_110 (_1196 "\92&\34&"))))))))) ((A :84 (((C' Y) (((S' B) ((B P) ((S ((S _79) ((B (_240 "'\92&")) (((C' _240) ((B (_1189 _127)) _73)) (
\ No newline at end of file
+1261
+((A :0 ((B (B (B (B C)))) ((B (B (B C))) ((B (B C)) P)))) ((A :1 (T (BK (BK (BK K))))) ((A :2 (T (K (BK (BK K))))) ((A :3 (T (K (K (BK K))))) ((A :4 (T (K (K (K K))))) ((A :5 (T (K (K (K A))))) ((A :6 (K (noDefault "Alternative.empty"))) ((A :7 (K (noDefault "Alternative.<|>"))) ((A :8 ((S (((S' S') ((B _14) _1)) (((C' _122) ((B _12) _1)) _287))) _5)) ((A :9 ((S (((S' C') _3) _4)) (((C' _13) _1) _286))) ((A :10 (((S' P) _2) (((C' _13) _1) _1021))) ((A :11 ((B (B (B (B C)))) ((B (B (B C))) ((B (B C)) P)))) ((A :12 (T (BK (BK (BK K))))) ((A :13 (T (K (BK (BK K))))) ((A :14 (T (K (K (BK K))))) ((A :15 (T (K (K (K K))))) ((A :16 (T (K (K (K A))))) ((A :17 (K (noDefault "Applicative.pure"))) ((A :18 (K (noDefault "Applicative.<*>"))) ((A :19 (((S' B) _14) (((C' _119) _12) _111))) ((A :20 (((S' B) _14) (((C' _122) _12) _112))) ((A :21 _1094) ((A :22 ((B _1137) _21)) ((A :23 (((S' _1137) _21) I)) ((A :24 _1064) ((A :25 (_24 "undefined")) ((A :26 I) ((A :27 (((C' B) _1093) ((C _110) _26))) ((A :28 (((C' _27) ((_118 _1107) _91)) ((_110 (_34 _1109)) _90))) ((A :29 ((B ((S _1137) (_34 _1109))) _24)) ((A :30 ((B (B (B C))) ((B (B C)) P))) ((A :31 (T (BK (BK K)))) ((A :32 (T (K (BK K)))) ((A :33 (T (K (K K)))) ((A :34 (T (K (K A)))) ((A :35 (K (noDefault "Monad.>>="))) ((A :36 (((C' (C' B)) _32) K)) ((A :37 ((B _13) _31)) ((A :38 (((S' (C' B)) _32) (((S' (C' B)) _32) (B' _34)))) ((A :39 P) ((A :40 (T K)) ((A :41 (T A)) ((A :42 (K _24)) ((A :43 ((B (B Y)) (((S' B) (B' ((B P) ((C _34) _286)))) (((S' (C' B)) ((B (B (C' B))) (B' _32))) (((S' (C' (C' B))) (B' _32)) (((C' B) (B' _34)) _287)))))) ((A :44 ((B (B Y)) (((S' B) (B' ((B P) ((C _34) _1021)))) (((C' (C' B)) ((B (B (C' B))) (B' _32))) BK)))) ((A :45 ((B T) ((C _34) _1021))) ((A :46 ((C _43) _111)) ((A :47 ((B _113) _32)) ((A :48 ((B C) ((B C') _32))) ((A :49 ((B _113) _48)) ((A :50 T) ((A :51 ((_117 ((B (B (_108 _50))) ((B ((C' C) _54)) (B P)))) (_121 _51))) ((A :52 (((((_11 _51) ((B (_108 _50)) P)) (_38 _53)) ((B (B (_108 _50))) (((C' B) ((B C) _54)) (BK _54)))) (_20 _52))) ((A :53 ((((_30 _52) ((B (B (_108 _50))) (((C' B) ((B C) _54)) (B _54)))) (_15 _52)) (_13 _52))) ((A :54 (T I)) ((A :55 ((B (_110 _341)) _54)) ((A :56 ((B (_108 _50)) (B (P _1021)))) ((A :57 ((B (_108 _50)) (BK (P _1021)))) ((A :58 ((_108 _50) ((S P) I))) ((A :59 ((B (_108 _50)) ((C (S' P)) I))) ((A :60 ((_95 ((C ((C S') _64)) I)) (_99 _60))) ((A :61 (((_1235 (K ((P (_1244 "False")) (_1244 "True")))) (_1240 _61)) (_1241 _61))) ((A :62 (R _67)) ((A :63 (T _66)) ((A :64 ((P _67) _66)) ((A :65 _67) ((A :66 K) ((A :67 A) ((A :68 ((_95 _1058) _1059)) ((A :69 ((((((((_319 _68) (_328 _69)) _1060) _1061) _1062) _1063) (_333 _69)) (_334 _69))) ((A :70 ((_95 _1068) (_99 _70))) ((A :71 ((((((((_319 _70) _1067) (((C' (C' (_96 _335))) _1067) _338)) (((C' (C' (_97 _335))) _1067) _340)) (((C' (C' (_96 _335))) _1067) _340)) (((C' (C' (_97 _335))) _1067) _340)) (_333 _71)) (_334 _71))) ((A :72 _1069) ((A :73 _1070) ((A :74 (((S' _63) (_1061 #97)) ((C _1061) #122))) ((A :75 (((S' _63) (_1061 #65)) ((C _1061) #90))) ((A :76 (((S' _62) _74) _75)) ((A :77 (((S' _63) (_1061 #48)) ((C _1061) #57))) ((A :78 (((S' _62) _76) _77)) ((A :79 (((S' _63) (_1061 #32)) ((C _1061) #126))) ((A :80 (((S' _62) ((C (_96 _68)) #32)) (((S' _62) ((C (_96 _68)) #9)) ((C (_96 _68)) #10)))) ((A :81 ((S ((S (((S' _63) (_1061 #65)) ((C _1061) #90))) (_67 (((noMatch "lib/Data/Char.hs") #80) #9)))) ((B _72) (((C' (_304 _123)) (((C' (_305 _123)) _73) (_73 #65))) (_73 #97))))) ((A :82 ((S ((S (((S' _63) (_1061 #97)) ((C _1061) #97))) (_67 (((noMatch "lib/Data/Char.hs") #84) #9)))) ((B _72) (((C' (_304 _123)) (((C' (_305 _123)) _73) (_73 #97))) (_73 #65))))) ((A :83 (((_1235 (K ((C ((S ((C ==) #39)) ((B (_110 (_1243 #39))) (((C' _110) ((B _1244) _84)) (_1243 #39))))) (_1244 "'\92&''")))) (_1240 _83)) ((B (_110 (_1243 #34))) (Y ((B (P (_1243 #34))) (((S' C) ((B ((S' S') ((C (_96 _68)) #34))) ((C' B) ((B _110) ((B _1244) _84))))) (B (_110 (_1244 "\92&\34&"))))))))) ((A :84 (((C' Y) (((S' B) ((B P) ((S ((S _79) ((B (_288 "'\92&")) (((C' _288) ((B (_1237 _127)) _7
\ No newline at end of file
--- a/lib/Prelude.hs
+++ b/lib/Prelude.hs
@@ -13,6 +13,7 @@
   module Data.Function,
   module Data.Functor,
   module Data.Int,
+  module Data.Integer,
   module Data.Integral,
   module Data.List,
   module Data.Maybe,
@@ -37,6 +38,7 @@
 import Data.Function
 import Data.Functor
 import Data.Int
+import Data.Integer
 import Data.Integral
 import Data.List
 import Data.Maybe
--