@ file : Suppress (" FunctionName ") Ċ Ċ package Ġcom . sv en jac obs . zen . common Ċ Ċ import Ġkotlin . contracts . Experimental Contracts Ċ import Ġkotlin . contracts . contract Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Pair ] Ġif Ġall Ġvalues Ġare Ġnon - null , Ġelse Ġreturns Ġ` null `. Ċ Ġ*/ Ċ @ Experimental Contracts Ċ fun Ġ< A , ĠB > ĠSafe Pair ( first : ĠA ?, Ġsecond : ĠB ?): ĠPair < A , ĠB >? Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns NotNull () Ġimplies Ġ( first Ġ!= Ġnull Ġ&& Ġsecond Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturns ( null ) Ġimplies Ġ( first Ġ== Ġnull Ġ|| Ġsecond Ġ== Ġnull ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġif Ġ( first Ġ!= Ġnull Ġ&& Ġsecond Ġ!= Ġnull ) ĠPair ( first , Ġsecond ) Ġelse Ġnull Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Triple ] Ġif Ġall Ġvalues Ġare Ġnon - null , Ġelse Ġreturns Ġ` null `. Ċ Ġ*/ Ċ @ Experimental Contracts Ċ fun Ġ< A , ĠB , ĠC > ĠSafe Triple ( first : ĠA ?, Ġsecond : ĠB ?, Ġthird : ĠC ?): ĠTrip le < A , ĠB , ĠC >? Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns NotNull () Ġimplies Ġ( first Ġ!= Ġnull Ġ&& Ġsecond Ġ!= Ġnull Ġ&& Ġthird Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġreturns ( null ) Ġimplies Ġ( first Ġ== Ġnull Ġ|| Ġsecond Ġ== Ġnull Ġ|| Ġthird Ġ== Ġnull ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġif Ġ( first Ġ!= Ġnull Ġ&& Ġsecond Ġ!= Ġnull Ġ&& Ġthird Ġ!= Ġnull ) ĠTrip le ( first , Ġsecond , Ġthird ) Ġelse Ġnull Ċ } Ċ