package Ġd ary ls ze . rx kotlin starter . Extension Ċ Ċ /** Ċ Ġ* ĠUsage : Ċ Ġ* Ġ 1 Ġchain Ġ 2 Ġchain Ġ 3 Ġ= ĠTrip le ( 1 , 2 , 3 ) Ċ Ġ* Ġ 1 Ġchain Ġ 2 Ġchain Ġ 3 Ġchain Ġ 4 Ġ= ĠQuad ( 1 , 2 , 3 , 4 ) Ċ Ġ*/ Ċ Ċ data Ġclass ĠQuad < out ĠT , Ġout ĠS , Ġout ĠR , Ġout ĠF >( ĊĠĠĠĠĠĠĠ Ġval Ġfirst : ĠT , ĊĠĠĠĠĠĠĠ Ġval Ġsecond : ĠS , ĊĠĠĠĠĠĠĠ Ġval Ġthird : ĠR , ĊĠĠĠĠĠĠĠ Ġval Ġfourth : ĠF Ċ ) Ċ Ċ data Ġclass ĠP enta < out ĠT , Ġout ĠQ , Ġout ĠR , Ġout ĠS , Ġout ĠP >( ĊĠĠĠĠĠĠĠ Ġval Ġfirst : ĠT , ĊĠĠĠĠĠĠĠ Ġval Ġsecond : ĠQ , ĊĠĠĠĠĠĠĠ Ġval Ġthird : ĠR , ĊĠĠĠĠĠĠĠ Ġval Ġfourth : ĠS , ĊĠĠĠĠĠĠĠ Ġval Ġf ifth : ĠP Ċ ) Ċ Ċ data Ġclass ĠHex a < out ĠT , Ġout ĠQ , Ġout ĠR , Ġout ĠS , Ġout ĠP , Ġout ĠV >( ĊĠĠĠĠĠĠĠ Ġval Ġfirst : ĠT , ĊĠĠĠĠĠĠĠ Ġval Ġsecond : ĠQ , ĊĠĠĠĠĠĠĠ Ġval Ġthird : ĠR , ĊĠĠĠĠĠĠĠ Ġval Ġfourth : ĠS , ĊĠĠĠĠĠĠĠ Ġval Ġf ifth : ĠP , ĊĠĠĠĠĠĠĠ Ġval Ġsix th : ĠV Ċ ) Ċ Ċ infix Ġfun Ġ< T , ĠR > ĠT . chain ( r : ĠR ): ĠPair < T , ĠR > Ġ= ĠPair ( this , Ġr ) Ċ infix Ġfun Ġ< T , ĠR , ĠP > ĠPair < T , ĠR >. chain ( p : ĠP ): ĠTrip le < T , ĠR , ĠP > Ġ= ĠTrip le ( first , Ġsecond , Ġp ) Ċ infix Ġfun Ġ< T , ĠR , ĠP , ĠQ > ĠTrip le < T , ĠR , ĠP >. chain ( q : ĠQ ): ĠQuad < T , ĠR , ĠP , ĠQ > Ġ= ĠQuad ( first , Ġsecond , Ġthird , Ġq ) Ċ infix Ġfun Ġ< T , ĠR , ĠP , ĠQ , ĠW > ĠQuad < T , ĠR , ĠP , ĠQ >. chain ( w : ĠW ): ĠP enta < T , ĠR , ĠP , ĠQ , ĠW > Ġ= ĠP enta ( first , Ġsecond , Ġthird , Ġfourth , Ġw ) Ċ infix Ġfun Ġ< T , ĠR , ĠP , ĠQ , ĠW , ĠE > ĠP enta < T , ĠR , ĠP , ĠQ , ĠW >. chain ( e : ĠE ): ĠHex a < T , ĠR , ĠP , ĠQ , ĠW , ĠE > Ġ= ĠHex a ( first , Ġsecond , Ġthird , Ġfourth , Ġf ifth , Ġe ) Ċ