section ‹Examples› subsection ‹Monadic interpreter› theory Interpreter imports Monomorphic_Monad begin declare [[show_variants]] definition "apply" :: "('a ⇒ 'b) ⇒ 'a ⇒ 'b" where "apply f x = f x" lemma apply_eq_onp: includes lifting_syntax shows "(eq_onp P ===> (=) ===> (=)) apply apply" by(simp add: rel_fun_def eq_onp_def) subsubsection ‹Basic interpreter›