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
--
⑨