shithub: MicroHs

Download patch

ref: 78d0e7ea71c34caf769b40bd04a34f3fdc1ff0c7
parent: b5c5d79b4e296c32f15fff749dab7f9dbe3bdc32
author: Lennart Augustsson <lennart@augustsson.net>
date: Mon Sep 18 06:53:34 EDT 2023

Fix bugs

--- a/src/PrimTable.hs
+++ b/src/PrimTable.hs
@@ -8,22 +8,25 @@
 primitive :: String -> Any
 primitive s = fromMaybe (error $ "primitive: " ++ s) $ lookup s primOps
 
-data DIO a = DIO { unDIO :: IO a }
+newtype DIO a = DIO { unDIO :: IO a }
 
 primOps :: [(String, Any)]
 primOps =
   [ comb "S" (\ f g x -> f x (g x))
+  , comb "S'" (\ k f g x -> k f x (g x))
   , comb "K" (\ x _y -> x)
+  , comb "A" (\ _x y -> y)
+  , comb "T" (\ x y -> y x)
   , comb "I" (\ x -> x)
-  , comb "C" (\ f g x -> f x g)
-  , comb "B" (\ f g x -> f (g x))
-  , comb "T" (\ _x y -> y)
   , comb "Y" (\ f -> let r = f r in r)
-  , comb "P" (\ x y f -> f x y)
-  , comb "O" (\ x y _g f -> f x y)
-  , comb "S'" (\ k f g x -> k f x (g x))
+  , comb "B" (\ f g x -> f (g x))
   , comb "B'" (\ k f g x -> k f (g x))
+  , comb "BK" (\ f g _x -> f g)
+  , comb "C" (\ f g x -> f x g)
   , comb "C'" (\ k f g x -> k f x g)
+  , comb "P" (\ x y f -> f x y)
+  , comb "O" (\ x y _g f -> f x y)
+
   , arith "+" (+)
   , arith "-" (-)
   , arith "*" (*)
@@ -67,7 +70,7 @@
     putc h c = DIO $ do
 --      let h = unsafeCoerce hh :: Handle
 --          c = unsafeCoerce cc :: Int
-      print (h, c)
+--      print (h, c)
       hPutChar h (toEnum c)
 --    open = undefined
 --    close = undefined
--