def implementation(self, for_type=None, for_types=None):
for_types = self.__get_types(for_type, for_types)<EOL>def _decorator(implementation):<EOL><INDENT>self.implement(implementation, for_types=for_types)<EOL>return self<EOL><DEDENT>return _decorator<EOL>
Return a decorator that will register the implementation.

        Example:
            @multimethod
            def add(x, y):
                pass

            @add.implementation(for_type=int)
            def add(x, y):
                return x + y

            @add.implementation(for_type=SomeType)
            def add(x, y):
                return int(x) + int(y)