Irwin's arrfunc branch with additional MSVC workarounds