Reversible conversions between types