@@ -179,12 +179,18 @@ execApp' env ctxt (P _ (UN "prim__readString") _) [P _ (UN "prim__stdin") _] =
179179 do line <- execIO getLine
180180 return (Constant (Str line))
181181
182−execApp' env ctxt (P _ (UN "prim__concat") _) [(Constant (Str s1)), (Constant (Str s2))] =
182+execApp' env ctxt (P _ (UN "prim__concat") _) [Constant (Str s1), Constant (Str s2)] =
183183 return $ Constant (Str (s1 ++ s2))
184184
185−execApp' env ctxt (P _ (UN "prim__eqInt") _) [(Constant (I i1)), (Constant (I i2))] =
185+execApp' env ctxt (P _ (UN "prim__eqInt") _) [Constant (I i1), Constant (I i2)] =
186186 return $ if i1 == i2 then Constant (I 1) else Constant (I 0)
187187
188+execApp' env ctxt (P _ (UN "prim__ltInt") _) [Constant (I i1), Constant (I i2)] =
189+ return $ if i1 < i2 then Constant (I 1) else Constant (I 0)
190+
191+execApp' env ctxt (P _ (UN "prim__subInt") _) [Constant (I i1), Constant (I i2)] =
192+ return . Constant . I $ i1 - i2
193+
188194execApp' env ctxt (P _ (UN "prim__readString") _) [ptr] | Just p <- unPtr ptr =
189195 do fn <- findForeign "freadStr"
190196 case fn of