I was expecting that the order of definitions inside a mutual block was irrelevant. The definition below is accepted by the type checker. But if I change the order of definitions of x and t, then it is rejected. Isn't it odd? module test where open import Data.Bool mutual t : Set t = Bool x : t x = true