Is there a reason why alias A = Algebraic!(long, string); A x; x = 42; doesn't implicitly convert `42` to `long` and stores it in `x`?