'Args
- callback: callable or None
It is called for each new casting rule with
(from_type, to_type, castrel).'

def __init__(self, callback=None):

    assert ((callback is None) or callable(callback))
    self._forwards = defaultdict(CastSet)
    self._backwards = defaultdict(set)
    self._callback = callback
