Returned double dispatch, added forwarding of std::* types hidden in heavy headers: std::string and std::nullptr_t.