Move the implementation of boost::phoenix::detail::ensure_default<Cases>::eval for the default case so that it comes *after* the definition of the default_case template.