prelude constant N : Type.{1} constant f : N → N → N → N constant g : N → N → N constant h : N → N → N → N constant s : N → N → N → N → N precedence `*`:75 precedence `|`:75 notation a * b:prev | c:prev := f a b c notation a * b := g a b notation a * b * c:prev := h a b c notation a * b | c * d:prev := s a b c d constants a b c d e : N check a * b check a * b | d check a * b * c check a * b | d * e