fix(library/definitional/no_confusion): assertion violation
feat(emacs/lean-syntax): highlight [decls] modifier
feat(frontends/lean): default 'eval' command ignores opaque/irreducible annotations

To retrieve the previous behavior, we should use [strict] modifier
test(tests/lean/run): fibonacci using well_founded recursion
refactor(library/data/nat/wf): mark theorem as transparent

It doesn't really help since
        le_imp_lt_or_eq, succ_le_cancel, lt_imp_le_succ and or.elim
are still opaque
feat(library/logic/wf): some basic definitions for constructing well_founded relations
fix(frontends/lean): coercion affects other modules
feat(library/logic/wf): transitive closure of a well-founded relation is well-founded
fix(tests/lean): adjust test to new `eval` semantics
chore(library/logic/wf): cleanup
feat(library/data/nat/wf): predecessor relation is well-founded
feat(library/data/nat/wf): define measure using inverse image
feat(library/data/prod/wf): lex of well-founded relations is well-founded
chore(library/data/prod/wf): remove dependency on opaque theorem
test(tests/lean/run): define ackermann function using recursors
feat(library/definitional/util): add `is_recursive_datatype` auxiliary function
test(tests/lean/run/forest): define brec_on for forests

Almost everything explicit to get an idea of what needs to be generated automatically.
feat(library/definitional/util): add is_inductive_predicate auxiliary predicate
refactor(library/definitional): combine auxiliary functions used by definitional package in a single module
refactor(library/definitional/util): remove code duplication