#[lang = "sized"] pub trait Sized {} pub enum Option { None, Some(T), } pub enum Result { Ok(T), Err(E), } pub trait TryFrom { type Error; fn try_from(value: T) -> Result; } pub trait From { fn from(_: T) -> Self; } impl From for T { fn from(t: T) -> T { t } } impl TryFrom for T where T: From, { type Error = !; fn try_from(value: U) -> Result { Result::Ok(T::from(value)) } } pub fn test(n: usize) { let _a = ::try_from(n); }