package main enum PaymentResult { Accepted(String) Rejected(String) Pending } fun describe(result: PaymentResult): String { return match (result) { PaymentResult::Accepted(id) -> "accepted " + id PaymentResult::Rejected(reason) -> "rejected " + reason PaymentResult::Pending -> "pending" } } fun main() { val result = PaymentResult::Accepted("payment-1") println(describe(result)) }