trait Printable { fn format(value: Int): String } impl Printable for Int { fn format(value: Int): String = "Number: " + toString(value) } type Color = | Red | Green | Blue | RGB(Int, Int, Int) fn colorName(c: Color): String = match c { Red => "red", Green => "green", Blue => "blue", RGB(r, g, b) => "rgb(" + toString(r) + "," + toString(g) + "," + toString(b) + ")", } let myColor = RGB(255, 128, 0) let redColor = Red let greenColor = Green fn printResults(): Unit with {Console} = { Console.print("RGB color: " + colorName(myColor)) Console.print("Red color: " + colorName(redColor)) Console.print("Green color: " + colorName(greenColor)) } let output = run printResults() with {}