type Bool = { native unop ! Bool; native binop ||[Bool] Bool; native binop &&[Bool] Bool; }; type Byte = {}; type Int = { native unop + Int; native unop - Int; native unop ~ Int; native binop ==[Int] Bool; native binop !=[Int] Bool; native binop >[Int] Bool; native binop <[Int] Bool; native binop >=[Int] Bool; native binop <=[Int] Bool; native binop <<[Int] Int; native binop >>[Int] Int; native binop |[Int] Int; native binop &[Int] Int; native binop +[Int] Int; native binop -[Int] Int; native binop *[Int] Int; native binop /[Int] Int; native binop %[Int] Int; fn str[] String; }; type Float = { };