I'm guessing the first cast there does not actually use this `opCast` overload because the template instantiation fails. This overload only works when casting to `const(BigInt)`, despite the misleading signature constraint. Note that `const` on a method applies to the implicit `this` parameter, so `this` within this function is always of type `const(BigInt)`, which is only compatible with the return type when T is also `const(BigInt)`.

These casts should work without any `opCast` overload.