@@ -33,7 +33,8 @@ primitives =
3333 Prim (UN ["prim__ltFloat"]) (ty [FlType, FlType] IType) 2 (bfBin (<)),
3434 Prim (UN ["prim__lteFloat"]) (ty [FlType, FlType] IType) 2 (bfBin (<=)),
3535 Prim (UN ["prim__gtFloat"]) (ty [FlType, FlType] IType) 2 (bfBin (>)),
36− Prim (UN ["prim__gteFloat"]) (ty [FlType, FlType] IType) 2 (bfBin (>=))
36+ Prim (UN ["prim__gteFloat"]) (ty [FlType, FlType] IType) 2 (bfBin (>=)),
37+ Prim (UN ["prim__concat"]) (ty [StrType, StrType] StrType) 2 (sBin (++))
3738 ]
3839
3940iBin op [VConstant (I x), VConstant (I y)] = Just $ VConstant (I (op x y))
@@ -48,6 +49,9 @@ bfBin op [VConstant (Fl x), VConstant (Fl y)] = let i = (if op x y then 1 else 0
4849 Just $ VConstant (I i)
4950bfBin _ _ = Nothing
5051
52+sBin op [VConstant (Str x), VConstant (Str y)] = Just $ VConstant (Str (op x y))
53+sBin _ _ = Nothing
54+
5155elabPrim :: Prim -> Idris ()
5256elabPrim (Prim n ty i def) = updateContext (addOperator n ty i def)
5357