// Algebraic Enums - Enums with data (tagged unions) import Std::Io::{PrintLine, PrintInt}; enum Result { Ok(int), Err(String) } func Main() -> int { let r1: Result = Result { tag: Result_Ok }; r1.data.Ok_0 = 42; let r2: Result = Result { tag: Result_Err }; r2.data.Err_0 = "error message"; if r1.tag == Result_Ok { PrintLine("r1 is Ok:"); PrintInt(r1.data.Ok_0); PrintLine(""); } if r2.tag == Result_Err { PrintLine("r2 is Err:"); PrintLine(r2.data.Err_0); } return 0; }