'Try to instantiate the current formula to (almost) match func.
This uses the _matcher passed on init.'

def try_instantiate(self, func):

    if (func.signature != self.func.signature):
        return None
    res = self._matcher(func)
    if (res is not None):
        (subs, newfunc) = res
        return MeijerFormula(newfunc.an, newfunc.ap, newfunc.bm, newfunc.bq, self.z, [], self.B.subs(subs), self.C.subs(subs), self.M.subs(subs), None)
