aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Lib.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Lib.hs')
-rw-r--r--src/Lib.hs14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/Lib.hs b/src/Lib.hs
index 27a8bdc..e907d96 100644
--- a/src/Lib.hs
+++ b/src/Lib.hs
@@ -22,21 +22,11 @@ import Data.IORef ( IORef
)
import Data.Map ( Map )
import qualified Data.Map as Map
-
-data Term = Abs Term | App Term Term | Idx Int
- deriving (Eq, Ord)
+import Term
+import Utils
type Birb = Char
-invalid :: a
-invalid = error "invalid program state"
-
-instance Show Term where
- showsPrec _ (Abs body) = showString "[" . shows body . showString "]"
- showsPrec _ (App lhs rhs) =
- showString "(" . shows lhs . showString " " . shows rhs . showString ")"
- showsPrec _ (Idx i) = shows i
-
birbify :: Term -> Map Term Birb -> String
birbify t m | t `Map.member` m = [Map.findWithDefault invalid t m]
| (Abs a) <- t = "[" ++ birbify a m ++ "]"