'Evaluate the inner product betweeen this ket and a bra.
This is called to compute <bra|ket>, where the ket is ``self``.
This method will dispatch to sub-methods having the format::
``def _eval_innerproduct_BraClass(self, **hints):``
Subclasses should define these methods (one for each BraClass) to
teach the ket how to take inner products with bras.'

def _eval_innerproduct(self, bra, **hints):

    return dispatch_method(self, '_eval_innerproduct', bra, **hints)
