And same problem in data declarations: data Test {A : Set} (plus cross : Op A) : Set where tst : ∀ {a b c d} → let _+_ = plus ; _×_ = cross in a + (b × c) ≡ d → Test plus cross -- *OK* tst' : ∀ {a b c d} → let infixl 30 _+_ ; infixl 40 _×_ ; _+_ = plus ; _×_ = cross in a + b × c ≡ d → Test plus cross -- <- error here