http://stackoverflow.com/questions/27011810/mystery-with-dynamic-type-double-dispatch