/* ĊĠ ĠAUTO GENERATED ĠFILE . ĠD ON ' T ĠEDIT ĠDIRECT LY ĊĠ ĠThis Ġfile Ġwas Ġgenerated Ġby Ġtuple . generator . k ts Ċ */ Ċ package Ġprop Check . instances Ċ Ċ import Ġprop Check .* Ċ import Ġarrow . core .* Ċ import Ġprop Check . ar bitrary . gen . mon ad . mon ad Ċ import Ġprop Check . instances . tuple 2 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 3 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 4 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 5 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 6 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 7 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 8 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 9 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 0 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 1 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 2 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 3 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 4 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 5 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 6 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 7 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 8 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 1 9 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 2 0 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 2 1 . ar bitrary . ar bitrary Ċ import Ġprop Check . instances . tuple 2 2 . ar bitrary . ar bitrary Ċ import Ġarrow . extension Ċ import Ġprop Check . ar bitrary . Ar bitrary Ċ import Ġprop Check . ar bitrary . Gen Ċ import Ġprop Check . ar bitrary . fix Ċ import Ġprop Check . ar bitrary . shrink Map Ċ Ċ @ extension Ċ interface ĠTuple 2 Ar bitrary < A , ĠB > Ġ: ĠAr bitrary < Tuple 2 < A , ĠB >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 2 < A , ĠB >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 2 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 2 < A , ĠB >): ĠSequence < Tuple 2 < A , ĠB >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 2 ( it , Ġfail . b ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 2 ( fail . a , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 2 < A , ĠB >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 2 < A , ĠB >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 2 < A , ĠB >> Ġ= ĠTuple 2 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary ()) Ċ ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 3 Ar bitrary < A , ĠB , ĠC > Ġ: ĠAr bitrary < Tuple 3 < A , ĠB , ĠC >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 3 < A , ĠB , ĠC >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 3 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 3 < A , ĠB , ĠC >): ĠSequence < Tuple 3 < A , ĠB , ĠC >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 3 ( it , Ġfail . b , Ġfail . c ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 3 ( fail . a , Ġit , Ġfail . c ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 3 ( fail . a , Ġfail . b , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 3 < A , ĠB , ĠC >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 3 < A , ĠB , ĠC >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 3 < A , ĠB , ĠC >> Ġ= ĠTuple 3 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 4 Ar bitrary < A , ĠB , ĠC , ĠD > Ġ: ĠAr bitrary < Tuple 4 < A , ĠB , ĠC , ĠD >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 4 < A , ĠB , ĠC , ĠD >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 4 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 4 < A , ĠB , ĠC , ĠD >): ĠSequence < Tuple 4 < A , ĠB , ĠC , ĠD >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 4 ( it , Ġfail . b , Ġfail . c , Ġfail . d ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 4 ( fail . a , Ġit , Ġfail . c , Ġfail . d ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 4 ( fail . a , Ġfail . b , Ġit , Ġfail . d ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 4 ( fail . a , Ġfail . b , Ġfail . c , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 4 < A , ĠB , ĠC , ĠD >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 4 < A , ĠB , ĠC , ĠD >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 4 < A , ĠB , ĠC , ĠD >> Ġ= ĠTuple 4 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 5 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE > Ġ: ĠAr bitrary < Tuple 5 < A , ĠB , ĠC , ĠD , ĠE >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 5 < A , ĠB , ĠC , ĠD , ĠE >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 5 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 5 < A , ĠB , ĠC , ĠD , ĠE >): ĠSequence < Tuple 5 < A , ĠB , ĠC , ĠD , ĠE >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 5 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 5 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 5 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 5 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 5 < A , ĠB , ĠC , ĠD , ĠE >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 5 < A , ĠB , ĠC , ĠD , ĠE >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 5 < A , ĠB , ĠC , ĠD , ĠE >> Ġ= ĠTuple 5 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 6 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF > Ġ: ĠAr bitrary < Tuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 6 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >): ĠSequence < Tuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 6 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 6 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 6 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 6 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF >> Ġ= ĠTuple 6 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 7 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG > Ġ: ĠAr bitrary < Tuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 7 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >): ĠSequence < Tuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 7 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 7 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 7 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 7 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG >> Ġ= ĠTuple 7 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 8 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH > Ġ: ĠAr bitrary < Tuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 8 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >): ĠSequence < Tuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 8 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 8 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH >> Ġ= ĠTuple 8 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 9 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 9 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >): ĠSequence < Tuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 9 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 9 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI >> Ġ= ĠTuple 9 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 0 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 0 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >): ĠSequence < Tuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 0 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ >> Ġ= ĠTuple 1 0 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 1 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 1 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >): ĠSequence < Tuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 1 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK >> Ġ= ĠTuple 1 1 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 2 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 2 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >): ĠSequence < Tuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 2 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL >> Ġ= ĠTuple 1 2 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 3 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 3 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >): ĠSequence < Tuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 3 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 3 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 3 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM >> Ġ= ĠTuple 1 3 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 4 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 4 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >): ĠSequence < Tuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 4 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 4 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 4 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN >> Ġ= ĠTuple 1 4 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 5 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 5 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >): ĠSequence < Tuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 5 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 1 5 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 5 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO >> Ġ= ĠTuple 1 5 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 6 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 6 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >): ĠSequence < Tuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 6 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 1 6 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 6 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP >> Ġ= ĠTuple 1 6 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 7 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 7 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >): ĠSequence < Tuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 7 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 1 7 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 7 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ >> Ġ= ĠTuple 1 7 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 8 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġfun ĠAR (): ĠAr bitrary < R > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 8 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind (), ĠAR (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >): ĠSequence < Tuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 8 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit , Ġfail . r ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAR (). shrink ( fail . r ). map Ġ{ ĠTuple 1 8 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , Ġre ified ĠR : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 8 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR >> Ġ= ĠTuple 1 8 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 8 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 1 9 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġfun ĠAR (): ĠAr bitrary < R > ĊĠĠĠ Ġfun ĠAS (): ĠAr bitrary < S > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 1 9 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind (), ĠAR (). ar bitrary (). bind (), ĠAS (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >): ĠSequence < Tuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 1 9 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit , Ġfail . r , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAR (). shrink ( fail . r ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġit , Ġfail . s ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAS (). shrink ( fail . s ). map Ġ{ ĠTuple 1 9 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , Ġre ified ĠR : ĠAny , Ġre ified ĠS : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 1 9 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS >> Ġ= ĠTuple 1 9 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 9 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 2 0 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġfun ĠAR (): ĠAr bitrary < R > ĊĠĠĠ Ġfun ĠAS (): ĠAr bitrary < S > ĊĠĠĠ Ġfun ĠAT (): ĠAr bitrary < T > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 2 0 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind (), ĠAR (). ar bitrary (). bind (), ĠAS (). ar bitrary (). bind (), ĠAT (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >): ĠSequence < Tuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 2 0 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit , Ġfail . r , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAR (). shrink ( fail . r ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġit , Ġfail . s , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAS (). shrink ( fail . s ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġit , Ġfail . t ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAT (). shrink ( fail . t ). map Ġ{ ĠTuple 2 0 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , Ġre ified ĠR : ĠAny , Ġre ified ĠS : ĠAny , Ġre ified ĠT : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 2 0 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT >> Ġ= ĠTuple 2 0 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 0 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 2 1 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġfun ĠAR (): ĠAr bitrary < R > ĊĠĠĠ Ġfun ĠAS (): ĠAr bitrary < S > ĊĠĠĠ Ġfun ĠAT (): ĠAr bitrary < T > ĊĠĠĠ Ġfun ĠA U (): ĠAr bitrary < U > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 2 1 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind (), ĠAR (). ar bitrary (). bind (), ĠAS (). ar bitrary (). bind (), ĠAT (). ar bitrary (). bind (), ĠA U (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >): ĠSequence < Tuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 2 1 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAR (). shrink ( fail . r ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġit , Ġfail . s , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAS (). shrink ( fail . s ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġit , Ġfail . t , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAT (). shrink ( fail . t ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġit , Ġfail . u ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA U (). shrink ( fail . u ). map Ġ{ ĠTuple 2 1 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , Ġre ified ĠR : ĠAny , Ġre ified ĠS : ĠAny , Ġre ified ĠT : ĠAny , Ġre ified ĠU : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 2 1 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU >> Ġ= ĠTuple 2 1 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 1 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } Ċ Ċ @ extension Ċ interface ĠTuple 2 2 Ar bitrary < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV > Ġ: ĊĠĠĠ ĠAr bitrary < Tuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >> Ġ{ ĊĠĠĠ Ġfun ĠAA (): ĠAr bitrary < A > ĊĠĠĠ Ġfun ĠAB (): ĠAr bitrary < B > ĊĠĠĠ Ġfun ĠAC (): ĠAr bitrary < C > ĊĠĠĠ Ġfun ĠAD (): ĠAr bitrary < D > ĊĠĠĠ Ġfun ĠAE (): ĠAr bitrary < E > ĊĠĠĠ Ġfun ĠAF (): ĠAr bitrary < F > ĊĠĠĠ Ġfun ĠAG (): ĠAr bitrary < G > ĊĠĠĠ Ġfun ĠA H (): ĠAr bitrary < H > ĊĠĠĠ Ġfun ĠAI (): ĠAr bitrary < I > ĊĠĠĠ Ġfun ĠAJ (): ĠAr bitrary < J > ĊĠĠĠ Ġfun ĠA K (): ĠAr bitrary < K > ĊĠĠĠ Ġfun ĠAL (): ĠAr bitrary < L > ĊĠĠĠ Ġfun ĠAM (): ĠAr bitrary < M > ĊĠĠĠ Ġfun ĠAN (): ĠAr bitrary < N > ĊĠĠĠ Ġfun ĠA O (): ĠAr bitrary < O > ĊĠĠĠ Ġfun ĠAP (): ĠAr bitrary < P > ĊĠĠĠ Ġfun ĠA Q (): ĠAr bitrary < Q > ĊĠĠĠ Ġfun ĠAR (): ĠAr bitrary < R > ĊĠĠĠ Ġfun ĠAS (): ĠAr bitrary < S > ĊĠĠĠ Ġfun ĠAT (): ĠAr bitrary < T > ĊĠĠĠ Ġfun ĠA U (): ĠAr bitrary < U > ĊĠĠĠ Ġfun ĠAV (): ĠAr bitrary < V > ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < Tuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >> Ġ= ĠGen . mon ad (). fx . mon ad Ġ{ ĊĠĠĠĠĠĠĠ ĠTuple 2 2 ( AA (). ar bitrary (). bind (), ĠAB (). ar bitrary (). bind (), ĠAC (). ar bitrary (). bind (), ĠAD (). ar bitrary (). bind (), ĠAE (). ar bitrary (). bind (), ĠAF (). ar bitrary (). bind (), ĠAG (). ar bitrary (). bind (), ĠA H (). ar bitrary (). bind (), ĠAI (). ar bitrary (). bind (), ĠAJ (). ar bitrary (). bind (), ĠA K (). ar bitrary (). bind (), ĠAL (). ar bitrary (). bind (), ĠAM (). ar bitrary (). bind (), ĠAN (). ar bitrary (). bind (), ĠA O (). ar bitrary (). bind (), ĠAP (). ar bitrary (). bind (), ĠA Q (). ar bitrary (). bind (), ĠAR (). ar bitrary (). bind (), ĠAS (). ar bitrary (). bind (), ĠAT (). ar bitrary (). bind (), ĠA U (). ar bitrary (). bind (), ĠAV (). ar bitrary (). bind ()) ĊĠĠĠ Ġ}. fix () ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠTuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >): ĠSequence < Tuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >> Ġ= ĊĠĠĠĠĠĠĠ ĠAA (). shrink ( fail . a ). map Ġ{ ĠTuple 2 2 ( it , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAB (). shrink ( fail . b ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġit , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAC (). shrink ( fail . c ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġit , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAD (). shrink ( fail . d ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġit , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAE (). shrink ( fail . e ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġit , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAF (). shrink ( fail . f ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġit , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG (). shrink ( fail . g ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġit , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA H (). shrink ( fail . h ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġit , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAI (). shrink ( fail . i ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġit , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAJ (). shrink ( fail . j ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġit , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA K (). shrink ( fail . k ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġit , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAL (). shrink ( fail . l ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġit , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAM (). shrink ( fail . m ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġit , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAN (). shrink ( fail . n ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġit , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA O (). shrink ( fail . o ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġit , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP (). shrink ( fail . p ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġit , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Q (). shrink ( fail . q ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġit , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAR (). shrink ( fail . r ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġit , Ġfail . s , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAS (). shrink ( fail . s ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġit , Ġfail . t , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAT (). shrink ( fail . t ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġit , Ġfail . u , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA U (). shrink ( fail . u ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġit , Ġfail . v ) Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAV (). shrink ( fail . v ). map Ġ{ ĠTuple 2 2 ( fail . a , Ġfail . b , Ġfail . c , Ġfail . d , Ġfail . e , Ġfail . f , Ġfail . g , Ġfail . h , Ġfail . i , Ġfail . j , Ġfail . k , Ġfail . l , Ġfail . m , Ġfail . n , Ġfail . o , Ġfail . p , Ġfail . q , Ġfail . r , Ġfail . s , Ġfail . t , Ġfail . u , Ġit ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠA : ĠAny , Ġre ified ĠB : ĠAny , Ġre ified ĠC : ĠAny , Ġre ified ĠD : ĠAny , Ġre ified ĠE : ĠAny , Ġre ified ĠF : ĠAny , Ġre ified ĠG : ĠAny , Ġre ified ĠH : ĠAny , Ġre ified ĠI : ĠAny , Ġre ified ĠJ : ĠAny , Ġre ified ĠK : ĠAny , Ġre ified ĠL : ĠAny , Ġre ified ĠM : ĠAny , Ġre ified ĠN : ĠAny , Ġre ified ĠO : ĠAny , Ġre ified ĠP : ĠAny , Ġre ified ĠQ : ĠAny , Ġre ified ĠR : ĠAny , Ġre ified ĠS : ĠAny , Ġre ified ĠT : ĠAny , Ġre ified ĠU : ĠAny , Ġre ified ĠV : ĠAny , ĠF 1 > Ġfrom T up ( ĊĠĠĠ Ġno inline Ġg : Ġ( F 1 ) Ġ-> ĠTuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >, ĊĠĠĠ Ġno inline Ġf : Ġ( Tuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >) Ġ-> ĠF 1 , ĊĠĠĠ Ġar b : ĠAr bitrary < Tuple 2 2 < A , ĠB , ĠC , ĠD , ĠE , ĠF , ĠG , ĠH , ĠI , ĠJ , ĠK , ĠL , ĠM , ĠN , ĠO , ĠP , ĠQ , ĠR , ĠS , ĠT , ĠU , ĠV >> Ġ= ĠTuple 2 2 . ar bitrary ( def Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary (), Ġdef Ar bitrary ()), ĊĠĠĠ Ġdummy 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 2 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 3 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 4 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 5 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 6 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 7 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 8 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 1 9 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 0 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 1 : ĠUnit Ġ= ĠUnit , ĊĠĠĠ Ġdummy 2 2 : ĠUnit Ġ= ĠUnit ): ĠAr bitrary < F 1 > Ġ= Ġobject Ġ: ĠAr bitrary < F 1 > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġarbitrary (): ĠGen < F 1 > Ġ= Ġar b . ar bitrary (). map ( f ) ĊĠĠĠ Ġoverride Ġfun Ġshrink ( fail : ĠF 1 ): ĠSequence < F 1 > Ġ= Ġshrink Map ( g , Ġf , Ġar b ). invoke ( fail ) Ċ } ĊĊ