ryanpetrello/singledispatch archive