using argument_type = typename B::argument_type; \
using potential_type = typename B::potential_type; \
using jacobian_type = typename B::jacobian_type; \
using hessian_type = typename B::hessian_type; \
using potential_evaluation_type = typename B::potential_evaluation_type; \
using jacobian_evaluation_type = typename B::jacobian_evaluation_type; \
using hessian_evaluation_type = typename B::hessian_evaluation_type; \
using potential_return_type = typename B::potential_return_type; \
using jacobian_return_type = typename B::jacobian_return_type; \
using hessian_return_type = typename B::hessian_return_type; \
using local_quadratic_evaluation_type = typename B::local_quadratic_evaluation_type; \
using local_quadratic_return_type = typename B::local_quadratic_return_type;