hat-2.7.0.0: Hat/List.hs
module Hat.List
(gelemIndex,aelemIndex,helemIndex,gelemIndices,aelemIndices,helemIndices,gfind
,afind,hfind,gfindIndex,afindIndex,hfindIndex,gfindIndices,afindIndices
,hfindIndices,gnub,gnubBy,anubBy,hnubBy,gdelete,gdeleteBy,adeleteBy
,hdeleteBy,(!\\),gdeleteFirstsBy,adeleteFirstsBy,hdeleteFirstsBy,gunion
,gunionBy,aunionBy,hunionBy,gintersect,gintersectBy,aintersectBy
,hintersectBy,gintersperse,aintersperse,hintersperse,gtranspose,atranspose
,htranspose,gpartition,apartition,hpartition,ggroup,ggroupBy,agroupBy
,hgroupBy,ginits,ainits,hinits,gtails,atails,htails,gisPrefixOf,aisPrefixOf
,hisPrefixOf,gisSuffixOf,aisSuffixOf,hisSuffixOf,gmapAccumL,amapAccumL
,hmapAccumL,gmapAccumR,amapAccumR,hmapAccumR,gsort,gsortBy,asortBy,hsortBy
,ginsert,ginsertBy,ainsertBy,hinsertBy,gmaximumBy,amaximumBy,hmaximumBy
,gminimumBy,aminimumBy,hminimumBy,ggenericLength,agenericLength
,hgenericLength,ggenericTake,agenericTake,hgenericTake,ggenericDrop
,agenericDrop,hgenericDrop,ggenericSplitAt,agenericSplitAt,hgenericSplitAt
,ggenericIndex,agenericIndex,hgenericIndex,ggenericReplicate
,agenericReplicate,hgenericReplicate,gzip4,gzip5,gzip6,gzip7,gzipWith4
,azipWith4,hzipWith4,gzipWith5,azipWith5,hzipWith5,gzipWith6,azipWith6
,hzipWith6,gzipWith7,azipWith7,hzipWith7,gunzip4,gunzip5,gunzip6,gunzip7
,gunfoldr,aunfoldr,hunfoldr,gmap,amap,hmap,(!++),(+++),(*++),gconcat,aconcat
,hconcat,gfilter,afilter,hfilter,ghead,ahead,hhead,glast,alast,hlast,gtail
,atail,htail,ginit,ainit,hinit,gnull,anull,hnull,glength,alength,hlength
,(!!!),(+!!),(*!!),gfoldl,afoldl,hfoldl,gfoldl1,afoldl1,hfoldl1,gscanl
,ascanl,hscanl,gscanl1,ascanl1,hscanl1,gfoldr,afoldr,hfoldr,gfoldr1,afoldr1
,hfoldr1,gscanr,ascanr,hscanr,gscanr1,ascanr1,hscanr1,giterate,aiterate
,hiterate,grepeat,arepeat,hrepeat,greplicate,areplicate,hreplicate,gcycle
,acycle,hcycle,gtake,atake,htake,gdrop,adrop,hdrop,gsplitAt,asplitAt
,hsplitAt,gtakeWhile,atakeWhile,htakeWhile,gdropWhile,adropWhile,hdropWhile
,gspan,aspan,hspan,gbreak,abreak,hbreak,glines,alines,hlines,gwords,awords
,hwords,gunlines,gunwords,aunwords,hunwords,greverse,gand,gor,gany,aany,hany
,gall,aall,hall,gelem,aelem,helem,gnotElem,anotElem,hnotElem,glookup,alookup
,hlookup,gsum,gproduct,gmaximum,amaximum,hmaximum,gminimum,aminimum,hminimum
,gconcatMap,aconcatMap,hconcatMap,gzip,gzip3,gzipWith,azipWith,hzipWith
,gzipWith3,azipWith3,hzipWith3,gunzip,gunzip3) where
import qualified Hat.PreludeBasic
import qualified Prelude
import Hat.Hack
import qualified Hat.Hat as T
import Hat.Hat (WrapVal(wrapVal))
import Hat.Prelude
import Hat.Maybe (glistToMaybe,alistToMaybe,hlistToMaybe)
gelemIndex ::
Eq a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) (Maybe Int)))
helemIndex :: Eq a => (T.R a) -> T.RefExp -> T.R (T.Fun (T.List a) (Maybe Int))
gelemIndex pelemIndex p = T.ufun1 aelemIndex pelemIndex p helemIndex
helemIndex fx p =
T.uwrapForward p
(hfindIndex (T.uap1 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx) p)
gelemIndices ::
Eq a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) (T.List Int)))
helemIndices ::
Eq a => (T.R a) -> T.RefExp -> T.R (T.Fun (T.List a) (T.List Int))
gelemIndices pelemIndices p = T.ufun1 aelemIndices pelemIndices p helemIndices
helemIndices fx p =
T.uap1 T.mkNoSrcPos p (gfindIndices T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx)
gfind ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (Maybe a)))
hfind :: (T.R (T.Fun a Bool)) -> T.RefExp -> T.R (T.Fun (T.List a) (Maybe a))
gfind pfind p = T.ufun1 afind pfind p hfind
hfind fp p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (glistToMaybe T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (gfilter T.mkNoSrcPos p) fp)
gfindIndex ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (Maybe Int)))
hfindIndex ::
(T.R (T.Fun a Bool)) -> T.RefExp -> T.R (T.Fun (T.List a) (Maybe Int))
gfindIndex pfindIndex p = T.ufun1 afindIndex pfindIndex p hfindIndex
hfindIndex fp p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (glistToMaybe T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (gfindIndices T.mkNoSrcPos p) fp)
gfindIndices ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (T.List Int)))
hfindIndices ::
(T.R (T.Fun a Bool)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List Int)
gfindIndices pfindIndices p = T.ufun2 afindIndices pfindIndices p hfindIndices
hfindIndices fp fxs p =
T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_foldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ f_x f_y p ->
T.uccase T.mkNoSrcPos p
(let
v0v0v0v0v1 (T.R (T.Tuple2 fx fi) _) p =
T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_filter T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p fp fx)
(T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons fi)) f_y
v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
f_x))
(T.uap2 T.mkNoSrcPos p (gzip T.mkNoSrcPos p) fxs
(T.uap1 T.mkNoSrcPos p (Hat.Prelude.genumFrom T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)))))
(T.fromExpList T.mkNoSrcPos p [])
gnub :: Eq a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))
snub :: Eq a => T.R (T.Fun (T.List a) (T.List a))
gnub pnub p = T.uconstUse pnub p snub
snub =
T.uconstDef T.mkRoot anub
(\ p -> T.uap1 T.mkNoSrcPos p (gnubBy T.mkNoSrcPos p) (T.mkNoSrcPos !== p))
gnubBy ::
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun (T.Fun a (T.Fun a Bool)) (T.Fun (T.List a) (T.List a)))
hnubBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
(T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
gnubBy pnubBy p = T.ufun2 anubBy pnubBy p hnubBy
hnubBy feq (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hnubBy feq (T.R (T.Cons fx fxs) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
(T.uwrapForward p
(hnubBy feq
(T.uwrapForward p
(hfilter
(T.ufun1 T.mkLambda T.mkNoSrcPos p
(\ fy p ->
T.uwrapForward p (hnot (T.uap2 T.mkNoSrcPos p feq fx fy) p)))
fxs p)) p))
hnubBy _ _ p = T.fatal p
gdelete ::
Eq a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) (T.List a)))
sdelete :: Eq a => T.R (T.Fun a (T.Fun (T.List a) (T.List a)))
gdelete pdelete p = T.uconstUse pdelete p sdelete
sdelete =
T.uconstDef T.mkRoot adelete
(\ p ->
T.uap1 T.mkNoSrcPos p (gdeleteBy T.mkNoSrcPos p) (T.mkNoSrcPos !== p))
gdeleteBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Bool)) (T.Fun a (T.Fun (T.List a) (T.List a))))
hdeleteBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
(T.R a) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
gdeleteBy pdeleteBy p = T.ufun3 adeleteBy pdeleteBy p hdeleteBy
hdeleteBy feq fx (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hdeleteBy feq fx (T.R (T.Cons fy fys) _) p =
T.ucif p (T.uap2 T.mkNoSrcPos p feq fx fy) (T.projection T.mkNoSrcPos p fys)
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fy
(T.uwrapForward p (hdeleteBy feq fx fys p)))
hdeleteBy _ _ _ p = T.fatal p
(!\\) ::
Eq a =>
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
(|\\) :: Eq a => T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
(!\\) (%\\) p = T.uconstUse (%\\) p (|\\)
(|\\) =
T.uconstDef T.mkRoot (+\\)
(\ p ->
T.uap1 T.mkNoSrcPos p (gfoldl T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (gdelete T.mkNoSrcPos p)))
gdeleteFirstsBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Bool))
(T.Fun (T.List a) (T.Fun (T.List a) (T.List a))))
hdeleteFirstsBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
gdeleteFirstsBy pdeleteFirstsBy p =
T.ufun1 adeleteFirstsBy pdeleteFirstsBy p hdeleteFirstsBy
hdeleteFirstsBy feq p =
T.uap1 T.mkNoSrcPos p (gfoldl T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (gflip T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p (gdeleteBy T.mkNoSrcPos p) feq))
gunion ::
Eq a =>
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
sunion :: Eq a => T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
gunion punion p = T.uconstUse punion p sunion
sunion =
T.uconstDef T.mkRoot aunion
(\ p ->
T.uap1 T.mkNoSrcPos p (gunionBy T.mkNoSrcPos p) (T.mkNoSrcPos !== p))
gunionBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Bool))
(T.Fun (T.List a) (T.Fun (T.List a) (T.List a))))
hunionBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
(T.R (T.List a)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
gunionBy punionBy p = T.ufun3 aunionBy punionBy p hunionBy
hunionBy feq fxs fys p =
T.uwrapForward p
((fxs
*++
(T.uap3 T.mkNoSrcPos p (gdeleteFirstsBy T.mkNoSrcPos p) feq
(T.uwrapForward p (hnubBy feq fys p)) fxs)) p)
gintersect ::
Eq a =>
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
sintersect :: Eq a => T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))
gintersect pintersect p = T.uconstUse pintersect p sintersect
sintersect =
T.uconstDef T.mkRoot aintersect
(\ p ->
T.uap1 T.mkNoSrcPos p (gintersectBy T.mkNoSrcPos p) (T.mkNoSrcPos !== p))
gintersectBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Bool))
(T.Fun (T.List a) (T.Fun (T.List a) (T.List a))))
hintersectBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
(T.R (T.List a)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
gintersectBy pintersectBy p = T.ufun3 aintersectBy pintersectBy p hintersectBy
hintersectBy feq fxs fys p =
T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_foldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ f_x f_y p ->
T.uccase T.mkNoSrcPos p
(let
v0v0v0v0v1 fx p =
T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_filter T.mkNoSrcPos p)
(T.uap2 T.mkNoSrcPos p (gany T.mkNoSrcPos p)
(T.uap1 T.mkNoSrcPos p feq fx) fys)
(T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons fx)) f_y
v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
f_x)) fxs) (T.fromExpList T.mkNoSrcPos p [])
gintersperse ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) (T.List a)))
hintersperse :: (T.R a) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
gintersperse pintersperse p = T.ufun2 aintersperse pintersperse p hintersperse
hintersperse fsep (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hintersperse fsep (T.R (T.Cons fx (T.R T.List _)) _) p =
T.fromExpList T.mkNoSrcPos p [fx]
hintersperse fsep (T.R (T.Cons fx fxs) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fsep
(T.uwrapForward p (hintersperse fsep fxs p)))
hintersperse _ _ p = T.fatal p
gtranspose ::
T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List (T.List a)) (T.List (T.List a)))
htranspose :: (T.R (T.List (T.List a))) -> T.RefExp -> T.R (T.List (T.List a))
gtranspose ptranspose p = T.ufun1 atranspose ptranspose p htranspose
htranspose (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
htranspose (T.R (T.Cons (T.R T.List _) fxss) _) p =
T.uwrapForward p (htranspose fxss p)
htranspose (T.R (T.Cons (T.R (T.Cons fx fxs) _) fxss) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
(T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_foldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ f_x f_y p ->
T.uccase T.mkNoSrcPos p
(let
v0v0v0v0v1 (T.R (T.Cons fh ft) _) p =
T.uap1 T.mkNoSrcPos p
(T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons fh) f_y
v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
(v0v0v0v0v1)) f_x)) fxss) (T.fromExpList T.mkNoSrcPos p [])))
(T.uwrapForward p
(htranspose
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fxs
(T.uap1 T.mkNoSrcPos p
(T.uap2 T.mkNoSrcPos p (Hat.Prelude.g_foldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ f_x f_y p ->
T.uccase T.mkNoSrcPos p
(let
v0v0v0v0v1 (T.R (T.Cons fh ft) _) p =
T.uap1 T.mkNoSrcPos p
(T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons ft) f_y
v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
(v0v0v0v0v1)) f_x)) fxss)
(T.fromExpList T.mkNoSrcPos p []))) p))
htranspose _ p = T.fatal p
gpartition ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a Bool)
(T.Fun (T.List a) (T.Tuple2 (T.List a) (T.List a))))
hpartition ::
(T.R (T.Fun a Bool)) ->
(T.R (T.List a)) -> T.RefExp -> T.R (T.Tuple2 (T.List a) (T.List a))
gpartition ppartition p = T.ufun2 apartition ppartition p hpartition
hpartition fp fxs p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.uwrapForward p (hfilter fp fxs p))
(T.uwrapForward p
(hfilter
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gnot T.mkNoSrcPos p) fp) fxs
p))
ggroup ::
Eq a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List (T.List a)))
sgroup :: Eq a => T.R (T.Fun (T.List a) (T.List (T.List a)))
ggroup pgroup p = T.uconstUse pgroup p sgroup
sgroup =
T.uconstDef T.mkRoot agroup
(\ p ->
T.uap1 T.mkNoSrcPos p (ggroupBy T.mkNoSrcPos p) (T.mkNoSrcPos !== p))
ggroupBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Bool)) (T.Fun (T.List a) (T.List (T.List a))))
hgroupBy ::
(T.R (T.Fun a (T.Fun a Bool))) ->
(T.R (T.List a)) -> T.RefExp -> T.R (T.List (T.List a))
ggroupBy pgroupBy p = T.ufun2 agroupBy pgroupBy p hgroupBy
hgroupBy feq (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hgroupBy feq (T.R (T.Cons fx fxs) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (gys T.mkNoSrcPos p))
(T.uwrapForward p (hgroupBy feq (gzs T.mkNoSrcPos p) p))
where
gys pys p = T.uconstUse pys p sys
gzs pys p = T.uconstUse pys p szs
j108v34v108v40ys =
case T.uwrapForward p (hspan (T.uap1 T.mkNoSrcPos p feq fx) fxs p) of
T.R (T.Tuple2 fys fzs) kys -> (kys,fys,fzs)
_ -> T.fatal p
sys =
T.uconstDef p a108v35v108v36ys
(\ _ -> case j108v34v108v40ys of (kys,fys,fzs) -> fys)
szs =
T.uconstDef p a108v38v108v39zs
(\ _ -> case j108v34v108v40ys of (kys,fys,fzs) -> fzs)
hgroupBy _ _ p = T.fatal p
ginits :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List (T.List a)))
hinits :: (T.R (T.List a)) -> T.RefExp -> T.R (T.List (T.List a))
ginits pinits p = T.ufun1 ainits pinits p hinits
hinits (T.R T.List _) p =
T.fromExpList T.mkNoSrcPos p [T.con0 T.mkNoSrcPos p T.List T.aList]
hinits (T.R (T.Cons fx fxs) _) p =
T.uwrapForward p
(((T.fromExpList T.mkNoSrcPos p [T.con0 T.mkNoSrcPos p T.List T.aList])
*++
(T.uwrapForward p
(hmap (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons fx)
(T.uwrapForward p (hinits fxs p)) p))) p)
hinits _ p = T.fatal p
gtails :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List (T.List a)))
htails :: (T.R (T.List a)) -> T.RefExp -> T.R (T.List (T.List a))
gtails ptails p = T.ufun1 atails ptails p htails
htails (T.R T.List _) p =
T.fromExpList T.mkNoSrcPos p [T.con0 T.mkNoSrcPos p T.List T.aList]
htails (fxxs@(T.R (T.Cons _ fxs) _)) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons fxxs (T.uwrapForward p (htails fxs p))
htails _ p = T.fatal p
gisPrefixOf ::
Eq a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) Bool))
hisPrefixOf ::
Eq a => (T.R (T.List a)) -> (T.R (T.List a)) -> T.RefExp -> T.R Bool
gisPrefixOf pisPrefixOf p = T.ufun2 aisPrefixOf pisPrefixOf p hisPrefixOf
hisPrefixOf (T.R T.List _) _ p = T.con0 T.mkNoSrcPos p True aTrue
hisPrefixOf _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p False aFalse
hisPrefixOf (T.R (T.Cons fx fxs) _) (T.R (T.Cons fy fys) _) p =
T.uwrapForward p
(((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx fy)
*&&
(T.uwrapForward p (hisPrefixOf fxs fys p))) p)
hisPrefixOf _ _ p = T.fatal p
gisSuffixOf ::
Eq a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) Bool))
hisSuffixOf ::
Eq a => (T.R (T.List a)) -> (T.R (T.List a)) -> T.RefExp -> T.R Bool
gisSuffixOf pisSuffixOf p = T.ufun2 aisSuffixOf pisSuffixOf p hisSuffixOf
hisSuffixOf fx fy p =
T.uwrapForward p
(hisPrefixOf (T.uap1 T.mkNoSrcPos p (greverse T.mkNoSrcPos p) fx)
(T.uap1 T.mkNoSrcPos p (greverse T.mkNoSrcPos p) fy) p)
gmapAccumL ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun b (T.Tuple2 a c)))
(T.Fun a (T.Fun (T.List b) (T.Tuple2 a (T.List c)))))
hmapAccumL ::
(T.R (T.Fun a (T.Fun b (T.Tuple2 a c)))) ->
(T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.Tuple2 a (T.List c))
gmapAccumL pmapAccumL p = T.ufun3 amapAccumL pmapAccumL p hmapAccumL
hmapAccumL ff fs (T.R T.List _) p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fs
(T.con0 T.mkNoSrcPos p T.List T.aList)
hmapAccumL ff fs (T.R (T.Cons fx fxs) _) p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gs'' T.mkNoSrcPos p)
(T.con2 T.mkNoSrcPos p T.Cons T.aCons (gy T.mkNoSrcPos p)
(gys T.mkNoSrcPos p))
where
gs' ps' p = T.uconstUse ps' p ss'
gy ps' p = T.uconstUse ps' p sy
j133v34v133v41s' =
case T.uap2 T.mkNoSrcPos p ff fs fx of
T.R (T.Tuple2 fs' fy) ks' -> (ks',fs',fy)
_ -> T.fatal p
ss' =
T.uconstDef p a133v35v133v36s'
(\ _ -> case j133v34v133v41s' of (ks',fs',fy) -> fs')
sy =
T.uconstDef p a133v39v133v39y
(\ _ -> case j133v34v133v41s' of (ks',fs',fy) -> fy)
gs'' ps'' p = T.uconstUse ps'' p ss''
gys ps'' p = T.uconstUse ps'' p sys
j134v34v134v41s'' =
case T.uwrapForward p (hmapAccumL ff (gs' T.mkNoSrcPos p) fxs p) of
T.R (T.Tuple2 fs'' fys) ks'' -> (ks'',fs'',fys)
_ -> T.fatal p
ss'' =
T.uconstDef p a134v35v134v37s''
(\ _ -> case j134v34v134v41s'' of (ks'',fs'',fys) -> fs'')
sys =
T.uconstDef p a134v39v134v40ys
(\ _ -> case j134v34v134v41s'' of (ks'',fs'',fys) -> fys)
hmapAccumL _ _ _ p = T.fatal p
gmapAccumR ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun b (T.Tuple2 a c)))
(T.Fun a (T.Fun (T.List b) (T.Tuple2 a (T.List c)))))
hmapAccumR ::
(T.R (T.Fun a (T.Fun b (T.Tuple2 a c)))) ->
(T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.Tuple2 a (T.List c))
gmapAccumR pmapAccumR p = T.ufun3 amapAccumR pmapAccumR p hmapAccumR
hmapAccumR ff fs (T.R T.List _) p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fs
(T.con0 T.mkNoSrcPos p T.List T.aList)
hmapAccumR ff fs (T.R (T.Cons fx fxs) _) p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gs'' T.mkNoSrcPos p)
(T.con2 T.mkNoSrcPos p T.Cons T.aCons (gy T.mkNoSrcPos p)
(gys T.mkNoSrcPos p))
where
gs'' ps'' p = T.uconstUse ps'' p ss''
gy ps'' p = T.uconstUse ps'' p sy
j139v34v139v41s'' =
case T.uap2 T.mkNoSrcPos p ff (gs' T.mkNoSrcPos p) fx of
T.R (T.Tuple2 fs'' fy) ks'' -> (ks'',fs'',fy)
_ -> T.fatal p
ss'' =
T.uconstDef p a139v35v139v37s''
(\ _ -> case j139v34v139v41s'' of (ks'',fs'',fy) -> fs'')
sy =
T.uconstDef p a139v39v139v39y
(\ _ -> case j139v34v139v41s'' of (ks'',fs'',fy) -> fy)
gs' ps' p = T.uconstUse ps' p ss'
gys ps' p = T.uconstUse ps' p sys
j140v34v140v41s' =
case T.uwrapForward p (hmapAccumR ff fs fxs p) of
T.R (T.Tuple2 fs' fys) ks' -> (ks',fs',fys)
_ -> T.fatal p
ss' =
T.uconstDef p a140v35v140v36s'
(\ _ -> case j140v34v140v41s' of (ks',fs',fys) -> fs')
sys =
T.uconstDef p a140v39v140v40ys
(\ _ -> case j140v34v140v41s' of (ks',fs',fys) -> fys)
hmapAccumR _ _ _ p = T.fatal p
gunfoldr ::
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun (T.Fun b (Maybe (T.Tuple2 a b))) (T.Fun b (T.List a)))
hunfoldr ::
(T.R (T.Fun b (Maybe (T.Tuple2 a b)))) ->
(T.R b) -> T.RefExp -> T.R (T.List a)
gunfoldr punfoldr p = T.ufun2 aunfoldr punfoldr p hunfoldr
hunfoldr ff fb p =
T.uccase T.mkNoSrcPos p
(let
v143v27v145v61v1 (T.R Nothing _) p = T.con0 T.mkNoSrcPos p T.List T.aList
v143v27v145v61v1 (T.R (Just (T.R (T.Tuple2 fa fb) _)) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(T.uwrapForward p (hunfoldr ff fb p))
v143v27v145v61v1 _ p = T.fatal p in (v143v27v145v61v1))
(T.uap1 T.mkNoSrcPos p ff fb)
gsort :: Ord a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))
ssort :: Ord a => T.R (T.Fun (T.List a) (T.List a))
gsort psort p = T.uconstUse psort p ssort
ssort =
T.uconstDef T.mkRoot asort
(\ p -> T.uwrapForward p (hsortBy (gcompare T.mkNoSrcPos p) p))
gsortBy ::
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun (T.Fun a (T.Fun a Ordering)) (T.Fun (T.List a) (T.List a)))
hsortBy ::
(T.R (T.Fun a (T.Fun a Ordering))) ->
T.RefExp -> T.R (T.Fun (T.List a) (T.List a))
gsortBy psortBy p = T.ufun1 asortBy psortBy p hsortBy
hsortBy fcmp p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gmergeAll T.mkNoSrcPos p)
(gsequences T.mkNoSrcPos p)
where
gsequences psequences p =
T.ufun1 a153v5v156v23sequences psequences p hsequences
asequences = a153v5v156v23sequences
hsequences (T.R (T.Cons fa (T.R (T.Cons fb fxs) _)) _) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
(T.uap2 T.mkNoSrcPos p fcmp fa fb) (T.con0 T.mkNoSrcPos p GT aGT))
(T.uwrapForward p
(hdescending fb (T.fromExpList T.mkNoSrcPos p [fa]) fxs p))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.uwrapForward p
(hascending fb (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons fa) fxs p))
(T.fatal p))
hsequences fxs p = T.fromExpList T.mkNoSrcPos p [fxs]
gdescending pdescending p =
T.ufun3 a158v5v160v46descending pdescending p hdescending
adescending = a158v5v160v46descending
hdescending fa fas (z3descending@(T.R (T.Cons fb fbs) _)) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
(T.uap2 T.mkNoSrcPos p fcmp fa fb) (T.con0 T.mkNoSrcPos p GT aGT))
(T.uwrapForward p
(hdescending fb (T.con2 T.mkNoSrcPos p T.Cons T.aCons fa fas) fbs p))
(y1descending fa fas z3descending p)
hdescending fa fas z3descending p = y1descending fa fas z3descending p
y1descending fa fas fbs p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa fas)
(T.uwrapForward p (hsequences fbs p))
gascending pascending p =
T.ufun3 a162v5v164v46ascending pascending p hascending
aascending = a162v5v164v46ascending
hascending fa fas (z3ascending@(T.R (T.Cons fb fbs) _)) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p)
(T.uap2 T.mkNoSrcPos p fcmp fa fb) (T.con0 T.mkNoSrcPos p GT aGT))
(T.uwrapForward p
(hascending fb
(T.ufun1 T.mkLambda T.mkNoSrcPos p
(\ fys p ->
T.uap1 T.mkNoSrcPos p fas
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa fys))) fbs p))
(y1ascending fa fas z3ascending p)
hascending fa fas z3ascending p = y1ascending fa fas z3ascending p
y1ascending fa fas fbs p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.uap1 T.mkNoSrcPos p fas (T.fromExpList T.mkNoSrcPos p [fa]))
(T.uwrapForward p (hsequences fbs p))
gmergeAll pmergeAll p = T.ufun1 a166v5v167v42mergeAll pmergeAll p hmergeAll
amergeAll = a166v5v167v42mergeAll
hmergeAll (T.R (T.Cons fx (T.R T.List _)) _) p =
T.projection T.mkNoSrcPos p fx
hmergeAll fxs p =
T.uwrapForward p (hmergeAll (T.uwrapForward p (hmergePairs fxs p)) p)
gmergePairs pmergePairs p =
T.ufun1 a169v5v170v28mergePairs pmergePairs p hmergePairs
amergePairs = a169v5v170v28mergePairs
hmergePairs (T.R (T.Cons fa (T.R (T.Cons fb fxs) _)) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uwrapForward p (hmerge fa fb p))
(T.uwrapForward p (hmergePairs fxs p))
hmergePairs fxs p = T.projection T.mkNoSrcPos p fxs
gmerge pmerge p = T.ufun2 a172v5v176v28merge pmerge p hmerge
amerge = a172v5v176v28merge
hmerge (fas@(T.R (T.Cons fa fas') _)) (fbs@(T.R (T.Cons fb fbs') _)) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
(T.uap2 T.mkNoSrcPos p fcmp fa fb) (T.con0 T.mkNoSrcPos p GT aGT))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fb
(T.uwrapForward p (hmerge fas fbs' p)))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(T.uwrapForward p (hmerge fas' fbs p))) (T.fatal p))
hmerge (T.R T.List _) fbs p = T.projection T.mkNoSrcPos p fbs
hmerge fas (T.R T.List _) p = T.projection T.mkNoSrcPos p fas
hmerge _ _ p = T.fatal p
ginsert ::
Ord a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) (T.List a)))
sinsert :: Ord a => T.R (T.Fun a (T.Fun (T.List a) (T.List a)))
ginsert pinsert p = T.uconstUse pinsert p sinsert
sinsert =
T.uconstDef T.mkRoot ainsert
(\ p ->
T.uap1 T.mkNoSrcPos p (ginsertBy T.mkNoSrcPos p)
(gcompare T.mkNoSrcPos p))
ginsertBy ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun a Ordering))
(T.Fun a (T.Fun (T.List a) (T.List a))))
hinsertBy ::
(T.R (T.Fun a (T.Fun a Ordering))) ->
(T.R a) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)
ginsertBy pinsertBy p = T.ufun3 ainsertBy pinsertBy p hinsertBy
hinsertBy fcmp fx (T.R T.List _) p = T.fromExpList T.mkNoSrcPos p [fx]
hinsertBy fcmp fx (fys@(T.R (T.Cons fy fys') _)) p =
T.uccase T.mkNoSrcPos p
(let
v184v28v186v44v1 (T.R GT _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons fy
(T.uwrapForward p (hinsertBy fcmp fx fys' p))
v184v28v186v44v1 _ p = T.con2 T.mkNoSrcPos p T.Cons T.aCons fx fys in
(v184v28v186v44v1)) (T.uap2 T.mkNoSrcPos p fcmp fx fy)
hinsertBy _ _ _ p = T.fatal p
gmaximumBy ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a Ordering)) (T.Fun (T.List a) a))
hmaximumBy ::
(T.R (T.Fun a (T.Fun a Ordering))) -> (T.R (T.List a)) -> T.RefExp -> T.R a
gmaximumBy pmaximumBy p = T.ufun2 amaximumBy pmaximumBy p hmaximumBy
hmaximumBy fcmp (T.R T.List _) p =
T.uwrapForward p
(herror (T.fromLitString T.mkNoSrcPos p "List.maximumBy: empty list") p)
hmaximumBy fcmp fxs p =
T.uwrapForward p (hfoldl1 (gmax T.mkNoSrcPos p) fxs p)
where
gmax pmax p = T.ufun2 a192v28v194v47max pmax p hmax
amax = a192v28v194v47max
hmax fx fy p =
T.uccase T.mkNoSrcPos p
(let
v192v38v194v47v1 (T.R GT _) p = T.projection T.mkNoSrcPos p fx
v192v38v194v47v1 _ p = T.projection T.mkNoSrcPos p fy in
(v192v38v194v47v1)) (T.uap2 T.mkNoSrcPos p fcmp fx fy)
gminimumBy ::
T.RefSrcPos ->
T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a Ordering)) (T.Fun (T.List a) a))
hminimumBy ::
(T.R (T.Fun a (T.Fun a Ordering))) -> (T.R (T.List a)) -> T.RefExp -> T.R a
gminimumBy pminimumBy p = T.ufun2 aminimumBy pminimumBy p hminimumBy
hminimumBy fcmp (T.R T.List _) p =
T.uwrapForward p
(herror (T.fromLitString T.mkNoSrcPos p "List.minimumBy: empty list") p)
hminimumBy fcmp fxs p =
T.uwrapForward p (hfoldl1 (gmin T.mkNoSrcPos p) fxs p)
where
gmin pmin p = T.ufun2 a200v28v202v47min pmin p hmin
amin = a200v28v202v47min
hmin fx fy p =
T.uccase T.mkNoSrcPos p
(let
v200v38v202v47v1 (T.R GT _) p = T.projection T.mkNoSrcPos p fy
v200v38v202v47v1 _ p = T.projection T.mkNoSrcPos p fx in
(v200v38v202v47v1)) (T.uap2 T.mkNoSrcPos p fcmp fx fy)
ggenericLength ::
Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List b) a)
hgenericLength :: Integral a => (T.R (T.List b)) -> T.RefExp -> T.R a
ggenericLength pgenericLength p =
T.ufun1 agenericLength pgenericLength p hgenericLength
hgenericLength (T.R T.List _) p =
T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)
hgenericLength (T.R (T.Cons fx fxs) _) p =
T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 1)) (T.uwrapForward p (hgenericLength fxs p))
hgenericLength _ p = T.fatal p
ggenericTake ::
Integral a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List b) (T.List b)))
hgenericTake ::
Integral a => (T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.List b)
ggenericTake pgenericTake p = T.ufun2 agenericTake pgenericTake p hgenericTake
hgenericTake _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hgenericTake fv210v13v210v13n v210v15v210v15n p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv210v13v210v13n
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0))) (h v210v15v210v15n p)
(y1genericTake fv210v13v210v13n v210v15v210v15n p)
where
h _ p = T.con0 T.mkNoSrcPos p T.List T.aList
h _ p = y1genericTake fv210v13v210v13n v210v15v210v15n p
hgenericTake fv210v13v210v13n v210v15v210v15n p =
y1genericTake fv210v13v210v13n v210v15v210v15n p
y1genericTake fn (T.R (T.Cons fx fxs) _) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
(T.uwrapForward p
(hgenericTake
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn
(T.uap1 T.mkNoSrcPos p
(Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 1))) fxs p)))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.uwrapForward p
(herror
(T.fromLitString T.mkNoSrcPos p "List.genericTake: negative argument")
p)) (T.fatal p))
y1genericTake _ _ p = T.fatal p
ggenericDrop ::
Integral a =>
T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List b) (T.List b)))
hgenericDrop ::
Integral a => (T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.List b)
ggenericDrop pgenericDrop p = T.ufun2 agenericDrop pgenericDrop p hgenericDrop
hgenericDrop fv216v13v216v13n fxs p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv216v13v216v13n
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0))) (h fxs p)
(y1genericDrop fv216v13v216v13n fxs p)
where
h fxs p = T.projection T.mkNoSrcPos p fxs
h _ p = y1genericDrop fv216v13v216v13n fxs p
hgenericDrop fv216v13v216v13n fxs p = y1genericDrop fv216v13v216v13n fxs p
y1genericDrop _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
y1genericDrop fn (T.R (T.Cons _ fxs) _) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)))
(T.uwrapForward p
(hgenericDrop
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 1))) fxs p))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.uwrapForward p
(herror
(T.fromLitString T.mkNoSrcPos p "List.genericDrop: negative argument")
p)) (T.fatal p))
y1genericDrop _ _ p = T.fatal p
ggenericSplitAt ::
Integral a =>
T.RefSrcPos ->
T.RefExp ->
T.R (T.Fun a (T.Fun (T.List b) (T.Tuple2 (T.List b) (T.List b))))
hgenericSplitAt ::
Integral a =>
(T.R a) ->
(T.R (T.List b)) -> T.RefExp -> T.R (T.Tuple2 (T.List b) (T.List b))
ggenericSplitAt pgenericSplitAt p =
T.ufun2 agenericSplitAt pgenericSplitAt p hgenericSplitAt
hgenericSplitAt fv223v16v223v16n fxs p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv223v16v223v16n
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0))) (h fxs p)
(y1genericSplitAt fv223v16v223v16n fxs p)
where
h fxs p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
(T.con0 T.mkNoSrcPos p T.List T.aList) fxs
h _ p = y1genericSplitAt fv223v16v223v16n fxs p
hgenericSplitAt fv223v16v223v16n fxs p = y1genericSplitAt fv223v16v223v16n fxs p
y1genericSplitAt _ (T.R T.List _) p =
T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
y1genericSplitAt fn (T.R (T.Cons fx fxs) _) p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)))
(T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (gxs' T.mkNoSrcPos p))
(gxs'' T.mkNoSrcPos p))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.uwrapForward p
(herror
(T.fromLitString T.mkNoSrcPos p
"List.genericSplitAt: negative argument") p)) (T.fatal p))
where
gxs' pxs' p = T.uconstUse pxs' p sxs'
gxs'' pxs' p = T.uconstUse pxs' p sxs''
j228v14v228v23xs' =
case
T.uwrapForward p
(hgenericSplitAt
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn
(T.uap1 T.mkNoSrcPos p
(Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 1))) fxs p) of
T.R (T.Tuple2 fxs' fxs'') kxs' -> (kxs',fxs',fxs'')
_ -> T.fatal p
sxs' =
T.uconstDef p a228v15v228v17xs'
(\ _ -> case j228v14v228v23xs' of (kxs',fxs',fxs'') -> fxs')
sxs'' =
T.uconstDef p a228v19v228v22xs''
(\ _ -> case j228v14v228v23xs' of (kxs',fxs',fxs'') -> fxs'')
y1genericSplitAt _ _ p = T.fatal p
ggenericIndex ::
Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List b) (T.Fun a b))
hgenericIndex :: Integral a => (T.R (T.List b)) -> (T.R a) -> T.RefExp -> T.R b
ggenericIndex pgenericIndex p =
T.ufun2 agenericIndex pgenericIndex p hgenericIndex
hgenericIndex (z1genericIndex@(T.R (T.Cons fx _) _)) fv231v21v231v21n p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos Hat.Prelude.!== p) fv231v21v231v21n
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0))) (h p)
(y1genericIndex z1genericIndex fv231v21v231v21n p)
where
h p = T.projection T.mkNoSrcPos p fx
h p = y1genericIndex z1genericIndex fv231v21v231v21n p
hgenericIndex z1genericIndex fv231v21v231v21n p =
y1genericIndex z1genericIndex fv231v21v231v21n p
y1genericIndex (T.R (T.Cons _ fxs) _) fn p =
T.ucguard
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 0)))
(T.uwrapForward p
(hgenericIndex fxs
(T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn
(T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
(T.conInteger T.mkNoSrcPos p 1))) p))
(T.ucguard (gotherwise T.mkNoSrcPos p)
(T.uwrapForward p
(herror
(T.fromLitString T.mkNoSrcPos p
"List.genericIndex: negative argument") p)) (T.fatal p))
y1genericIndex _ _ p =
T.uwrapForward p
(herror
(T.fromLitString T.mkNoSrcPos p "List.genericIndex: index too large") p)
ggenericReplicate ::
Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun b (T.List b)))
hgenericReplicate ::
Integral a => (T.R a) -> (T.R b) -> T.RefExp -> T.R (T.List b)
ggenericReplicate pgenericReplicate p =
T.ufun2 agenericReplicate pgenericReplicate p hgenericReplicate
hgenericReplicate fn fx p =
T.uwrapForward p (hgenericTake fn (T.uwrapForward p (hrepeat fx p)) p)
gzip4 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c) (T.Fun (T.List d) (T.List (T.Tuple4 a b c d))))))
szip4 ::
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c) (T.Fun (T.List d) (T.List (T.Tuple4 a b c d))))))
gzip4 pzip4 p = T.uconstUse pzip4 p szip4
szip4 =
T.uconstDef T.mkRoot azip4
(\ p ->
T.uap1 T.mkNoSrcPos p (gzipWith4 T.mkNoSrcPos p)
(T.pa0 T.Tuple4 T.cn4 T.mkNoSrcPos p T.aTuple4))
gzip5 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e) (T.List (T.Tuple5 a b c d e)))))))
szip5 ::
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d) (T.Fun (T.List e) (T.List (T.Tuple5 a b c d e)))))))
gzip5 pzip5 p = T.uconstUse pzip5 p szip5
szip5 =
T.uconstDef T.mkRoot azip5
(\ p ->
T.uap1 T.mkNoSrcPos p (gzipWith5 T.mkNoSrcPos p)
(T.pa0 T.Tuple5 T.cn5 T.mkNoSrcPos p T.aTuple5))
gzip6 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e)
(T.Fun (T.List f) (T.List (T.Tuple6 a b c d e f))))))))
szip6 ::
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e)
(T.Fun (T.List f) (T.List (T.Tuple6 a b c d e f))))))))
gzip6 pzip6 p = T.uconstUse pzip6 p szip6
szip6 =
T.uconstDef T.mkRoot azip6
(\ p ->
T.uap1 T.mkNoSrcPos p (gzipWith6 T.mkNoSrcPos p)
(T.pa0 T.Tuple6 T.cn6 T.mkNoSrcPos p T.aTuple6))
gzip7 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e)
(T.Fun (T.List f)
(T.Fun (T.List g) (T.List (T.Tuple7 a b c d e f g)))))))))
szip7 ::
T.R
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e)
(T.Fun (T.List f)
(T.Fun (T.List g) (T.List (T.Tuple7 a b c d e f g)))))))))
gzip7 pzip7 p = T.uconstUse pzip7 p szip7
szip7 =
T.uconstDef T.mkRoot azip7
(\ p ->
T.uap1 T.mkNoSrcPos p (gzipWith7 T.mkNoSrcPos p)
(T.pa0 T.Tuple7 T.cn7 T.mkNoSrcPos p T.aTuple7))
gzipWith4 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun b (T.Fun c (T.Fun d e))))
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c) (T.Fun (T.List d) (T.List e))))))
hzipWith4 ::
(T.R (T.Fun a (T.Fun b (T.Fun c (T.Fun d e))))) ->
(T.R (T.List a)) ->
(T.R (T.List b)) ->
(T.R (T.List c)) -> (T.R (T.List d)) -> T.RefExp -> T.R (T.List e)
gzipWith4 pzipWith4 p = T.ufun5 azipWith4 pzipWith4 p hzipWith4
hzipWith4 fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _)
(T.R (T.Cons fc fcs) _) (T.R (T.Cons fd fds) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uap4 T.mkNoSrcPos p fz fa fb fc fd)
(T.uwrapForward p (hzipWith4 fz fas fbs fcs fds p))
hzipWith4 _ _ _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList
gzipWith5 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun b (T.Fun c (T.Fun d (T.Fun e f)))))
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d) (T.Fun (T.List e) (T.List f)))))))
hzipWith5 ::
(T.R (T.Fun a (T.Fun b (T.Fun c (T.Fun d (T.Fun e f)))))) ->
(T.R (T.List a)) ->
(T.R (T.List b)) ->
(T.R (T.List c)) ->
(T.R (T.List d)) -> (T.R (T.List e)) -> T.RefExp -> T.R (T.List f)
gzipWith5 pzipWith5 p = T.ufun6 azipWith5 pzipWith5 p hzipWith5
hzipWith5 fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _)
(T.R (T.Cons fc fcs) _) (T.R (T.Cons fd fds) _) (T.R (T.Cons fe fes) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uap5 T.mkNoSrcPos p fz fa fb fc fd fe)
(T.uap6 T.mkNoSrcPos p (gzipWith5 T.mkNoSrcPos p) fz fas fbs fcs fds fes)
hzipWith5 _ _ _ _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList
gzipWith6 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.Fun a (T.Fun b (T.Fun c (T.Fun d (T.Fun e (T.Fun f g))))))
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e) (T.Fun (T.List f) (T.List g))))))))
hzipWith6 ::
(T.R (T.Fun a (T.Fun b (T.Fun c (T.Fun d (T.Fun e (T.Fun f g))))))) ->
(T.R (T.List a)) ->
(T.R (T.List b)) ->
(T.R (T.List c)) ->
(T.R (T.List d)) ->
(T.R (T.List e)) -> (T.R (T.List f)) -> T.RefExp -> T.R (T.List g)
gzipWith6 pzipWith6 p = T.ufun7 azipWith6 pzipWith6 p hzipWith6
hzipWith6 fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _)
(T.R (T.Cons fc fcs) _) (T.R (T.Cons fd fds) _) (T.R (T.Cons fe fes) _)
(T.R (T.Cons ff ffs) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.uap6 T.mkNoSrcPos p fz fa fb fc fd fe ff)
(T.uap7 T.mkNoSrcPos p (gzipWith6 T.mkNoSrcPos p) fz fas fbs fcs fds fes
ffs)
hzipWith6 _ _ _ _ _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList
gzipWith7 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun
(T.Fun a
(T.Fun b (T.Fun c (T.Fun d (T.Fun e (T.Fun f (T.Fun g h)))))))
(T.Fun (T.List a)
(T.Fun (T.List b)
(T.Fun (T.List c)
(T.Fun (T.List d)
(T.Fun (T.List e)
(T.Fun (T.List f) (T.Fun (T.List g) (T.List h)))))))))
hzipWith7 ::
(T.R (T.Fun a (T.Fun b (T.Fun c (T.Fun d (T.Fun e (T.Fun f (T.Fun g h))))))))
->
(T.R (T.List a)) ->
(T.R (T.List b)) ->
(T.R (T.List c)) ->
(T.R (T.List d)) ->
(T.R (T.List e)) ->
(T.R (T.List f)) -> (T.R (T.List g)) -> T.RefExp -> T.R (T.List h)
gzipWith7 pzipWith7 p = T.ufun8 azipWith7 pzipWith7 p hzipWith7
hzipWith7 fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _)
(T.R (T.Cons fc fcs) _) (T.R (T.Cons fd fds) _) (T.R (T.Cons fe fes) _)
(T.R (T.Cons ff ffs) _) (T.R (T.Cons fg fgs) _) p =
T.con2 T.mkNoSrcPos p T.Cons T.aCons
(T.uap7 T.mkNoSrcPos p fz fa fb fc fd fe ff fg)
(T.uap8 T.mkNoSrcPos p (gzipWith7 T.mkNoSrcPos p) fz fas fbs fcs fds fes ffs
fgs)
hzipWith7 _ _ _ _ _ _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList
gunzip4 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List (T.Tuple4 a b c d))
(T.Tuple4 (T.List a) (T.List b) (T.List c) (T.List d)))
sunzip4 ::
T.R
(T.Fun (T.List (T.Tuple4 a b c d))
(T.Tuple4 (T.List a) (T.List b) (T.List c) (T.List d)))
gunzip4 punzip4 p = T.uconstUse punzip4 p sunzip4
sunzip4 =
T.uconstDef T.mkRoot aunzip4
(\ p ->
T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ v278v35v279v61v1 v278v35v279v61v2 p ->
case (v278v35v279v61v1,v278v35v279v61v2) of
(T.R (T.Tuple4 fa fb fc fd) _
,T.R ~(T.Tuple4 fas fbs fcs fds) _) ->
let
gas pas p = T.uconstUse pas p sas
sas =
T.uconstDef p a0v0v0v0as
(\ p -> T.projection T.mkNoSrcPos p fas)
gbs pbs p = T.uconstUse pbs p sbs
sbs =
T.uconstDef p a0v0v0v0bs
(\ p -> T.projection T.mkNoSrcPos p fbs)
gcs pcs p = T.uconstUse pcs p scs
scs =
T.uconstDef p a0v0v0v0cs
(\ p -> T.projection T.mkNoSrcPos p fcs)
gds pds p = T.uconstUse pds p sds
sds =
T.uconstDef p a0v0v0v0ds
(\ p -> T.projection T.mkNoSrcPos p fds) in
(T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(gas T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fb
(gbs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fc
(gcs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
(gds T.mkNoSrcPos p)))
_ -> T.fatal p))
(T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)))
gunzip5 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List (T.Tuple5 a b c d e))
(T.Tuple5 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)))
sunzip5 ::
T.R
(T.Fun (T.List (T.Tuple5 a b c d e))
(T.Tuple5 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)))
gunzip5 punzip5 p = T.uconstUse punzip5 p sunzip5
sunzip5 =
T.uconstDef T.mkRoot aunzip5
(\ p ->
T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ v283v35v284v66v1 v283v35v284v66v2 p ->
case (v283v35v284v66v1,v283v35v284v66v2) of
(T.R (T.Tuple5 fa fb fc fd fe) _
,T.R ~(T.Tuple5 fas fbs fcs fds fes) _) ->
let
gas pas p = T.uconstUse pas p sas
sas =
T.uconstDef p a0v0v0v0as
(\ p -> T.projection T.mkNoSrcPos p fas)
gbs pbs p = T.uconstUse pbs p sbs
sbs =
T.uconstDef p a0v0v0v0bs
(\ p -> T.projection T.mkNoSrcPos p fbs)
gcs pcs p = T.uconstUse pcs p scs
scs =
T.uconstDef p a0v0v0v0cs
(\ p -> T.projection T.mkNoSrcPos p fcs)
gds pds p = T.uconstUse pds p sds
sds =
T.uconstDef p a0v0v0v0ds
(\ p -> T.projection T.mkNoSrcPos p fds)
ges pes p = T.uconstUse pes p ses
ses =
T.uconstDef p a0v0v0v0es
(\ p -> T.projection T.mkNoSrcPos p fes) in
(T.con5 T.mkNoSrcPos p T.Tuple5 T.aTuple5
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(gas T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fb
(gbs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fc
(gcs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
(gds T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fe
(ges T.mkNoSrcPos p)))
_ -> T.fatal p))
(T.con5 T.mkNoSrcPos p T.Tuple5 T.aTuple5
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)))
gunzip6 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List (T.Tuple6 a b c d e f))
(T.Tuple6 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)
(T.List f)))
sunzip6 ::
T.R
(T.Fun (T.List (T.Tuple6 a b c d e f))
(T.Tuple6 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)
(T.List f)))
gunzip6 punzip6 p = T.uconstUse punzip6 p sunzip6
sunzip6 =
T.uconstDef T.mkRoot aunzip6
(\ p ->
T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ v288v35v289v71v1 v288v35v289v71v2 p ->
case (v288v35v289v71v1,v288v35v289v71v2) of
(T.R (T.Tuple6 fa fb fc fd fe ff) _
,T.R ~(T.Tuple6 fas fbs fcs fds fes ffs) _) ->
let
gas pas p = T.uconstUse pas p sas
sas =
T.uconstDef p a0v0v0v0as
(\ p -> T.projection T.mkNoSrcPos p fas)
gbs pbs p = T.uconstUse pbs p sbs
sbs =
T.uconstDef p a0v0v0v0bs
(\ p -> T.projection T.mkNoSrcPos p fbs)
gcs pcs p = T.uconstUse pcs p scs
scs =
T.uconstDef p a0v0v0v0cs
(\ p -> T.projection T.mkNoSrcPos p fcs)
gds pds p = T.uconstUse pds p sds
sds =
T.uconstDef p a0v0v0v0ds
(\ p -> T.projection T.mkNoSrcPos p fds)
ges pes p = T.uconstUse pes p ses
ses =
T.uconstDef p a0v0v0v0es
(\ p -> T.projection T.mkNoSrcPos p fes)
gfs pfs p = T.uconstUse pfs p sfs
sfs =
T.uconstDef p a0v0v0v0fs
(\ p -> T.projection T.mkNoSrcPos p ffs) in
(T.con6 T.mkNoSrcPos p T.Tuple6 T.aTuple6
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(gas T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fb
(gbs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fc
(gcs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
(gds T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fe
(ges T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons ff
(gfs T.mkNoSrcPos p)))
_ -> T.fatal p))
(T.con6 T.mkNoSrcPos p T.Tuple6 T.aTuple6
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)))
gunzip7 ::
T.RefSrcPos ->
T.RefExp ->
T.R
(T.Fun (T.List (T.Tuple7 a b c d e f g))
(T.Tuple7 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)
(T.List f) (T.List g)))
sunzip7 ::
T.R
(T.Fun (T.List (T.Tuple7 a b c d e f g))
(T.Tuple7 (T.List a) (T.List b) (T.List c) (T.List d) (T.List e)
(T.List f) (T.List g)))
gunzip7 punzip7 p = T.uconstUse punzip7 p sunzip7
sunzip7 =
T.uconstDef T.mkRoot aunzip7
(\ p ->
T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
(T.ufun2 T.mkLambda T.mkNoSrcPos p
(\ v293v27v294v68v1 v293v27v294v68v2 p ->
case (v293v27v294v68v1,v293v27v294v68v2) of
(T.R (T.Tuple7 fa fb fc fd fe ff fg) _
,T.R ~(T.Tuple7 fas fbs fcs fds fes ffs fgs) _) ->
let
gas pas p = T.uconstUse pas p sas
sas =
T.uconstDef p a0v0v0v0as
(\ p -> T.projection T.mkNoSrcPos p fas)
gbs pbs p = T.uconstUse pbs p sbs
sbs =
T.uconstDef p a0v0v0v0bs
(\ p -> T.projection T.mkNoSrcPos p fbs)
gcs pcs p = T.uconstUse pcs p scs
scs =
T.uconstDef p a0v0v0v0cs
(\ p -> T.projection T.mkNoSrcPos p fcs)
gds pds p = T.uconstUse pds p sds
sds =
T.uconstDef p a0v0v0v0ds
(\ p -> T.projection T.mkNoSrcPos p fds)
ges pes p = T.uconstUse pes p ses
ses =
T.uconstDef p a0v0v0v0es
(\ p -> T.projection T.mkNoSrcPos p fes)
gfs pfs p = T.uconstUse pfs p sfs
sfs =
T.uconstDef p a0v0v0v0fs
(\ p -> T.projection T.mkNoSrcPos p ffs)
ggs pgs p = T.uconstUse pgs p sgs
sgs =
T.uconstDef p a0v0v0v0gs
(\ p -> T.projection T.mkNoSrcPos p fgs) in
(T.con7 T.mkNoSrcPos p T.Tuple7 T.aTuple7
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fa
(gas T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fb
(gbs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fc
(gcs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
(gds T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fe
(ges T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons ff
(gfs T.mkNoSrcPos p))
(T.con2 T.mkNoSrcPos p T.Cons T.aCons fg
(ggs T.mkNoSrcPos p)))
_ -> T.fatal p))
(T.con7 T.mkNoSrcPos p T.Tuple7 T.aTuple7
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)
(T.con0 T.mkNoSrcPos p T.List T.aList)))
tList = T.mkModule "List" "List.hs" Prelude.False
aelemIndex = T.mkVariable tList 340001 340042 3 1 "elemIndex" Prelude.False
aelemIndices = T.mkVariable tList 370001 370044 3 1 "elemIndices" Prelude.False
afind = T.mkVariable tList 400001 400049 3 1 "find" Prelude.False
afindIndex = T.mkVariable tList 430001 430054 3 1 "findIndex" Prelude.False
afindIndices = T.mkVariable tList 460001 460011 3 2 "findIndices" Prelude.False
anub = T.mkVariable tList 490001 490036 3 0 "nub" Prelude.False
anubBy = T.mkVariable tList 520001 530071 3 2 "nubBy" Prelude.False
adelete = T.mkVariable tList 560001 560039 3 0 "delete" Prelude.False
adeleteBy = T.mkVariable tList 590001 600071 3 3 "deleteBy" Prelude.False
(+\\) = T.mkVariable tList 630002 630045 20 0 "\\\\" Prelude.False
adeleteFirstsBy =
T.mkVariable tList 660001 660051 3 1 "deleteFirstsBy" Prelude.False
aunion = T.mkVariable tList 690001 690038 3 0 "union" Prelude.False
aunionBy = T.mkVariable tList 720001 720067 3 3 "unionBy" Prelude.False
aintersect = T.mkVariable tList 750001 750042 3 0 "intersect" Prelude.False
aintersectBy = T.mkVariable tList 780001 780011 3 3 "intersectBy" Prelude.False
aintersperse = T.mkVariable tList 810001 830055 3 2 "intersperse" Prelude.False
atranspose = T.mkVariable tList 910001 940040 3 1 "transpose" Prelude.False
apartition = T.mkVariable tList 970001 970061 3 2 "partition" Prelude.False
agroup = T.mkVariable tList 1030001 1030038 3 0 "group" Prelude.False
agroupBy = T.mkVariable tList 1060001 1080057 3 2 "groupBy" Prelude.False
ainits = T.mkVariable tList 1130001 1140053 3 1 "inits" Prelude.False
atails = T.mkVariable tList 1190001 1200041 3 1 "tails" Prelude.False
aisPrefixOf = T.mkVariable tList 1230001 1250054 3 2 "isPrefixOf" Prelude.False
aisSuffixOf = T.mkVariable tList 1280001 1280059 3 2 "isSuffixOf" Prelude.False
amapAccumL = T.mkVariable tList 1310001 1340061 3 3 "mapAccumL" Prelude.False
amapAccumR = T.mkVariable tList 1370001 1400060 3 3 "mapAccumR" Prelude.False
aunfoldr = T.mkVariable tList 1430001 1450061 3 2 "unfoldr" Prelude.False
asort = T.mkVariable tList 1480001 1480041 3 0 "sort" Prelude.False
asortBy = T.mkVariable tList 1510001 1760028 3 1 "sortBy" Prelude.False
ainsert = T.mkVariable tList 1790001 1790042 3 0 "insert" Prelude.False
ainsertBy = T.mkVariable tList 1820001 1860044 3 3 "insertBy" Prelude.False
amaximumBy = T.mkVariable tList 1890001 1940047 3 2 "maximumBy" Prelude.False
aminimumBy = T.mkVariable tList 1970001 2020047 3 2 "minimumBy" Prelude.False
agenericLength =
T.mkVariable tList 2050001 2060047 3 1 "genericLength" Prelude.False
agenericTake =
T.mkVariable tList 2090001 2130070 3 2 "genericTake" Prelude.False
agenericDrop =
T.mkVariable tList 2160001 2200070 3 2 "genericDrop" Prelude.False
agenericSplitAt =
T.mkVariable tList 2230001 2280050 3 2 "genericSplitAt" Prelude.False
agenericIndex =
T.mkVariable tList 2310001 2350069 3 2 "genericIndex" Prelude.False
agenericReplicate =
T.mkVariable tList 2380001 2380050 3 2 "genericReplicate" Prelude.False
azip4 = T.mkVariable tList 2410001 2410041 3 0 "zip4" Prelude.False
azip5 = T.mkVariable tList 2440001 2440042 3 0 "zip5" Prelude.False
azip6 = T.mkVariable tList 2480001 2480043 3 0 "zip6" Prelude.False
azip7 = T.mkVariable tList 2520001 2520044 3 0 "zip7" Prelude.False
azipWith4 = T.mkVariable tList 2550001 2570029 3 5 "zipWith4" Prelude.False
azipWith5 = T.mkVariable tList 2610001 2630029 3 6 "zipWith5" Prelude.False
azipWith6 = T.mkVariable tList 2670001 2690029 3 7 "zipWith6" Prelude.False
azipWith7 = T.mkVariable tList 2730001 2750029 3 8 "zipWith7" Prelude.False
aunzip4 = T.mkVariable tList 2780001 2800046 3 0 "unzip4" Prelude.False
aunzip5 = T.mkVariable tList 2830001 2850049 3 0 "unzip5" Prelude.False
aunzip6 = T.mkVariable tList 2880001 2900052 3 0 "unzip6" Prelude.False
aunzip7 = T.mkVariable tList 2930001 2950047 3 0 "unzip7" Prelude.False
a108v35v108v36ys = T.mkVariable tList 1080035 1080036 3 0 "ys" Prelude.True
a108v38v108v39zs = T.mkVariable tList 1080038 1080039 3 0 "zs" Prelude.True
a133v35v133v36s' = T.mkVariable tList 1330035 1330036 3 0 "s'" Prelude.True
a133v39v133v39y = T.mkVariable tList 1330039 1330039 3 0 "y" Prelude.True
a134v35v134v37s'' = T.mkVariable tList 1340035 1340037 3 0 "s''" Prelude.True
a134v39v134v40ys = T.mkVariable tList 1340039 1340040 3 0 "ys" Prelude.True
a139v35v139v37s'' = T.mkVariable tList 1390035 1390037 3 0 "s''" Prelude.True
a139v39v139v39y = T.mkVariable tList 1390039 1390039 3 0 "y" Prelude.True
a140v35v140v36s' = T.mkVariable tList 1400035 1400036 3 0 "s'" Prelude.True
a140v39v140v40ys = T.mkVariable tList 1400039 1400040 3 0 "ys" Prelude.True
a153v5v156v23sequences =
T.mkVariable tList 1530005 1560023 3 1 "sequences" Prelude.True
a158v5v160v46descending =
T.mkVariable tList 1580005 1600046 3 3 "descending" Prelude.True
a162v5v164v46ascending =
T.mkVariable tList 1620005 1640046 3 3 "ascending" Prelude.True
a166v5v167v42mergeAll =
T.mkVariable tList 1660005 1670042 3 1 "mergeAll" Prelude.True
a169v5v170v28mergePairs =
T.mkVariable tList 1690005 1700028 3 1 "mergePairs" Prelude.True
a172v5v176v28merge = T.mkVariable tList 1720005 1760028 3 2 "merge" Prelude.True
a192v28v194v47max = T.mkVariable tList 1920028 1940047 3 2 "max" Prelude.True
a200v28v202v47min = T.mkVariable tList 2000028 2020047 3 2 "min" Prelude.True
a228v15v228v17xs' = T.mkVariable tList 2280015 2280017 3 0 "xs'" Prelude.True
a228v19v228v22xs'' = T.mkVariable tList 2280019 2280022 3 0 "xs''" Prelude.True
a0v0v0v0as = T.mkVariable tList 0 0 3 0 "as" Prelude.True
a0v0v0v0bs = T.mkVariable tList 0 0 3 0 "bs" Prelude.True
a0v0v0v0cs = T.mkVariable tList 0 0 3 0 "cs" Prelude.True
a0v0v0v0ds = T.mkVariable tList 0 0 3 0 "ds" Prelude.True
a0v0v0v0es = T.mkVariable tList 0 0 3 0 "es" Prelude.True
a0v0v0v0fs = T.mkVariable tList 0 0 3 0 "fs" Prelude.True
a0v0v0v0gs = T.mkVariable tList 0 0 3 0 "gs" Prelude.True