https://issues.dlang.org/show_bug.cgi?id=16662
--- Comment #3 from Paul Backus <snarwin+bugzi...@gmail.com> --- I've made some progress on this, but am unable to make VariantN.peek pure, because this if statement if (type != typeid(T)) return null; ...calls object.opEquals, which is not pure. So issue #13933 needs to be fixed before we can solve this. --