The Art of Multiple Dispatch