package Ġarrow . core . extensions Ċ Ċ import Ġarrow . Kind Ċ import Ġarrow . core . Either Ċ import Ġarrow . core . Eval Ċ import Ġarrow . core . For Non Empty List Ċ import Ġarrow . core . Non Empty List Ċ import Ġarrow . core . Non Empty ListOf Ċ import Ġarrow . core . extensions . none mpty list . mon ad . mon ad Ċ import Ġarrow . core . fix Ċ import Ġarrow . extension Ċ import Ġarrow . type classes . Applic ative Ċ import Ġarrow . type classes . Apply Ċ import Ġarrow . type classes . B imon ad Ċ import Ġarrow . type classes . Com on ad Ċ import Ġarrow . type classes . Eq Ċ import Ġarrow . type classes . Fold able Ċ import Ġarrow . type classes . Functor Ċ import Ġarrow . type classes . Hash Ċ import Ġarrow . type classes . Monad Ċ import Ġarrow . type classes . Monad Syntax Ċ import Ġarrow . type classes . Reduc ible Ċ import Ġarrow . type classes . Sem ig roup Ċ import Ġarrow . type classes . Sem ig roup K Ċ import Ġarrow . type classes . Show Ċ import Ġarrow . type classes . Tra verse Ċ import Ġarrow . core . combine K Ġas Ġnel Combine K Ċ Ċ @ extension Ċ interface ĠNon Empty List Sem ig roup < A > Ġ: ĠSem ig roup < Non Empty List < A >> Ġ{ ĊĠ Ġoverride Ġfun ĠNon Empty List < A >. combine ( b : ĠNon Empty List < A >): ĠNon Empty List < A > Ġ= Ġthis Ġ+ Ġb Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Eq < A > Ġ: ĠEq < Non Empty List < A >> Ġ{ ĊĊĠ Ġfun ĠE Q (): ĠEq < A > ĊĊĠ Ġoverride Ġfun ĠNon Empty List < A >. eq v ( b : ĠNon Empty List < A >): ĠBoolean Ġ= ĊĠĠĠ Ġall . zip ( b . all ) Ġ{ Ġaa , Ġbb Ġ-> ĠE Q (). run Ġ{ Ġaa . eq v ( bb ) Ġ} Ġ}. fold ( true ) Ġ{ Ġacc , Ġbool Ġ-> ĊĠĠĠĠĠ Ġacc Ġ&& Ġbool ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Show < A > Ġ: ĠShow < Non Empty List < A >> Ġ{ ĊĠ Ġoverride Ġfun ĠNon Empty List < A >. show (): ĠString Ġ= ĊĠĠĠ ĠtoString () Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Functor Ġ: ĠFun ctor < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Apply Ġ: ĠApply < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. ap ( ff : ĠNon Empty ListOf <( A ) Ġ-> ĠB >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). ap ( ff ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Applic ative Ġ: ĠApplic ative < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. ap ( ff : ĠNon Empty ListOf <( A ) Ġ-> ĠB >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). ap ( ff ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A > Ġjust ( a : ĠA ): ĠNon Empty List < A > Ġ= ĊĠĠĠ ĠNon Empty List . just ( a ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Monad Ġ: ĠMonad < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. ap ( ff : ĠNon Empty ListOf <( A ) Ġ-> ĠB >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). ap ( ff ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. flatMap ( f : Ġ( A ) Ġ-> ĠNon Empty ListOf < B >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). flatMap ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > Ġtail Rec M ( a : ĠA , Ġf : Ġ( A ) Ġ-> ĠNon Empty ListOf < Either < A , ĠB >> ): ĠNon Empty List < B > Ġ= ĊĠĠĠ ĠNon Empty List . tail Rec M ( a , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A > Ġjust ( a : ĠA ): ĠNon Empty List < A > Ġ= ĊĠĠĠ ĠNon Empty List . just ( a ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Com on ad Ġ: ĠCom on ad < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. co flatMap ( f : Ġ( Non Empty ListOf < A >) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). co flatMap ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A > ĠNon Empty ListOf < A >. extract (): ĠA Ġ= ĊĠĠĠ Ġfix (). extract () ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List B imon ad Ġ: ĠB imon ad < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. ap ( ff : ĠNon Empty ListOf <( A ) Ġ-> ĠB >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). ap ( ff ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. flatMap ( f : Ġ( A ) Ġ-> ĠNon Empty ListOf < B >): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). flatMap ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > Ġtail Rec M ( a : ĠA , Ġf : Ġ( A ) Ġ-> ĠNon Empty ListOf < Either < A , ĠB >> ): ĠNon Empty List < B > Ġ= ĊĠĠĠ ĠNon Empty List . tail Rec M ( a , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A > Ġjust ( a : ĠA ): ĠNon Empty List < A > Ġ= ĊĠĠĠ ĠNon Empty List . just ( a ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. co flatMap ( f : Ġ( Non Empty ListOf < A >) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). co flatMap ( f ) ĊĊĠ Ġoverride Ġfun Ġ< A > ĠNon Empty ListOf < A >. extract (): ĠA Ġ= ĊĠĠĠ Ġfix (). extract () Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Fold able Ġ: ĠFold able < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. fold Left ( b : ĠB , Ġf : Ġ( B , ĠA ) Ġ-> ĠB ): ĠB Ġ= ĊĠĠĠ Ġfix (). fold Left ( b , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. fold Right ( lb : ĠEval < B >, Ġf : Ġ( A , ĠEval < B >) Ġ-> ĠEval < B >): ĠEval < B > Ġ= ĊĠĠĠ Ġfix (). fold Right ( lb , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A > ĠNon Empty ListOf < A >. isEmpty (): ĠBoolean Ġ= ĊĠĠĠ Ġfix (). isEmpty () Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Tra verse Ġ: ĠTra verse < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. map ( f : Ġ( A ) Ġ-> ĠB ): ĠNon Empty List < B > Ġ= ĊĠĠĠ Ġfix (). map ( f ) ĊĊĠ Ġoverride Ġfun Ġ< G , ĠA , ĠB > ĠNon Empty ListOf < A >. traverse ( AP : ĠApplic ative < G >, Ġf : Ġ( A ) Ġ-> ĠKind < G , ĠB >): ĠKind < G , ĠNon Empty List < B >> Ġ= ĊĠĠĠ Ġfix (). traverse ( AP , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. fold Left ( b : ĠB , Ġf : Ġ( B , ĠA ) Ġ-> ĠB ): ĠB Ġ= ĊĠĠĠ Ġfix (). fold Left ( b , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A , ĠB > ĠNon Empty ListOf < A >. fold Right ( lb : ĠEval < B >, Ġf : Ġ( A , ĠEval < B >) Ġ-> ĠEval < B >): ĠEval < B > Ġ= ĊĠĠĠ Ġfix (). fold Right ( lb , Ġf ) ĊĊĠ Ġoverride Ġfun Ġ< A > ĠNon Empty ListOf < A >. isEmpty (): ĠBoolean Ġ= ĊĠĠĠ Ġfix (). isEmpty () Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Sem ig roup K Ġ: ĠSem ig roup K < For Non Empty List > Ġ{ ĊĠ Ġoverride Ġfun Ġ< A > ĠNon Empty ListOf < A >. combine K ( y : ĠNon Empty ListOf < A >): ĠNon Empty List < A > Ġ= ĊĠĠĠ Ġfix (). nel Combine K ( y ) Ċ } Ċ Ċ @ extension Ċ interface ĠNon Empty List Hash < A > Ġ: ĠHash < Non Empty List < A >>, ĠNon Empty List Eq < A > Ġ{ ĊĠ Ġfun ĠHA (): ĠHash < A > ĊĊĠ Ġoverride Ġfun ĠE Q (): ĠEq < A > Ġ= ĠHA () ĊĊĠ Ġoverride Ġfun ĠNon Empty List < A >. hash (): ĠInt Ġ= Ġfold Left ( 1 ) Ġ{ Ġhash , Ġa Ġ-> ĊĠĠĠĠ 3 1 Ġ* Ġhash Ġ+ ĠHA (). run Ġ{ Ġa . hash () Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun Ġ< F , ĠA > ĠRed uc ible < F >. to Non Empty List ( fa : ĠKind < F , ĠA >): ĠNon Empty List < A > Ġ= ĊĠ Ġfa . reduce Right To ({ Ġa Ġ-> ĠNon Empty List . of ( a ) Ġ}, Ġ{ Ġa , Ġl nel Ġ-> ĊĠĠĠ Ġl nel . map Ġ{ Ġnon Empty List Ġ-> ĠNon Empty List ( a , ĠlistOf ( non Empty List . head ) Ġ+ Ġnon Empty List . tail ) Ġ} ĊĠ Ġ}). value () Ċ Ċ fun Ġ< A > ĠNon Empty List . Companion . fx ( c : Ġsuspend ĠMonad Syntax < For Non Empty List >. () Ġ-> ĠA ): ĠNon Empty List < A > Ġ= ĊĠ ĠNon Empty List . mon ad (). fx . mon ad ( c ). fix () Ċ