from multimethods import dispatch