PRIM_TYPES = {
    "PLUS": FunctionType([INT_TYPE, INT_TYPE], INT_TYPE),
    "MINUS": FunctionType([INT_TYPE, INT_TYPE], INT_TYPE),
    "TIMES": FunctionType([INT_TYPE, INT_TYPE], INT_TYPE),
    "DIV": FunctionType([INT_TYPE, INT_TYPE], INT_TYPE),
    "MOD": FunctionType([INT_TYPE, INT_TYPE], INT_TYPE),
    "LT": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "GT": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "LTE": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "GTE": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "EQ": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "NEQ": FunctionType([INT_TYPE, INT_TYPE], BOOL_TYPE),
    "NOT": FunctionType([BOOL_TYPE], BOOL_TYPE),
    "CONCAT": FunctionType([STR_TYPE, STR_TYPE], STR_TYPE),
    "PRINT": FunctionType([STR_TYPE], UNIT_TYPE),
    "INPUT": FunctionType([STR_TYPE], STR_TYPE),
    "STR_TO_INT": FunctionType([STR_TYPE], INT_TYPE),
    "INT_TO_STR": FunctionType([INT_TYPE], STR_TYPE),
}
