fun Ġ< T > Ġdo In Tx Context With Result ( action : ĠTx Context . () Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġval Ġtx Ġ= ĠTx Context () ĊĠĠĠ Ġ// Ġbegin Ġtx ĊĠĠĠ Ġreturn Ġrun Catch ing Ġ{ Ġtx . action () Ġ} ĊĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġ/* Ġcommit Ġtx Ġ*/ Ġ} ĊĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġ/* Ġrollback Ġtx Ġ*/ Ġ} ĊĠĠĠĠĠĠĠ Ġ. get OrThrow () Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġstr Ġ= Ġdo In Tx Context With Result Ġ{ Ġ" Hello ĠTransaction : Ġ$ this " Ġ} ĊĠĠĠ Ġprintln ( str ) Ċ }