úÎHg>Łg      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefNone&'+-;<=>?AFQSTV;VDConverts a function that works on n-ary tuples to a curried function/curryT (\(a,b,c) -> a + b + c) 1 2 3 :: Integer6?Currently, type inference is partially broken for this functionDConverts a curried function to a function that works on n-ary tuples&uncurryT (\a b c -> a + b + c) (1,2,3)60Reverses the order of elements in an n-ary tuplereverseT (1,2,3,4) (4,3,2,1)-Appends two n-ary tuple into one larger tupleappendT (5,'c') ('d',False)(5,'c','d',False)g-Compresses sub-tuples into their paren-tuplesflattenT (5,6,(1,2,(3,4))):Deletes an element specified by an index in an n-ary tuple%delN ('c',False,5) (Proxy :: Proxy 1)('c',5)XDeletes the first element in an n-ary tuple whose type does not exist in the target type del ('c',False,5) :: (Char,Bool) ('c',False)-Adds an element to the back of an n-ary tuplesnocT 5 (True,'c') (True,'c',5)-Adds an element to the head of an n-ary tupleconsT 5 (True,'c') (5,True,'c')uMaps a monomorphic function over each element in an n-ary tuple that matches the type of the argument of the functionmapT not (True,'c',False)(False,'c',True)5Sometimes it is necessary to specify the result type.9mapT (+1) (5,6,7,False) :: (Integer,Integer,Integer,Bool) (6,7,8,False)Using %( this is not necessary. However, to use %7 the tuple may only contains elements of a single type. +Applies a function to the element at index n in an n-ary tuple.%appN not (Proxy 2) (False,True,False)(False,True,True) % also works for polymorphic functions*appN show (5,'c',False) (Proxy :: Proxy 2)(5,'c',"False") |Applies a monomorphic function to the first element of an n-ary tuple that matches the type of the argument of the function.app not ('d',True) ('d',False)“Sometimes it is necessary to specify the result type, such that the function becomes monomorphic >>> app (+1) (True,5) :: (Bool,Integer) (True,6)One may also use €, which doesn't require specifying the result type. However it can only apply functions to the first element of an n-ary tuple. HTakes an n-ary tuple and returns the same tuple minus the first element.initT (1,2,3,4)(1,2,3))Works only only tuples of size at least 3 initT (1,2).Couldn't match type `2 ':<= 3' with `2 ':>= 3' HTakes an n-ary tuple and returns the same tuple minus the first element.tailT (1,2,3,4)(2,3,4))Works only only tuples of size at least 3 tailT (1,2).Couldn't match type `2 ':<= 3' with `2 ':>= 3' Takes an n-ary tuple and a h carrying a i6, returns the element with the index specified by the Nat)selN (1,'d',False,'c') (Proxy :: Proxy 2)FalseHTakes an n-ary tuple and returns the first element of the requested typesel (1,'d','c') :: Char'd'+Selects the first element in an n-ary tuplesel1 (0,'d','c')0+Selects the last element of any n-ary tuplelastT (1,2,3,4)4 lastT (1,2,3)3˛Applies a polymorphic function to the first element of an n-ary tuple. Since the function is polymorphic in its argument it can always be applied to the first element of a tuple.appPoly show (5,False) ("5",False)9Applies a function to the first element of an n-ary tupleapp1 (+1) (5,6,7)(6,6,7)%|Applies a polymorphic function to each element in an n-ary tuple. Requires all elements in the tuple to be of the same type.mapPolyT (+1) (5,6,7,8) (6,7,8,9)mapPolyT (+1) (5,6,7,False)7No instance for (Num Bool) arising from the literal `5'&+Deletes the first element of an n-ary tupledel1 ('c',False,5) (False,5)0  !"#$%&'()*+,-./0   % !"#$ &'()*+,-./&jklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆg‰Š‹ŒŽ‘’“”•–—˜™š ›œ žŸ  Ą˘Ł ¤ĽŚ §¨ŠSafe>|ŞŤŹ­ŽŻ°ą˛      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsttuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸'tuple-sop-0.3.0.0-CI0nrDyclqJ2Gov2NA04zData.Tuple.OpsPaths_tuple_sopcurryTuncurryTreverseTappendTdelNdelsnocTconsTmapTappNappinitTtailTselNselsel1sel2sel3sel4sel5sel6sel7sel8sel9sel10lastTappPolyapp1app2app3app4app5app6app7app8app9app10mapPolyTdel1del2del3del4del5del6del7del8del9del10 $fGSelectNPt $fGSelectNPt0 $fGTailTNPNP $fGInitTNPNP $fGInitTNPNP0 $fGAppf:NPNP$fGApp(->):NPNP $fGMapTf:NPNP$fGMapT(->):NPNP$fGMapTf[]NPNP $fGConsTaNPNP $fGSnocTaNPNP$fGSnocTaNPNP0 $fGDeleteNPNP$fGDeleteNPNP0$fGFlattenT:NPNP$fGFlattenT[]NPNP$fGAppendTNPysNP$fGAppendTNPysys$fGReverseTNPNPzs$fGReverseTNPxsxs$fGUnCurryT(->)NPb'$fGUnCurryTbNPb' $fUnCurryTstb $fReverseTst $fAppendTsrt $fSnocTast $fConsTast $fSelectst$fFuncToGen(->)(->)$fFuncToGenbb'$fGReverseNPNPt$fGReverseNPNPNP$fGDeleteNNPS'NP$fGDeleteNNPZ'NP$fGAppNfNPS'NP$fGAppN(->)NPZ'NP$fGSelectNNPS't$fGSelectNNPZ't $fAppNfsnt $fSelectNsnt$fGFlattenT:NPNP0 $fFlattenTst$fGMapTPoly:NPNP$fGAppPoly:NPNP $fMapTfst$fAppfst$fGCurryT(->)NP[]b'$fGCurryTfNP:(->) $fCurryTst $fDeleteNsnt $fDeletest $fInitTst $fTailTst$fGenericNPsrepflattenTbase Data.ProxyProxyghc-prim GHC.TypesNatRel:<=:>=PolyNat'Z'S'GReversegreverse FuncToGen funcToGen GenericNPRepNPfrom_npto_npGCurryTgcurryTCurryT GUnCurryT guncurryTUnCurryT GReverseT greverseTReverseTGAppendTgappendTAppendT GFlattenT gflattenTFlattenTGDeleteNgdelNDeleteNGDeletegdelDeleteGSnocTgsnocTSnocTGConsTgconsTConsTGMapTgmapTMapTGAppNgappNAppNGAppgappAppGInitTginitTInitTGTailTgtailTTailTGSelectNgselNSelectNGSelectgselSelectversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName