I can understand ``pure``. https://github.com/dlang/phobos/blob/master/std/uni/package.d#L2075
It is literally on the constructor.Now @safe I don't know. My best guess would be for some reason the constructor is getting inferred as it (templates get inferred).