override_interface : string * term -> unit
  # override_interface("^",`(EXP)`);;
  val it : unit = ()
# EXP;; val it : thm = |- (!m. ^ m 0 = 1) /\ (!m n. ^ m (SUC n) = m * ^ m n)
  # APPEND;;
  val it : thm =
    |- (!l. APPEND [] l = l) /\
       (!h t l. APPEND (CONS h t) l = CONS h (APPEND t l))
  # parse_as_infix("::",(25,"right"));;
  # parse_as_infix("@",(16,"right"));;
  # override_interface("::",`CONS`);;
  # override_interface("@",`APPEND`);;
# APPEND;; val it : thm = |- (!l. [] @ l = l) /\ (!h t l. h :: t @ l = h :: (t @ l))