Set: pp::colors
  Set: pp::unicode
Failed to solve
 ⊢ (?M::0 ≈ Nat::add) ⊕ (?M::0 ≈ Int::add) ⊕ (?M::0 ≈ Real::add)
    (line: 1: pos: 10) Overloading at
        (Real::add | Int::add | Nat::add) 1 ⊤
    Failed to solve
     ⊢ Bool ≺ ℕ
        Substitution
         ⊢ Bool ≺ ?M::8
            (line: 1: pos: 10) Type of argument 2 must be convertible to the expected type in the application of
                ?M::0
            with arguments:
                ?M::1 1
                ⊤
            Assignment
             ⊢ ℕ ≈ ?M::8
                Destruct/Decompose
                 ⊢ ℕ → ℕ ≈ Π x : ?M::8, ?M::9 x
                    Substitution
                     ⊢ (?M::7[inst:0 (?M::1 1)]) (?M::1 1) ≈ Π x : ?M::8, ?M::9 x
                        (line: 1: pos: 10) Function expected at
                            ?M::0 (?M::1 1) ⊤
                        Assignment
                        _ : ℕ ⊢ λ x : ℕ, ℕ → ℕ ≈ ?M::7
                            Destruct/Decompose
                            _ : ℕ ⊢ ℕ → ℕ ≈ ?M::7 _
                                Destruct/Decompose
                                 ⊢ ℕ → ℕ → ℕ ≈ Π x : ?M::6, ?M::7 x
                                    Substitution
                                     ⊢ ?M::2 ≈ Π x : ?M::6, ?M::7 x
                                        (line: 1: pos: 10) Function expected at
                                            ?M::0 (?M::1 1) ⊤
                                        Assignment
                                         ⊢ ℕ → ℕ → ℕ ≺ ?M::2
                                            Propagate type, ?M::0 : ?M::2
                                                Assignment
                                                 ⊢ ?M::0 ≈ Nat::add
                                                    Assumption 0
    Failed to solve
     ⊢ Bool ≺ ℤ
        Substitution
         ⊢ Bool ≺ ?M::8
            (line: 1: pos: 10) Type of argument 2 must be convertible to the expected type in the application of
                ?M::0
            with arguments:
                ?M::1 1
                ⊤
            Assignment
             ⊢ ℤ ≈ ?M::8
                Destruct/Decompose
                 ⊢ ℤ → ℤ ≈ Π x : ?M::8, ?M::9 x
                    Substitution
                     ⊢ (?M::7[inst:0 (?M::1 1)]) (?M::1 1) ≈ Π x : ?M::8, ?M::9 x
                        (line: 1: pos: 10) Function expected at
                            ?M::0 (?M::1 1) ⊤
                        Assignment
                        _ : ℤ ⊢ λ x : ℤ, ℤ → ℤ ≈ ?M::7
                            Destruct/Decompose
                            _ : ℤ ⊢ ℤ → ℤ ≈ ?M::7 _
                                Destruct/Decompose
                                 ⊢ ℤ → ℤ → ℤ ≈ Π x : ?M::6, ?M::7 x
                                    Substitution
                                     ⊢ ?M::2 ≈ Π x : ?M::6, ?M::7 x
                                        (line: 1: pos: 10) Function expected at
                                            ?M::0 (?M::1 1) ⊤
                                        Assignment
                                         ⊢ ℤ → ℤ → ℤ ≺ ?M::2
                                            Propagate type, ?M::0 : ?M::2
                                                Assignment
                                                 ⊢ ?M::0 ≈ Int::add
                                                    Assumption 2
    Failed to solve
     ⊢ Bool ≺ ℝ
        Substitution
         ⊢ Bool ≺ ?M::8
            (line: 1: pos: 10) Type of argument 2 must be convertible to the expected type in the application of
                ?M::0
            with arguments:
                ?M::1 1
                ⊤
            Assignment
             ⊢ ℝ ≈ ?M::8
                Destruct/Decompose
                 ⊢ ℝ → ℝ ≈ Π x : ?M::8, ?M::9 x
                    Substitution
                     ⊢ (?M::7[inst:0 (?M::1 1)]) (?M::1 1) ≈ Π x : ?M::8, ?M::9 x
                        (line: 1: pos: 10) Function expected at
                            ?M::0 (?M::1 1) ⊤
                        Assignment
                        _ : ℝ ⊢ λ x : ℝ, ℝ → ℝ ≈ ?M::7
                            Destruct/Decompose
                            _ : ℝ ⊢ ℝ → ℝ ≈ ?M::7 _
                                Destruct/Decompose
                                 ⊢ ℝ → ℝ → ℝ ≈ Π x : ?M::6, ?M::7 x
                                    Substitution
                                     ⊢ ?M::2 ≈ Π x : ?M::6, ?M::7 x
                                        (line: 1: pos: 10) Function expected at
                                            ?M::0 (?M::1 1) ⊤
                                        Assignment
                                         ⊢ ℝ → ℝ → ℝ ≺ ?M::2
                                            Propagate type, ?M::0 : ?M::2
                                                Assignment
                                                 ⊢ ?M::0 ≈ Real::add
                                                    Assumption 5
  Assumed: R
  Assumed: T
  Assumed: r2t
  Coercion r2t
  Assumed: t2r
  Coercion t2r
  Assumed: f
  Assumed: a
  Assumed: b
  Set: lean::pp::coercion
  Set: lean::pp::notation
f a b
f (r2t b) (t2r a)
  Assumed: g
f a b
f (r2t b) (t2r a)