package Ġcom . ripple . kotlin . example Ċ Ċ import Ġcom . ripple . core . core types . Amount Ċ Ċ operator Ġfun ĠAmount . unary Minus () Ġ= Ġneg ate () !! Ċ operator Ġfun ĠAmount . plus ( b : ĠAmount ) Ġ= Ġadd ( b ) !! Ċ Ċ private Ġfun Ġamounts ( var arg Ġamounts : ĠString ) Ġ= Ġamounts . map ( Amount :: from IO U String ) Ċ Ċ private Ġfun Ġclaim ( c : ĠBoolean , Ġthat : ĠString Ġ= Ġ" all ", Ġwill Be : ĠBoolean Ġ= Ġtrue ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( c Ġ!= Ġwill Be ) Ġthrow ĠAssertionError ("$ that Ġ!= Ġ$ will Be ") ĊĠĠĠĠĠĠĠ Ġelse Ġprintln ("$ that Ġ== Ġ$ will Be ĠOK ") Ċ Ċ object ĠAmount sTo Nothing Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( a 1 , Ġa 2 ) Ġ= Ġamounts (" 1 / USD ", Ġ" 3 / USD ") ĊĠĠĠĠĠĠĠ Ġval Ġa 3 Ġ= Ġa 1 Ġ+ Ġa 2 ĊĊĠĠĠĠĠĠĠ Ġ// ĠTrans lated Ġto Ġ` a . compareTo ( b ) Ġ< Ġ 0 ` ĊĠĠĠĠĠĠĠ Ġclaim ( a 1 Ġ< Ġa 2 , Ġ" a 1 Ġ< Ġa 2 ") ĊĠĠĠĠĠĠĠ Ġclaim ( a 3 . to Long () Ġ== Ġ 4 L , Ġ" a 3 Ġ= Ġ 4 ") ĊĠĠĠĠĠĠĠ Ġclaim ( a 3 Ġ< Ġa 1 , Ġ" a 3 Ġ< Ġa 1 ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// ĠRe ally , Ġit ĠAmount sTo Nothing ! ĊĠĠĠĠĠĠĠ Ġclaim ((- a 3 Ġ+ Ġa 3 ). is Zero , Ġ"- a 3 Ġ+ Ġa 3 Ġ= Ġ 0 ") ĊĠĠĠ Ġ} Ċ }