object { block_map "equality" { labels = ["operator"] object { attr "exactly" { type = bool } attr "not" { type = bool } attr "type_mismatch_number" { type = bool } attr "type_mismatch_bool" { type = bool } } } block_map "inequality" { labels = ["operator"] object { attr "lt" { type = bool } attr "gt" { type = bool } attr "eq" { type = bool } } } block "arithmetic" { object { attr "add" { type = any } attr "add_big" { type = any } attr "sub" { type = any } attr "sub_neg" { type = any } attr "mul" { type = any } attr "div" { type = any } attr "mod" { type = any } attr "mod_frac" { type = any } } } block_map "logical_binary" { labels = ["operator"] object { attr "tt" { type = bool } attr "ft" { type = bool } attr "tf" { type = bool } attr "ff" { type = bool } } } block_map "logical_unary" { labels = ["operator"] object { attr "t" { type = bool } attr "f" { type = bool } } } block "conditional" { object { attr "t" { type = any } attr "f" { type = any } } } }