module Hat.PreludeBasic
  (gyield,hyield,glift,hlift,gthenAp,gthenLex,hthenLex,galt,halt,Eq(..),Ord(..)
    ,Enum(..),Bounded(..),Num(..),Real(..),Integral(..),Fractional(..)
    ,Floating(..),RealFrac(..),RealFloat(..),gsubtract,geven,heven,godd,ggcd
    ,hgcd,glcm,hlcm,(!^),(*^),(!^^),(*^^),gfromIntegral,grealToFrac,Functor(..)
    ,Monad(..),gsequence,gsequence_,gmapM,hmapM,gmapM_,hmapM_,(!=<<),(*=<<),gid
    ,hid,gconst,hconst,(!.),(*.),gflip,hflip,(!$),(*$),(!$!),(*$!),(!&&),(*&&)
    ,(!||),(*||),gnot,hnot,gotherwise,Maybe(..),gmaybe,hmaybe,Either(..),geither
    ,heither,Ordering(..),gintEnumFromByTo,hintEnumFromByTo,gnumericEnumFrom
    ,gnumericEnumFromThen,hnumericEnumFromThen,gnumericEnumFromTo
    ,hnumericEnumFromTo,gnumericEnumFromThenTo,hnumericEnumFromThenTo,gfst,hfst
    ,gsnd,hsnd,gcurry,hcurry,guncurry,huncurry,guntil,huntil,gasTypeOf,g_foldr
    ,h_foldr,g_filter,h_filter,gmap,hmap,(!++),(*++),gfilter,hfilter,gconcat
    ,hconcat,ghead,hhead,glast,hlast,gtail,htail,ginit,hinit,gnull,hnull,glength
    ,hlength,(!!!),(*!!),gfoldl,hfoldl,gfoldl1,hfoldl1,gscanl,hscanl,gscanl1
    ,hscanl1,gfoldr,hfoldr,gfoldr1,hfoldr1,gscanr,hscanr,gscanr1,hscanr1
    ,giterate,hiterate,grepeat,hrepeat,greplicate,hreplicate,gcycle,hcycle,gtake
    ,htake,gdrop,hdrop,gsplitAt,hsplitAt,gtakeWhile,htakeWhile,gdropWhile
    ,hdropWhile,gspan,hspan,gbreak,hbreak,glines,hlines,gwords,hwords,gunlines
    ,gunwords,hunwords,greverse,gand,gor,gany,hany,gall,hall,gelem,helem
    ,gnotElem,hnotElem,glookup,hlookup,gsum,gproduct,gmaximum,hmaximum,gminimum
    ,hminimum,gconcatMap,hconcatMap,gzip,gzip3,gzipWith,hzipWith,gzipWith3
    ,hzipWith3,gunzip,gunzip3,ReadS(),ReadS___1(),ReadS___2(),ShowS()
    ,ShowS___1(),ShowS___2(),Read(..),Show(..),greads,gshows,gread,hread
    ,gshowChar,gshowString,gshowParen,hshowParen,greadParen,hreadParen,glex,hlex
    ,FilePath(),gputStr,hputStr,gputStrLn,hputStrLn,gprint,hprint,ggetLine
    ,ginteract,hinteract,greadIO,hreadIO,greadLn,gdigitToInt,hdigitToInt
    ,gintToDigit,hintToDigit,gord,gchr,greadLitChar,hreadLitChar,gshowLitChar
    ,hshowLitChar,gprotectEsc,hprotectEsc,gasciiTab,glexLitChar,hlexLitChar
    ,gfromRat,hfromRat,gfromRat',hfromRat',gscaleRat,hscaleRat,gminExpt,gmaxExpt
    ,gexpt,hexpt,gexpts,gintegerLogBase,hintegerLogBase,gshowSigned,hshowSigned
    ,gshowOct,gshowInt,gshowHex,gshowIntAtBase,hshowIntAtBase,greadSigned
    ,hreadSigned,greadInt,hreadInt,greadDec,greadOct,greadHex,gshowEFloat
    ,hshowEFloat,gshowFFloat,hshowFFloat,gshowGFloat,hshowGFloat,gshowFloat
    ,FFFormat(..),gformatRealFloat,hformatRealFloat,groundTo,hroundTo
    ,gfloatToDigits,hfloatToDigits,greadFloat,hreadFloat,glexDigits,gnonnull
    ,hnonnull,gprec,Ratio(..),Rational(),greduce,hreduce,(!%),(*%),gnumerator
    ,hnumerator,gdenominator,hdenominator,gapproxRational,happroxRational
    ,aNothing,aJust,aLeft,aRight,aLT,aEQ,aGT,aFFExponent,aFFFixed,aFFGeneric
    ,(+:%),ayield,alift,athenAp,athenLex,aalt,asubtract,aeven,aodd,agcd,alcm
    ,(+^),(+^^),afromIntegral,arealToFrac,asequence,asequence_,amapM,amapM_
    ,(+=<<),aid,aconst,(+.),aflip,(+$),(+$!),(+&&),(+||),anot,aotherwise,amaybe
    ,aeither,aintEnumFromByTo,anumericEnumFrom,anumericEnumFromThen
    ,anumericEnumFromTo,anumericEnumFromThenTo,afst,asnd,acurry,auncurry,auntil
    ,aasTypeOf,a_foldr,a_filter,amap,(+++),afilter,aconcat,ahead,alast,atail
    ,ainit,anull,alength,(+!!),afoldl,afoldl1,ascanl,ascanl1,afoldr,afoldr1
    ,ascanr,ascanr1,aiterate,arepeat,areplicate,acycle,atake,adrop,asplitAt
    ,atakeWhile,adropWhile,aspan,abreak,alines,awords,aunlines,aunwords,areverse
    ,aand,aor,aany,aall,aelem,anotElem,alookup,asum,aproduct,amaximum,aminimum
    ,aconcatMap,azip,azip3,azipWith,azipWith3,aunzip,aunzip3,areads,ashows,aread
    ,ashowChar,ashowString,ashowParen,areadParen,alex,aputStr,aputStrLn,aprint
    ,agetLine,ainteract,areadIO,areadLn,adigitToInt,aintToDigit,aord,achr
    ,areadLitChar,ashowLitChar,aprotectEsc,aasciiTab,alexLitChar,afromRat
    ,afromRat',ascaleRat,aminExpt,amaxExpt,aexpt,aexpts,aintegerLogBase
    ,ashowSigned,ashowOct,ashowInt,ashowHex,ashowIntAtBase,areadSigned,areadInt
    ,areadDec,areadOct,areadHex,ashowEFloat,ashowFFloat,ashowGFloat,ashowFloat
    ,aformatRealFloat,aroundTo,afloatToDigits,areadFloat,alexDigits,anonnull
    ,aprec,areduce,(+%),anumerator,adenominator,aapproxRational
    ,module Hat.PreludeBuiltin) where

import qualified Prelude 
import Hat.Hack 
import qualified Hat.Hat as T 
import Hat.Hat  (WrapVal(wrapVal))
import Hat.PreludeBuiltinTypes 
import Hat.PreludeBuiltin 

gyield :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (ReadS a))

hyield :: (T.R a) -> (T.R (ReadS___1 a)) -> T.RefExp -> T.R (ReadS___2 a)

gyield pyield p = T.ufun2 ayield pyield p hyield

hyield fx fr p =
  T.fromExpList T.mkNoSrcPos p [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fx fr]

glift ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun (T.Fun a (T.Fun b (ReadS c)))
          (T.Fun (ReadS a) (T.Fun (ReadS b) (ReadS c))))

hlift ::
  (T.R (T.Fun a (T.Fun b (ReadS c)))) ->
    (T.R (ReadS a)) ->
      (T.R (ReadS b)) -> (T.R (ReadS___1 c)) -> T.RefExp -> T.R (ReadS___2 c)

glift plift p = T.ufun4 alift plift p hlift

hlift fc ff fg fr p =
  T.uap2 T.mkNoSrcPos p (gconcatMap T.mkNoSrcPos p)
    (T.ufun1 T.mkLambda T.mkNoSrcPos p
      (\ v46v27v46v70v1 p ->
        case (v46v27v46v70v1) of
          (T.R (T.Tuple2 fx fs) _) ->
            T.uap2 T.mkNoSrcPos p (gconcatMap T.mkNoSrcPos p)
              (T.ufun1 T.mkLambda T.mkNoSrcPos p
                (\ v46v48v46v64v1 p ->
                  case (v46v48v46v64v1) of
                    (T.R (T.Tuple2 fy ft) _) ->
                      T.uap3 T.mkNoSrcPos p fc fx fy ft
                    _ -> T.fatal p)) (T.uap1 T.mkNoSrcPos p fg fs)
          _ -> T.fatal p)) (T.uap1 T.mkNoSrcPos p ff fr)

gthenAp ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (ReadS (T.Fun a b)) (T.Fun (ReadS a) (ReadS b)))

sthenAp :: T.R (T.Fun (ReadS (T.Fun a b)) (T.Fun (ReadS a) (ReadS b)))

gthenAp pthenAp p = T.uconstUse pthenAp p sthenAp

sthenAp =
  T.uconstDef T.mkRoot athenAp
    (\ p ->
      T.uap1 T.mkNoSrcPos p (glift T.mkNoSrcPos p)
        (T.ufun3 T.mkLambda T.mkNoSrcPos p
          (\ fh fx ft p ->
            T.fromExpList T.mkNoSrcPos p
              [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                  (T.uap1 T.mkNoSrcPos p fh fx) ft])))

gthenLex ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (ReadS a) (T.Fun String (ReadS a)))

hthenLex :: (T.R (ReadS a)) -> (T.R String) -> T.RefExp -> T.R (ReadS a)

gthenLex pthenLex p = T.ufun2 athenLex pthenLex p hthenLex

hthenLex ff fxs p =
  T.uap3 T.mkNoSrcPos p (glift T.mkNoSrcPos p)
    (T.ufun3 T.mkLambda T.mkNoSrcPos p
      (\ fx fy ft p ->
        T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy fxs)
          (T.fromExpList T.mkNoSrcPos p
            [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fx ft])
          (T.con0 T.mkNoSrcPos p T.List T.aList))) ff (glex T.mkNoSrcPos p)

galt ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (ReadS a) (T.Fun (ReadS a) (ReadS a)))

halt ::
  (T.R (ReadS a)) ->
    (T.R (ReadS a)) -> (T.R (ReadS___1 a)) -> T.RefExp -> T.R (ReadS___2 a)

galt palt p = T.ufun3 aalt palt p halt

halt ff fg fr p =
  T.uwrapForward p
    (((T.uap1 T.mkNoSrcPos p ff fr) *++ (T.uap1 T.mkNoSrcPos p fg fr)) p)

class Eq a
  where
  
  (!==),(!/=) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a Bool))
  
  (!/=) (%/=) p =
    T.ufun2 (+++=^=++=@/=) (%/=) p (*/=)
    where
    
    (*/=) fx fy p =
      T.uwrapForward p
        (hnot (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx fy) p)
    
  
  (!==) (%==) p =
    T.ufun2 (++^=^=+^=@==) (%==) p (*==)
    where
    
    (*==) fx fy p =
      T.uwrapForward p
        (hnot (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p) fx fy) p)
    
  
  (|==),(|/=) :: T.R (T.Fun a (T.Fun a Bool))
  

class Eq a => Ord a
  where
  
  gcompare :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a Ordering))
  
  (!<),(!<=),(!>=),(!>) ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a Bool))
  
  gmax,gmin :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gcompare pcompare p =
    T.ufun2 a78v5v81v26compare pcompare p hcompare
    where
    
    hcompare fx fy p =
      T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx fy)
        (T.con0 T.mkNoSrcPos p EQ aEQ)
        (T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fx fy)
          (T.con0 T.mkNoSrcPos p LT aLT)
          (T.ucguard (gotherwise T.mkNoSrcPos p) (T.con0 T.mkNoSrcPos p GT aGT)
            (T.fatal p)))
    
  
  (!<=) (%<=) p =
    T.ufun2 (+@%=^=@%=@<=) (%<=) p (*<=)
    where
    
    (*<=) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p)
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fx fy)
        (T.con0 T.mkNoSrcPos p GT aGT)
    
  
  (!<) (%<) p =
    T.ufun2 (+@&=^=@&=^<) (%<) p (*<)
    where
    
    (*<) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fx fy)
        (T.con0 T.mkNoSrcPos p LT aLT)
    
  
  (!>=) (%>=) p =
    T.ufun2 (+@*=^=@*=@>=) (%>=) p (*>=)
    where
    
    (*>=) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p)
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fx fy)
        (T.con0 T.mkNoSrcPos p LT aLT)
    
  
  (!>) (%>) p =
    T.ufun2 (+@+=^=@+=^>) (%>) p (*>)
    where
    
    (*>) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fx fy)
        (T.con0 T.mkNoSrcPos p GT aGT)
    
  
  gmax pmax p =
    T.ufun2 a89v5v91v25max pmax p hmax
    where
    
    hmax fx fy p =
      T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fx fy)
        (T.projection T.mkNoSrcPos p fy)
        (T.ucguard (gotherwise T.mkNoSrcPos p) (T.projection T.mkNoSrcPos p fx)
          (T.fatal p))
    
  
  gmin pmin p =
    T.ufun2 a92v5v94v25min pmin p hmin
    where
    
    hmin fx fy p =
      T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fx fy)
        (T.projection T.mkNoSrcPos p fx)
        (T.ucguard (gotherwise T.mkNoSrcPos p) (T.projection T.mkNoSrcPos p fy)
          (T.fatal p))
    
  
  scompare :: T.R (T.Fun a (T.Fun a Ordering))
  
  (|<),(|<=),(|>=),(|>) :: T.R (T.Fun a (T.Fun a Bool))
  
  smax,smin :: T.R (T.Fun a (T.Fun a a))
  

class Enum a
  where
  
  gsucc,gpred :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gtoEnum :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int a)
  
  gfromEnum :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Int)
  
  genumFrom :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.List a))
  
  genumFromThen :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.List a)))
  
  genumFromTo :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.List a)))
  
  genumFromThenTo ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.Fun a (T.List a))))
  
  gsucc psucc p = T.uconstUse psucc p ssucc
  
  ssucc =
    T.uconstDef T.mkRoot a114v5v114v48succ
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gtoEnum T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))) (gfromEnum T.mkNoSrcPos p)))
  
  gpred ppred p = T.uconstUse ppred p spred
  
  spred =
    T.uconstDef T.mkRoot a115v5v115v56pred
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gtoEnum T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gsubtract T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))) (gfromEnum T.mkNoSrcPos p)))
  
  genumFrom penumFrom p =
    T.ufun1 a116v5v116v36enumFrom penumFrom p henumFrom
    where
    
    henumFrom fx p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (genumFrom T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fx)) p)
    
  
  genumFromTo penumFromTo p =
    T.ufun2 a117v5v117v36enumFromTo penumFromTo p henumFromTo
    where
    
    henumFromTo fx fy p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fx)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fy)) p)
    
  
  genumFromThen penumFromThen p =
    T.ufun2 a118v5v118v36enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fx fy p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (genumFromThen T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fx)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fy)) p)
    
  
  genumFromThenTo penumFromThenTo p =
    T.ufun3 a119v5v120v36enumFromThenTo penumFromThenTo p henumFromThenTo
    where
    
    henumFromThenTo fx fy fz p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap3 T.mkNoSrcPos p (genumFromThenTo T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fx)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fy)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fz)) p)
    
  
  ssucc,spred :: T.R (T.Fun a a)
  
  stoEnum :: T.R (T.Fun Int a)
  
  sfromEnum :: T.R (T.Fun a Int)
  
  senumFrom :: T.R (T.Fun a (T.List a))
  
  senumFromThen :: T.R (T.Fun a (T.Fun a (T.List a)))
  
  senumFromTo :: T.R (T.Fun a (T.Fun a (T.List a)))
  
  senumFromThenTo :: T.R (T.Fun a (T.Fun a (T.Fun a (T.List a))))
  

class Bounded a
  where
  
  gminBound :: T.RefSrcPos -> T.RefExp -> T.R a
  
  gmaxBound :: T.RefSrcPos -> T.RefExp -> T.R a
  
  sminBound :: T.R a
  
  smaxBound :: T.R a
  

class (Eq a,Show a) => Num a
  where
  
  (!+),(!-),(!*) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gnegate :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gabs,gsignum :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gfromInteger :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Integer a)
  
  (!-) (%-) p =
    T.ufun2 (+#%@=^=#%@=^-) (%-) p (*-)
    where
    
    (*-) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fy)
    
  
  gnegate pnegate p =
    T.ufun1 a139v5v139v29negate pnegate p hnegate
    where
    
    hnegate fx 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 0)) fx
    
  
  (|+),(|-),(|*) :: T.R (T.Fun a (T.Fun a a))
  
  snegate :: T.R (T.Fun a a)
  
  sabs,ssignum :: T.R (T.Fun a a)
  
  sfromInteger :: T.R (T.Fun Integer a)
  

class (Num a,Ord a) => Real a
  where
  
  gtoRational :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Rational)
  
  stoRational :: T.R (T.Fun a Rational)
  

class (Real a,Enum a) => Integral a
  where
  
  gquot,grem :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gdiv,gmod :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gquotRem,gdivMod ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.Tuple2 a a)))
  
  gtoInteger :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Integer)
  
  gquot pquot p =
    T.ufun2 a154v8v154v11quot pquot p hquot
    where
    
    hquot fn fd p =
      gq T.mkNoSrcPos p
      where
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j154v34v154v38q =
        case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn fd of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a154v35v154v35q
          (\ _ -> case j154v34v154v38q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a154v37v154v37r
          (\ _ -> case j154v34v154v38q of (kq,fq,fr) -> fr)
      
    
  
  grem prem p =
    T.ufun2 a155v8v155v10rem prem p hrem
    where
    
    hrem fn fd p =
      gr T.mkNoSrcPos p
      where
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j155v34v155v38q =
        case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn fd of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a155v35v155v35q
          (\ _ -> case j155v34v155v38q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a155v37v155v37r
          (\ _ -> case j155v34v155v38q of (kq,fq,fr) -> fr)
      
    
  
  gdiv pdiv p =
    T.ufun2 a156v8v156v10div pdiv p hdiv
    where
    
    hdiv fn fd p =
      gq T.mkNoSrcPos p
      where
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j156v34v156v38q =
        case T.uap2 T.mkNoSrcPos p (gdivMod T.mkNoSrcPos p) fn fd of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a156v35v156v35q
          (\ _ -> case j156v34v156v38q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a156v37v156v37r
          (\ _ -> case j156v34v156v38q of (kq,fq,fr) -> fr)
      
    
  
  gmod pmod p =
    T.ufun2 a157v8v157v10mod pmod p hmod
    where
    
    hmod fn fd p =
      gr T.mkNoSrcPos p
      where
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j157v34v157v38q =
        case T.uap2 T.mkNoSrcPos p (gdivMod T.mkNoSrcPos p) fn fd of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a157v35v157v35q
          (\ _ -> case j157v34v157v38q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a157v37v157v37r
          (\ _ -> case j157v34v157v38q of (kq,fq,fr) -> fr)
      
    
  
  gdivMod pdivMod p =
    T.ufun2 a158v5v161v52divMod pdivMod p hdivMod
    where
    
    hdivMod fn fd p =
      T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
          (T.uap1 T.mkNoSrcPos p (gsignum T.mkNoSrcPos p) (gr T.mkNoSrcPos p))
          (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gsignum T.mkNoSrcPos p) fd)))
        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gq T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gr T.mkNoSrcPos p) fd))
        (gqr T.mkNoSrcPos p)
      where
      
      gqr pqr p = T.uconstUse pqr p sqr
      
      sqr =
        T.uconstDef p a161v31v161v32qr
          (\ p -> T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn fd)
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j161v34v161v38q =
        case gqr T.mkNoSrcPos p of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a161v35v161v35q
          (\ _ -> case j161v34v161v38q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a161v37v161v37r
          (\ _ -> case j161v34v161v38q of (kq,fq,fr) -> fr)
      
    
  
  squot,srem :: T.R (T.Fun a (T.Fun a a))
  
  sdiv,smod :: T.R (T.Fun a (T.Fun a a))
  
  squotRem,sdivMod :: T.R (T.Fun a (T.Fun a (T.Tuple2 a a)))
  
  stoInteger :: T.R (T.Fun a Integer)
  

class Num a => Fractional a
  where
  
  (!/) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  grecip :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gfromRational :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Rational a)
  
  grecip precip p =
    T.ufun1 a171v5v171v29recip precip p hrecip
    where
    
    hrecip fx 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)) fx
    
  
  (!/) (%/) p =
    T.ufun2 (+#^$=^=#^$=^/) (%/) p (*/)
    where
    
    (*/) fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx
        (T.uap1 T.mkNoSrcPos p (grecip T.mkNoSrcPos p) fy)
    
  
  (|/) :: T.R (T.Fun a (T.Fun a a))
  
  srecip :: T.R (T.Fun a a)
  
  sfromRational :: T.R (T.Fun Rational a)
  

class Fractional a => Floating a
  where
  
  gpi :: T.RefSrcPos -> T.RefExp -> T.R a
  
  gexp,glog,gsqrt :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  (!**),glogBase :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gsin,gcos,gtan :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gasin,gacos,gatan :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gsinh,gcosh,gtanh :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gasinh,gacosh,gatanh :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  (!**) (%**) p =
    T.ufun2 (+#@@=^=#@@=@**) (%**) p (***)
    where
    
    (***) fx fy p =
      T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
          (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p) fx) fy)
    
  
  glogBase plogBase p =
    T.ufun2 a189v5v189v37logBase plogBase p hlogBase
    where
    
    hlogBase fx fy p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p) fy)
        (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p) fx)
    
  
  gsqrt psqrt p =
    T.ufun1 a190v5v190v31sqrt psqrt p hsqrt
    where
    
    hsqrt fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !** p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromRational T.mkNoSrcPos p)
          (T.R
            ((T.conInteger T.mkNoSrcPos p 1)
              Hat.PreludeBasic.:%
              (T.conInteger T.mkNoSrcPos p 2))
            (T.mkAtomRational T.mkNoSrcPos p 0.5)))
    
  
  gtan ptan p =
    T.ufun1 a191v5v191v39tan ptan p htan
    where
    
    htan fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.uap1 T.mkNoSrcPos p (gsin T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (gcos T.mkNoSrcPos p) fx)
    
  
  gtanh ptanh p =
    T.ufun1 a192v5v192v39tanh ptanh p htanh
    where
    
    htanh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.uap1 T.mkNoSrcPos p (gsinh T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (gcosh T.mkNoSrcPos p) fx)
    
  
  spi :: T.R a
  
  sexp,slog,ssqrt :: T.R (T.Fun a a)
  
  (|**),slogBase :: T.R (T.Fun a (T.Fun a a))
  
  ssin,scos,stan :: T.R (T.Fun a a)
  
  sasin,sacos,satan :: T.R (T.Fun a a)
  
  ssinh,scosh,stanh :: T.R (T.Fun a a)
  
  sasinh,sacosh,satanh :: T.R (T.Fun a a)
  

class (Real a,Fractional a) => RealFrac a
  where
  
  gproperFraction ::
    Integral b => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Tuple2 b a))
  
  gtruncate,ground :: Integral b => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a b)
  
  gceiling,gfloor :: Integral b => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a b)
  
  gtruncate ptruncate p =
    T.ufun1 a203v5v203v57truncate ptruncate p htruncate
    where
    
    htruncate fx p =
      gm T.mkNoSrcPos p
      where
      
      gm pm p = T.uconstUse pm p sm
      
      j203v34v203v38m =
        case T.uap1 T.mkNoSrcPos p (gproperFraction T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fm _) km -> (km,fm)
          _ -> T.fatal p
      
      sm =
        T.uconstDef p a203v35v203v35m
          (\ _ -> case j203v34v203v38m of (km,fm) -> fm)
      
    
  
  ground pround p =
    T.ufun1 a205v5v210v40round pround p hround
    where
    
    hround fx p =
      let
        gn pn p = T.uconstUse pn p sn
        gr pn p = T.uconstUse pn p sr
        j205v29v205v33n =
          case T.uap1 T.mkNoSrcPos p (gproperFraction T.mkNoSrcPos p) fx of
            T.R (T.Tuple2 fn fr) kn -> (kn,fn,fr)
            _ -> T.fatal p
        sn =
          T.uconstDef p a205v30v205v30n
            (\ _ -> case j205v29v205v33n of (kn,fn,fr) -> fn)
        sr =
          T.uconstDef p a205v32v205v32r
            (\ _ -> case j205v29v205v33n of (kn,fn,fr) -> fr)
        gm pm p = T.uconstUse pm p sm
        sm =
          T.uconstDef p a206v29v206v66m
            (\ p ->
              T.ucif p
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) (gr T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 0)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gn T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gn T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))) in
        (T.uccase T.mkNoSrcPos p
          (let
            v207v30v210v40v1 (T.R LT _) p = gn T.mkNoSrcPos p
            v207v30v210v40v1 (T.R EQ _) p =
              T.ucif p (T.uwrapForward p (heven (gn T.mkNoSrcPos p) p))
                (gn T.mkNoSrcPos p) (gm T.mkNoSrcPos p)
            v207v30v210v40v1 (T.R GT _) p = gm T.mkNoSrcPos p
            v207v30v210v40v1 _ p = T.fatal p in (v207v30v210v40v1))
          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gsignum T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p)
                  (gr T.mkNoSrcPos p))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromRational T.mkNoSrcPos p)
                  (T.R
                    ((T.conInteger T.mkNoSrcPos p 1)
                      Hat.PreludeBasic.:%
                      (T.conInteger T.mkNoSrcPos p 2))
                    (T.mkAtomRational T.mkNoSrcPos p 0.5)))))
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0))))
    
  
  gceiling pceiling p =
    T.ufun1 a218v5v219v54ceiling pceiling p hceiling
    where
    
    hceiling fx p =
      T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) (gr T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gn T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))) (gn T.mkNoSrcPos p)
      where
      
      gn pn p = T.uconstUse pn p sn
      
      gr pn p = T.uconstUse pn p sr
      
      j219v31v219v35n =
        case T.uap1 T.mkNoSrcPos p (gproperFraction T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fn fr) kn -> (kn,fn,fr)
          _ -> T.fatal p
      
      sn =
        T.uconstDef p a219v32v219v32n
          (\ _ -> case j219v31v219v35n of (kn,fn,fr) -> fn)
      
      sr =
        T.uconstDef p a219v34v219v34r
          (\ _ -> case j219v31v219v35n of (kn,fn,fr) -> fr)
      
    
  
  gfloor pfloor p =
    T.ufun1 a221v5v222v54floor pfloor p hfloor
    where
    
    hfloor fx p =
      T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) (gr T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gn T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))) (gn T.mkNoSrcPos p)
      where
      
      gn pn p = T.uconstUse pn p sn
      
      gr pn p = T.uconstUse pn p sr
      
      j222v31v222v35n =
        case T.uap1 T.mkNoSrcPos p (gproperFraction T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fn fr) kn -> (kn,fn,fr)
          _ -> T.fatal p
      
      sn =
        T.uconstDef p a222v32v222v32n
          (\ _ -> case j222v31v222v35n of (kn,fn,fr) -> fn)
      
      sr =
        T.uconstDef p a222v34v222v34r
          (\ _ -> case j222v31v222v35n of (kn,fn,fr) -> fr)
      
    
  
  sproperFraction :: Integral b => T.R (T.Fun a (T.Tuple2 b a))
  
  struncate,sround :: Integral b => T.R (T.Fun a b)
  
  sceiling,sfloor :: Integral b => T.R (T.Fun a b)
  

class (RealFrac a,Floating a) => RealFloat a
  where
  
  gfloatRadix :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Integer)
  
  gfloatDigits :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Int)
  
  gfloatRange :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Tuple2 Int Int))
  
  gdecodeFloat ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Tuple2 Integer Int))
  
  gencodeFloat :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Integer (T.Fun Int a))
  
  gexponent :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Int)
  
  gsignificand :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)
  
  gscaleFloat :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (T.Fun a a))
  
  gisNaN,gisInfinite,gisDenormalized,gisNegativeZero,gisIEEE ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Bool)
  
  gatan2 :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))
  
  gexponent pexponent p =
    T.ufun1 a241v5v242v51exponent pexponent p hexponent
    where
    
    hexponent fx p =
      T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gm T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gn T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gfloatDigits T.mkNoSrcPos p) fx))
      where
      
      gm pm p = T.uconstUse pm p sm
      
      gn pm p = T.uconstUse pm p sn
      
      j242v31v242v35m =
        case T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fm fn) km -> (km,fm,fn)
          _ -> T.fatal p
      
      sm =
        T.uconstDef p a242v32v242v32m
          (\ _ -> case j242v31v242v35m of (km,fm,fn) -> fm)
      
      sn =
        T.uconstDef p a242v34v242v34n
          (\ _ -> case j242v31v242v35m of (km,fm,fn) -> fn)
      
    
  
  gsignificand psignificand p =
    T.ufun1 a244v5v245v51significand psignificand p hsignificand
    where
    
    hsignificand fx p =
      T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p) (gm T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gfloatDigits T.mkNoSrcPos p) fx))
      where
      
      gm pm p = T.uconstUse pm p sm
      
      j245v31v245v35m =
        case T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fm _) km -> (km,fm)
          _ -> T.fatal p
      
      sm =
        T.uconstDef p a245v32v245v32m
          (\ _ -> case j245v31v245v35m of (km,fm) -> fm)
      
    
  
  gscaleFloat pscaleFloat p =
    T.ufun2 a247v5v248v51scaleFloat pscaleFloat p hscaleFloat
    where
    
    hscaleFloat fk fx p =
      T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p) (gm T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gn T.mkNoSrcPos p) fk)
      where
      
      gm pm p = T.uconstUse pm p sm
      
      gn pm p = T.uconstUse pm p sn
      
      j248v31v248v35m =
        case T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx of
          T.R (T.Tuple2 fm fn) km -> (km,fm,fn)
          _ -> T.fatal p
      
      sm =
        T.uconstDef p a248v32v248v32m
          (\ _ -> case j248v31v248v35m of (km,fm,fn) -> fm)
      
      sn =
        T.uconstDef p a248v34v248v34n
          (\ _ -> case j248v31v248v35m of (km,fm,fn) -> fn)
      
    
  
  gatan2 patan2 p =
    T.ufun2 a250v5v261v30atan2 patan2 p hatan2
    where
    
    hatan2 fy fx p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fx
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.uap1 T.mkNoSrcPos p (gatan T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fy fx))
        (T.ucguard
          (T.uwrapForward p
            (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 0)))
                *&&
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 0)))) p))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) (gpi T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 2)))
          (T.ucguard
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 0)))
                  *&&
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 0)))) p))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gpi T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p (gatan T.mkNoSrcPos p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fy fx)))
            (T.ucguard
              (T.uwrapForward p
                (((T.uwrapForward p
                      (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fx
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 0)))
                          *&&
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fy
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 0)))) p))
                    *||
                    (T.uwrapForward p
                      (((T.uwrapForward p
                            (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
                                  (T.uap1 T.mkNoSrcPos p
                                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos
                                      p) (T.conInteger T.mkNoSrcPos p 0)))
                                *&&
                                (T.uap1 T.mkNoSrcPos p
                                  (gisNegativeZero T.mkNoSrcPos p) fy)) p))
                          *||
                          (T.uwrapForward p
                            (((T.uap1 T.mkNoSrcPos p
                                  (gisNegativeZero T.mkNoSrcPos p) fx)
                                *&&
                                (T.uap1 T.mkNoSrcPos p
                                  (gisNegativeZero T.mkNoSrcPos p) fy)) p)))
                        p))) p))
              (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                (T.uap2 T.mkNoSrcPos p (gatan2 T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fy) fx))
              (T.ucguard
                (T.uwrapForward p
                  (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy
                        (T.uap1 T.mkNoSrcPos p
                          (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                          (T.conInteger T.mkNoSrcPos p 0)))
                      *&&
                      (T.uwrapForward p
                        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
                              (T.uap1 T.mkNoSrcPos p
                                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                                (T.conInteger T.mkNoSrcPos p 0)))
                            *||
                            (T.uap1 T.mkNoSrcPos p
                              (gisNegativeZero T.mkNoSrcPos p) fx)) p))) p))
                (gpi T.mkNoSrcPos p)
                (T.ucguard
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 0)))
                        *&&
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 0)))) p))
                  (T.projection T.mkNoSrcPos p fy)
                  (T.ucguard (gotherwise T.mkNoSrcPos p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx fy)
                    (T.fatal p)))))))
    
  
  sfloatRadix :: T.R (T.Fun a Integer)
  
  sfloatDigits :: T.R (T.Fun a Int)
  
  sfloatRange :: T.R (T.Fun a (T.Tuple2 Int Int))
  
  sdecodeFloat :: T.R (T.Fun a (T.Tuple2 Integer Int))
  
  sencodeFloat :: T.R (T.Fun Integer (T.Fun Int a))
  
  sexponent :: T.R (T.Fun a Int)
  
  ssignificand :: T.R (T.Fun a a)
  
  sscaleFloat :: T.R (T.Fun Int (T.Fun a a))
  
  sisNaN,sisInfinite,sisDenormalized,sisNegativeZero,sisIEEE ::
    T.R (T.Fun a Bool)
  
  satan2 :: T.R (T.Fun a (T.Fun a a))
  

gsubtract :: Num a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))

ssubtract :: Num a => T.R (T.Fun a (T.Fun a a))

gsubtract psubtract p = T.uconstUse psubtract p ssubtract

ssubtract =
  T.uconstDef T.mkRoot asubtract
    (\ p -> T.uap1 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !- p))

geven,godd :: Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a Bool)

heven :: Integral a => (T.R a) -> T.RefExp -> T.R Bool

sodd :: Integral a => T.R (T.Fun a Bool)

geven peven p = T.ufun1 aeven peven p heven

heven fn p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
    (T.uap2 T.mkNoSrcPos p (grem T.mkNoSrcPos p) fn
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 2)))
    (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
      (T.conInteger T.mkNoSrcPos p 0))

godd podd p = T.uconstUse podd p sodd

sodd =
  T.uconstDef T.mkRoot aodd
    (\ p ->
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gnot T.mkNoSrcPos p)
        (geven T.mkNoSrcPos p))

ggcd :: Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))

hgcd :: Integral a => (T.R a) -> (T.R a) -> T.RefExp -> T.R a

ggcd pgcd p = T.ufun2 agcd pgcd p hgcd

hgcd fv276v5v276v5n v276v7v276v7n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv276v5v276v5n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h v276v7v276v7n p)
    (y1gcd fv276v5v276v5n v276v7v276v7n p)
  where
  
  h fv276v7v276v7n p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv276v7v276v7n
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (h p)
      (y1gcd fv276v5v276v5n v276v7v276v7n p)
    where
    
    h p =
      T.uwrapForward p
        (herror
          (T.fromLitString T.mkNoSrcPos p "Prelude.gcd: gcd 0 0 is undefined")
          p)
    h p = y1gcd fv276v5v276v5n v276v7v276v7n p
    
  h _ p = y1gcd fv276v5v276v5n v276v7v276v7n p
  
hgcd fv276v5v276v5n v276v7v276v7n p = y1gcd fv276v5v276v5n v276v7v276v7n p

y1gcd fx fy p =
  T.uwrapForward p
    (hgcd' (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fx)
      (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fy) p)
  where
  
  ggcd' pgcd' p = T.ufun2 a278v27v279v56gcd' pgcd' p hgcd'
  
  agcd' = a278v27v279v56gcd'
  
  hgcd' fx fv278v34v278v34n p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv278v34v278v34n
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (h p) (y1gcd' fx fv278v34v278v34n p)
    where
    
    h p = T.projection T.mkNoSrcPos p fx
    h p = y1gcd' fx fv278v34v278v34n p
    
  hgcd' fx fv278v34v278v34n p = y1gcd' fx fv278v34v278v34n p
  
  y1gcd' fx fy p =
    T.uwrapForward p
      (hgcd' fy (T.uap2 T.mkNoSrcPos p (grem T.mkNoSrcPos p) fx fy) p)
  

glcm :: Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))

hlcm :: Integral a => (T.R a) -> (T.R a) -> T.RefExp -> T.R a

glcm plcm p = T.ufun2 alcm plcm p hlcm

hlcm (z1lcm@_) fv283v7v283v7n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv283v7v283v7n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h p) (y1lcm z1lcm fv283v7v283v7n p)
  where
  
  h p =
    T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
      (T.conInteger T.mkNoSrcPos p 0)
  h p = y1lcm z1lcm fv283v7v283v7n p
  
hlcm z1lcm fv283v7v283v7n p = y1lcm z1lcm fv283v7v283v7n p

y1lcm fv284v5v284v5n v284v7v284v7n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv284v5v284v5n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h v284v7v284v7n p)
    (y2lcm fv284v5v284v5n v284v7v284v7n p)
  where
  
  h _ p =
    T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
      (T.conInteger T.mkNoSrcPos p 0)
  h _ p = y2lcm fv284v5v284v5n v284v7v284v7n p
  
y1lcm fv284v5v284v5n v284v7v284v7n p = y2lcm fv284v5v284v5n v284v7v284v7n p

y2lcm fx fy p =
  T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p)
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
      (T.uap2 T.mkNoSrcPos p (gquot T.mkNoSrcPos p) fx
        (T.uwrapForward p (hgcd fx fy p))) fy)

(!^) ::
  (Num a,Integral b) => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun b a))

(*^) :: (Num a,Integral b) => (T.R a) -> (T.R b) -> T.RefExp -> T.R a

(!^) (%^) p = T.ufun2 (+^) (%^) p (*^)

(*^) fx fv289v5v289v5n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv289v5v289v5n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h p) ((fx >#^ fv289v5v289v5n) p)
  where
  
  h p =
    T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
      (T.conInteger T.mkNoSrcPos p 1)
  h p = (fx >#^ fv289v5v289v5n) p
  
(*^) fx fv289v5v289v5n p = (fx >#^ fv289v5v289v5n) p

(>#^) fx 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
      (hf fx
        (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))) fx p)) ((fx >$^ fn) p)
  where
  
  gf pf p = T.ufun3 a291v27v294v70f pf p hf
  
  af = a291v27v294v70f
  
  hf (z1f@_) fv291v31v291v31n fy p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv291v31v291v31n
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (h fy p)
      (y1f z1f fv291v31v291v31n fy p)
    where
    
    h fy p = T.projection T.mkNoSrcPos p fy
    h _ p = y1f z1f fv291v31v291v31n fy p
    
  hf z1f fv291v31v291v31n fy p = y1f z1f fv291v31v291v31n fy p
  
  y1f fx fn fy p =
    T.uwrapForward p (hg fx fn p)
    where
    
    gg pg p = T.ufun2 a293v37v294v70g pg p hg
    
    ag = a293v37v294v70g
    
    hg fx fn p =
      T.ucguard (T.uwrapForward p (heven fn p))
        (T.uwrapForward p
          (hg (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx)
            (T.uap2 T.mkNoSrcPos p (gquot T.mkNoSrcPos p) fn
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 2))) p))
        (T.ucguard (gotherwise T.mkNoSrcPos p)
          (T.uwrapForward p
            (hf fx
              (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)))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy) p)) (T.fatal p))
    
  
(>#^) fx fn p = (fx >$^ fn) p

(>$^) _ _ p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.^: negative exponent") p)

(!^^) ::
  (Fractional a,Integral b) =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun b a))

(*^^) :: (Fractional a,Integral b) => (T.R a) -> (T.R b) -> T.RefExp -> T.R a

(!^^) (%^^) p = T.ufun2 (+^^) (%^^) p (*^^)

(*^^) fx fn p =
  T.ucif p
    (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 ((fx *^ fn) p))
    (T.uap1 T.mkNoSrcPos p (grecip T.mkNoSrcPos p)
      (T.uwrapForward p
        ((fx *^ (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fn)) p)))

gfromIntegral ::
  (Integral a,Num b) => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a b)

sfromIntegral :: (Integral a,Num b) => T.R (T.Fun a b)

gfromIntegral pfromIntegral p = T.uconstUse pfromIntegral p sfromIntegral

sfromIntegral =
  T.uconstDef T.mkRoot afromIntegral
    (\ p ->
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gfromInteger T.mkNoSrcPos p)
        (gtoInteger T.mkNoSrcPos p))

grealToFrac ::
  (Real a,Fractional b) => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a b)

srealToFrac :: (Real a,Fractional b) => T.R (T.Fun a b)

grealToFrac prealToFrac p = T.uconstUse prealToFrac p srealToFrac

srealToFrac =
  T.uconstDef T.mkRoot arealToFrac
    (\ p ->
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gfromRational T.mkNoSrcPos p)
        (gtoRational T.mkNoSrcPos p))

class Functor f
  where
  
  gfmap ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a b) (T.Fun (f a) (f b)))
  
  sfmap :: T.R (T.Fun (T.Fun a b) (T.Fun (f a) (f b)))
  

class Monad m
  where
  
  (!>>=) ::
    T.RefSrcPos -> T.RefExp -> T.R (T.Fun (m a) (T.Fun (T.Fun a (m b)) (m b)))
  
  (!>>) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (m a) (T.Fun (m b) (m b)))
  
  greturn :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (m a))
  
  gfail :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (m a))
  
  (!>>) (%>>) p =
    T.ufun2 (+%$&=^=%$&=@>>) (%>>) p (*>>)
    where
    
    (*>>) fm fk p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) fm
        (T.ufun1 T.mkLambda T.mkNoSrcPos p
          (\ _ p -> T.projection T.mkNoSrcPos p fk))
    
  
  gfail pfail p =
    T.ufun1 a325v5v325v21fail pfail p hfail
    where
    
    hfail fs p = T.uwrapForward p (herror fs p)
    
  
  (|>>=) :: T.R (T.Fun (m a) (T.Fun (T.Fun a (m b)) (m b)))
  
  (|>>) :: T.R (T.Fun (m a) (T.Fun (m b) (m b)))
  
  sreturn :: T.R (T.Fun a (m a))
  
  sfail :: T.R (T.Fun String (m a))
  

gsequence ::
  Monad m =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List (m a)) (m (T.List a)))

ssequence :: Monad m => T.R (T.Fun (T.List (m a)) (m (T.List a)))

gsequence psequence p = T.uconstUse psequence p ssequence

ssequence =
  T.uconstDef T.mkRoot asequence
    (\ p ->
      let
        gmcons pmcons p = T.ufun2 a330v27v330v73mcons pmcons p hmcons
        amcons = a330v27v330v73mcons
        hmcons fp fq p =
          T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) fp
            (T.ufun1 T.mkLambda T.mkNoSrcPos p
              (\ fx p ->
                T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) fq
                  (T.ufun1 T.mkLambda T.mkNoSrcPos p
                    (\ fy p ->
                      T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
                        (T.con2 T.mkNoSrcPos p T.Cons T.aCons fx fy))))) in
        (T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p) (gmcons T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
            (T.con0 T.mkNoSrcPos p T.List T.aList))))

gsequence_ ::
  Monad m => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List (m a)) (m T.Tuple0))

ssequence_ :: Monad m => T.R (T.Fun (T.List (m a)) (m T.Tuple0))

gsequence_ psequence_ p = T.uconstUse psequence_ p ssequence_

ssequence_ =
  T.uconstDef T.mkRoot asequence_
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p) (T.mkNoSrcPos !>> p)
        (T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
          (T.con0 T.mkNoSrcPos p T.Tuple0 T.aTuple0)))

gmapM ::
  Monad m =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (m b)) (T.Fun (T.List a) (m (T.List b))))

hmapM ::
  Monad m =>
  (T.R (T.Fun a (m b))) -> (T.R (T.List a)) -> T.RefExp -> T.R (m (T.List b))

gmapM pmapM p = T.ufun2 amapM pmapM p hmapM

hmapM ff fas p =
  T.uap1 T.mkNoSrcPos p (gsequence T.mkNoSrcPos p)
    (T.uwrapForward p (hmap ff fas p))

gmapM_ ::
  Monad m =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (m b)) (T.Fun (T.List a) (m T.Tuple0)))

hmapM_ ::
  Monad m =>
  (T.R (T.Fun a (m b))) -> (T.R (T.List a)) -> T.RefExp -> T.R (m T.Tuple0)

gmapM_ pmapM_ p = T.ufun2 amapM_ pmapM_ p hmapM_

hmapM_ ff fas p =
  T.uap1 T.mkNoSrcPos p (gsequence_ T.mkNoSrcPos p)
    (T.uwrapForward p (hmap ff fas p))

(!=<<) ::
  Monad m =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a (m b)) (T.Fun (m a) (m b)))

(*=<<) ::
  Monad m => (T.R (T.Fun a (m b))) -> (T.R (m a)) -> T.RefExp -> T.R (m b)

(!=<<) (%=<<) p = T.ufun2 (+=<<) (%=<<) p (*=<<)

(*=<<) ff fx p = T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) fx ff

instance Eq (T.Tuple0)
  where
  
  (!==) (%==) p =
    T.ufun2 (+%*^=^=%*^=@==) (%==) p (*==)
    where
    
    (*==) (T.R T.Tuple0 _) (T.R T.Tuple0 _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) _ _ p = T.fatal p
    
  

instance Ord (T.Tuple0)
  where
  
  gcompare pcompare p =
    T.ufun2 a360v3v360v22compare pcompare p hcompare
    where
    
    hcompare (T.R T.Tuple0 _) (T.R T.Tuple0 _) p = T.con0 T.mkNoSrcPos p EQ aEQ
    hcompare _ _ p = T.fatal p
    
  

instance Enum (T.Tuple0)
  where
  
  gfromEnum pfromEnum p =
    T.ufun1 a363v3v363v18fromEnum pfromEnum p hfromEnum
    where
    
    hfromEnum (T.R T.Tuple0 _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)
    hfromEnum _ p = T.fatal p
    
  
  gtoEnum ptoEnum p =
    T.ufun1 a364v3v365v78toEnum ptoEnum p htoEnum
    where
    
    htoEnum 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.con0 T.mkNoSrcPos p T.Tuple0 T.aTuple0) (y1toEnum fn p)
    htoEnum fn p = y1toEnum fn p
    
    y1toEnum fn p =
      T.uwrapForward p
        (herror
          (T.uwrapForward p
            (((T.fromLitString T.mkNoSrcPos p
                  "Prelude.Enum_Prelude.Unit_toEnum on ")
                *++
                (T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p) fn)) p)) p)
    
  

instance Bounded (T.Tuple0)
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a368v3v368v16minBound
      (\ p -> T.con0 T.mkNoSrcPos p T.Tuple0 T.aTuple0)
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a369v3v369v16maxBound
      (\ p -> T.con0 T.mkNoSrcPos p T.Tuple0 T.aTuple0)
  

gid :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a a)

hid :: (T.R a) -> T.RefExp -> T.R a

gid pid p = T.ufun1 aid pid p hid

hid fx p = T.projection T.mkNoSrcPos p fx

gconst :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun b a))

hconst :: (T.R a) -> (T.R b) -> T.RefExp -> T.R a

gconst pconst p = T.ufun2 aconst pconst p hconst

hconst fx _ p = T.projection T.mkNoSrcPos p fx

(!.) ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun b c) (T.Fun (T.Fun a b) (T.Fun a c)))

(*.) :: (T.R (T.Fun b c)) -> (T.R (T.Fun a b)) -> (T.R a) -> T.RefExp -> T.R c

(!.) (%.) p = T.ufun3 (+.) (%.) p (*.)

(*.) ff fg fx p = T.uap1 T.mkNoSrcPos p ff (T.uap1 T.mkNoSrcPos p fg fx)

gflip ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun b c)) (T.Fun b (T.Fun a c)))

hflip :: (T.R (T.Fun a (T.Fun b c))) -> (T.R b) -> (T.R a) -> T.RefExp -> T.R c

gflip pflip p = T.ufun3 aflip pflip p hflip

hflip ff fx fy p = T.uap2 T.mkNoSrcPos p ff fy fx

(!$),(!$!) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a b) (T.Fun a b))

(*$) :: (T.R (T.Fun a b)) -> (T.R a) -> T.RefExp -> T.R b

(*$!) :: (T.R (T.Fun a b)) -> (T.R a) -> T.RefExp -> T.R b

(!$) (%$) p = T.ufun2 (+$) (%$) p (*$)

(*$) ff fx p = T.uap1 T.mkNoSrcPos p ff fx

(!$!) (%$!) p = T.ufun2 (+$!) (%$!) p (*$!)

(*$!) ff fx p = T.uwrapForward p (hseq fx (T.uap1 T.mkNoSrcPos p ff fx) p)

instance Eq (Bool)
  where
  
  (!==) (%==) p =
    T.ufun2 (+&#&=>=&#+=#!==) (%==) p (*==)
    where
    
    (*==) (T.R True _) (T.R True _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) (T.R False _) (T.R False _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

instance Ord (Bool)
  where
  
  gcompare pcompare p =
    T.ufun2 a419v3v422v26compare pcompare p hcompare
    where
    
    hcompare (T.R False _) (T.R False _) p = T.con0 T.mkNoSrcPos p EQ aEQ
    hcompare (T.R False _) (T.R True _) p = T.con0 T.mkNoSrcPos p LT aLT
    hcompare (T.R True _) (T.R False _) p = T.con0 T.mkNoSrcPos p GT aGT
    hcompare (T.R True _) (T.R True _) p = T.con0 T.mkNoSrcPos p EQ aEQ
    hcompare _ _ p = T.fatal p
    
  

instance Enum (Bool)
  where
  
  gfromEnum pfromEnum p =
    T.ufun1 a425v3v426v22fromEnum pfromEnum p hfromEnum
    where
    
    hfromEnum (T.R False _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)
    hfromEnum (T.R True _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 1)
    hfromEnum _ p = T.fatal p
    
  
  gtoEnum ptoEnum p =
    T.ufun1 a428v3v430v70toEnum ptoEnum p htoEnum
    where
    
    htoEnum fv428v12v428v12n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv428v12v428v12n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0))) (h p)
        (y1toEnum fv428v12v428v12n p)
      where
      
      h p = T.con0 T.mkNoSrcPos p False aFalse
      h p = y1toEnum fv428v12v428v12n p
      
    htoEnum fv428v12v428v12n p = y1toEnum fv428v12v428v12n p
    
    y1toEnum fv429v12v429v12n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv429v12v429v12n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))) (h p)
        (y2toEnum fv429v12v429v12n p)
      where
      
      h p = T.con0 T.mkNoSrcPos p True aTrue
      h p = y2toEnum fv429v12v429v12n p
      
    y1toEnum fv429v12v429v12n p = y2toEnum fv429v12v429v12n p
    
    y2toEnum fn p =
      T.uwrapForward p
        (herror
          (T.uwrapForward p
            (((T.fromLitString T.mkNoSrcPos p "(Prelude.toEnum ")
                *++
                (T.uwrapForward p
                  (((T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p) fn)
                      *++
                      (T.fromLitString T.mkNoSrcPos p " :: Bool) is wrong"))
                    p))) p)) p)
    
  
  genumFrom penumFrom p =
    T.ufun1 a432v3v432v32enumFrom penumFrom p henumFrom
    where
    
    henumFrom fb p =
      T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p) fb
        (T.con0 T.mkNoSrcPos p True aTrue)
    
  
  genumFromThen penumFromThen p =
    T.ufun2 a433v3v433v53enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fb1 fb2 p =
      T.uap3 T.mkNoSrcPos p (genumFromThenTo T.mkNoSrcPos p) fb1 fb2
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fb2 fb1)
    
  

instance Read (Bool)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a436v3v437v20readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr p ->
              T.uwrapForward p
                (((T.uap1 T.mkNoSrcPos p
                      (T.uap2 T.mkNoSrcPos p (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
                                      (T.R
                                        (T.Cons (T.R 'F' _)
                                          (T.R
                                            (T.Cons (T.R 'a' _)
                                              (T.R
                                                (T.Cons (T.R 'l' _)
                                                  (T.R
                                                    (T.Cons (T.R 's' _)
                                                      (T.R
                                                        (T.Cons (T.R 'e' _)
                                                          (T.R T.List _)) _))
                                                    _)) _)) _)) _) fs) _) p =
                                  T.uap1 T.mkNoSrcPos p
                                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                        (T.con0 T.mkNoSrcPos p False aFalse)
                                        fs)) f_y
                                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                                in (v0v0v0v0v1)) f_x))
                        (T.uwrapForward p (hlex fr p)))
                      (T.fromExpList T.mkNoSrcPos p []))
                    *++
                    (T.uap1 T.mkNoSrcPos p
                      (T.uap2 T.mkNoSrcPos p (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
                                      (T.R
                                        (T.Cons (T.R 'T' _)
                                          (T.R
                                            (T.Cons (T.R 'r' _)
                                              (T.R
                                                (T.Cons (T.R 'u' _)
                                                  (T.R
                                                    (T.Cons (T.R 'e' _)
                                                      (T.R T.List _)) _)) _))
                                            _)) _) fs) _) p =
                                  T.uap1 T.mkNoSrcPos p
                                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                        (T.con0 T.mkNoSrcPos p True aTrue) fs))
                                    f_y
                                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                                in (v0v0v0v0v1)) f_x))
                        (T.uwrapForward p (hlex fr p)))
                      (T.fromExpList T.mkNoSrcPos p []))) p))) p)
    
  

instance Show (Bool)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a441v3v442v38showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R False _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "False")
    hshowsPrec fp (T.R True _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "True")
    hshowsPrec _ _ p = T.fatal p
    
  

instance Bounded (Bool)
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a445v3v445v18minBound
      (\ p -> T.con0 T.mkNoSrcPos p False aFalse)
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a446v3v446v17maxBound
      (\ p -> T.con0 T.mkNoSrcPos p True aTrue)
  

(!&&),(!||) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Bool (T.Fun Bool Bool))

(*&&) :: (T.R Bool) -> (T.R Bool) -> T.RefExp -> T.R Bool

(*||) :: (T.R Bool) -> (T.R Bool) -> T.RefExp -> T.R Bool

(!&&) (%&&) p = T.ufun2 (+&&) (%&&) p (*&&)

(*&&) (T.R True _) fx p = T.projection T.mkNoSrcPos p fx
(*&&) (T.R False _) _ p = T.con0 T.mkNoSrcPos p False aFalse
(*&&) _ _ p = T.fatal p

(!||) (%||) p = T.ufun2 (+||) (%||) p (*||)

(*||) (T.R True _) _ p = T.con0 T.mkNoSrcPos p True aTrue
(*||) (T.R False _) fx p = T.projection T.mkNoSrcPos p fx
(*||) _ _ p = T.fatal p

gnot :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Bool Bool)

hnot :: (T.R Bool) -> T.RefExp -> T.R Bool

gnot pnot p = T.ufun1 anot pnot p hnot

hnot (T.R True _) p = T.con0 T.mkNoSrcPos p False aFalse
hnot (T.R False _) p = T.con0 T.mkNoSrcPos p True aTrue
hnot _ p = T.fatal p

gotherwise :: T.RefSrcPos -> T.RefExp -> T.R Bool

sotherwise :: T.R Bool

gotherwise potherwise p = T.uconstUse potherwise p sotherwise

sotherwise =
  T.uconstDef T.mkRoot aotherwise (\ p -> T.con0 T.mkNoSrcPos p True aTrue)

instance Eq (Char)
  where
  
  (!==) (%==) p =
    T.ufun2 (+&^*=^=&^*=@==) (%==) p (*==)
    where
    
    (*==) fc fc' p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
        (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
        (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc')
    
  

instance Ord (Char)
  where
  
  (!<=) (%<=) p =
    T.ufun2 (+&^>=^=&^>=@<=) (%<=) p (*<=)
    where
    
    (*<=) fc fc' p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p)
        (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
        (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc')
    
  

instance Enum (Char)
  where
  
  gtoEnum ptoEnum p = T.uconstUse ptoEnum p stoEnum
  
  stoEnum =
    T.uconstDef T.mkRoot a483v5v483v37toEnum
      (\ p -> gprimIntToChar T.mkNoSrcPos p)
  
  gfromEnum pfromEnum p = T.uconstUse pfromEnum p sfromEnum
  
  sfromEnum =
    T.uconstDef T.mkRoot a484v5v484v37fromEnum
      (\ p -> gprimCharToInt T.mkNoSrcPos p)
  
  genumFrom penumFrom p =
    T.ufun1 a485v5v485v36enumFrom penumFrom p henumFrom
    where
    
    henumFrom fc p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
              (gmaxBound T.mkNoSrcPos p :: T.R Char))) p)
    
  
  genumFromThen penumFromThen p =
    T.ufun2 a486v5v489v59enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fc fc' p =
      T.uwrapForward p
        (hmap (gtoEnum T.mkNoSrcPos p)
          (T.uap3 T.mkNoSrcPos p (genumFromThenTo T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc')
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
              (glastChar T.mkNoSrcPos p))) p)
      where
      
      glastChar :: T.RefSrcPos -> T.RefExp -> T.R Char
      
      slastChar :: T.R Char
      
      glastChar plastChar p = T.uconstUse plastChar p slastChar
      
      slastChar =
        T.uconstDef p a488v29v489v59lastChar
          (\ p ->
            T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fc' fc)
              (gminBound T.mkNoSrcPos p)
              (T.ucguard (gotherwise T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
                (T.fatal p)))
      
    
  

instance Bounded (Char)
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a493v5v493v31minBound
      (\ p -> T.conChar T.mkNoSrcPos p '\o000')
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a494v5v494v46maxBound
      (\ p -> gprimUnicodeMaxBound T.mkNoSrcPos p)
  

data Maybe a = Nothing  | Just (T.R a)

instance T.WrapVal ((Maybe a))
  where
  
  wrapVal pwrapVal (kwrapVal@Nothing) p =
    T.R kwrapVal (T.mkValueUse p pwrapVal aNothing)
  wrapVal pwrapVal (kwrapVal@(Just (T.R _ z1wrapVal))) p =
    T.R kwrapVal (T.mkValueApp1 p pwrapVal aJust z1wrapVal)
  

instance Eq a => Eq ((Maybe a))
  where
  
  (!==) (%==) p =
    T.ufun2 (+*!%=*#=*!%=*$==) (%==) p (*==)
    where
    
    (*==) (T.R Nothing _) (T.R Nothing _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) (T.R (Just fy1) _) (T.R (Just fy2) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy1 fy2
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

instance Ord a => Ord ((Maybe a))
  where
  
  gcompare pcompare p =
    T.ufun2 a503v55v503v57compare pcompare p hcompare
    where
    
    hcompare (T.R (Just fy3) _) (T.R (Just fy4) _) p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fy3 fy4
    hcompare fy1 fy2 p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
        (T.uwrapForward p (hlocalFromEnum fy1 p) :: T.R Int)
        (T.uwrapForward p (hlocalFromEnum fy2 p))
      where
      
      glocalFromEnum plocalFromEnum p =
        T.ufun1 a503v55v503v57localFromEnum plocalFromEnum p hlocalFromEnum
      
      alocalFromEnum = a503v55v503v57localFromEnum
      
      hlocalFromEnum (T.R (Nothing) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
      hlocalFromEnum (T.R (Just _) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1)
      hlocalFromEnum _ p = T.fatal p
      
    
  

instance Read a => Read ((Maybe a))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a503v60v503v63readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fy1 p =
      T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.galt T.mkNoSrcPos p)
        (T.uwrapForward p
          (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
            (T.uwrapForward p
              (Hat.PreludeBasic.hthenLex
                (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                  (T.con0 T.mkNoSrcPos p Nothing aNothing))
                (T.fromLitString T.mkNoSrcPos p "Nothing") p)) p))
        (T.uwrapForward p
          (hreadParen
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 9)))
            (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.gthenAp T.mkNoSrcPos p)
              (T.uwrapForward p
                (Hat.PreludeBasic.hthenLex
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.pa0 Just T.cn1 T.mkNoSrcPos p aJust))
                  (T.fromLitString T.mkNoSrcPos p "Just") p))
              (T.uap1 T.mkNoSrcPos p (greadsPrec T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 10)))) p))
    
  

instance Show a => Show ((Maybe a))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a503v66v503v69showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fy1 (T.R (Nothing) _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "Nothing")
    hshowsPrec fy1 (T.R (Just fy2) _) p =
      T.uwrapForward p
        (hshowParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 9)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p "Just "))
            (T.uap2 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 10)) fy2)) p)
    hshowsPrec _ _ p = T.fatal p
    
  

gmaybe ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun b (T.Fun (T.Fun a b) (T.Fun (Maybe a) b)))

hmaybe :: (T.R b) -> (T.R (T.Fun a b)) -> (T.R (Maybe a)) -> T.RefExp -> T.R b

gmaybe pmaybe p = T.ufun3 amaybe pmaybe p hmaybe

hmaybe fn ff (T.R Nothing _) p = T.projection T.mkNoSrcPos p fn
hmaybe fn ff (T.R (Just fx) _) p = T.uap1 T.mkNoSrcPos p ff fx
hmaybe _ _ _ p = T.fatal p

instance Functor (Maybe)
  where
  
  gfmap pfmap p =
    T.ufun2 a512v5v513v34fmap pfmap p hfmap
    where
    
    hfmap ff (T.R Nothing _) p = T.con0 T.mkNoSrcPos p Nothing aNothing
    hfmap ff (T.R (Just fx) _) p =
      T.con1 T.mkNoSrcPos p Just aJust (T.uap1 T.mkNoSrcPos p ff fx)
    hfmap _ _ p = T.fatal p
    
  

instance Monad (Maybe)
  where
  
  (!>>=) (%>>=) p =
    T.ufun2 (+*#^=#&=*#@=#+>>=) (%>>=) p (*>>=)
    where
    
    (*>>=) (T.R (Just fx) _) fk p = T.uap1 T.mkNoSrcPos p fk fx
    (*>>=) (T.R Nothing _) fk p = T.con0 T.mkNoSrcPos p Nothing aNothing
    (*>>=) _ _ p = T.fatal p
    
  
  greturn preturn p = T.uconstUse preturn p sreturn
  
  sreturn =
    T.uconstDef T.mkRoot a519v5v519v28return
      (\ p -> T.pa0 Just T.cn1 T.mkNoSrcPos p aJust)
  
  gfail pfail p =
    T.ufun1 a520v5v520v31fail pfail p hfail
    where
    
    hfail fs p = T.con0 T.mkNoSrcPos p Nothing aNothing
    
  

data Either a b = Left (T.R a) | Right (T.R b)

instance T.WrapVal ((Either a b))
  where
  
  wrapVal pwrapVal (kwrapVal@(Left (T.R _ z1wrapVal))) p =
    T.R kwrapVal (T.mkValueApp1 p pwrapVal aLeft z1wrapVal)
  wrapVal pwrapVal (kwrapVal@(Right (T.R _ z1wrapVal))) p =
    T.R kwrapVal (T.mkValueApp1 p pwrapVal aRight z1wrapVal)
  

instance (Eq a,Eq b) => Eq ((Either a b))
  where
  
  (!==) (%==) p =
    T.ufun2 (+*$*=*#=*$*=*$==) (%==) p (*==)
    where
    
    (*==) (T.R (Left fy1) _) (T.R (Left fy2) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy1 fy2
    (*==) (T.R (Right fy1) _) (T.R (Right fy2) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy1 fy2
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

instance (Ord a,Ord b) => Ord ((Either a b))
  where
  
  gcompare pcompare p =
    T.ufun2 a525v55v525v57compare pcompare p hcompare
    where
    
    hcompare (T.R (Left fy3) _) (T.R (Left fy4) _) p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fy3 fy4
    hcompare (T.R (Right fy3) _) (T.R (Right fy4) _) p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fy3 fy4
    hcompare fy1 fy2 p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
        (T.uwrapForward p (hlocalFromEnum fy1 p) :: T.R Int)
        (T.uwrapForward p (hlocalFromEnum fy2 p))
      where
      
      glocalFromEnum plocalFromEnum p =
        T.ufun1 a525v55v525v57localFromEnum plocalFromEnum p hlocalFromEnum
      
      alocalFromEnum = a525v55v525v57localFromEnum
      
      hlocalFromEnum (T.R (Left _) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
      hlocalFromEnum (T.R (Right _) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1)
      hlocalFromEnum _ p = T.fatal p
      
    
  

instance (Read a,Read b) => Read ((Either a b))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a525v60v525v63readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fy1 p =
      T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.galt T.mkNoSrcPos p)
        (T.uwrapForward p
          (hreadParen
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 9)))
            (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.gthenAp T.mkNoSrcPos p)
              (T.uwrapForward p
                (Hat.PreludeBasic.hthenLex
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.pa0 Left T.cn1 T.mkNoSrcPos p aLeft))
                  (T.fromLitString T.mkNoSrcPos p "Left") p))
              (T.uap1 T.mkNoSrcPos p (greadsPrec T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 10)))) p))
        (T.uwrapForward p
          (hreadParen
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 9)))
            (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.gthenAp T.mkNoSrcPos p)
              (T.uwrapForward p
                (Hat.PreludeBasic.hthenLex
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.pa0 Right T.cn1 T.mkNoSrcPos p aRight))
                  (T.fromLitString T.mkNoSrcPos p "Right") p))
              (T.uap1 T.mkNoSrcPos p (greadsPrec T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 10)))) p))
    
  

instance (Show a,Show b) => Show ((Either a b))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a525v66v525v69showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fy1 (T.R (Left fy2) _) p =
      T.uwrapForward p
        (hshowParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 9)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p "Left "))
            (T.uap2 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 10)) fy2)) p)
    hshowsPrec fy1 (T.R (Right fy2) _) p =
      T.uwrapForward p
        (hshowParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fy1
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 9)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p "Right "))
            (T.uap2 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 10)) fy2)) p)
    hshowsPrec _ _ p = T.fatal p
    
  

geither ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun (T.Fun a c) (T.Fun (T.Fun b c) (T.Fun (Either a b) c)))

heither ::
  (T.R (T.Fun a c)) ->
    (T.R (T.Fun b c)) -> (T.R (Either a b)) -> T.RefExp -> T.R c

geither peither p = T.ufun3 aeither peither p heither

heither ff fg (T.R (Left fx) _) p = T.uap1 T.mkNoSrcPos p ff fx
heither ff fg (T.R (Right fy) _) p = T.uap1 T.mkNoSrcPos p fg fy
heither _ _ _ p = T.fatal p

instance Functor (IO)
  where
  
  gfmap pfmap p =
    T.ufun2 a539v4v539v42fmap pfmap p hfmap
    where
    
    hfmap ff fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) fx
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (greturn T.mkNoSrcPos p) ff)
    
  

instance Monad (IO)
  where
  
  (!>>=) (%>>=) p = T.uconstUse (%>>=) p (|>>=)
  
  (|>>=) =
    T.uconstDef T.mkRoot (+*&%=*=*&%=$$>>=) (\ p -> gprimIOBind T.mkNoSrcPos p)
  
  greturn preturn p = T.uconstUse preturn p sreturn
  
  sreturn =
    T.uconstDef T.mkRoot a544v4v544v24return
      (\ p -> gprimIOReturn T.mkNoSrcPos p)
  
  gfail pfail p =
    T.ufun1 a545v4v545v32fail pfail p hfail
    where
    
    hfail fs p =
      T.uwrapForward p (hioError (T.uwrapForward p (huserError fs p)) p)
    
  

data Ordering = LT  | EQ  | GT 

instance T.WrapVal (Ordering)
  where
  
  wrapVal pwrapVal (kwrapVal@LT) p = T.R kwrapVal (T.mkValueUse p pwrapVal aLT)
  wrapVal pwrapVal (kwrapVal@EQ) p = T.R kwrapVal (T.mkValueUse p pwrapVal aEQ)
  wrapVal pwrapVal (kwrapVal@GT) p = T.R kwrapVal (T.mkValueUse p pwrapVal aGT)
  

instance Eq (Ordering)
  where
  
  (!==) (%==) p =
    T.ufun2 (+**#=$#=**#=$$==) (%==) p (*==)
    where
    
    (*==) (T.R LT _) (T.R LT _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) (T.R EQ _) (T.R EQ _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) (T.R GT _) (T.R GT _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

instance Ord (Ordering)
  where
  
  gcompare pcompare p =
    T.ufun2 a551v25v551v27compare pcompare p hcompare
    where
    
    hcompare fy1 fy2 p =
      T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
        (T.uwrapForward p (hlocalFromEnum fy1 p) :: T.R Int)
        (T.uwrapForward p (hlocalFromEnum fy2 p))
      where
      
      glocalFromEnum plocalFromEnum p =
        T.ufun1 a551v25v551v27localFromEnum plocalFromEnum p hlocalFromEnum
      
      alocalFromEnum = a551v25v551v27localFromEnum
      
      hlocalFromEnum (T.R (LT) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
      hlocalFromEnum (T.R (EQ) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1)
      hlocalFromEnum (T.R (GT) _) p =
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 2)
      hlocalFromEnum _ p = T.fatal p
      
    
  

instance Enum (Ordering)
  where
  
  gfromEnum pfromEnum p =
    T.ufun1 a551v30v551v33fromEnum pfromEnum p hfromEnum
    where
    
    hfromEnum (T.R LT _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)
    hfromEnum (T.R EQ _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 1)
    hfromEnum (T.R GT _) p =
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 2)
    hfromEnum _ p = T.fatal p
    
  
  gtoEnum ptoEnum p =
    T.ufun1 a551v30v551v33toEnum ptoEnum p htoEnum
    where
    
    htoEnum fv551v30v551v33n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv551v30v551v33n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0))) (h p)
        (y1toEnum fv551v30v551v33n p)
      where
      
      h p = T.con0 T.mkNoSrcPos p LT aLT
      h p = y1toEnum fv551v30v551v33n p
      
    htoEnum fv551v30v551v33n p = y1toEnum fv551v30v551v33n p
    
    y1toEnum fv551v30v551v33n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv551v30v551v33n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))) (h p)
        (y2toEnum fv551v30v551v33n p)
      where
      
      h p = T.con0 T.mkNoSrcPos p EQ aEQ
      h p = y2toEnum fv551v30v551v33n p
      
    y1toEnum fv551v30v551v33n p = y2toEnum fv551v30v551v33n p
    
    y2toEnum fv551v30v551v33n p =
      T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv551v30v551v33n
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 2))) (h p)
        (y3toEnum fv551v30v551v33n p)
      where
      
      h p = T.con0 T.mkNoSrcPos p GT aGT
      h p = y3toEnum fv551v30v551v33n p
      
    y2toEnum fv551v30v551v33n p = y3toEnum fv551v30v551v33n p
    
    y3toEnum _ p =
      T.uwrapForward p
        (herror
          (T.fromLitString T.mkNoSrcPos p "toEnum: argument out of bounds") p)
    
  
  genumFrom penumFrom p =
    T.ufun1 a551v30v551v33enumFrom penumFrom p henumFrom
    where
    
    henumFrom fy1 p =
      T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p) fy1
        (T.con0 T.mkNoSrcPos p GT aGT)
    
  
  genumFromThen penumFromThen p =
    T.ufun2 a551v30v551v33enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fy1 fy2 p =
      T.uap3 T.mkNoSrcPos p (genumFromThenTo T.mkNoSrcPos p) fy1 fy2
        (T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fy1)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fy2))
          (T.con0 T.mkNoSrcPos p GT aGT) (T.con0 T.mkNoSrcPos p LT aLT))
    
  

instance Read (Ordering)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a551v36v551v39readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fy1 p =
      T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.galt T.mkNoSrcPos p)
        (T.uwrapForward p
          (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
            (T.uwrapForward p
              (Hat.PreludeBasic.hthenLex
                (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                  (T.con0 T.mkNoSrcPos p LT aLT))
                (T.fromLitString T.mkNoSrcPos p "LT") p)) p))
        (T.uap2 T.mkNoSrcPos p (Hat.PreludeBasic.galt T.mkNoSrcPos p)
          (T.uwrapForward p
            (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
              (T.uwrapForward p
                (Hat.PreludeBasic.hthenLex
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.con0 T.mkNoSrcPos p EQ aEQ))
                  (T.fromLitString T.mkNoSrcPos p "EQ") p)) p))
          (T.uwrapForward p
            (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
              (T.uwrapForward p
                (Hat.PreludeBasic.hthenLex
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gyield T.mkNoSrcPos p)
                    (T.con0 T.mkNoSrcPos p GT aGT))
                  (T.fromLitString T.mkNoSrcPos p "GT") p)) p)))
    
  

instance Show (Ordering)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a551v42v551v45showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fy1 (T.R (LT) _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "LT")
    hshowsPrec fy1 (T.R (EQ) _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "EQ")
    hshowsPrec fy1 (T.R (GT) _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "GT")
    hshowsPrec _ _ p = T.fatal p
    
  

instance Bounded (Ordering)
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a551v48v551v54minBound
      (\ p -> T.con0 T.mkNoSrcPos p LT aLT)
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a551v48v551v54maxBound
      (\ p -> T.con0 T.mkNoSrcPos p GT aGT)
  

instance Eq (Int)
  where
  
  (!==) (%==) p =
    T.ufun2 (+*+$=*=*+$=+==) (%==) p (*==)
    where
    
    (*==) fa fb p = T.uwrapForward p (hprimIntEq fa fb p)
    
  
  (!/=) (%/=) p =
    T.ufun2 (+*+%=*=*+%=+/=) (%/=) p (*/=)
    where
    
    (*/=) fa fb p = T.uwrapForward p (hprimIntNe fa fb p)
    
  

instance Ord (Int)
  where
  
  (!<) (%<) p =
    T.ufun2 (+*++=*=*++=*<) (%<) p (*<)
    where
    
    (*<) fa fb p = T.uwrapForward p (hprimIntLt fa fb p)
    
  
  (!<=) (%<=) p =
    T.ufun2 (+*+^=*=*+^=+<=) (%<=) p (*<=)
    where
    
    (*<=) fa fb p = T.uwrapForward p (hprimIntLe fa fb p)
    
  
  (!>=) (%>=) p =
    T.ufun2 (+*+@=*=*+@=+>=) (%>=) p (*>=)
    where
    
    (*>=) fa fb p = T.uwrapForward p (hprimIntGe fa fb p)
    
  
  (!>) (%>) p =
    T.ufun2 (+*+>=*=*+>=*>) (%>) p (*>)
    where
    
    (*>) fa fb p = T.uwrapForward p (hprimIntGt fa fb p)
    
  

instance Num (Int)
  where
  
  (!+) (%+) p =
    T.ufun2 (+*^$=&=*^$=&+) (%+) p (*+)
    where
    
    (*+) fa fb p = T.uwrapForward p (hprimIntPlus fa fb p)
    
  
  (!-) (%-) p =
    T.ufun2 (+*^%=&=*^%=&-) (%-) p (*-)
    where
    
    (*-) fa fb p = T.uwrapForward p (hprimIntMinus fa fb p)
    
  
  (!*) (%*) p =
    T.ufun2 (+*^&=&=*^&=&*) (%*) p (**)
    where
    
    (**) fa fb p = T.uwrapForward p (hprimIntTimes fa fb p)
    
  
  gnegate pnegate p =
    T.ufun1 a575v2v575v27negate pnegate p hnegate
    where
    
    hnegate fa p = T.uwrapForward p (hprimIntNegate fa p)
    
  
  gabs pabs p =
    T.ufun1 a576v2v576v24abs pabs p habs
    where
    
    habs fa p = T.uwrapForward p (hprimIntAbs fa p)
    
  
  gsignum psignum p =
    T.ufun1 a577v2v577v27signum psignum p hsignum
    where
    
    hsignum fa p = T.uwrapForward p (hprimIntSignum fa p)
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a578v2v578v37fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fi p = T.uwrapForward p (hprimIntFromInteger fi p)
    
  

instance Real (Int)
  where
  
  gtoRational ptoRational p =
    T.ufun1 a581v5v581v36toRational ptoRational p htoRational
    where
    
    htoRational fi p =
      T.uwrapForward p
        (((T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p) fi)
            *%
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1))) p)
    
  

instance Integral (Int)
  where
  
  gquot pquot p =
    T.ufun2 a584v8v584v11quot pquot p hquot
    where
    
    hquot fn fd p = T.uwrapForward p (hprimIntQuot fn fd p)
    
  
  grem prem p =
    T.ufun2 a585v8v585v10rem prem p hrem
    where
    
    hrem fn fd p = T.uwrapForward p (hprimIntRem fn fd p)
    
  
  gquotRem pquotRem p =
    T.ufun2 a586v8v586v14quotRem pquotRem p hquotRem
    where
    
    hquotRem fn fd p =
      T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.uap2 T.mkNoSrcPos p (gquot T.mkNoSrcPos p) fn fd)
        (T.uap2 T.mkNoSrcPos p (grem T.mkNoSrcPos p) fn fd)
    
  
  gtoInteger ptoInteger p =
    T.ufun1 a588v5v588v46toInteger ptoInteger p htoInteger
    where
    
    htoInteger fn p = T.uwrapForward p (hprimIntegerFromInt fn p)
    
  

instance Enum (Int)
  where
  
  gtoEnum ptoEnum p = T.uconstUse ptoEnum p stoEnum
  
  stoEnum = T.uconstDef T.mkRoot a591v3v591v13toEnum (\ p -> gid T.mkNoSrcPos p)
  
  gfromEnum pfromEnum p = T.uconstUse pfromEnum p sfromEnum
  
  sfromEnum =
    T.uconstDef T.mkRoot a592v3v592v15fromEnum (\ p -> gid T.mkNoSrcPos p)
  
  genumFrom penumFrom p =
    T.ufun1 a594v3v594v36enumFrom penumFrom p henumFrom
    where
    
    henumFrom fx p =
      T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p) fx
        (gmaxBound T.mkNoSrcPos p)
    
  
  genumFromThen penumFromThen p =
    T.ufun2 a595v3v595v78enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fx fy p =
      T.uap3 T.mkNoSrcPos p (genumFromThenTo T.mkNoSrcPos p) fx fy
        (T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fy fx)
          (gmaxBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
    
  
  genumFromTo penumFromTo p =
    T.ufun2 a596v3v596v40enumFromTo penumFromTo p henumFromTo
    where
    
    henumFromTo fn fm p =
      T.uwrapForward p
        (hintEnumFromByTo fn
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1)) fm p)
    
  
  genumFromThenTo penumFromThenTo p =
    T.ufun3 a597v3v597v52enumFromThenTo penumFromThenTo p henumFromThenTo
    where
    
    henumFromThenTo fn fn' fm p =
      T.uwrapForward p
        (hintEnumFromByTo fn (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn' fn)
          fm p)
    
  

gintEnumFromByTo ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun Int (T.Fun Int (T.Fun Int (T.List Int))))

hintEnumFromByTo ::
  (T.R Int) -> (T.R Int) -> (T.R Int) -> T.RefExp -> T.R (T.List Int)

gintEnumFromByTo pintEnumFromByTo p =
  T.ufun3 aintEnumFromByTo pintEnumFromByTo p hintEnumFromByTo

hintEnumFromByTo fn fd fm p =
  T.uccase T.mkNoSrcPos p
    (let
      v603v3v606v45v1 (T.R GT _) p =
        T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn fm)
          (T.con0 T.mkNoSrcPos p T.List T.aList)
          (T.uwrapForward p
            (hgo
              (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !<= p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fm fd)) fn p))
      v603v3v606v45v1 (T.R EQ _) p = T.uwrapForward p (hrepeat fn p)
      v603v3v606v45v1 (T.R LT _) p =
        T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fn fm)
          (T.con0 T.mkNoSrcPos p T.List T.aList)
          (T.uwrapForward p
            (hgo
              (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !>= p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fm fd)) fn p))
      v603v3v606v45v1 _ p = T.fatal p in (v603v3v606v45v1))
    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)))
  where
  
  ggo ::
    T.RefSrcPos ->
      T.RefExp -> T.R (T.Fun (T.Fun Int Bool) (T.Fun Int (T.List Int)))
  
  hgo :: (T.R (T.Fun Int Bool)) -> (T.R Int) -> T.RefExp -> T.R (T.List Int)
  
  ggo pgo p = T.ufun2 a609v3v609v68go pgo p hgo
  
  ago = a609v3v609v68go
  
  hgo fcontinue fn p =
    T.con2 T.mkNoSrcPos p T.Cons T.aCons fn
      (T.ucif p (T.uap1 T.mkNoSrcPos p fcontinue fn)
        (T.uwrapForward p
          (hgo fcontinue (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fn fd) p))
        (T.con0 T.mkNoSrcPos p T.List T.aList))
  

instance Bounded (Int)
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a613v3v613v28minBound
      (\ p -> gprimIntMinBound T.mkNoSrcPos p)
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a614v3v614v28maxBound
      (\ p -> gprimIntMaxBound T.mkNoSrcPos p)
  

instance Eq (Integer)
  where
  
  (!==) (%==) p =
    T.ufun2 (++$!=*=+$!=+==) (%==) p (*==)
    where
    
    (*==) fa fb p = T.uwrapForward p (hprimIntegerEq fa fb p)
    
  
  (!/=) (%/=) p =
    T.ufun2 (++$#=*=+$#=+/=) (%/=) p (*/=)
    where
    
    (*/=) fa fb p = T.uwrapForward p (hprimIntegerNe fa fb p)
    
  

instance Ord (Integer)
  where
  
  (!<) (%<) p =
    T.ufun2 (++$&=*=+$&=*<) (%<) p (*<)
    where
    
    (*<) fa fb p = T.uwrapForward p (hprimIntegerLt fa fb p)
    
  
  (!<=) (%<=) p =
    T.ufun2 (++$*=*=+$*=+<=) (%<=) p (*<=)
    where
    
    (*<=) fa fb p = T.uwrapForward p (hprimIntegerLe fa fb p)
    
  
  (!>=) (%>=) p =
    T.ufun2 (++$+=*=+$+=+>=) (%>=) p (*>=)
    where
    
    (*>=) fa fb p = T.uwrapForward p (hprimIntegerGe fa fb p)
    
  
  (!>) (%>) p =
    T.ufun2 (++$^=*=+$^=*>) (%>) p (*>)
    where
    
    (*>) fa fb p = T.uwrapForward p (hprimIntegerGt fa fb p)
    
  

instance Num (Integer)
  where
  
  (!+) (%+) p =
    T.ufun2 (++%!=&=+%!=&+) (%+) p (*+)
    where
    
    (*+) fa fb p = T.uwrapForward p (hprimIntegerAdd fa fb p)
    
  
  (!-) (%-) p =
    T.ufun2 (++%#=&=+%#=&-) (%-) p (*-)
    where
    
    (*-) fa fb p = T.uwrapForward p (hprimIntegerSub fa fb p)
    
  
  (!*) (%*) p =
    T.ufun2 (++%$=&=+%$=&*) (%*) p (**)
    where
    
    (**) fa fb p = T.uwrapForward p (hprimIntegerMul fa fb p)
    
  
  gnegate pnegate p =
    T.ufun1 a633v2v633v28negate pnegate p hnegate
    where
    
    hnegate fa p = T.uwrapForward p (hprimIntegerNeg fa p)
    
  
  gabs pabs p =
    T.ufun1 a634v2v634v41abs pabs p habs
    where
    
    habs fi p =
      T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fi
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fi)
        (T.projection T.mkNoSrcPos p fi)
    
  
  gsignum psignum p =
    T.ufun1 a635v2v638v24signum psignum p hsignum
    where
    
    hsignum fi p =
      T.uccase T.mkNoSrcPos p
        (let
          v635v13v638v24v1 (T.R LT _) p =
            T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))
          v635v13v638v24v1 (T.R EQ _) p =
            T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)
          v635v13v638v24v1 (T.R GT _) p =
            T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)
          v635v13v638v24v1 _ p = T.fatal p in (v635v13v638v24v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fi
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a639v2v639v18fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fa p = T.projection T.mkNoSrcPos p fa
    
  

instance Real (Integer)
  where
  
  gtoRational ptoRational p =
    T.ufun1 a642v5v642v24toRational ptoRational p htoRational
    where
    
    htoRational fi p =
      T.uwrapForward p
        ((fi
            *%
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1))) p)
    
  

instance Integral (Integer)
  where
  
  gquot pquot p =
    T.ufun2 a645v8v645v11quot pquot p hquot
    where
    
    hquot fn fd p = T.uwrapForward p (hprimIntegerQuot fn fd p)
    
  
  grem prem p =
    T.ufun2 a646v8v646v10rem prem p hrem
    where
    
    hrem fn fd p = T.uwrapForward p (hprimIntegerRem fn fd p)
    
  
  gdiv pdiv p =
    T.ufun2 a647v8v647v10div pdiv p hdiv
    where
    
    hdiv fn fd p =
      T.uwrapForward p
        (hfst (T.uap2 T.mkNoSrcPos p (gdivMod T.mkNoSrcPos p) fn fd) p)
    
  
  gmod pmod p =
    T.ufun2 a648v8v648v10mod pmod p hmod
    where
    
    hmod fn fd p =
      T.uwrapForward p
        (hsnd (T.uap2 T.mkNoSrcPos p (gdivMod T.mkNoSrcPos p) fn fd) p)
    
  
  gquotRem pquotRem p =
    T.ufun2 a650v8v650v14quotRem pquotRem p hquotRem
    where
    
    hquotRem fn fd p = T.uwrapForward p (hprimIntegerQuotRem fn fd p)
    
  
  gtoInteger ptoInteger p =
    T.ufun1 a652v5v652v21toInteger ptoInteger p htoInteger
    where
    
    htoInteger fn p = T.projection T.mkNoSrcPos p fn
    
  

instance Enum (Integer)
  where
  
  gsucc psucc p =
    T.ufun1 a655v3v655v18succ psucc p hsucc
    where
    
    hsucc fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gpred ppred p =
    T.ufun1 a656v3v656v18pred ppred p hpred
    where
    
    hpred fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gtoEnum ptoEnum p =
    T.ufun1 a657v3v657v26toEnum ptoEnum p htoEnum
    where
    
    htoEnum fx p = T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p) fx
    
  
  gfromEnum pfromEnum p =
    T.ufun1 a658v3v658v28fromEnum pfromEnum p hfromEnum
    where
    
    hfromEnum fx p = T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fx
    
  
  genumFrom penumFrom p = T.uconstUse penumFrom p senumFrom
  
  senumFrom =
    T.uconstDef T.mkRoot a660v3v660v24enumFrom
      (\ p ->
        T.uap1 T.mkNoSrcPos p (giterate T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1))))
  
  genumFromThen penumFromThen p =
    T.ufun2 a661v3v661v41enumFromThen penumFromThen p henumFromThen
    where
    
    henumFromThen fn fn' p =
      T.uwrapForward p
        (hiterate
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn' fn)) fn p)
    
  
  genumFromTo penumFromTo p =
    T.ufun2 a662v3v662v51enumFromTo penumFromTo p henumFromTo
    where
    
    henumFromTo fn fm p =
      T.uwrapForward p
        (htakeWhile
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !<= p) fm)
          (T.uwrapForward p
            (hiterate
              (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) fn p)) p)
    
  
  genumFromThenTo penumFromThenTo p =
    T.ufun3 a663v3v666v54enumFromThenTo penumFromThenTo p henumFromThenTo
    where
    
    henumFromThenTo fn fn' fm p =
      let
        gd pd p = T.uconstUse pd p sd
        sd =
          T.uconstDef p a664v9v664v16d
            (\ p -> T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn' fn) in
        (T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) (gd T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          (T.uwrapForward p
            (htakeWhile
              (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !<= p)
                fm)
              (T.uwrapForward p
                (hiterate
                  (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p)
                    (T.mkNoSrcPos !+ p) (gd T.mkNoSrcPos p)) fn p)) p))
          (T.uwrapForward p
            (htakeWhile
              (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !>= p)
                fm)
              (T.uwrapForward p
                (hiterate
                  (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p)
                    (T.mkNoSrcPos !+ p) (gd T.mkNoSrcPos p)) fn p)) p)))
    
  

instance Eq (Float)
  where
  
  (!==) (%==) p =
    T.ufun2 (++^$=*=+^$=+==) (%==) p (*==)
    where
    
    (*==) fa fb p = T.uwrapForward p (hprimFloatEq fa fb p)
    
  
  (!/=) (%/=) p =
    T.ufun2 (++^%=*=+^%=+/=) (%/=) p (*/=)
    where
    
    (*/=) fa fb p = T.uwrapForward p (hprimFloatNe fa fb p)
    
  

instance Ord (Float)
  where
  
  (!<) (%<) p =
    T.ufun2 (++^+=*=+^+=*<) (%<) p (*<)
    where
    
    (*<) fa fb p = T.uwrapForward p (hprimFloatLt fa fb p)
    
  
  (!<=) (%<=) p =
    T.ufun2 (++^^=*=+^^=+<=) (%<=) p (*<=)
    where
    
    (*<=) fa fb p = T.uwrapForward p (hprimFloatLe fa fb p)
    
  
  (!>=) (%>=) p =
    T.ufun2 (++^@=*=+^@=+>=) (%>=) p (*>=)
    where
    
    (*>=) fa fb p = T.uwrapForward p (hprimFloatGe fa fb p)
    
  
  (!>) (%>) p =
    T.ufun2 (++^>=*=+^>=*>) (%>) p (*>)
    where
    
    (*>) fa fb p = T.uwrapForward p (hprimFloatGt fa fb p)
    
  

instance Num (Float)
  where
  
  (!+) (%+) p =
    T.ufun2 (++@$=&=+@$=&+) (%+) p (*+)
    where
    
    (*+) fa fb p = T.uwrapForward p (hprimFloatAdd fa fb p)
    
  
  (!-) (%-) p =
    T.ufun2 (++@%=&=+@%=&-) (%-) p (*-)
    where
    
    (*-) fa fb p = T.uwrapForward p (hprimFloatSub fa fb p)
    
  
  (!*) (%*) p =
    T.ufun2 (++@&=&=+@&=&*) (%*) p (**)
    where
    
    (**) fa fb p = T.uwrapForward p (hprimFloatMul fa fb p)
    
  
  gnegate pnegate p =
    T.ufun1 a685v2v685v17negate pnegate p hnegate
    where
    
    hnegate fa 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 0)) fa
    
  
  gabs pabs p =
    T.ufun1 a686v2v686v26abs pabs p habs
    where
    
    habs fa p = T.uwrapForward p (hprimFloatAbs fa p)
    
  
  gsignum psignum p =
    T.ufun1 a687v2v687v29signum psignum p hsignum
    where
    
    hsignum fa p = T.uwrapForward p (hprimFloatSignum fa p)
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a688v2v688v39fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fi p = T.uwrapForward p (hprimFloatFromInteger fi p)
    
  

instance Real (Float)
  where
  
  gtoRational ptoRational p =
    T.ufun1 a691v5v692v52toRational ptoRational p htoRational
    where
    
    htoRational fx p =
      T.uccase T.mkNoSrcPos p
        (let
          v691v20v691v65v1 (T.R (T.Tuple2 fm fn) _) p =
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
              (T.uwrapForward p
                ((fm
                    *%
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 1))) p))
              (T.uwrapForward p
                (((T.uwrapForward p
                      (((gbf T.mkNoSrcPos p)
                          *%
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 1))) p))
                    *^^
                    fn) p))
          v691v20v691v65v1 _ p = T.fatal p in (v691v20v691v65v1))
        (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx)
      where
      
      gbf pbf p = T.uconstUse pbf p sbf
      
      sbf =
        T.uconstDef p a692v31v692v52bf
          (\ p -> T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) fx)
      
    
  

instance Fractional (Float)
  where
  
  (!/) (%/) p =
    T.ufun2 (++>*=*=+>*=*/) (%/) p (*/)
    where
    
    (*/) fx fy p = T.uwrapForward p (hprimFloatDiv fx fy p)
    
  
  gfromRational pfromRational p =
    T.ufun1 a696v3v704v76fromRational pfromRational p hfromRational
    where
    
    hfromRational fx p =
      gx0 T.mkNoSrcPos p
      where
      
      gx0 px0 p = T.uconstUse px0 p sx0
      
      sx0 =
        T.uconstDef p a697v13v697v25x0
          (\ p -> T.uwrapForward p (hff (gef T.mkNoSrcPos p) p))
      
      gff pff p = T.ufun1 a698v13v702v48ff pff p hff
      
      aff = a698v13v702v48ff
      
      hff fef p =
        T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gef' T.mkNoSrcPos p) fef)
          (gyf T.mkNoSrcPos p) (T.uwrapForward p (hff (gef' T.mkNoSrcPos p) p))
        where
        
        gyf :: T.RefSrcPos -> T.RefExp -> T.R Float
        
        syf :: T.R Float
        
        gyf pyf p = T.uconstUse pyf p syf
        
        syf =
          T.uconstDef p a700v26v700v78yf
            (\ p ->
              T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p (ground T.mkNoSrcPos p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx
                    (T.uwrapForward p
                      (((T.uwrapForward p
                            (((T.uap1 T.mkNoSrcPos p
                                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                                  (T.conInteger T.mkNoSrcPos p 1))
                                *%
                                (gbf T.mkNoSrcPos p)) p))
                          *^^
                          fef) p)))) fef)
        
        gef' pef' p = T.uconstUse pef' p sef'
        
        j701v26v701v32ef' =
          case
            T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p)
              (gyf T.mkNoSrcPos p) of
            T.R (T.Tuple2 _ fef') kef' -> (kef',fef')
            _ -> T.fatal p
        
        sef' =
          T.uconstDef p a701v29v701v31ef'
            (\ _ -> case j701v26v701v32ef' of (kef',fef') -> fef')
        
        gbf pbf p = T.uconstUse pbf p sbf
        
        sbf =
          T.uconstDef p a702v26v702v48bf
            (\ p ->
              T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p)
                (gx0 T.mkNoSrcPos p))
        
      
      gef pef p = T.uconstUse pef p sef
      
      j703v13v703v18ef =
        case
          T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
              (T.uap2 T.mkNoSrcPos p (gasTypeOf T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                  (T.uwrapForward p (hnumerator fx p))) (gx0 T.mkNoSrcPos p))
              (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                (T.uwrapForward p (hdenominator fx p)))) of
          T.R (T.Tuple2 _ fef) kef -> (kef,fef)
          _ -> T.fatal p
      
      sef =
        T.uconstDef p a703v16v703v17ef
          (\ _ -> case j703v13v703v18ef of (kef,fef) -> fef)
      
    
  

instance Floating (Float)
  where
  
  gpi ppi p = T.uconstUse ppi p spi
  
  spi =
    T.uconstDef T.mkRoot a707v5v707v38pi (\ p -> gprimFloatPi T.mkNoSrcPos p)
  
  gexp pexp p =
    T.ufun1 a708v5v708v41exp pexp p hexp
    where
    
    hexp fx p = T.uwrapForward p (hprimFloatExp fx p)
    
  
  glog plog p =
    T.ufun1 a709v5v709v41log plog p hlog
    where
    
    hlog fx p = T.uwrapForward p (hprimFloatLog fx p)
    
  
  gsqrt psqrt p =
    T.ufun1 a710v5v710v42sqrt psqrt p hsqrt
    where
    
    hsqrt fx p = T.uwrapForward p (hprimFloatSqrt fx p)
    
  
  gsin psin p =
    T.ufun1 a711v5v711v41sin psin p hsin
    where
    
    hsin fx p = T.uwrapForward p (hprimFloatSin fx p)
    
  
  gcos pcos p =
    T.ufun1 a712v5v712v41cos pcos p hcos
    where
    
    hcos fx p = T.uwrapForward p (hprimFloatCos fx p)
    
  
  gtan ptan p =
    T.ufun1 a713v5v713v41tan ptan p htan
    where
    
    htan fx p = T.uwrapForward p (hprimFloatTan fx p)
    
  
  gasin pasin p =
    T.ufun1 a714v5v714v42asin pasin p hasin
    where
    
    hasin fx p = T.uwrapForward p (hprimFloatAsin fx p)
    
  
  gacos pacos p =
    T.ufun1 a715v5v715v42acos pacos p hacos
    where
    
    hacos fx p = T.uwrapForward p (hprimFloatAcos fx p)
    
  
  gatan patan p =
    T.ufun1 a716v5v716v42atan patan p hatan
    where
    
    hatan fx p = T.uwrapForward p (hprimFloatAtan fx p)
    
  
  gsinh psinh p =
    T.ufun1 a717v5v717v48sinh psinh p hsinh
    where
    
    hsinh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromRational T.mkNoSrcPos p)
          (T.R
            ((T.conInteger T.mkNoSrcPos p 1)
              Hat.PreludeBasic.:%
              (T.conInteger T.mkNoSrcPos p 2))
            (T.mkAtomRational T.mkNoSrcPos p 0.5)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx)))
    
  
  gcosh pcosh p =
    T.ufun1 a718v5v718v48cosh pcosh p hcosh
    where
    
    hcosh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromRational T.mkNoSrcPos p)
          (T.R
            ((T.conInteger T.mkNoSrcPos p 1)
              Hat.PreludeBasic.:%
              (T.conInteger T.mkNoSrcPos p 2))
            (T.mkAtomRational T.mkNoSrcPos p 0.5)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx)))
    
  
  gtanh ptanh p =
    T.ufun1 a719v5v719v73tanh ptanh p htanh
    where
    
    htanh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gaf T.mkNoSrcPos p)
          (gbf T.mkNoSrcPos p))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gaf T.mkNoSrcPos p)
          (gbf T.mkNoSrcPos p))
      where
      
      gaf paf p = T.uconstUse paf p saf
      
      saf =
        T.uconstDef p a719v49v719v58af
          (\ p -> T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
      
      gbf pbf p = T.uconstUse pbf p sbf
      
      sbf =
        T.uconstDef p a719v62v719v73bf
          (\ p ->
            T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx))
      
    
  
  gasinh pasinh p =
    T.ufun1 a720v5v720v34asinh pasinh p hasinh
    where
    
    hasinh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos 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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx))))
    
  
  gacosh pacosh p =
    T.ufun1 a721v5v721v47acosh pacosh p hacosh
    where
    
    hacosh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)))
            (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))))))
    
  
  gatanh patanh p =
    T.ufun1 a722v5v722v40atanh patanh p hatanh
    where
    
    hatanh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)))
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos 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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx))))
    
  

instance RealFrac (Float)
  where
  
  gproperFraction pproperFraction p =
    T.ufun1 a725v5v731v67properFraction pproperFraction p hproperFraction
    where
    
    hproperFraction fx p =
      T.uccase T.mkNoSrcPos p
        (let
          v726v9v731v67v1 (T.R (T.Tuple2 fm fn) _) p =
            T.ucif p
              (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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                  (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fm)
                  (T.uwrapForward p
                    (((T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                          (T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p)
                            fx))
                        *^
                        fn) p)))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 0)))
              (T.uccase T.mkNoSrcPos p
                (let
                  v730v25v731v67v1 (T.R (T.Tuple2 fw fr) _) p =
                    T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                      (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fw)
                      (T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p) fr
                        fn)
                  v730v25v731v67v1 _ p = T.fatal p in (v730v25v731v67v1))
                (T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fm
                  (T.uwrapForward p
                    (((T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) fx)
                        *^
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fn))
                      p))))
          v726v9v731v67v1 _ p = T.fatal p in (v726v9v731v67v1))
        (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx)
    
  

instance RealFloat (Float)
  where
  
  gfloatRadix pfloatRadix p = T.uconstUse pfloatRadix p sfloatRadix
  
  sfloatRadix =
    T.uconstDef T.mkRoot a734v5v734v34floatRadix
      (\ p -> gprimFloatRadix T.mkNoSrcPos p)
  
  gfloatDigits pfloatDigits p = T.uconstUse pfloatDigits p sfloatDigits
  
  sfloatDigits =
    T.uconstDef T.mkRoot a735v5v735v35floatDigits
      (\ p -> gprimFloatDigits T.mkNoSrcPos p)
  
  gfloatRange pfloatRange p = T.uconstUse pfloatRange p sfloatRange
  
  sfloatRange =
    T.uconstDef T.mkRoot a736v5v736v34floatRange
      (\ p -> gprimFloatRange T.mkNoSrcPos p)
  
  gdecodeFloat pdecodeFloat p =
    T.ufun1 a737v5v737v37decodeFloat pdecodeFloat p hdecodeFloat
    where
    
    hdecodeFloat fx p = T.uwrapForward p (hprimDecodeFloat fx p)
    
  
  gencodeFloat pencodeFloat p =
    T.ufun2 a738v5v738v41encodeFloat pencodeFloat p hencodeFloat
    where
    
    hencodeFloat fx fy p = T.uwrapForward p (hprimEncodeFloat fx fy p)
    
  
  gisNaN pisNaN p = T.uconstUse pisNaN p sisNaN
  
  sisNaN =
    T.uconstDef T.mkRoot a740v5v740v35isNaN
      (\ p -> gprimFloatIsNaN T.mkNoSrcPos p)
  
  gisInfinite pisInfinite p = T.uconstUse pisInfinite p sisInfinite
  
  sisInfinite =
    T.uconstDef T.mkRoot a741v5v741v40isInfinite
      (\ p -> gprimFloatIsInfinite T.mkNoSrcPos p)
  
  gisDenormalized pisDenormalized p =
    T.uconstUse pisDenormalized p sisDenormalized
  
  sisDenormalized =
    T.uconstDef T.mkRoot a742v5v742v44isDenormalized
      (\ p -> gprimFloatIsDenormalized T.mkNoSrcPos p)
  
  gisNegativeZero pisNegativeZero p =
    T.uconstUse pisNegativeZero p sisNegativeZero
  
  sisNegativeZero =
    T.uconstDef T.mkRoot a743v5v743v44isNegativeZero
      (\ p -> gprimFloatIsNegativeZero T.mkNoSrcPos p)
  
  gisIEEE pisIEEE p = T.uconstUse pisIEEE p sisIEEE
  
  sisIEEE =
    T.uconstDef T.mkRoot a744v5v744v36isIEEE
      (\ p -> gprimFloatIsIEEE T.mkNoSrcPos p)
  

instance Eq (Double)
  where
  
  (!==) (%==) p =
    T.ufun2 (+^*!=*=^*!=+==) (%==) p (*==)
    where
    
    (*==) fa fb p = T.uwrapForward p (hprimDoubleEq fa fb p)
    
  
  (!/=) (%/=) p =
    T.ufun2 (+^*#=*=^*#=+/=) (%/=) p (*/=)
    where
    
    (*/=) fa fb p = T.uwrapForward p (hprimDoubleNe fa fb p)
    
  

instance Ord (Double)
  where
  
  (!<) (%<) p =
    T.ufun2 (+^*&=*=^*&=*<) (%<) p (*<)
    where
    
    (*<) fa fb p = T.uwrapForward p (hprimDoubleLt fa fb p)
    
  
  (!<=) (%<=) p =
    T.ufun2 (+^**=*=^**=+<=) (%<=) p (*<=)
    where
    
    (*<=) fa fb p = T.uwrapForward p (hprimDoubleLe fa fb p)
    
  
  (!>=) (%>=) p =
    T.ufun2 (+^*+=*=^*+=+>=) (%>=) p (*>=)
    where
    
    (*>=) fa fb p = T.uwrapForward p (hprimDoubleGe fa fb p)
    
  
  (!>) (%>) p =
    T.ufun2 (+^*^=*=^*^=*>) (%>) p (*>)
    where
    
    (*>) fa fb p = T.uwrapForward p (hprimDoubleGt fa fb p)
    
  

instance Num (Double)
  where
  
  (!+) (%+) p =
    T.ufun2 (+^+!=&=^+!=&+) (%+) p (*+)
    where
    
    (*+) fa fb p = T.uwrapForward p (hprimDoubleAdd fa fb p)
    
  
  (!-) (%-) p =
    T.ufun2 (+^+#=&=^+#=&-) (%-) p (*-)
    where
    
    (*-) fa fb p = T.uwrapForward p (hprimDoubleSub fa fb p)
    
  
  (!*) (%*) p =
    T.ufun2 (+^+$=&=^+$=&*) (%*) p (**)
    where
    
    (**) fa fb p = T.uwrapForward p (hprimDoubleMul fa fb p)
    
  
  gnegate pnegate p =
    T.ufun1 a763v2v763v18negate pnegate p hnegate
    where
    
    hnegate fa 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 0)) fa
    
  
  gabs pabs p =
    T.ufun1 a764v2v764v27abs pabs p habs
    where
    
    habs fa p = T.uwrapForward p (hprimDoubleAbs fa p)
    
  
  gsignum psignum p =
    T.ufun1 a765v2v765v30signum psignum p hsignum
    where
    
    hsignum fa p = T.uwrapForward p (hprimDoubleSignum fa p)
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a766v2v766v40fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fi p = T.uwrapForward p (hprimDoubleFromInteger fi p)
    
  

instance Real (Double)
  where
  
  gtoRational ptoRational p =
    T.ufun1 a769v5v770v51toRational ptoRational p htoRational
    where
    
    htoRational fx p =
      T.uccase T.mkNoSrcPos p
        (let
          v769v20v769v64v1 (T.R (T.Tuple2 fm fn) _) p =
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
              (T.uwrapForward p
                ((fm
                    *%
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 1))) p))
              (T.uwrapForward p
                (((T.uwrapForward p
                      (((gb T.mkNoSrcPos p)
                          *%
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 1))) p))
                    *^^
                    fn) p))
          v769v20v769v64v1 _ p = T.fatal p in (v769v20v769v64v1))
        (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx)
      where
      
      gb pb p = T.uconstUse pb p sb
      
      sb =
        T.uconstDef p a770v31v770v51b
          (\ p -> T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) fx)
      
    
  

instance Fractional (Double)
  where
  
  (!/) (%/) p =
    T.ufun2 (+^^%=*=^^%=*/) (%/) p (*/)
    where
    
    (*/) fx fy p = T.uwrapForward p (hprimDoubleDiv fx fy p)
    
  
  gfromRational pfromRational p =
    T.ufun1 a774v3v783v11fromRational pfromRational p hfromRational
    where
    
    hfromRational fx p =
      let
        gf pf p = T.ufun1 a775v11v779v48f pf p hf
        af = a775v11v779v48f
        hf fex p =
          let
            gy :: T.RefSrcPos -> T.RefExp -> T.R Double
            sy :: T.R Double
            gy py p = T.uconstUse py p sy
            sy =
              T.uconstDef p a776v22v776v69y
                (\ p ->
                  T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p)
                    (T.uap1 T.mkNoSrcPos p (ground T.mkNoSrcPos p)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx
                        (T.uwrapForward p
                          (((T.uwrapForward p
                                (((T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 1))
                                    *%
                                    (gbd T.mkNoSrcPos p)) p))
                              *^^
                              fex) p)))) fex)
            ge' pe' p = T.uconstUse pe' p se'
            se' =
              T.uconstDef p a777v22v777v44e'
                (\ p ->
                  T.uwrapForward p
                    (hsnd
                      (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p)
                        (gy T.mkNoSrcPos p)) p))
            gbd pbd p = T.uconstUse pbd p sbd
            sbd =
              T.uconstDef p a778v22v778v39bd
                (\ p ->
                  T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p)
                    (gx' T.mkNoSrcPos p)) in
            (T.ucif p
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (ge' T.mkNoSrcPos p)
                fex) (gy T.mkNoSrcPos p)
              (T.uwrapForward p (hf (ge' T.mkNoSrcPos p) p)))
        ge pe p = T.uconstUse pe p se
        se =
          T.uconstDef p a780v11v781v76e
            (\ p ->
              T.uwrapForward p
                (hsnd
                  (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                      (T.uap2 T.mkNoSrcPos p (gasTypeOf T.mkNoSrcPos p)
                        (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                          (T.uwrapForward p (hnumerator fx p)))
                        (gx' T.mkNoSrcPos p))
                      (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                        (T.uwrapForward p (hdenominator fx p))))) p))
        gx' px' p = T.uconstUse px' p sx'
        sx' =
          T.uconstDef p a782v11v782v20x'
            (\ p -> T.uwrapForward p (hf (ge T.mkNoSrcPos p) p)) in
        (gx' T.mkNoSrcPos p)
    
  

instance Floating (Double)
  where
  
  gpi ppi p = T.uconstUse ppi p spi
  
  spi =
    T.uconstDef T.mkRoot a787v5v787v39pi (\ p -> gprimDoublePi T.mkNoSrcPos p)
  
  gexp pexp p =
    T.ufun1 a788v5v788v42exp pexp p hexp
    where
    
    hexp fx p = T.uwrapForward p (hprimDoubleExp fx p)
    
  
  glog plog p =
    T.ufun1 a789v5v789v42log plog p hlog
    where
    
    hlog fx p = T.uwrapForward p (hprimDoubleLog fx p)
    
  
  gsqrt psqrt p =
    T.ufun1 a790v5v790v43sqrt psqrt p hsqrt
    where
    
    hsqrt fx p = T.uwrapForward p (hprimDoubleSqrt fx p)
    
  
  gsin psin p =
    T.ufun1 a791v5v791v42sin psin p hsin
    where
    
    hsin fx p = T.uwrapForward p (hprimDoubleSin fx p)
    
  
  gcos pcos p =
    T.ufun1 a792v5v792v42cos pcos p hcos
    where
    
    hcos fx p = T.uwrapForward p (hprimDoubleCos fx p)
    
  
  gtan ptan p =
    T.ufun1 a793v5v793v42tan ptan p htan
    where
    
    htan fx p = T.uwrapForward p (hprimDoubleTan fx p)
    
  
  gasin pasin p =
    T.ufun1 a794v5v794v43asin pasin p hasin
    where
    
    hasin fx p = T.uwrapForward p (hprimDoubleAsin fx p)
    
  
  gacos pacos p =
    T.ufun1 a795v5v795v43acos pacos p hacos
    where
    
    hacos fx p = T.uwrapForward p (hprimDoubleAcos fx p)
    
  
  gatan patan p =
    T.ufun1 a796v5v796v43atan patan p hatan
    where
    
    hatan fx p = T.uwrapForward p (hprimDoubleAtan fx p)
    
  
  gsinh psinh p =
    T.ufun1 a797v5v797v63sinh psinh p hsinh
    where
    
    hsinh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
        (T.uap1 T.mkNoSrcPos p (gfromRational T.mkNoSrcPos p)
          (T.uwrapForward p
            (((T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))
                *%
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2))) p)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx)))
    
  
  gcosh pcosh p =
    T.ufun1 a798v5v798v63cosh pcosh p hcosh
    where
    
    hcosh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
        (T.uap1 T.mkNoSrcPos p (gfromRational T.mkNoSrcPos p)
          (T.uwrapForward p
            (((T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))
                *%
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2))) p)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
          (T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx)))
    
  
  gtanh ptanh p =
    T.ufun1 a799v5v799v67tanh ptanh p htanh
    where
    
    htanh fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (ga T.mkNoSrcPos p)
          (gb T.mkNoSrcPos p))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (ga T.mkNoSrcPos p)
          (gb T.mkNoSrcPos p))
      where
      
      ga pa p = T.uconstUse pa p sa
      
      sa =
        T.uconstDef p a799v45v799v53a
          (\ p -> T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p) fx)
      
      gb pb p = T.uconstUse pb p sb
      
      sb =
        T.uconstDef p a799v57v799v67b
          (\ p ->
            T.uap1 T.mkNoSrcPos p (gexp T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx))
      
    
  
  gasinh pasinh p =
    T.ufun1 a800v5v800v34asinh pasinh p hasinh
    where
    
    hasinh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos 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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx))))
    
  
  gacosh pacosh p =
    T.ufun1 a801v5v801v47acosh pacosh p hacosh
    where
    
    hacosh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)))
            (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1)))))))
    
  
  gatanh patanh p =
    T.ufun1 a802v5v802v40atanh patanh p hatanh
    where
    
    hatanh fx p =
      T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)))
          (T.uap1 T.mkNoSrcPos p (gsqrt T.mkNoSrcPos 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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx))))
    
  

instance RealFrac (Double)
  where
  
  gproperFraction pproperFraction p =
    T.ufun1 a805v5v811v67properFraction pproperFraction p hproperFraction
    where
    
    hproperFraction fx p =
      T.uccase T.mkNoSrcPos p
        (let
          v806v9v811v67v1 (T.R (T.Tuple2 fm fn) _) p =
            T.ucif p
              (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.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                  (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fm)
                  (T.uwrapForward p
                    (((T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                          (T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p)
                            fx))
                        *^
                        fn) p)))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 0)))
              (T.uccase T.mkNoSrcPos p
                (let
                  v810v25v811v67v1 (T.R (T.Tuple2 fw fr) _) p =
                    T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                      (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fw)
                      (T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p) fr
                        fn)
                  v810v25v811v67v1 _ p = T.fatal p in (v810v25v811v67v1))
                (T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fm
                  (T.uwrapForward p
                    (((T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) fx)
                        *^
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fn))
                      p))))
          v806v9v811v67v1 _ p = T.fatal p in (v806v9v811v67v1))
        (T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx)
    
  

instance RealFloat (Double)
  where
  
  gfloatRadix pfloatRadix p = T.uconstUse pfloatRadix p sfloatRadix
  
  sfloatRadix =
    T.uconstDef T.mkRoot a815v5v815v35floatRadix
      (\ p -> gprimDoubleRadix T.mkNoSrcPos p)
  
  gfloatDigits pfloatDigits p = T.uconstUse pfloatDigits p sfloatDigits
  
  sfloatDigits =
    T.uconstDef T.mkRoot a816v5v816v36floatDigits
      (\ p -> gprimDoubleDigits T.mkNoSrcPos p)
  
  gfloatRange pfloatRange p = T.uconstUse pfloatRange p sfloatRange
  
  sfloatRange =
    T.uconstDef T.mkRoot a817v5v817v35floatRange
      (\ p -> gprimDoubleRange T.mkNoSrcPos p)
  
  gdecodeFloat pdecodeFloat p =
    T.ufun1 a818v5v818v38decodeFloat pdecodeFloat p hdecodeFloat
    where
    
    hdecodeFloat fx p = T.uwrapForward p (hprimDecodeDouble fx p)
    
  
  gencodeFloat pencodeFloat p =
    T.ufun2 a819v5v819v42encodeFloat pencodeFloat p hencodeFloat
    where
    
    hencodeFloat fx fy p = T.uwrapForward p (hprimEncodeDouble fx fy p)
    
  
  gisNaN pisNaN p = T.uconstUse pisNaN p sisNaN
  
  sisNaN =
    T.uconstDef T.mkRoot a821v5v821v36isNaN
      (\ p -> gprimDoubleIsNaN T.mkNoSrcPos p)
  
  gisInfinite pisInfinite p = T.uconstUse pisInfinite p sisInfinite
  
  sisInfinite =
    T.uconstDef T.mkRoot a822v5v822v41isInfinite
      (\ p -> gprimDoubleIsInfinite T.mkNoSrcPos p)
  
  gisDenormalized pisDenormalized p =
    T.uconstUse pisDenormalized p sisDenormalized
  
  sisDenormalized =
    T.uconstDef T.mkRoot a823v5v823v45isDenormalized
      (\ p -> gprimDoubleIsDenormalized T.mkNoSrcPos p)
  
  gisNegativeZero pisNegativeZero p =
    T.uconstUse pisNegativeZero p sisNegativeZero
  
  sisNegativeZero =
    T.uconstDef T.mkRoot a824v5v824v45isNegativeZero
      (\ p -> gprimDoubleIsNegativeZero T.mkNoSrcPos p)
  
  gisIEEE pisIEEE p = T.uconstUse pisIEEE p sisIEEE
  
  sisIEEE =
    T.uconstDef T.mkRoot a825v5v825v37isIEEE
      (\ p -> gprimDoubleIsIEEE T.mkNoSrcPos p)
  

instance Enum (Float)
  where
  
  gsucc psucc p =
    T.ufun1 a836v5v836v27succ psucc p hsucc
    where
    
    hsucc fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gpred ppred p =
    T.ufun1 a837v5v837v27pred ppred p hpred
    where
    
    hpred fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gtoEnum ptoEnum p = T.uconstUse ptoEnum p stoEnum
  
  stoEnum =
    T.uconstDef T.mkRoot a838v5v838v36toEnum
      (\ p -> gfromIntegral T.mkNoSrcPos p)
  
  gfromEnum pfromEnum p = T.uconstUse pfromEnum p sfromEnum
  
  sfromEnum =
    T.uconstDef T.mkRoot a839v5v839v46fromEnum
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gfromInteger T.mkNoSrcPos p)
          (gtruncate T.mkNoSrcPos p))
  
  genumFrom penumFrom p = T.uconstUse penumFrom p senumFrom
  
  senumFrom =
    T.uconstDef T.mkRoot a840v5v840v39enumFrom
      (\ p -> gnumericEnumFrom T.mkNoSrcPos p)
  
  genumFromThen penumFromThen p = T.uconstUse penumFromThen p senumFromThen
  
  senumFromThen =
    T.uconstDef T.mkRoot a841v5v841v43enumFromThen
      (\ p -> gnumericEnumFromThen T.mkNoSrcPos p)
  
  genumFromTo penumFromTo p = T.uconstUse penumFromTo p senumFromTo
  
  senumFromTo =
    T.uconstDef T.mkRoot a842v5v842v41enumFromTo
      (\ p -> gnumericEnumFromTo T.mkNoSrcPos p)
  
  genumFromThenTo penumFromThenTo p =
    T.uconstUse penumFromThenTo p senumFromThenTo
  
  senumFromThenTo =
    T.uconstDef T.mkRoot a843v5v843v45enumFromThenTo
      (\ p -> gnumericEnumFromThenTo T.mkNoSrcPos p)
  

instance Enum (Double)
  where
  
  gsucc psucc p =
    T.ufun1 a847v5v847v27succ psucc p hsucc
    where
    
    hsucc fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gpred ppred p =
    T.ufun1 a848v5v848v27pred ppred p hpred
    where
    
    hpred fx p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  
  gtoEnum ptoEnum p = T.uconstUse ptoEnum p stoEnum
  
  stoEnum =
    T.uconstDef T.mkRoot a849v5v849v36toEnum
      (\ p -> gfromIntegral T.mkNoSrcPos p)
  
  gfromEnum pfromEnum p = T.uconstUse pfromEnum p sfromEnum
  
  sfromEnum =
    T.uconstDef T.mkRoot a850v5v850v46fromEnum
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gfromInteger T.mkNoSrcPos p)
          (gtruncate T.mkNoSrcPos p))
  
  genumFrom penumFrom p = T.uconstUse penumFrom p senumFrom
  
  senumFrom =
    T.uconstDef T.mkRoot a851v5v851v39enumFrom
      (\ p -> gnumericEnumFrom T.mkNoSrcPos p)
  
  genumFromThen penumFromThen p = T.uconstUse penumFromThen p senumFromThen
  
  senumFromThen =
    T.uconstDef T.mkRoot a852v5v852v43enumFromThen
      (\ p -> gnumericEnumFromThen T.mkNoSrcPos p)
  
  genumFromTo penumFromTo p = T.uconstUse penumFromTo p senumFromTo
  
  senumFromTo =
    T.uconstDef T.mkRoot a853v5v853v41enumFromTo
      (\ p -> gnumericEnumFromTo T.mkNoSrcPos p)
  
  genumFromThenTo penumFromThenTo p =
    T.uconstUse penumFromThenTo p senumFromThenTo
  
  senumFromThenTo =
    T.uconstDef T.mkRoot a854v5v854v45enumFromThenTo
      (\ p -> gnumericEnumFromThenTo T.mkNoSrcPos p)
  

gnumericEnumFrom ::
  Fractional a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.List a))

snumericEnumFrom :: Fractional a => T.R (T.Fun a (T.List a))

gnumericEnumFromThen ::
  Fractional a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.List a)))

hnumericEnumFromThen ::
  Fractional a => (T.R a) -> (T.R a) -> T.RefExp -> T.R (T.List a)

gnumericEnumFromTo ::
  (Fractional a,Ord a) =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.List a)))

hnumericEnumFromTo ::
  (Fractional a,Ord a) => (T.R a) -> (T.R a) -> T.RefExp -> T.R (T.List a)

gnumericEnumFromThenTo ::
  (Fractional a,Ord a) =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (T.Fun a (T.List a))))

hnumericEnumFromThenTo ::
  (Fractional a,Ord a) =>
  (T.R a) -> (T.R a) -> (T.R a) -> T.RefExp -> T.R (T.List a)

gnumericEnumFrom pnumericEnumFrom p =
  T.uconstUse pnumericEnumFrom p snumericEnumFrom

snumericEnumFrom =
  T.uconstDef T.mkRoot anumericEnumFrom
    (\ p ->
      T.uap1 T.mkNoSrcPos p (giterate T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))))

gnumericEnumFromThen pnumericEnumFromThen p =
  T.ufun2 anumericEnumFromThen pnumericEnumFromThen p hnumericEnumFromThen

hnumericEnumFromThen fn fm p =
  T.uwrapForward p
    (hiterate
      (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fm fn)) fn p)

gnumericEnumFromTo pnumericEnumFromTo p =
  T.ufun2 anumericEnumFromTo pnumericEnumFromTo p hnumericEnumFromTo

hnumericEnumFromTo fn fm p =
  T.uwrapForward p
    (htakeWhile
      (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !<= p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fm
          (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.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 2)))))
      (T.uap1 T.mkNoSrcPos p (gnumericEnumFrom T.mkNoSrcPos p) fn) p)

gnumericEnumFromThenTo pnumericEnumFromThenTo p =
  T.ufun3 anumericEnumFromThenTo pnumericEnumFromThenTo p hnumericEnumFromThenTo

hnumericEnumFromThenTo fn fn' fm p =
  T.uwrapForward p
    (htakeWhile (gp T.mkNoSrcPos p)
      (T.uwrapForward p (hnumericEnumFromThen fn fn' p)) p)
  where
  
  gp pp p = T.uconstUse pp p sp
  
  sp =
    T.uconstDef p a869v32v870v63p
      (\ p ->
        T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fn' fn)
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !<= p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fm
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn' fn)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)))))
          (T.ucguard (gotherwise T.mkNoSrcPos p)
            (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !>= p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fm
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn' fn)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 2))))) (T.fatal p)))
  

instance Eq a => Eq ((T.List a))
  where
  
  (!==) (%==) p =
    T.ufun2 (+@@!=#!=@@$=##==) (%==) p (*==)
    where
    
    (*==) (T.R T.List _) (T.R T.List _) p = T.con0 T.mkNoSrcPos p True aTrue
    (*==) (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fb)
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fas fbs)) p)
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

instance Ord a => Ord ((T.List a))
  where
  
  gcompare pcompare p =
    T.ufun2 a885v3v892v16compare pcompare p hcompare
    where
    
    hcompare (T.R T.List _) (T.R T.List _) p = T.con0 T.mkNoSrcPos p EQ aEQ
    hcompare (T.R T.List _) (T.R (T.Cons fb fbs) _) p =
      T.con0 T.mkNoSrcPos p LT aLT
    hcompare (T.R (T.Cons fa fas) _) (T.R T.List _) p =
      T.con0 T.mkNoSrcPos p GT aGT
    hcompare (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v889v5v892v16v1 (T.R LT _) p = T.con0 T.mkNoSrcPos p LT aLT
          v889v5v892v16v1 (T.R EQ _) p =
            T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fas fbs
          v889v5v892v16v1 (T.R GT _) p = T.con0 T.mkNoSrcPos p GT aGT
          v889v5v892v16v1 _ p = T.fatal p in (v889v5v892v16v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fb)
    hcompare _ _ p = T.fatal p
    
  

instance Functor (T.List)
  where
  
  gfmap pfmap p = T.uconstUse pfmap p sfmap
  
  sfmap = T.uconstDef T.mkRoot a896v5v896v14fmap (\ p -> gmap T.mkNoSrcPos p)
  

instance Monad (T.List)
  where
  
  (!>>=) (%>>=) p =
    T.ufun2 (+>!!=^=>!!=>>>=) (%>>=) p (*>>=)
    where
    
    (*>>=) fm fk p =
      T.uwrapForward p (hconcat (T.uwrapForward p (hmap fk fm p)) p)
    
  
  greturn preturn p =
    T.ufun1 a901v5v901v26return preturn p hreturn
    where
    
    hreturn fx p = T.fromExpList T.mkNoSrcPos p [fx]
    
  
  gfail pfail p =
    T.ufun1 a902v5v902v25fail pfail p hfail
    where
    
    hfail fs p = T.con0 T.mkNoSrcPos p T.List T.aList
    
  

instance (Eq a,Eq b) => Eq ((T.Tuple2 a b))
  where
  
  (!==) (%==) p =
    T.ufun2 (+>#%=>=>#%=#!==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple2 fa fb) _) (T.R (T.Tuple2 fa' fb') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')) p)
    (*==) _ _ p = T.fatal p
    
  

instance (Ord a,Ord b) => Ord ((T.Tuple2 a b))
  where
  
  gcompare pcompare p =
    T.ufun2 a916v3v920v16compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple2 fa fb) _) (T.R (T.Tuple2 fa' fb') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v917v5v920v16v1 (T.R LT _) p = T.con0 T.mkNoSrcPos p LT aLT
          v917v5v920v16v1 (T.R EQ _) p =
            T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb'
          v917v5v920v16v1 (T.R GT _) p = T.con0 T.mkNoSrcPos p GT aGT
          v917v5v920v16v1 _ p = T.fatal p in (v917v5v920v16v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance (Bounded a,Bounded b) => Bounded ((T.Tuple2 a b))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a923v3v923v33minBound
      (\ p ->
        T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a924v3v924v33maxBound
      (\ p ->
        T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance (Eq a,Eq b,Eq c) => Eq ((T.Tuple3 a b c))
  where
  
  (!==) (%==) p =
    T.ufun2 (+>$@=##=>$@=#$==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple3 fa fb fc) _) (T.R (T.Tuple3 fa' fb' fc') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance (Ord a,Ord b,Ord c) => Ord ((T.Tuple3 a b c))
  where
  
  gcompare pcompare p =
    T.ufun2 a931v3v936v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple3 fa fb fc) _) (T.R (T.Tuple3 fa' fb' fc') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v932v5v936v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v933v15v935v23v1 (T.R EQ _) p =
                  T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc'
                v933v15v935v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v933v15v935v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v932v5v936v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v932v5v936v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance (Bounded a,Bounded b,Bounded c) => Bounded ((T.Tuple3 a b c))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a939v3v939v41minBound
      (\ p ->
        T.con3 T.mkNoSrcPos p T.Tuple3 T.aTuple3 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a940v3v940v41maxBound
      (\ p ->
        T.con3 T.mkNoSrcPos p T.Tuple3 T.aTuple3 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance (Eq a,Eq b,Eq c,Eq d) => Eq ((T.Tuple4 a b c d))
  where
  
  (!==) (%==) p =
    T.ufun2 (+>&&=#%=>&&=#&==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple4 fa fb fc fd) _) (T.R (T.Tuple4 fa' fb' fc' fd') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd'))
                      p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance (Ord a,Ord b,Ord c,Ord d) => Ord ((T.Tuple4 a b c d))
  where
  
  gcompare pcompare p =
    T.ufun2 a947v3v954v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple4 fa fb fc fd) _) (T.R (T.Tuple4 fa' fb' fc' fd') _)
      p =
      T.uccase T.mkNoSrcPos p
        (let
          v948v5v954v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v949v15v953v23v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v950v23v952v31v1 (T.R EQ _) p =
                        T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd fd'
                      v950v23v952v31v1 fx p = T.projection T.mkNoSrcPos p fx in
                      (v950v23v952v31v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v949v15v953v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v949v15v953v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v948v5v954v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v948v5v954v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d) => Bounded ((T.Tuple4 a b c d))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a957v3v957v50minBound
      (\ p ->
        T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a958v3v958v50maxBound
      (\ p ->
        T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance (Eq a,Eq b,Eq c,Eq d,Eq e) => Eq ((T.Tuple5 a b c d e))
  where
  
  (!==) (%==) p =
    T.ufun2 (+>+$=#*=>+$=#+==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple5 fa fb fc fd fe) _)
      (T.R (T.Tuple5 fa' fb' fc' fd' fe') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                fe')) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance (Ord a,Ord b,Ord c,Ord d,Ord e) => Ord ((T.Tuple5 a b c d e))
  where
  
  gcompare pcompare p =
    T.ufun2 a966v3v975v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple5 fa fb fc fd fe) _)
      (T.R (T.Tuple5 fa' fb' fc' fd' fe') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v967v5v975v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v968v15v974v23v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v969v23v973v31v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v970v31v972v39v1 (T.R EQ _) p =
                              T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fe
                                fe'
                            v970v31v972v39v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v970v31v972v39v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v969v23v973v31v1 fx p = T.projection T.mkNoSrcPos p fx in
                      (v969v23v973v31v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v968v15v974v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v968v15v974v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v967v5v975v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v967v5v975v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e) =>
    Bounded ((T.Tuple5 a b c d e))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a979v3v979v59minBound
      (\ p ->
        T.con5 T.mkNoSrcPos p T.Tuple5 T.aTuple5 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a980v3v980v59maxBound
      (\ p ->
        T.con5 T.mkNoSrcPos p T.Tuple5 T.aTuple5 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f) => Eq ((T.Tuple6 a b c d e f))
  where
  
  (!==) (%==) p =
    T.ufun2 (+>@&=#^=>@&=#@==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple6 fa fb fc fd fe ff) _)
      (T.R (T.Tuple6 fa' fb' fc' fd' fe' ff') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
                                      ff ff')) p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f) => Ord ((T.Tuple6 a b c d e f))
  where
  
  gcompare pcompare p =
    T.ufun2 a988v3v999v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple6 fa fb fc fd fe ff) _)
      (T.R (T.Tuple6 fa' fb' fc' fd' fe' ff') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v989v5v999v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v990v15v998v23v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v991v23v997v31v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v992v31v996v39v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v993v39v995v47v1 (T.R EQ _) p =
                                    T.uap2 T.mkNoSrcPos p
                                      (gcompare T.mkNoSrcPos p) ff ff'
                                  v993v39v995v47v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v993v39v995v47v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v992v31v996v39v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v992v31v996v39v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v991v23v997v31v1 fx p = T.projection T.mkNoSrcPos p fx in
                      (v991v23v997v31v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v990v15v998v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v990v15v998v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v989v5v999v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v989v5v999v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f) =>
    Bounded ((T.Tuple6 a b c d e f))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1003v3v1003v68minBound
      (\ p ->
        T.con6 T.mkNoSrcPos p T.Tuple6 T.aTuple6 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1004v3v1004v68maxBound
      (\ p ->
        T.con6 T.mkNoSrcPos p T.Tuple6 T.aTuple6 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g) => Eq ((T.Tuple7 a b c d e f g))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#!!@=#>=#!!@=$!==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple7 fa fb fc fd fe ff fg) _)
      (T.R (T.Tuple7 fa' fb' fc' fd' fe' ff' fg') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) fg fg')) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g) => Ord ((T.Tuple7 a b c d e f g))
  where
  
  gcompare pcompare p =
    T.ufun2 a1013v3v1026v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple7 fa fb fc fd fe ff fg) _)
      (T.R (T.Tuple7 fa' fb' fc' fd' fe' ff' fg') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1014v5v1026v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1015v15v1025v23v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1016v23v1024v31v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1017v31v1023v39v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1018v39v1022v47v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1019v47v1021v55v1 (T.R EQ _) p =
                                          T.uap2 T.mkNoSrcPos p
                                            (gcompare T.mkNoSrcPos p) fg fg'
                                        v1019v47v1021v55v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1019v47v1021v55v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1018v39v1022v47v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1018v39v1022v47v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1017v31v1023v39v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1017v31v1023v39v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1016v23v1024v31v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1016v23v1024v31v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1015v15v1025v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1015v15v1025v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1014v5v1026v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v1014v5v1026v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g) =>
    Bounded ((T.Tuple7 a b c d e f g))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1031v3v1031v77minBound
      (\ p ->
        T.con7 T.mkNoSrcPos p T.Tuple7 T.aTuple7 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1032v3v1032v77maxBound
      (\ p ->
        T.con7 T.mkNoSrcPos p T.Tuple7 T.aTuple7 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h) => Eq ((T.Tuple8 a b c d e f g h))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#!%^=$#=#!%^=$$==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple8 fa fb fc fd fe ff fg fh) _)
      (T.R (T.Tuple8 fa' fb' fc' fd' fe' ff' fg' fh') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fh fh'))
                                              p))) p))) p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h) =>
    Ord ((T.Tuple8 a b c d e f g h))
  where
  
  gcompare pcompare p =
    T.ufun2 a1043v3v1057v15compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple8 fa fb fc fd fe ff fg fh) _)
      (T.R (T.Tuple8 fa' fb' fc' fd' fe' ff' fg' fh') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1044v5v1057v15v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1045v15v1056v23v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1046v23v1055v31v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1047v31v1054v39v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1048v39v1053v47v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1049v47v1052v55v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1050v55v1051v74v1 (T.R EQ _) p =
                                                T.uap2 T.mkNoSrcPos p
                                                  (gcompare T.mkNoSrcPos p) fh
                                                  fh'
                                              v1050v55v1051v74v1 _ p = T.fatal p
                                              in (v1050v55v1051v74v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1049v47v1052v55v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1049v47v1052v55v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1048v39v1053v47v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1048v39v1053v47v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1047v31v1054v39v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1047v31v1054v39v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1046v23v1055v31v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1046v23v1055v31v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1045v15v1056v23v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1045v15v1056v23v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1044v5v1057v15v1 fx p = T.projection T.mkNoSrcPos p fx in
          (v1044v5v1057v15v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h) => Bounded ((T.Tuple8 a b c d e f g h))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1062v3v1063v23minBound
      (\ p ->
        T.con8 T.mkNoSrcPos p T.Tuple8 T.aTuple8 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1064v3v1065v23maxBound
      (\ p ->
        T.con8 T.mkNoSrcPos p T.Tuple8 T.aTuple8 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i) =>
    Eq ((T.Tuple9 a b c d e f g h i))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#!+>=$%=#!+>=$&==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple9 fa fb fc fd fe ff fg fh fi) _)
      (T.R (T.Tuple9 fa' fb' fc' fd' fe' ff' fg' fh' fi') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fi
                                                        fi')) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i) =>
    Ord ((T.Tuple9 a b c d e f g h i))
  where
  
  gcompare pcompare p =
    T.ufun2 a1075v3v1091v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple9 fa fb fc fd fe ff fg fh fi) _)
      (T.R (T.Tuple9 fa' fb' fc' fd' fe' ff' fg' fh' fi') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1076v5v1091v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1077v12v1091v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1078v13v1090v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1079v14v1089v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1080v15v1088v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1081v16v1087v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1082v17v1086v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1083v18v1085v19v1
                                                      (T.R EQ _) p =
                                                      T.uap2 T.mkNoSrcPos p
                                                        (gcompare T.mkNoSrcPos
                                                          p) fi fi'
                                                    v1083v18v1085v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1083v18v1085v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1082v17v1086v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1082v17v1086v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1081v16v1087v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1081v16v1087v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1080v15v1088v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1080v15v1088v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1079v14v1089v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1079v14v1089v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1078v13v1090v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1078v13v1090v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1077v12v1091v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1077v12v1091v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1076v5v1091v13v1 _ p = T.fatal p in (v1076v5v1091v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i) => Bounded ((T.Tuple9 a b c d e f g h i))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1096v3v1097v32minBound
      (\ p ->
        T.con9 T.mkNoSrcPos p T.Tuple9 T.aTuple9 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1098v3v1099v32maxBound
      (\ p ->
        T.con9 T.mkNoSrcPos p T.Tuple9 T.aTuple9 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j) =>
    Eq ((T.Tuple10 a b c d e f g h i j))
  where
  
  (!==) (%==) p =
    T.ufun2 (+##!&=$*=##!&=$+==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple10 fa fb fc fd fe ff fg fh fi fj) _)
      (T.R (T.Tuple10 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uap2 T.mkNoSrcPos
                                                              p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fj fj')) p)))
                                                    p))) p))) p))) p))) p)))
                      p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j) =>
    Ord ((T.Tuple10 a b c d e f g h i j))
  where
  
  gcompare pcompare p =
    T.ufun2 a1110v3v1128v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple10 fa fb fc fd fe ff fg fh fi fj) _)
      (T.R (T.Tuple10 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1111v5v1128v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1112v12v1128v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1113v13v1127v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1114v14v1126v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1115v15v1125v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1116v16v1124v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1117v17v1123v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1118v18v1122v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1119v19v1121v20v1
                                                            (T.R EQ _) p =
                                                            T.uap2 T.mkNoSrcPos
                                                              p
                                                              (gcompare
                                                                T.mkNoSrcPos p)
                                                              fj fj'
                                                          v1119v19v1121v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1119v19v1121v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1118v18v1122v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1118v18v1122v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1117v17v1123v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1117v17v1123v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1116v16v1124v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1116v16v1124v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1115v15v1125v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1115v15v1125v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1114v14v1126v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1114v14v1126v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1113v13v1127v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1113v13v1127v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1112v12v1128v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1112v12v1128v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1111v5v1128v13v1 _ p = T.fatal p in (v1111v5v1128v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j) =>
    Bounded ((T.Tuple10 a b c d e f g h i j))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1133v3v1134v41minBound
      (\ p ->
        T.con10 T.mkNoSrcPos p T.Tuple10 T.aTuple10 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1135v3v1136v41maxBound
      (\ p ->
        T.con10 T.mkNoSrcPos p T.Tuple10 T.aTuple10 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j,Eq k) =>
    Eq ((T.Tuple11 a b c d e f g h i j k))
  where
  
  (!==) (%==) p =
    T.ufun2 (+##&#=$^=##&#=$@==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple11 fa fb fc fd fe ff fg fh fi fj fk) _)
      (T.R (T.Tuple11 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uwrapForward p
                                                              (((T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fj fj')
                                                                  *&&
                                                                  (T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fk
                                                                    fk')) p)))
                                                          p))) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j,Ord k) =>
    Ord ((T.Tuple11 a b c d e f g h i j k))
  where
  
  gcompare pcompare p =
    T.ufun2 a1147v3v1167v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple11 fa fb fc fd fe ff fg fh fi fj fk) _)
      (T.R (T.Tuple11 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1148v5v1167v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1149v12v1167v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1150v13v1166v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1151v14v1165v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1152v15v1164v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1153v16v1163v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1154v17v1162v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1155v18v1161v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1156v19v1160v20v1
                                                            (T.R EQ _) p =
                                                            T.uccase
                                                              T.mkNoSrcPos p
                                                              (let
                                                                v1157v20v1159v21v1
                                                                  (T.R EQ _) p =
                                                                  T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (gcompare
                                                                      T.mkNoSrcPos
                                                                      p) fk fk'
                                                                v1157v20v1159v21v1
                                                                  fx p =
                                                                  T.projection
                                                                    T.mkNoSrcPos
                                                                    p fx in
                                                                (v1157v20v1159v21v1))
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (gcompare
                                                                  T.mkNoSrcPos
                                                                  p) fj fj')
                                                          v1156v19v1160v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1156v19v1160v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1155v18v1161v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1155v18v1161v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1154v17v1162v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1154v17v1162v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1153v16v1163v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1153v16v1163v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1152v15v1164v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1152v15v1164v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1151v14v1165v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1151v14v1165v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1150v13v1166v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1150v13v1166v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1149v12v1167v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1149v12v1167v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1148v5v1167v13v1 _ p = T.fatal p in (v1148v5v1167v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j,Bounded k) =>
    Bounded ((T.Tuple11 a b c d e f g h i j k))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1172v3v1173v50minBound
      (\ p ->
        T.con11 T.mkNoSrcPos p T.Tuple11 T.aTuple11 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1174v3v1175v50maxBound
      (\ p ->
        T.con11 T.mkNoSrcPos p T.Tuple11 T.aTuple11 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j,Eq k,Eq l) =>
    Eq ((T.Tuple12 a b c d e f g h i j k l))
  where
  
  (!==) (%==) p =
    T.ufun2 (+##@!=$>=##@!=%!==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple12 fa fb fc fd fe ff fg fh fi fj fk fl) _)
      (T.R (T.Tuple12 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uwrapForward p
                                                              (((T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fj fj')
                                                                  *&&
                                                                  (T.uwrapForward
                                                                    p
                                                                    (((T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (T.mkNoSrcPos
                                                                            !==
                                                                            p)
                                                                          fk
                                                                          fk')
                                                                        *&&
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (T.mkNoSrcPos
                                                                            !==
                                                                            p)
                                                                          fl
                                                                          fl'))
                                                                      p))) p)))
                                                          p))) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j,Ord k,Ord l) =>
    Ord ((T.Tuple12 a b c d e f g h i j k l))
  where
  
  gcompare pcompare p =
    T.ufun2 a1187v3v1209v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple12 fa fb fc fd fe ff fg fh fi fj fk fl) _)
      (T.R (T.Tuple12 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl') _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1188v5v1209v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1189v12v1209v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1190v13v1208v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1191v14v1207v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1192v15v1206v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1193v16v1205v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1194v17v1204v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1195v18v1203v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1196v19v1202v20v1
                                                            (T.R EQ _) p =
                                                            T.uccase
                                                              T.mkNoSrcPos p
                                                              (let
                                                                v1197v20v1201v21v1
                                                                  (T.R EQ _) p =
                                                                  T.uccase
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (let
                                                                      v1198v21v1200v23v1
                                                                        (T.R EQ
                                                                          _) p =
                                                                        T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (gcompare
                                                                            T.mkNoSrcPos
                                                                            p)
                                                                          fl fl'
                                                                      v1198v21v1200v23v1
                                                                        fx p =
                                                                        T.projection
                                                                          T.mkNoSrcPos
                                                                          p fx
                                                                      in
                                                                      (v1198v21v1200v23v1))
                                                                    (T.uap2
                                                                      T.mkNoSrcPos
                                                                      p
                                                                      (gcompare
                                                                        T.mkNoSrcPos
                                                                        p) fk
                                                                      fk')
                                                                v1197v20v1201v21v1
                                                                  fx p =
                                                                  T.projection
                                                                    T.mkNoSrcPos
                                                                    p fx in
                                                                (v1197v20v1201v21v1))
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (gcompare
                                                                  T.mkNoSrcPos
                                                                  p) fj fj')
                                                          v1196v19v1202v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1196v19v1202v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1195v18v1203v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1195v18v1203v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1194v17v1204v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1194v17v1204v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1193v16v1205v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1193v16v1205v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1192v15v1206v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1192v15v1206v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1191v14v1207v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1191v14v1207v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1190v13v1208v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1190v13v1208v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1189v12v1209v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1189v12v1209v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1188v5v1209v13v1 _ p = T.fatal p in (v1188v5v1209v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j,Bounded k,Bounded l) =>
    Bounded ((T.Tuple12 a b c d e f g h i j k l))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1214v3v1215v59minBound
      (\ p ->
        T.con12 T.mkNoSrcPos p T.Tuple12 T.aTuple12 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1216v3v1217v59maxBound
      (\ p ->
        T.con12 T.mkNoSrcPos p T.Tuple12 T.aTuple12 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j,Eq k,Eq l,Eq m) =>
    Eq ((T.Tuple13 a b c d e f g h i j k l m))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#$$$=%#=#$$$=%$==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple13 fa fb fc fd fe ff fg fh fi fj fk fl fm) _)
      (T.R (T.Tuple13 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm') _)
      p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uwrapForward p
                                                              (((T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fj fj')
                                                                  *&&
                                                                  (T.uwrapForward
                                                                    p
                                                                    (((T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (T.mkNoSrcPos
                                                                            !==
                                                                            p)
                                                                          fk
                                                                          fk')
                                                                        *&&
                                                                        (T.uwrapForward
                                                                          p
                                                                          (((T.uap2
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (T.mkNoSrcPos
                                                                                  !==
                                                                                  p)
                                                                                fl
                                                                                fl')
                                                                              *&&
                                                                              (T.uap2
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (T.mkNoSrcPos
                                                                                  !==
                                                                                  p)
                                                                                fm
                                                                                fm'))
                                                                            p)))
                                                                      p))) p)))
                                                          p))) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j,Ord k,Ord l
      ,Ord m) => Ord ((T.Tuple13 a b c d e f g h i j k l m))
  where
  
  gcompare pcompare p =
    T.ufun2 a1229v3v1254v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple13 fa fb fc fd fe ff fg fh fi fj fk fl fm) _)
      (T.R (T.Tuple13 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm') _)
      p =
      T.uccase T.mkNoSrcPos p
        (let
          v1231v5v1254v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1232v12v1254v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1233v13v1253v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1234v14v1252v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1235v15v1251v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1236v16v1250v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1237v17v1249v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1238v18v1248v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1239v19v1247v20v1
                                                            (T.R EQ _) p =
                                                            T.uccase
                                                              T.mkNoSrcPos p
                                                              (let
                                                                v1240v20v1246v21v1
                                                                  (T.R EQ _) p =
                                                                  T.uccase
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (let
                                                                      v1241v21v1245v22v1
                                                                        (T.R EQ
                                                                          _) p =
                                                                        T.uccase
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (let
                                                                            v1242v22v1244v23v1
                                                                              (T.R
                                                                                EQ
                                                                                _)
                                                                              p =
                                                                              T.uap2
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (gcompare
                                                                                  T.mkNoSrcPos
                                                                                  p)
                                                                                fm
                                                                                fm'
                                                                            v1242v22v1244v23v1
                                                                              fx
                                                                              p =
                                                                              T.projection
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                fx
                                                                            in
                                                                            (v1242v22v1244v23v1))
                                                                          (T.uap2
                                                                            T.mkNoSrcPos
                                                                            p
                                                                            (gcompare
                                                                              T.mkNoSrcPos
                                                                              p)
                                                                            fl
                                                                            fl')
                                                                      v1241v21v1245v22v1
                                                                        fx p =
                                                                        T.projection
                                                                          T.mkNoSrcPos
                                                                          p fx
                                                                      in
                                                                      (v1241v21v1245v22v1))
                                                                    (T.uap2
                                                                      T.mkNoSrcPos
                                                                      p
                                                                      (gcompare
                                                                        T.mkNoSrcPos
                                                                        p) fk
                                                                      fk')
                                                                v1240v20v1246v21v1
                                                                  fx p =
                                                                  T.projection
                                                                    T.mkNoSrcPos
                                                                    p fx in
                                                                (v1240v20v1246v21v1))
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (gcompare
                                                                  T.mkNoSrcPos
                                                                  p) fj fj')
                                                          v1239v19v1247v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1239v19v1247v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1238v18v1248v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1238v18v1248v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1237v17v1249v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1237v17v1249v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1236v16v1250v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1236v16v1250v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1235v15v1251v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1235v15v1251v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1234v14v1252v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1234v14v1252v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1233v13v1253v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1233v13v1253v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1232v12v1254v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1232v12v1254v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1231v5v1254v13v1 _ p = T.fatal p in (v1231v5v1254v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j,Bounded k,Bounded l,Bounded m) =>
    Bounded ((T.Tuple13 a b c d e f g h i j k l m))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1260v3v1261v68minBound
      (\ p ->
        T.con13 T.mkNoSrcPos p T.Tuple13 T.aTuple13 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1262v3v1263v68maxBound
      (\ p ->
        T.con13 T.mkNoSrcPos p T.Tuple13 T.aTuple13 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j,Eq k,Eq l,Eq m,Eq n) =>
    Eq ((T.Tuple14 a b c d e f g h i j k l m n))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#$+@=%%=#$+@=%&==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple14 fa fb fc fd fe ff fg fh fi fj fk fl fm fn) _)
      (T.R (T.Tuple14 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm' fn')
        _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uwrapForward p
                                                              (((T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fj fj')
                                                                  *&&
                                                                  (T.uwrapForward
                                                                    p
                                                                    (((T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (T.mkNoSrcPos
                                                                            !==
                                                                            p)
                                                                          fk
                                                                          fk')
                                                                        *&&
                                                                        (T.uwrapForward
                                                                          p
                                                                          (((T.uap2
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (T.mkNoSrcPos
                                                                                  !==
                                                                                  p)
                                                                                fl
                                                                                fl')
                                                                              *&&
                                                                              (T.uwrapForward
                                                                                p
                                                                                (((T.uap2
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.mkNoSrcPos
                                                                                        !==
                                                                                        p)
                                                                                      fm
                                                                                      fm')
                                                                                    *&&
                                                                                    (T.uap2
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.mkNoSrcPos
                                                                                        !==
                                                                                        p)
                                                                                      fn
                                                                                      fn'))
                                                                                  p)))
                                                                            p)))
                                                                      p))) p)))
                                                          p))) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j,Ord k,Ord l,Ord m
      ,Ord n) => Ord ((T.Tuple14 a b c d e f g h i j k l m n))
  where
  
  gcompare pcompare p =
    T.ufun2 a1277v3v1304v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple14 fa fb fc fd fe ff fg fh fi fj fk fl fm fn) _)
      (T.R (T.Tuple14 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm' fn')
        _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1279v5v1304v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1280v12v1304v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1281v13v1303v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1282v14v1302v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1283v15v1301v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1284v16v1300v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1285v17v1299v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1286v18v1298v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1287v19v1297v20v1
                                                            (T.R EQ _) p =
                                                            T.uccase
                                                              T.mkNoSrcPos p
                                                              (let
                                                                v1288v20v1296v21v1
                                                                  (T.R EQ _) p =
                                                                  T.uccase
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (let
                                                                      v1289v21v1295v22v1
                                                                        (T.R EQ
                                                                          _) p =
                                                                        T.uccase
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (let
                                                                            v1290v22v1294v23v1
                                                                              (T.R
                                                                                EQ
                                                                                _)
                                                                              p =
                                                                              T.uccase
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (let
                                                                                  v1291v23v1293v24v1
                                                                                    (T.R
                                                                                      EQ
                                                                                      _)
                                                                                    p =
                                                                                    T.uap2
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (gcompare
                                                                                        T.mkNoSrcPos
                                                                                        p)
                                                                                      fn
                                                                                      fn'
                                                                                  v1291v23v1293v24v1
                                                                                    fx
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      fx
                                                                                  in
                                                                                  (v1291v23v1293v24v1))
                                                                                (T.uap2
                                                                                  T.mkNoSrcPos
                                                                                  p
                                                                                  (gcompare
                                                                                    T.mkNoSrcPos
                                                                                    p)
                                                                                  fm
                                                                                  fm')
                                                                            v1290v22v1294v23v1
                                                                              fx
                                                                              p =
                                                                              T.projection
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                fx
                                                                            in
                                                                            (v1290v22v1294v23v1))
                                                                          (T.uap2
                                                                            T.mkNoSrcPos
                                                                            p
                                                                            (gcompare
                                                                              T.mkNoSrcPos
                                                                              p)
                                                                            fl
                                                                            fl')
                                                                      v1289v21v1295v22v1
                                                                        fx p =
                                                                        T.projection
                                                                          T.mkNoSrcPos
                                                                          p fx
                                                                      in
                                                                      (v1289v21v1295v22v1))
                                                                    (T.uap2
                                                                      T.mkNoSrcPos
                                                                      p
                                                                      (gcompare
                                                                        T.mkNoSrcPos
                                                                        p) fk
                                                                      fk')
                                                                v1288v20v1296v21v1
                                                                  fx p =
                                                                  T.projection
                                                                    T.mkNoSrcPos
                                                                    p fx in
                                                                (v1288v20v1296v21v1))
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (gcompare
                                                                  T.mkNoSrcPos
                                                                  p) fj fj')
                                                          v1287v19v1297v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1287v19v1297v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1286v18v1298v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1286v18v1298v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1285v17v1299v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1285v17v1299v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1284v16v1300v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1284v16v1300v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1283v15v1301v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1283v15v1301v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1282v14v1302v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1282v14v1302v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1281v13v1303v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1281v13v1303v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1280v12v1304v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1280v12v1304v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1279v5v1304v13v1 _ p = T.fatal p in (v1279v5v1304v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j,Bounded k,Bounded l,Bounded m,Bounded n) =>
    Bounded ((T.Tuple14 a b c d e f g h i j k l m n))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1310v3v1311v77minBound
      (\ p ->
        T.con14 T.mkNoSrcPos p T.Tuple14 T.aTuple14 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1312v3v1313v77maxBound
      (\ p ->
        T.con14 T.mkNoSrcPos p T.Tuple14 T.aTuple14 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p))
  

instance
  (Eq a,Eq b,Eq c,Eq d,Eq e,Eq f,Eq g,Eq h,Eq i,Eq j,Eq k,Eq l,Eq m,Eq n
      ,Eq o) => Eq ((T.Tuple15 a b c d e f g h i j k l m n o))
  where
  
  (!==) (%==) p =
    T.ufun2 (+#%#>=%*=#%#>=%+==) (%==) p (*==)
    where
    
    (*==) (T.R (T.Tuple15 fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo) _)
      (T.R
        (T.Tuple15 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm' fn' fo')
        _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fa fa')
            *&&
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fb fb')
                  *&&
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc fc')
                        *&&
                        (T.uwrapForward p
                          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fd fd')
                              *&&
                              (T.uwrapForward p
                                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fe
                                      fe')
                                    *&&
                                    (T.uwrapForward p
                                      (((T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !== p) ff ff')
                                          *&&
                                          (T.uwrapForward p
                                            (((T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !== p) fg fg')
                                                *&&
                                                (T.uwrapForward p
                                                  (((T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !== p) fh
                                                        fh')
                                                      *&&
                                                      (T.uwrapForward p
                                                        (((T.uap2 T.mkNoSrcPos p
                                                              (T.mkNoSrcPos
                                                                !==
                                                                p) fi fi')
                                                            *&&
                                                            (T.uwrapForward p
                                                              (((T.uap2
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (T.mkNoSrcPos
                                                                      !==
                                                                      p) fj fj')
                                                                  *&&
                                                                  (T.uwrapForward
                                                                    p
                                                                    (((T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (T.mkNoSrcPos
                                                                            !==
                                                                            p)
                                                                          fk
                                                                          fk')
                                                                        *&&
                                                                        (T.uwrapForward
                                                                          p
                                                                          (((T.uap2
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (T.mkNoSrcPos
                                                                                  !==
                                                                                  p)
                                                                                fl
                                                                                fl')
                                                                              *&&
                                                                              (T.uwrapForward
                                                                                p
                                                                                (((T.uap2
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.mkNoSrcPos
                                                                                        !==
                                                                                        p)
                                                                                      fm
                                                                                      fm')
                                                                                    *&&
                                                                                    (T.uwrapForward
                                                                                      p
                                                                                      (((T.uap2
                                                                                            T.mkNoSrcPos
                                                                                            p
                                                                                            (T.mkNoSrcPos
                                                                                              !==
                                                                                              p)
                                                                                            fn
                                                                                            fn')
                                                                                          *&&
                                                                                          (T.uap2
                                                                                            T.mkNoSrcPos
                                                                                            p
                                                                                            (T.mkNoSrcPos
                                                                                              !==
                                                                                              p)
                                                                                            fo
                                                                                            fo'))
                                                                                        p)))
                                                                                  p)))
                                                                            p)))
                                                                      p))) p)))
                                                          p))) p))) p))) p)))
                                  p))) p))) p))) p))) p)
    (*==) _ _ p = T.fatal p
    
  

instance
  (Ord a,Ord b,Ord c,Ord d,Ord e,Ord f,Ord g,Ord h,Ord i,Ord j,Ord k,Ord l,Ord m
      ,Ord n,Ord o) => Ord ((T.Tuple15 a b c d e f g h i j k l m n o))
  where
  
  gcompare pcompare p =
    T.ufun2 a1328v3v1357v13compare pcompare p hcompare
    where
    
    hcompare (T.R (T.Tuple15 fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo) _)
      (T.R
        (T.Tuple15 fa' fb' fc' fd' fe' ff' fg' fh' fi' fj' fk' fl' fm' fn' fo')
        _) p =
      T.uccase T.mkNoSrcPos p
        (let
          v1330v5v1357v13v1 (T.R EQ _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v1331v12v1357v13v1 (T.R EQ _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v1332v13v1356v14v1 (T.R EQ _) p =
                        T.uccase T.mkNoSrcPos p
                          (let
                            v1333v14v1355v15v1 (T.R EQ _) p =
                              T.uccase T.mkNoSrcPos p
                                (let
                                  v1334v15v1354v16v1 (T.R EQ _) p =
                                    T.uccase T.mkNoSrcPos p
                                      (let
                                        v1335v16v1353v17v1 (T.R EQ _) p =
                                          T.uccase T.mkNoSrcPos p
                                            (let
                                              v1336v17v1352v18v1 (T.R EQ _) p =
                                                T.uccase T.mkNoSrcPos p
                                                  (let
                                                    v1337v18v1351v19v1
                                                      (T.R EQ _) p =
                                                      T.uccase T.mkNoSrcPos p
                                                        (let
                                                          v1338v19v1350v20v1
                                                            (T.R EQ _) p =
                                                            T.uccase
                                                              T.mkNoSrcPos p
                                                              (let
                                                                v1339v20v1349v21v1
                                                                  (T.R EQ _) p =
                                                                  T.uccase
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (let
                                                                      v1340v21v1348v22v1
                                                                        (T.R EQ
                                                                          _) p =
                                                                        T.uccase
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (let
                                                                            v1341v22v1347v23v1
                                                                              (T.R
                                                                                EQ
                                                                                _)
                                                                              p =
                                                                              T.uccase
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                (let
                                                                                  v1342v23v1346v24v1
                                                                                    (T.R
                                                                                      EQ
                                                                                      _)
                                                                                    p =
                                                                                    T.uccase
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (let
                                                                                        v1343v24v1345v25v1
                                                                                          (T.R
                                                                                            EQ
                                                                                            _)
                                                                                          p =
                                                                                          T.uap2
                                                                                            T.mkNoSrcPos
                                                                                            p
                                                                                            (gcompare
                                                                                              T.mkNoSrcPos
                                                                                              p)
                                                                                            fo
                                                                                            fo'
                                                                                        v1343v24v1345v25v1
                                                                                          fx
                                                                                          p =
                                                                                          T.projection
                                                                                            T.mkNoSrcPos
                                                                                            p
                                                                                            fx
                                                                                        in
                                                                                        (v1343v24v1345v25v1))
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (gcompare
                                                                                          T.mkNoSrcPos
                                                                                          p)
                                                                                        fn
                                                                                        fn')
                                                                                  v1342v23v1346v24v1
                                                                                    fx
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      fx
                                                                                  in
                                                                                  (v1342v23v1346v24v1))
                                                                                (T.uap2
                                                                                  T.mkNoSrcPos
                                                                                  p
                                                                                  (gcompare
                                                                                    T.mkNoSrcPos
                                                                                    p)
                                                                                  fm
                                                                                  fm')
                                                                            v1341v22v1347v23v1
                                                                              fx
                                                                              p =
                                                                              T.projection
                                                                                T.mkNoSrcPos
                                                                                p
                                                                                fx
                                                                            in
                                                                            (v1341v22v1347v23v1))
                                                                          (T.uap2
                                                                            T.mkNoSrcPos
                                                                            p
                                                                            (gcompare
                                                                              T.mkNoSrcPos
                                                                              p)
                                                                            fl
                                                                            fl')
                                                                      v1340v21v1348v22v1
                                                                        fx p =
                                                                        T.projection
                                                                          T.mkNoSrcPos
                                                                          p fx
                                                                      in
                                                                      (v1340v21v1348v22v1))
                                                                    (T.uap2
                                                                      T.mkNoSrcPos
                                                                      p
                                                                      (gcompare
                                                                        T.mkNoSrcPos
                                                                        p) fk
                                                                      fk')
                                                                v1339v20v1349v21v1
                                                                  fx p =
                                                                  T.projection
                                                                    T.mkNoSrcPos
                                                                    p fx in
                                                                (v1339v20v1349v21v1))
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (gcompare
                                                                  T.mkNoSrcPos
                                                                  p) fj fj')
                                                          v1338v19v1350v20v1 fx
                                                            p =
                                                            T.projection
                                                              T.mkNoSrcPos p fx
                                                          in
                                                          (v1338v19v1350v20v1))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (gcompare T.mkNoSrcPos
                                                            p) fi fi')
                                                    v1337v18v1351v19v1 fx p =
                                                      T.projection T.mkNoSrcPos
                                                        p fx in
                                                    (v1337v18v1351v19v1))
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (gcompare T.mkNoSrcPos p) fh
                                                    fh')
                                              v1336v17v1352v18v1 fx p =
                                                T.projection T.mkNoSrcPos p fx
                                              in (v1336v17v1352v18v1))
                                            (T.uap2 T.mkNoSrcPos p
                                              (gcompare T.mkNoSrcPos p) fg fg')
                                        v1335v16v1353v17v1 fx p =
                                          T.projection T.mkNoSrcPos p fx in
                                        (v1335v16v1353v17v1))
                                      (T.uap2 T.mkNoSrcPos p
                                        (gcompare T.mkNoSrcPos p) ff ff')
                                  v1334v15v1354v16v1 fx p =
                                    T.projection T.mkNoSrcPos p fx in
                                  (v1334v15v1354v16v1))
                                (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p)
                                  fe fe')
                            v1333v14v1355v15v1 fx p =
                              T.projection T.mkNoSrcPos p fx in
                            (v1333v14v1355v15v1))
                          (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fd
                            fd')
                      v1332v13v1356v14v1 fx p = T.projection T.mkNoSrcPos p fx
                      in (v1332v13v1356v14v1))
                    (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fc fc')
                v1331v12v1357v13v1 fx p = T.projection T.mkNoSrcPos p fx in
                (v1331v12v1357v13v1))
              (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fb fb')
          v1330v5v1357v13v1 _ p = T.fatal p in (v1330v5v1357v13v1))
        (T.uap2 T.mkNoSrcPos p (gcompare T.mkNoSrcPos p) fa fa')
    hcompare _ _ p = T.fatal p
    
  

instance
  (Bounded a,Bounded b,Bounded c,Bounded d,Bounded e,Bounded f,Bounded g
      ,Bounded h,Bounded i,Bounded j,Bounded k,Bounded l,Bounded m,Bounded n
      ,Bounded o) => Bounded ((T.Tuple15 a b c d e f g h i j k l m n o))
  where
  
  gminBound pminBound p = T.uconstUse pminBound p sminBound
  
  sminBound =
    T.uconstDef T.mkRoot a1363v3v1365v23minBound
      (\ p ->
        T.con15 T.mkNoSrcPos p T.Tuple15 T.aTuple15 (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p)
          (gminBound T.mkNoSrcPos p) (gminBound T.mkNoSrcPos p))
  
  gmaxBound pmaxBound p = T.uconstUse pmaxBound p smaxBound
  
  smaxBound =
    T.uconstDef T.mkRoot a1366v3v1368v23maxBound
      (\ p ->
        T.con15 T.mkNoSrcPos p T.Tuple15 T.aTuple15 (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p)
          (gmaxBound T.mkNoSrcPos p) (gmaxBound T.mkNoSrcPos p))
  

gfst :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Tuple2 a b) a)

hfst :: (T.R (T.Tuple2 a b)) -> T.RefExp -> T.R a

gfst pfst p = T.ufun1 afst pfst p hfst

hfst (T.R (T.Tuple2 fx fy) _) p = T.projection T.mkNoSrcPos p fx
hfst _ p = T.fatal p

gsnd :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Tuple2 a b) b)

hsnd :: (T.R (T.Tuple2 a b)) -> T.RefExp -> T.R b

gsnd psnd p = T.ufun1 asnd psnd p hsnd

hsnd (T.R (T.Tuple2 fx fy) _) p = T.projection T.mkNoSrcPos p fy
hsnd _ p = T.fatal p

gcurry ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun (T.Tuple2 a b) c) (T.Fun a (T.Fun b c)))

hcurry ::
  (T.R (T.Fun (T.Tuple2 a b) c)) -> (T.R a) -> (T.R b) -> T.RefExp -> T.R c

gcurry pcurry p = T.ufun3 acurry pcurry p hcurry

hcurry ff fx fy p =
  T.uap1 T.mkNoSrcPos p ff (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fx fy)

guncurry ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun b c)) (T.Fun (T.Tuple2 a b) c))

huncurry ::
  (T.R (T.Fun a (T.Fun b c))) -> (T.R (T.Tuple2 a b)) -> T.RefExp -> T.R c

guncurry puncurry p = T.ufun2 auncurry puncurry p huncurry

huncurry ff fp p =
  T.uap2 T.mkNoSrcPos p ff (T.uwrapForward p (hfst fp p))
    (T.uwrapForward p (hsnd fp p))

guntil ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.Fun a a) (T.Fun a a)))

huntil ::
  (T.R (T.Fun a Bool)) -> (T.R (T.Fun a a)) -> (T.R a) -> T.RefExp -> T.R a

guntil puntil p = T.ufun3 auntil puntil p huntil

huntil fp ff fx p =
  T.ucguard (T.uap1 T.mkNoSrcPos p fp fx) (T.projection T.mkNoSrcPos p fx)
    (T.ucguard (gotherwise T.mkNoSrcPos p)
      (T.uwrapForward p (huntil fp ff (T.uap1 T.mkNoSrcPos p ff fx) p))
      (T.fatal p))

gasTypeOf :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a a))

sasTypeOf :: T.R (T.Fun a (T.Fun a a))

gasTypeOf pasTypeOf p = T.uconstUse pasTypeOf p sasTypeOf

sasTypeOf = T.uconstDef T.mkRoot aasTypeOf (\ p -> gconst T.mkNoSrcPos p)

g_foldr ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun b b)) (T.Fun (T.List a) (T.Fun b b)))

h_foldr ::
  (T.R (T.Fun a (T.Fun b b))) ->
    (T.R (T.List a)) -> (T.R b) -> T.RefExp -> T.R b

g_foldr p_foldr p = T.ufun3 a_foldr p_foldr p h_foldr

h_foldr ff (T.R T.List _) fd p = T.projection T.mkNoSrcPos p fd
h_foldr ff (T.R (T.Cons fx fxs) _) fd p =
  T.uap2 T.mkNoSrcPos p ff fx (T.uwrapForward p (h_foldr ff fxs fd p))
h_foldr _ _ _ p = T.fatal p

g_filter ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun Bool
          (T.Fun (T.Fun (T.List a) (T.List a)) (T.Fun (T.List a) (T.List a))))

h_filter ::
  (T.R Bool) ->
    (T.R (T.Fun (T.List a) (T.List a))) ->
      (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

g_filter p_filter p = T.ufun3 a_filter p_filter p h_filter

h_filter fb fe fr p =
  T.ucif p fb (T.uap1 T.mkNoSrcPos p fe fr) (T.projection T.mkNoSrcPos p fr)

gmap ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a b) (T.Fun (T.List a) (T.List b)))

hmap :: (T.R (T.Fun a b)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List b)

gmap pmap p = T.ufun2 amap pmap p hmap

hmap ff (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hmap ff (T.R (T.Cons fx fxs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uap1 T.mkNoSrcPos p ff fx)
    (T.uwrapForward p (hmap ff fxs p))
hmap _ _ p = T.fatal p

(!++) ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.List a) (T.Fun (T.List a) (T.List a)))

(*++) :: (T.R (T.List a)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

(!++) (%++) p = T.ufun2 (+++) (%++) p (*++)

(*++) (T.R T.List _) fys p = T.projection T.mkNoSrcPos p fys
(*++) (T.R (T.Cons fx fxs) _) fys p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (T.uwrapForward p ((fxs *++ fys) p))
(*++) _ _ p = T.fatal p

gfilter ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (T.List a)))

hfilter ::
  (T.R (T.Fun a Bool)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gfilter pfilter p = T.ufun2 afilter pfilter p hfilter

hfilter fp (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hfilter fp (T.R (T.Cons fx fxs) _) p =
  T.ucguard (T.uap1 T.mkNoSrcPos p fp fx)
    (T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
      (T.uwrapForward p (hfilter fp fxs p)))
    (T.ucguard (gotherwise T.mkNoSrcPos p) (T.uwrapForward p (hfilter fp fxs p))
      (T.fatal p))
hfilter _ _ p = T.fatal p

gconcat :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List (T.List a)) (T.List a))

hconcat :: (T.R (T.List (T.List a))) -> T.RefExp -> T.R (T.List a)

gconcat pconcat p = T.ufun1 aconcat pconcat p hconcat

hconcat fxss p =
  T.uwrapForward p
    (hfoldr (T.mkNoSrcPos !++ p) (T.con0 T.mkNoSrcPos p T.List T.aList) fxss p)

ghead :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) a)

hhead :: (T.R (T.List a)) -> T.RefExp -> T.R a

ghead phead p = T.ufun1 ahead phead p hhead

hhead (T.R (T.Cons fx _) _) p = T.projection T.mkNoSrcPos p fx
hhead (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.head: empty list") p)
hhead _ p = T.fatal p

glast :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) a)

hlast :: (T.R (T.List a)) -> T.RefExp -> T.R a

glast plast p = T.ufun1 alast plast p hlast

hlast (T.R (T.Cons fx (T.R T.List _)) _) p = T.projection T.mkNoSrcPos p fx
hlast (T.R (T.Cons _ fxs) _) p = T.uwrapForward p (hlast fxs p)
hlast (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.last: empty list") p)
hlast _ p = T.fatal p

gtail :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))

htail :: (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gtail ptail p = T.ufun1 atail ptail p htail

htail (T.R (T.Cons _ fxs) _) p = T.projection T.mkNoSrcPos p fxs
htail (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.tail: empty list") p)
htail _ p = T.fatal p

ginit :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))

hinit :: (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

ginit pinit p = T.ufun1 ainit pinit p hinit

hinit (T.R (T.Cons fx (T.R T.List _)) _) p =
  T.con0 T.mkNoSrcPos p T.List T.aList
hinit (T.R (T.Cons fx fxs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (T.uwrapForward p (hinit fxs p))
hinit (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.init: empty list") p)
hinit _ p = T.fatal p

gnull :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) Bool)

hnull :: (T.R (T.List a)) -> T.RefExp -> T.R Bool

gnull pnull p = T.ufun1 anull pnull p hnull

hnull (T.R T.List _) p = T.con0 T.mkNoSrcPos p True aTrue
hnull (T.R (T.Cons _ _) _) p = T.con0 T.mkNoSrcPos p False aFalse
hnull _ p = T.fatal p

glength :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) Int)

hlength :: (T.R (T.List a)) -> T.RefExp -> T.R Int

glength plength p = T.ufun1 alength plength p hlength

hlength (T.R T.List _) p =
  T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
    (T.conInteger T.mkNoSrcPos p 0)
hlength (T.R (T.Cons _ fl) _) 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 (hlength fl p))
hlength _ p = T.fatal p

(!!!) :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.Fun Int a))

(*!!) :: (T.R (T.List a)) -> (T.R Int) -> T.RefExp -> T.R a

(!!!) (%!!) p = T.ufun2 (+!!) (%!!) p (*!!)

(*!!) 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
      (herror (T.fromLitString T.mkNoSrcPos p "Prelude.!!: negative index") p))
    ((fxs >#!! fn) p)
(*!!) fxs fn p = (fxs >#!! fn) p

(>#!!) (T.R T.List _) _ p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.!!: index too large") p)
(>#!!) ((^#!!)@(T.R (T.Cons fx _) _)) fv1517v11v1517v11n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv1517v11v1517v11n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h p)
    (((^#!!) >$!! fv1517v11v1517v11n) p)
  where
  
  h p = T.projection T.mkNoSrcPos p fx
  h p = ((^#!!) >$!! fv1517v11v1517v11n) p
  
(>#!!) (^#!!) fv1517v11v1517v11n p = ((^#!!) >$!! fv1517v11v1517v11n) p

(>$!!) (T.R (T.Cons _ fxs) _) fn p =
  T.uwrapForward p
    ((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)
(>$!!) _ _ p = T.fatal p

gfoldl ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun b a)) (T.Fun a (T.Fun (T.List b) a)))

hfoldl ::
  (T.R (T.Fun a (T.Fun b a))) ->
    (T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R a

gfoldl pfoldl p = T.ufun3 afoldl pfoldl p hfoldl

hfoldl ff fz (T.R T.List _) p = T.projection T.mkNoSrcPos p fz
hfoldl ff fz (T.R (T.Cons fx fxs) _) p =
  T.uwrapForward p (hfoldl ff (T.uap2 T.mkNoSrcPos p ff fz fx) fxs p)
hfoldl _ _ _ p = T.fatal p

gfoldl1 ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a a)) (T.Fun (T.List a) a))

hfoldl1 :: (T.R (T.Fun a (T.Fun a a))) -> (T.R (T.List a)) -> T.RefExp -> T.R a

gfoldl1 pfoldl1 p = T.ufun2 afoldl1 pfoldl1 p hfoldl1

hfoldl1 ff (T.R (T.Cons fx fxs) _) p = T.uwrapForward p (hfoldl ff fx fxs p)
hfoldl1 _ (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.foldl1: empty list") p)
hfoldl1 _ _ p = T.fatal p

gscanl ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun (T.Fun a (T.Fun b a)) (T.Fun a (T.Fun (T.List b) (T.List a))))

hscanl ::
  (T.R (T.Fun a (T.Fun b a))) ->
    (T.R a) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.List a)

gscanl pscanl p = T.ufun3 ascanl pscanl p hscanl

hscanl ff fq fxs p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons fq
    (T.uccase T.mkNoSrcPos p
      (let
        v1544v26v1546v54v1 (T.R T.List _) p =
          T.con0 T.mkNoSrcPos p T.List T.aList
        v1544v26v1546v54v1 (T.R (T.Cons fx fxs) _) p =
          T.uwrapForward p (hscanl ff (T.uap2 T.mkNoSrcPos p ff fq fx) fxs p)
        v1544v26v1546v54v1 _ p = T.fatal p in (v1544v26v1546v54v1)) fxs)

gscanl1 ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a a)) (T.Fun (T.List a) (T.List a)))

hscanl1 ::
  (T.R (T.Fun a (T.Fun a a))) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gscanl1 pscanl1 p = T.ufun2 ascanl1 pscanl1 p hscanl1

hscanl1 ff (T.R (T.Cons fx fxs) _) p = T.uwrapForward p (hscanl ff fx fxs p)
hscanl1 _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hscanl1 _ _ p = T.fatal p

gfoldr ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun b b)) (T.Fun b (T.Fun (T.List a) b)))

hfoldr ::
  (T.R (T.Fun a (T.Fun b b))) ->
    (T.R b) -> (T.R (T.List a)) -> T.RefExp -> T.R b

gfoldr pfoldr p = T.ufun3 afoldr pfoldr p hfoldr

hfoldr ff fz (T.R T.List _) p = T.projection T.mkNoSrcPos p fz
hfoldr ff fz (T.R (T.Cons fx fxs) _) p =
  T.uap2 T.mkNoSrcPos p ff fx (T.uwrapForward p (hfoldr ff fz fxs p))
hfoldr _ _ _ p = T.fatal p

gfoldr1 ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a a)) (T.Fun (T.List a) a))

hfoldr1 :: (T.R (T.Fun a (T.Fun a a))) -> (T.R (T.List a)) -> T.RefExp -> T.R a

gfoldr1 pfoldr1 p = T.ufun2 afoldr1 pfoldr1 p hfoldr1

hfoldr1 ff (T.R (T.Cons fx (T.R T.List _)) _) p = T.projection T.mkNoSrcPos p fx
hfoldr1 ff (T.R (T.Cons fx fxs) _) p =
  T.uap2 T.mkNoSrcPos p ff fx (T.uwrapForward p (hfoldr1 ff fxs p))
hfoldr1 _ (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.foldr1: empty list") p)
hfoldr1 _ _ p = T.fatal p

gscanr ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun (T.Fun a (T.Fun b b)) (T.Fun b (T.Fun (T.List a) (T.List b))))

hscanr ::
  (T.R (T.Fun a (T.Fun b b))) ->
    (T.R b) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List b)

gscanr pscanr p = T.ufun3 ascanr pscanr p hscanr

hscanr ff fq0 (T.R T.List _) p = T.fromExpList T.mkNoSrcPos p [fq0]
hscanr ff fq0 (T.R (T.Cons fx fxs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons
    (T.uap2 T.mkNoSrcPos p ff fx (gq T.mkNoSrcPos p)) (gqs T.mkNoSrcPos p)
  where
  
  gqs pqs p = T.uconstUse pqs p sqs
  
  sqs =
    T.uconstDef p a1571v28v1571v29qs
      (\ p -> T.uwrapForward p (hscanr ff fq0 fxs p))
  
  gq pq p = T.uconstUse pq p sq
  
  j1571v32v1571v34q =
    case gqs T.mkNoSrcPos p of T.R (T.Cons fq _) kq -> (kq,fq); _ -> T.fatal p
  
  sq =
    T.uconstDef p a1571v32v1571v32q
      (\ _ -> case j1571v32v1571v34q of (kq,fq) -> fq)
  
hscanr _ _ _ p = T.fatal p

gscanr1 ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.Fun a a)) (T.Fun (T.List a) (T.List a)))

hscanr1 ::
  (T.R (T.Fun a (T.Fun a a))) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gscanr1 pscanr1 p = T.ufun2 ascanr1 pscanr1 p hscanr1

hscanr1 ff (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hscanr1 ff (T.R (T.Cons fx (T.R T.List _)) _) p =
  T.fromExpList T.mkNoSrcPos p [fx]
hscanr1 ff (T.R (T.Cons fx fxs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons
    (T.uap2 T.mkNoSrcPos p ff fx (gq T.mkNoSrcPos p)) (gqs T.mkNoSrcPos p)
  where
  
  gqs pqs p = T.uconstUse pqs p sqs
  
  sqs =
    T.uconstDef p a1578v26v1578v27qs
      (\ p -> T.uwrapForward p (hscanr1 ff fxs p))
  
  gq pq p = T.uconstUse pq p sq
  
  j1578v30v1578v32q =
    case gqs T.mkNoSrcPos p of T.R (T.Cons fq _) kq -> (kq,fq); _ -> T.fatal p
  
  sq =
    T.uconstDef p a1578v30v1578v30q
      (\ _ -> case j1578v30v1578v32q of (kq,fq) -> fq)
  
hscanr1 _ _ p = T.fatal p

giterate ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a a) (T.Fun a (T.List a)))

hiterate :: (T.R (T.Fun a a)) -> (T.R a) -> T.RefExp -> T.R (T.List a)

giterate piterate p = T.ufun2 aiterate piterate p hiterate

hiterate ff fx p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
    (T.uwrapForward p (hiterate ff (T.uap1 T.mkNoSrcPos p ff fx) p))

grepeat :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.List a))

hrepeat :: (T.R a) -> T.RefExp -> T.R (T.List a)

grepeat prepeat p = T.ufun1 arepeat prepeat p hrepeat

hrepeat fx p =
  gxs T.mkNoSrcPos p
  where
  
  gxs pxs p = T.uconstUse pxs p sxs
  
  sxs =
    T.uconstDef p a1589v30v1589v38xs
      (\ p -> T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (gxs T.mkNoSrcPos p))
  

greplicate :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (T.Fun a (T.List a)))

hreplicate :: (T.R Int) -> (T.R a) -> T.RefExp -> T.R (T.List a)

greplicate preplicate p = T.ufun2 areplicate preplicate p hreplicate

hreplicate fn fx p =
  T.uwrapForward p (htake fn (T.uwrapForward p (hrepeat fx p)) p)

gcycle :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))

hcycle :: (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gcycle pcycle p = T.ufun1 acycle pcycle p hcycle

hcycle (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.cycle: empty list") p)
hcycle fxs p =
  gxs' T.mkNoSrcPos p
  where
  
  gxs' pxs' p = T.uconstUse pxs' p sxs'
  
  sxs' =
    T.uconstDef p a1603v31v1603v45xs'
      (\ p -> T.uwrapForward p ((fxs *++ (gxs' T.mkNoSrcPos p)) p))
  

gtake ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (T.Fun (T.List a) (T.List a)))

htake :: (T.R Int) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gtake ptake p = T.ufun2 atake ptake p htake

htake fn (z2take@_) 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.con0 T.mkNoSrcPos p T.List T.aList)
    (y1take fn z2take p)
htake fn z2take p = y1take fn z2take p

y1take _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
y1take fn (T.R (T.Cons fx fxs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
    (T.uwrapForward p
      (htake
        (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))
y1take _ _ p = T.fatal p

gdrop ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (T.Fun (T.List a) (T.List a)))

hdrop :: (T.R Int) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gdrop pdrop p = T.ufun2 adrop pdrop p hdrop

hdrop fn 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.projection T.mkNoSrcPos p fxs)
    (y1drop fn fxs p)
hdrop fn fxs p = y1drop fn fxs p

y1drop _ (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
y1drop fn (T.R (T.Cons _ fxs) _) p =
  T.uwrapForward p
    (hdrop
      (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)
y1drop _ _ p = T.fatal p

gsplitAt ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun Int (T.Fun (T.List a) (T.Tuple2 (T.List a) (T.List a))))

hsplitAt ::
  (T.R Int) ->
    (T.R (T.List a)) -> T.RefExp -> T.R (T.Tuple2 (T.List a) (T.List a))

gsplitAt psplitAt p = T.ufun2 asplitAt psplitAt p hsplitAt

hsplitAt fn fxs p =
  T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.uwrapForward p (htake fn fxs p))
    (T.uwrapForward p (hdrop fn fxs p))

gtakeWhile ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (T.List a)))

htakeWhile ::
  (T.R (T.Fun a Bool)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gtakeWhile ptakeWhile p = T.ufun2 atakeWhile ptakeWhile p htakeWhile

htakeWhile fp (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
htakeWhile fp (T.R (T.Cons fx fxs) _) p =
  T.ucguard (T.uap1 T.mkNoSrcPos p fp fx)
    (T.con2 T.mkNoSrcPos p T.Cons T.aCons fx
      (T.uwrapForward p (htakeWhile fp fxs p)))
    (T.ucguard (gotherwise T.mkNoSrcPos p)
      (T.con0 T.mkNoSrcPos p T.List T.aList) (T.fatal p))
htakeWhile _ _ p = T.fatal p

gdropWhile ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) (T.List a)))

hdropWhile ::
  (T.R (T.Fun a Bool)) -> (T.R (T.List a)) -> T.RefExp -> T.R (T.List a)

gdropWhile pdropWhile p = T.ufun2 adropWhile pdropWhile p hdropWhile

hdropWhile fp (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hdropWhile fp (fxs@(T.R (T.Cons fx fxs') _)) p =
  T.ucguard (T.uap1 T.mkNoSrcPos p fp fx)
    (T.uwrapForward p (hdropWhile fp fxs' p))
    (T.ucguard (gotherwise T.mkNoSrcPos p) (T.projection T.mkNoSrcPos p fxs)
      (T.fatal p))
hdropWhile _ _ p = T.fatal p

gspan,gbreak ::
  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))))

hspan ::
  (T.R (T.Fun a Bool)) ->
    (T.R (T.List a)) -> T.RefExp -> T.R (T.Tuple2 (T.List a) (T.List a))

hbreak ::
  (T.R (T.Fun a Bool)) ->
    T.RefExp -> T.R (T.Fun (T.List a) (T.Tuple2 (T.List a) (T.List a)))

gspan pspan p = T.ufun2 aspan pspan p hspan

hspan fp (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)
hspan fp (fxs@(T.R (T.Cons fx fxs') _)) p =
  T.ucguard (T.uap1 T.mkNoSrcPos p fp fx)
    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
      (T.con2 T.mkNoSrcPos p T.Cons T.aCons fx (gys T.mkNoSrcPos p))
      (gzs T.mkNoSrcPos p))
    (T.ucguard (gotherwise T.mkNoSrcPos p)
      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.con0 T.mkNoSrcPos p T.List T.aList) fxs) (T.fatal p))
  where
  
  gys pys p = T.uconstUse pys p sys
  
  gzs pys p = T.uconstUse pys p szs
  
  j1651v34v1651v40ys =
    case T.uwrapForward p (hspan fp fxs' p) of
      T.R (T.Tuple2 fys fzs) kys -> (kys,fys,fzs)
      _ -> T.fatal p
  
  sys =
    T.uconstDef p a1651v35v1651v36ys
      (\ _ -> case j1651v34v1651v40ys of (kys,fys,fzs) -> fys)
  
  szs =
    T.uconstDef p a1651v38v1651v39zs
      (\ _ -> case j1651v34v1651v40ys of (kys,fys,fzs) -> fzs)
  
hspan _ _ p = T.fatal p

gbreak pbreak p = T.ufun1 abreak pbreak p hbreak

hbreak fp p =
  T.uap1 T.mkNoSrcPos p (gspan T.mkNoSrcPos p)
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gnot T.mkNoSrcPos p) fp)

glines :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (T.List String))

hlines :: (T.R String) -> T.RefExp -> T.R (T.List String)

glines plines p = T.ufun1 alines plines p hlines

hlines (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hlines fs p =
  let
    gl pl p = T.uconstUse pl p sl
    gs' pl p = T.uconstUse pl p ss'
    j1665v25v1665v31l =
      case
        T.uap2 T.mkNoSrcPos p (gbreak T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !== p)
            (T.conChar T.mkNoSrcPos p '\n')) fs of
        T.R (T.Tuple2 fl fs') kl -> (kl,fl,fs')
        _ -> T.fatal p
    sl =
      T.uconstDef p a1665v26v1665v26l
        (\ _ -> case j1665v25v1665v31l of (kl,fl,fs') -> fl)
    ss' =
      T.uconstDef p a1665v29v1665v30s'
        (\ _ -> case j1665v25v1665v31l of (kl,fl,fs') -> fs') in
    (T.con2 T.mkNoSrcPos p T.Cons T.aCons (gl T.mkNoSrcPos p)
      (T.uccase T.mkNoSrcPos p
        (let
          v1666v31v1668v52v1 (T.R T.List _) p =
            T.con0 T.mkNoSrcPos p T.List T.aList
          v1666v31v1668v52v1 (T.R (T.Cons _ fs'') _) p =
            T.uwrapForward p (hlines fs'' p)
          v1666v31v1668v52v1 _ p = T.fatal p in (v1666v31v1668v52v1))
        (gs' T.mkNoSrcPos p)))

gwords :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (T.List String))

hwords :: (T.R String) -> T.RefExp -> T.R (T.List String)

gwords pwords p = T.ufun1 awords pwords p hwords

hwords fs p =
  T.uccase T.mkNoSrcPos p
    (let
      v1672v21v1675v61v1 (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
      v1672v21v1675v61v1 fs' p =
        T.con2 T.mkNoSrcPos p T.Cons T.aCons (gw T.mkNoSrcPos p)
          (T.uwrapForward p (hwords (gs'' T.mkNoSrcPos p) p))
        where
        
        gw pw p = T.uconstUse pw p sw
        
        gs'' pw p = T.uconstUse pw p ss''
        
        j1675v35v1675v42w =
          case
            T.uap2 T.mkNoSrcPos p (gbreak T.mkNoSrcPos p)
              (gisSpace T.mkNoSrcPos p) fs' of
            T.R (T.Tuple2 fw fs'') kw -> (kw,fw,fs'')
            _ -> T.fatal p
        
        sw =
          T.uconstDef p a1675v36v1675v36w
            (\ _ -> case j1675v35v1675v42w of (kw,fw,fs'') -> fw)
        
        ss'' =
          T.uconstDef p a1675v39v1675v41s''
            (\ _ -> case j1675v35v1675v42w of (kw,fw,fs'') -> fs'')
         in (v1672v21v1675v61v1))
    (T.uwrapForward p (hdropWhile (gisSpace T.mkNoSrcPos p) fs p))

gunlines :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List String) String)

sunlines :: T.R (T.Fun (T.List String) String)

gunlines punlines p = T.uconstUse punlines p sunlines

sunlines =
  T.uconstDef T.mkRoot aunlines
    (\ p ->
      T.uwrapForward p
        (hconcatMap
          (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !++ p)
            (T.fromLitString T.mkNoSrcPos p "\n")) p))

gunwords :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List String) String)

hunwords :: (T.R (T.List String)) -> T.RefExp -> T.R String

gunwords punwords p = T.ufun1 aunwords punwords p hunwords

hunwords (T.R T.List _) p = T.fromLitString T.mkNoSrcPos p ""
hunwords fws p =
  T.uwrapForward p
    (hfoldr1
      (T.ufun2 T.mkLambda T.mkNoSrcPos p
        (\ fw fs p ->
          T.uwrapForward p
            ((fw
                *++
                (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                  (T.conChar T.mkNoSrcPos p ' ') fs)) p))) fws p)

greverse :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) (T.List a))

sreverse :: T.R (T.Fun (T.List a) (T.List a))

greverse preverse p = T.uconstUse preverse p sreverse

sreverse =
  T.uconstDef T.mkRoot areverse
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldl T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gflip T.mkNoSrcPos p)
          (T.pa0 T.Cons T.cn2 T.mkNoSrcPos p T.aCons))
        (T.con0 T.mkNoSrcPos p T.List T.aList))

gand,gor :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List Bool) Bool)

sand,sor :: T.R (T.Fun (T.List Bool) Bool)

gand pand p = T.uconstUse pand p sand

sand =
  T.uconstDef T.mkRoot aand
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p) (T.mkNoSrcPos !&& p)
        (T.con0 T.mkNoSrcPos p True aTrue))

gor por p = T.uconstUse por p sor

sor =
  T.uconstDef T.mkRoot aor
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p) (T.mkNoSrcPos !|| p)
        (T.con0 T.mkNoSrcPos p False aFalse))

gany,gall ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun a Bool) (T.Fun (T.List a) Bool))

hany :: (T.R (T.Fun a Bool)) -> T.RefExp -> T.R (T.Fun (T.List a) Bool)

hall :: (T.R (T.Fun a Bool)) -> T.RefExp -> T.R (T.Fun (T.List a) Bool)

gany pany p = T.ufun1 aany pany p hany

hany fp p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gor T.mkNoSrcPos p)
    (T.uap1 T.mkNoSrcPos p (gmap T.mkNoSrcPos p) fp)

gall pall p = T.ufun1 aall pall p hall

hall fp p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gand T.mkNoSrcPos p)
    (T.uap1 T.mkNoSrcPos p (gmap T.mkNoSrcPos p) fp)

gelem,gnotElem ::
  Eq a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun (T.List a) Bool))

helem :: Eq a => (T.R a) -> T.RefExp -> T.R (T.Fun (T.List a) Bool)

hnotElem :: Eq a => (T.R a) -> T.RefExp -> T.R (T.Fun (T.List a) Bool)

gelem pelem p = T.ufun1 aelem pelem p helem

helem fx p =
  T.uwrapForward p
    (hany (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !== p) fx)
      p)

gnotElem pnotElem p = T.ufun1 anotElem pnotElem p hnotElem

hnotElem fx p =
  T.uwrapForward p
    (hall (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !/= p) fx)
      p)

glookup ::
  Eq a =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun a (T.Fun (T.List (T.Tuple2 a b)) (Maybe b)))

hlookup ::
  Eq a => (T.R a) -> (T.R (T.List (T.Tuple2 a b))) -> T.RefExp -> T.R (Maybe b)

glookup plookup p = T.ufun2 alookup plookup p hlookup

hlookup fkey (T.R T.List _) p = T.con0 T.mkNoSrcPos p Nothing aNothing
hlookup fkey (T.R (T.Cons (T.R (T.Tuple2 fx fy) _) fxys) _) p =
  T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fkey fx)
    (T.con1 T.mkNoSrcPos p Just aJust fy)
    (T.ucguard (gotherwise T.mkNoSrcPos p)
      (T.uwrapForward p (hlookup fkey fxys p)) (T.fatal p))
hlookup _ _ p = T.fatal p

gsum,gproduct :: Num a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) a)

ssum,sproduct :: Num a => T.R (T.Fun (T.List a) a)

gsum psum p = T.uconstUse psum p ssum

ssum =
  T.uconstDef T.mkRoot asum
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldl T.mkNoSrcPos p) (T.mkNoSrcPos !+ p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)))

gproduct pproduct p = T.uconstUse pproduct p sproduct

sproduct =
  T.uconstDef T.mkRoot aproduct
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldl T.mkNoSrcPos p) (T.mkNoSrcPos !* p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1)))

gmaximum,gminimum ::
  Ord a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) a)

hmaximum :: Ord a => (T.R (T.List a)) -> T.RefExp -> T.R a

hminimum :: Ord a => (T.R (T.List a)) -> T.RefExp -> T.R a

gmaximum pmaximum p = T.ufun1 amaximum pmaximum p hmaximum

hmaximum (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.maximum: empty list") p)
hmaximum fxs p = T.uwrapForward p (hfoldl1 (gmax T.mkNoSrcPos p) fxs p)

gminimum pminimum p = T.ufun1 aminimum pminimum p hminimum

hminimum (T.R T.List _) p =
  T.uwrapForward p
    (herror (T.fromLitString T.mkNoSrcPos p "Prelude.minimum: empty list") p)
hminimum fxs p = T.uwrapForward p (hfoldl1 (gmin T.mkNoSrcPos p) fxs p)

gconcatMap ::
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a (T.List b)) (T.Fun (T.List a) (T.List b)))

hconcatMap ::
  (T.R (T.Fun a (T.List b))) -> T.RefExp -> T.R (T.Fun (T.List a) (T.List b))

gconcatMap pconcatMap p = T.ufun1 aconcatMap pconcatMap p hconcatMap

hconcatMap ff p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gconcat T.mkNoSrcPos p)
    (T.uap1 T.mkNoSrcPos p (gmap T.mkNoSrcPos p) ff)

gzip ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun (T.List a) (T.Fun (T.List b) (T.List (T.Tuple2 a b))))

szip :: T.R (T.Fun (T.List a) (T.Fun (T.List b) (T.List (T.Tuple2 a b))))

gzip pzip p = T.uconstUse pzip p szip

szip =
  T.uconstDef T.mkRoot azip
    (\ p ->
      T.uap1 T.mkNoSrcPos p (gzipWith T.mkNoSrcPos p)
        (T.pa0 T.Tuple2 T.cn2 T.mkNoSrcPos p T.aTuple2))

gzip3 ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun (T.List a)
          (T.Fun (T.List b) (T.Fun (T.List c) (T.List (T.Tuple3 a b c)))))

szip3 ::
  T.R
    (T.Fun (T.List a)
      (T.Fun (T.List b) (T.Fun (T.List c) (T.List (T.Tuple3 a b c)))))

gzip3 pzip3 p = T.uconstUse pzip3 p szip3

szip3 =
  T.uconstDef T.mkRoot azip3
    (\ p ->
      T.uap1 T.mkNoSrcPos p (gzipWith3 T.mkNoSrcPos p)
        (T.pa0 T.Tuple3 T.cn3 T.mkNoSrcPos p T.aTuple3))

gzipWith ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun (T.Fun a (T.Fun b c))
          (T.Fun (T.List a) (T.Fun (T.List b) (T.List c))))

hzipWith ::
  (T.R (T.Fun a (T.Fun b c))) ->
    (T.R (T.List a)) -> (T.R (T.List b)) -> T.RefExp -> T.R (T.List c)

gzipWith pzipWith p = T.ufun3 azipWith pzipWith p hzipWith

hzipWith fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uap2 T.mkNoSrcPos p fz fa fb)
    (T.uwrapForward p (hzipWith fz fas fbs p))
hzipWith _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList

gzipWith3 ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun (T.Fun a (T.Fun b (T.Fun c d)))
          (T.Fun (T.List a) (T.Fun (T.List b) (T.Fun (T.List c) (T.List d)))))

hzipWith3 ::
  (T.R (T.Fun a (T.Fun b (T.Fun c d)))) ->
    (T.R (T.List a)) ->
      (T.R (T.List b)) -> (T.R (T.List c)) -> T.RefExp -> T.R (T.List d)

gzipWith3 pzipWith3 p = T.ufun4 azipWith3 pzipWith3 p hzipWith3

hzipWith3 fz (T.R (T.Cons fa fas) _) (T.R (T.Cons fb fbs) _)
  (T.R (T.Cons fc fcs) _) p =
  T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.uap3 T.mkNoSrcPos p fz fa fb fc)
    (T.uwrapForward p (hzipWith3 fz fas fbs fcs p))
hzipWith3 _ _ _ _ p = T.con0 T.mkNoSrcPos p T.List T.aList

gunzip ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun (T.List (T.Tuple2 a b)) (T.Tuple2 (T.List a) (T.List b)))

sunzip :: T.R (T.Fun (T.List (T.Tuple2 a b)) (T.Tuple2 (T.List a) (T.List b)))

gunzip punzip p = T.uconstUse punzip p sunzip

sunzip =
  T.uconstDef T.mkRoot aunzip
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
        (T.ufun2 T.mkLambda T.mkNoSrcPos p
          (\ v1776v28v1776v57v1 v1776v28v1776v57v2 p ->
            case (v1776v28v1776v57v1,v1776v28v1776v57v2) of
              (T.R (T.Tuple2 fa fb) _,T.R ~(T.Tuple2 fas fbs) _) ->
                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) in
                  (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                    (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.fatal 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)))

gunzip3 ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun (T.List (T.Tuple3 a b c))
          (T.Tuple3 (T.List a) (T.List b) (T.List c)))

sunzip3 ::
  T.R
    (T.Fun (T.List (T.Tuple3 a b c))
      (T.Tuple3 (T.List a) (T.List b) (T.List c)))

gunzip3 punzip3 p = T.uconstUse punzip3 p sunzip3

sunzip3 =
  T.uconstDef T.mkRoot aunzip3
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gfoldr T.mkNoSrcPos p)
        (T.ufun2 T.mkLambda T.mkNoSrcPos p
          (\ v1780v28v1780v67v1 v1780v28v1780v67v2 p ->
            case (v1780v28v1780v67v1,v1780v28v1780v67v2) of
              (T.R (T.Tuple3 fa fb fc) _,T.R ~(T.Tuple3 fas fbs fcs) _) ->
                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) in
                  (T.con3 T.mkNoSrcPos p T.Tuple3 T.aTuple3
                    (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.fatal p))
        (T.con3 T.mkNoSrcPos p T.Tuple3 T.aTuple3
          (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)))

type ReadS a = T.Fun String (T.List (T.Tuple2 a String))

type ReadS___1 a = String

type ReadS___2 a = T.List (T.Tuple2 a String)

type ShowS = T.Fun String String

type ShowS___1 = String

type ShowS___2 = String

class Read a
  where
  
  greadsPrec :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (ReadS a))
  
  greadList :: T.RefSrcPos -> T.RefExp -> T.R (ReadS (T.List a))
  
  greadList preadList p = T.uconstUse preadList p sreadList
  
  sreadList =
    T.uconstDef T.mkRoot a1807v5v1812v35readList
      (\ p ->
        let
          greadl preadl p = T.ufun1 a1809v30v1809v34readl preadl p hreadl
          areadl = a1809v30v1809v34readl
          hreadl fs p =
            T.uwrapForward p
              (((T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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
                                    (T.R (T.Cons (T.R ']' _) (T.R T.List _)) _)
                                    ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                      (T.con0 T.mkNoSrcPos p T.List T.aList)
                                      ft)) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlex fs p)))
                    (T.fromExpList T.mkNoSrcPos p []))
                  *++
                  (T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.uap2 T.mkNoSrcPos p
                                    (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 fxs fu) _)
                                              p =
                                              T.uap1 T.mkNoSrcPos p
                                                (T.pa1 T.Cons T.cn1 T.mkNoSrcPos
                                                  p T.aCons
                                                  (T.con2 T.mkNoSrcPos p
                                                    T.Tuple2 T.aTuple2
                                                    (T.con2 T.mkNoSrcPos p
                                                      T.Cons T.aCons fx fxs)
                                                    fu)) f_y
                                            v0v0v0v0v1 _ p =
                                              T.projection T.mkNoSrcPos p f_y in
                                            (v0v0v0v0v1)) f_x))
                                    (T.uwrapForward p (hreadl' ft p))) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p) fs))
                    (T.fromExpList T.mkNoSrcPos p []))) p)
          greadl' preadl' p = T.ufun1 a1812v30v1812v35readl' preadl' p hreadl'
          areadl' = a1812v30v1812v35readl'
          hreadl' fs p =
            T.uwrapForward p
              (((T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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
                                    (T.R (T.Cons (T.R ']' _) (T.R T.List _)) _)
                                    ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                      (T.con0 T.mkNoSrcPos p T.List T.aList)
                                      ft)) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlex fs p)))
                    (T.fromExpList T.mkNoSrcPos p []))
                  *++
                  (T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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
                                    (T.R (T.Cons (T.R ',' _) (T.R T.List _)) _)
                                    ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.uap2 T.mkNoSrcPos p
                                    (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 fu) _)
                                              p =
                                              T.uap1 T.mkNoSrcPos p
                                                (T.uap2 T.mkNoSrcPos p
                                                  (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 fxs fv)
                                                              _) p =
                                                            T.uap1 T.mkNoSrcPos
                                                              p
                                                              (T.pa1 T.Cons
                                                                T.cn1
                                                                T.mkNoSrcPos p
                                                                T.aCons
                                                                (T.con2
                                                                  T.mkNoSrcPos p
                                                                  T.Tuple2
                                                                  T.aTuple2
                                                                  (T.con2
                                                                    T.mkNoSrcPos
                                                                    p T.Cons
                                                                    T.aCons fx
                                                                    fxs) fv))
                                                              f_y
                                                          v0v0v0v0v1 _ p =
                                                            T.projection
                                                              T.mkNoSrcPos p f_y
                                                          in (v0v0v0v0v1)) f_x))
                                                  (T.uwrapForward p
                                                    (hreadl' fu p))) f_y
                                            v0v0v0v0v1 _ p =
                                              T.projection T.mkNoSrcPos p f_y in
                                            (v0v0v0v0v1)) f_x))
                                    (T.uap1 T.mkNoSrcPos p
                                      (greads T.mkNoSrcPos p) ft)) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlex fs p)))
                    (T.fromExpList T.mkNoSrcPos p []))) p) in
          (T.uwrapForward p
            (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
              (T.ufun1 T.mkLambda T.mkNoSrcPos p
                (\ fr p ->
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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
                                    (T.R (T.Cons (T.R '[' _) (T.R T.List _)) _)
                                    fs) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.uap2 T.mkNoSrcPos p
                                    (g_foldr T.mkNoSrcPos p)
                                    (T.ufun2 T.mkLambda T.mkNoSrcPos p
                                      (\ f_x f_y p ->
                                        T.uccase T.mkNoSrcPos p
                                          (let
                                            v0v0v0v0v1 fpr p =
                                              T.uap1 T.mkNoSrcPos p
                                                (T.pa1 T.Cons T.cn1 T.mkNoSrcPos
                                                  p T.aCons fpr) f_y
                                            v0v0v0v0v1 _ p =
                                              T.projection T.mkNoSrcPos p f_y in
                                            (v0v0v0v0v1)) f_x))
                                    (T.uwrapForward p (hreadl fs p))) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlex fr p)))
                    (T.fromExpList T.mkNoSrcPos p []))) p)))
  
  sreadsPrec :: T.R (T.Fun Int (ReadS a))
  
  sreadList :: T.R (ReadS (T.List a))
  

class Show a
  where
  
  gshowsPrec :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int (T.Fun a ShowS))
  
  gshow :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun a String)
  
  gshowList :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.List a) ShowS)
  
  gshowsPrec pshowsPrec p =
    T.ufun3 a1825v5v1825v35showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec _ fx fs p =
      T.uwrapForward p
        (((T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p) fx) *++ fs) p)
    
  
  gshow pshow p =
    T.ufun1 a1827v5v1827v36show pshow p hshow
    where
    
    hshow fx p =
      T.uap3 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)) fx
        (T.fromLitString T.mkNoSrcPos p "")
    
  
  gshowList pshowList p =
    T.ufun1 a1829v5v1833v53showList pshowList p hshowList
    where
    
    hshowList (T.R T.List _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "[]")
    hshowList (T.R (T.Cons fx fxs) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '['))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uwrapForward p (hshowl fxs p)))
      where
      
      gshowl pshowl p = T.ufun1 a1831v31v1833v53showl pshowl p hshowl
      
      ashowl = a1831v31v1833v53showl
      
      hshowl (T.R T.List _) p =
        T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p ']')
      hshowl (T.R (T.Cons fx fxs) _) p =
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
            (T.conChar T.mkNoSrcPos p ','))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
            (T.uwrapForward p (hshowl fxs p)))
      hshowl _ p = T.fatal p
      
    hshowList _ p = T.fatal p
    
  
  sshowsPrec :: T.R (T.Fun Int (T.Fun a ShowS))
  
  sshow :: T.R (T.Fun a String)
  
  sshowList :: T.R (T.Fun (T.List a) ShowS)
  

greads :: Read a => T.RefSrcPos -> T.RefExp -> T.R (ReadS a)

sreads :: Read a => T.R (ReadS a)

greads preads p = T.uconstUse preads p sreads

sreads =
  T.uconstDef T.mkRoot areads
    (\ p ->
      T.uap1 T.mkNoSrcPos p (greadsPrec T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)))

gshows :: Show a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a ShowS)

sshows :: Show a => T.R (T.Fun a ShowS)

gshows pshows p = T.uconstUse pshows p sshows

sshows =
  T.uconstDef T.mkRoot ashows
    (\ p ->
      T.uap1 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)))

gread :: Read a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun String a)

hread :: Read a => (T.R String) -> T.RefExp -> T.R a

gread pread p = T.ufun1 aread pread p hread

hread fs p =
  T.uccase T.mkNoSrcPos p
    (let
      v1844v21v1847v69v1 (T.R (T.Cons fx (T.R T.List _)) _) p =
        T.projection T.mkNoSrcPos p fx
      v1844v21v1847v69v1 (T.R T.List _) p =
        T.uwrapForward p
          (herror (T.fromLitString T.mkNoSrcPos p "Prelude.read: no parse") p)
      v1844v21v1847v69v1 _ p =
        T.uwrapForward p
          (herror
            (T.fromLitString T.mkNoSrcPos p "Prelude.read: ambiguous parse") p)
      in (v1844v21v1847v69v1))
    (T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 (T.R T.List _) (T.R T.List _)) _)
                                p =
                                T.uap1 T.mkNoSrcPos p
                                  (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))
                      (T.uwrapForward p (hlex ft p))) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p) fs))
      (T.fromExpList T.mkNoSrcPos p []))

gshowChar :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Char ShowS)

sshowChar :: T.R (T.Fun Char ShowS)

gshowChar pshowChar p = T.uconstUse pshowChar p sshowChar

sshowChar =
  T.uconstDef T.mkRoot ashowChar
    (\ p -> T.pa0 T.Cons T.cn2 T.mkNoSrcPos p T.aCons)

gshowString :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String ShowS)

sshowString :: T.R (T.Fun String ShowS)

gshowString pshowString p = T.uconstUse pshowString p sshowString

sshowString = T.uconstDef T.mkRoot ashowString (\ p -> (T.mkNoSrcPos !++ p))

gshowParen :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Bool (T.Fun ShowS ShowS))

hshowParen :: (T.R Bool) -> (T.R ShowS) -> T.RefExp -> T.R ShowS

gshowParen pshowParen p = T.ufun2 ashowParen pshowParen p hshowParen

hshowParen fb fp p =
  T.ucif p fb
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
      (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
        (T.conChar T.mkNoSrcPos p '('))
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) fp
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p ')')))) (T.projection T.mkNoSrcPos p fp)

greadParen ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun Bool (T.Fun (ReadS a) (ReadS a)))

hreadParen :: (T.R Bool) -> (T.R (ReadS a)) -> T.RefExp -> T.R (ReadS a)

greadParen preadParen p = T.ufun2 areadParen preadParen p hreadParen

hreadParen fb fg p =
  T.ucif p fb (gmandatory T.mkNoSrcPos p) (goptional T.mkNoSrcPos p)
  where
  
  goptional poptional p = T.ufun1 a1864v27v1864v58optional poptional p hoptional
  
  aoptional = a1864v27v1864v58optional
  
  hoptional fr p =
    T.uwrapForward p
      (((T.uap1 T.mkNoSrcPos p fg fr) *++ (T.uwrapForward p (hmandatory fr p)))
        p)
  
  gmandatory pmandatory p =
    T.ufun1 a1865v27v1865v35mandatory pmandatory p hmandatory
  
  amandatory = a1865v27v1865v35mandatory
  
  hmandatory fr p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs)
                    _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.uap2 T.mkNoSrcPos p
                                    (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
                                                  (T.R
                                                    (T.Cons (T.R ')' _)
                                                      (T.R T.List _)) _) fu) _)
                                              p =
                                              T.uap1 T.mkNoSrcPos p
                                                (T.pa1 T.Cons T.cn1 T.mkNoSrcPos
                                                  p T.aCons
                                                  (T.con2 T.mkNoSrcPos p
                                                    T.Tuple2 T.aTuple2 fx fu))
                                                f_y
                                            v0v0v0v0v1 _ p =
                                              T.projection T.mkNoSrcPos p f_y in
                                            (v0v0v0v0v1)) f_x))
                                    (T.uwrapForward p (hlex ft p))) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hoptional fs p))) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
      (T.fromExpList T.mkNoSrcPos p [])
  

glex :: T.RefSrcPos -> T.RefExp -> T.R (ReadS String)

hlex :: (T.R (ReadS___1 String)) -> T.RefExp -> T.R (ReadS___2 String)

glex plex p = T.ufun1 alex plex p hlex

hlex (T.R T.List _) p =
  T.fromExpList T.mkNoSrcPos p
    [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.fromLitString T.mkNoSrcPos p "") (T.fromLitString T.mkNoSrcPos p "")]
hlex (z1lex@(T.R (T.Cons fc fs) _)) p =
  T.ucguard (T.uwrapForward p (hisSpace fc p))
    (T.uwrapForward p
      (hlex (T.uwrapForward p (hdropWhile (gisSpace T.mkNoSrcPos p) fs p)) p))
    (y1lex z1lex p)
hlex z1lex p = y1lex z1lex p

y1lex (T.R (T.Cons (T.R '\'' _) fs) _) p =
  T.uap1 T.mkNoSrcPos p
    (T.uap2 T.mkNoSrcPos p (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 fch (T.R (T.Cons (T.R '\'' _) ft) _)) _)
                p =
                T.uap1 T.mkNoSrcPos p
                  (T.uap2 T.mkNoSrcPos p (g_filter T.mkNoSrcPos p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p) fch
                      (T.fromLitString T.mkNoSrcPos p "'"))
                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                        (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                          (T.conChar T.mkNoSrcPos p '\'')
                          (T.uwrapForward p
                            ((fch *++ (T.fromLitString T.mkNoSrcPos p "'")) p)))
                        ft))) f_y
              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
            f_x)) (T.uwrapForward p (hlexLitChar fs p)))
    (T.fromExpList T.mkNoSrcPos p [])
y1lex (T.R (T.Cons (T.R '"' _) fs) _) p =
  T.uap1 T.mkNoSrcPos p
    (T.uap2 T.mkNoSrcPos p (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 fstr ft) _) p =
                T.uap1 T.mkNoSrcPos p
                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                      (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                        (T.conChar T.mkNoSrcPos p '"') fstr) ft)) f_y
              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
            f_x)) (T.uwrapForward p (hlexString fs p)))
    (T.fromExpList T.mkNoSrcPos p [])
  where
  
  glexString plexString p =
    T.ufun1 a1884v21v1885v29lexString plexString p hlexString
  
  alexString = a1884v21v1885v29lexString
  
  hlexString (T.R (T.Cons (T.R '"' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.fromLitString T.mkNoSrcPos p "\"") fs]
  hlexString fs p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fch ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 fstr fu) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                      (T.uwrapForward p ((fch *++ fstr) p)) fu))
                                  f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlexString ft p))) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlexStrItem fs p)))
      (T.fromExpList T.mkNoSrcPos p [])
  
  glexStrItem plexStrItem p =
    T.ufun1 a1889v21v1894v58lexStrItem plexStrItem p hlexStrItem
  
  alexStrItem = a1889v21v1894v58lexStrItem
  
  hlexStrItem (T.R (T.Cons (T.R '\\' _) (T.R (T.Cons (T.R '&' _) fs) _)) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.fromLitString T.mkNoSrcPos p "\\&") fs]
  hlexStrItem
    (z1lexStrItem@(T.R (T.Cons (T.R '\\' _) (T.R (T.Cons fc fs) _)) _)) p =
    T.ucguard (T.uwrapForward p (hisSpace fc p))
      (T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (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 (T.R '\\' _) ft) _) p =
                    T.uap1 T.mkNoSrcPos p
                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                          (T.fromLitString T.mkNoSrcPos p "\\&") ft)) f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.fromExpList T.mkNoSrcPos p
            [T.uwrapForward p (hdropWhile (gisSpace T.mkNoSrcPos p) fs p)]))
        (T.fromExpList T.mkNoSrcPos p [])) (y1lexStrItem z1lexStrItem p)
  hlexStrItem z1lexStrItem p = y1lexStrItem z1lexStrItem p
  
  y1lexStrItem fs p = T.uwrapForward p (hlexLitChar fs p)
  
y1lex (T.R (T.Cons fc fs) _) p =
  T.ucguard (T.uwrapForward p (hisSingle fc p))
    (T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.fromExpList T.mkNoSrcPos p [fc]) fs])
    (T.ucguard (T.uwrapForward p (hisSym fc p))
      (T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (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 fsym ft) _) p =
                    T.uap1 T.mkNoSrcPos p
                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                          (T.con2 T.mkNoSrcPos p T.Cons T.aCons fc fsym) ft))
                      f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.fromExpList T.mkNoSrcPos p
            [T.uwrapForward p (hspan (gisSym T.mkNoSrcPos p) fs p)]))
        (T.fromExpList T.mkNoSrcPos p []))
      (T.ucguard (T.uwrapForward p (hisAlpha fc p))
        (T.uap1 T.mkNoSrcPos p
          (T.uap2 T.mkNoSrcPos p (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 fnam ft) _) p =
                      T.uap1 T.mkNoSrcPos p
                        (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                          (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                            (T.con2 T.mkNoSrcPos p T.Cons T.aCons fc fnam) ft))
                        f_y
                    v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                    (v0v0v0v0v1)) f_x))
            (T.fromExpList T.mkNoSrcPos p
              [T.uwrapForward p (hspan (gisIdChar T.mkNoSrcPos p) fs p)]))
          (T.fromExpList T.mkNoSrcPos p []))
        (T.ucguard (T.uwrapForward p (hisDigit fc p))
          (T.uap1 T.mkNoSrcPos p
            (T.uap2 T.mkNoSrcPos p (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 fds fs) _) p =
                        T.uap1 T.mkNoSrcPos p
                          (T.uap2 T.mkNoSrcPos p (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 ffe ft) _) p =
                                      T.uap1 T.mkNoSrcPos p
                                        (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                          T.aCons
                                          (T.con2 T.mkNoSrcPos p T.Tuple2
                                            T.aTuple2
                                            (T.con2 T.mkNoSrcPos p T.Cons
                                              T.aCons fc
                                              (T.uwrapForward p
                                                ((fds *++ ffe) p))) ft)) f_y
                                    v0v0v0v0v1 _ p =
                                      T.projection T.mkNoSrcPos p f_y in
                                    (v0v0v0v0v1)) f_x))
                            (T.uwrapForward p (hlexFracExp fs p))) f_y
                      v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                      (v0v0v0v0v1)) f_x))
              (T.fromExpList T.mkNoSrcPos p
                [T.uwrapForward p (hspan (gisDigit T.mkNoSrcPos p) fs p)]))
            (T.fromExpList T.mkNoSrcPos p []))
          (T.ucguard (gotherwise T.mkNoSrcPos p)
            (T.con0 T.mkNoSrcPos p T.List T.aList) (T.fatal p)))))
  where
  
  gisSingle pisSingle p = T.ufun1 a1903v15v1903v49isSingle pisSingle p hisSingle
  
  aisSingle = a1903v15v1903v49isSingle
  
  hisSingle fc p =
    T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fc
      (T.fromLitString T.mkNoSrcPos p ",;()[]{}_`")
  
  gisSym pisSym p = T.ufun1 a1904v15v1904v60isSym pisSym p hisSym
  
  aisSym = a1904v15v1904v60isSym
  
  hisSym fc p =
    T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fc
      (T.fromLitString T.mkNoSrcPos p "!@#$%&*+./<=>?\\^|:-~")
  
  gisIdChar pisIdChar p = T.ufun1 a1905v15v1905v57isIdChar pisIdChar p hisIdChar
  
  aisIdChar = a1905v15v1905v57isIdChar
  
  hisIdChar fc p =
    T.uwrapForward p
      (((T.uwrapForward p (hisAlphaNum fc p))
          *||
          (T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fc
            (T.fromLitString T.mkNoSrcPos p "_'"))) p)
  
  glexFracExp plexFracExp p =
    T.ufun1 a1907v15v1910v38lexFracExp plexFracExp p hlexFracExp
  
  alexFracExp = a1907v15v1910v38lexFracExp
  
  hlexFracExp
    (z1lexFracExp@(T.R (T.Cons (T.R '.' _) (T.R (T.Cons fc fcs) _)) _)) p =
    T.ucguard (T.uwrapForward p (hisDigit fc p))
      (T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (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 fds ft) _) p =
                    T.uap1 T.mkNoSrcPos p
                      (T.uap2 T.mkNoSrcPos p (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 fe fu) _) p =
                                  T.uap1 T.mkNoSrcPos p
                                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                        (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                                          (T.conChar T.mkNoSrcPos p '.')
                                          (T.uwrapForward p ((fds *++ fe) p)))
                                        fu)) f_y
                                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                                in (v0v0v0v0v1)) f_x))
                        (T.uwrapForward p (hlexExp ft p))) f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.uap1 T.mkNoSrcPos p (glexDigits T.mkNoSrcPos p)
            (T.con2 T.mkNoSrcPos p T.Cons T.aCons fc fcs)))
        (T.fromExpList T.mkNoSrcPos p [])) (y1lexFracExp z1lexFracExp p)
  hlexFracExp z1lexFracExp p = y1lexFracExp z1lexFracExp p
  
  y1lexFracExp fs p = T.uwrapForward p (hlexExp fs p)
  
  glexExp plexExp p = T.ufun1 a1912v15v1916v33lexExp plexExp p hlexExp
  
  alexExp = a1912v15v1916v33lexExp
  
  hlexExp (z1lexExp@(T.R (T.Cons fe fs) _)) p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fe
        (T.fromLitString T.mkNoSrcPos p "eE"))
      (T.uwrapForward p
        (((T.uap1 T.mkNoSrcPos p
              (T.uap2 T.mkNoSrcPos p (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 fc ft) _) p =
                          T.uap1 T.mkNoSrcPos p
                            (T.uap2 T.mkNoSrcPos p (g_filter T.mkNoSrcPos p)
                              (T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fc
                                (T.fromLitString T.mkNoSrcPos p "+-"))
                              (T.uap2 T.mkNoSrcPos p (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 fds fu) _) p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                              T.aCons
                                              (T.con2 T.mkNoSrcPos p T.Tuple2
                                                T.aTuple2
                                                (T.con2 T.mkNoSrcPos p T.Cons
                                                  T.aCons fe
                                                  (T.con2 T.mkNoSrcPos p T.Cons
                                                    T.aCons fc fds)) fu)) f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p
                                  (glexDigits T.mkNoSrcPos p) ft))) f_y
                        v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                        (v0v0v0v0v1)) f_x)) (T.fromExpList T.mkNoSrcPos p [fs]))
              (T.fromExpList T.mkNoSrcPos p []))
            *++
            (T.uap1 T.mkNoSrcPos p
              (T.uap2 T.mkNoSrcPos p (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 fds ft) _) p =
                          T.uap1 T.mkNoSrcPos p
                            (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                              (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                (T.con2 T.mkNoSrcPos p T.Cons T.aCons fe fds)
                                ft)) f_y
                        v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                        (v0v0v0v0v1)) f_x))
                (T.uap1 T.mkNoSrcPos p (glexDigits T.mkNoSrcPos p) fs))
              (T.fromExpList T.mkNoSrcPos p []))) p)) (y1lexExp z1lexExp p)
  hlexExp z1lexExp p = y1lexExp z1lexExp p
  
  y1lexExp fs p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.fromLitString T.mkNoSrcPos p "") fs]
  
y1lex _ p = T.fatal p

instance Show (Int)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun1 a1920v5v1920v41showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fn p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowsPrec T.mkNoSrcPos p) fn)
        (gtoInteger T.mkNoSrcPos p)
    
  

instance Read (Int)
  where
  
  greadsPrec preadsPrec p =
    T.ufun2 a1926v3v1926v11readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp fr p =
      T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (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 fi ft) _) p =
                    T.uap1 T.mkNoSrcPos p
                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                          (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                            fi) ft)) f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.uap2 T.mkNoSrcPos p (greadsPrec T.mkNoSrcPos p) fp fr))
        (T.fromExpList T.mkNoSrcPos p [])
    
  

instance Show (Integer)
  where
  
  gshowsPrec pshowsPrec p = T.uconstUse pshowsPrec p sshowsPrec
  
  sshowsPrec =
    T.uconstDef T.mkRoot a1932v5v1932v44showsPrec
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gshowSigned T.mkNoSrcPos p)
          (gshowInt T.mkNoSrcPos p))
  

instance Read (Integer)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1936v5v1936v44readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p = T.uwrapForward p (hreadSigned (greadDec T.mkNoSrcPos p) p)
    
  

instance Show (Float)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun1 a1940v5v1940v35showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp p = gshowFloat T.mkNoSrcPos p
    
  

instance Read (Float)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1944v5v1944v46readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p (hreadSigned (greadFloat T.mkNoSrcPos p) p)
    
  

instance Show (Double)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun1 a1948v5v1948v35showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp p = gshowFloat T.mkNoSrcPos p
    
  

instance Read (Double)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1952v5v1952v46readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p (hreadSigned (greadFloat T.mkNoSrcPos p) p)
    
  

instance Show (T.Tuple0)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a1956v5v1956v37showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R T.Tuple0 _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "()")
    hshowsPrec _ _ p = T.fatal p
    
  

instance Read (T.Tuple0)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1960v5v1961v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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
                                              (T.R
                                                (T.Cons (T.R ')' _)
                                                  (T.R T.List _)) _) ft) _) p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                              T.aCons
                                              (T.con2 T.mkNoSrcPos p T.Tuple2
                                                T.aTuple2
                                                (T.con0 T.mkNoSrcPos p T.Tuple0
                                                  T.aTuple0) ft)) f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uwrapForward p (hlex fs p))) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance Show (Char)
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a1965v5v1966v68showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R '\'' _) p =
      T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "'\\''")
    hshowsPrec fp fc p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '\''))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uwrapForward p (hshowLitChar fc p))
          (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
            (T.conChar T.mkNoSrcPos p '\'')))
    
  
  gshowList pshowList p =
    T.ufun1 a1968v5v1971v64showList pshowList p hshowList
    where
    
    hshowList fcs p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '"')) (T.uwrapForward p (hshowl fcs p))
      where
      
      gshowl pshowl p = T.ufun1 a1969v24v1971v64showl pshowl p hshowl
      
      ashowl = a1969v24v1971v64showl
      
      hshowl (T.R T.List _) p =
        T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '"')
      hshowl (T.R (T.Cons (T.R '"' _) fcs) _) p =
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
            (T.fromLitString T.mkNoSrcPos p "\\\""))
          (T.uwrapForward p (hshowl fcs p))
      hshowl (T.R (T.Cons fc fcs) _) p =
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uwrapForward p (hshowLitChar fc p))
          (T.uwrapForward p (hshowl fcs p))
      hshowl _ p = T.fatal p
      
    
  

instance Read (Char)
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1975v5v1976v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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 (T.R (T.Cons (T.R '\'' _) fs) _) ft)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fc
                                              (T.R
                                                (T.Cons (T.R '\'' _)
                                                  (T.R T.List _)) _)) _) p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                              T.aCons
                                              (T.con2 T.mkNoSrcPos p T.Tuple2
                                                T.aTuple2 fc ft)) f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uwrapForward p (hreadLitChar fs p))) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  
  greadList preadList p = T.uconstUse preadList p sreadList
  
  sreadList =
    T.uconstDef T.mkRoot a1979v5v1983v19readList
      (\ p ->
        let
          greadl preadl p = T.ufun1 a1981v15v1983v19readl preadl p hreadl
          areadl = a1981v15v1983v19readl
          hreadl (T.R (T.Cons (T.R '"' _) fs) _) p =
            T.fromExpList T.mkNoSrcPos p
              [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                  (T.fromLitString T.mkNoSrcPos p "") fs]
          hreadl (T.R (T.Cons (T.R '\\' _) (T.R (T.Cons (T.R '&' _) fs) _)) _)
            p =
            T.uwrapForward p (hreadl fs p)
          hreadl fs p =
            T.uap1 T.mkNoSrcPos p
              (T.uap2 T.mkNoSrcPos p (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 fc ft) _) p =
                          T.uap1 T.mkNoSrcPos p
                            (T.uap2 T.mkNoSrcPos p (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 fcs fu) _) p =
                                        T.uap1 T.mkNoSrcPos p
                                          (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                            T.aCons
                                            (T.con2 T.mkNoSrcPos p T.Tuple2
                                              T.aTuple2
                                              (T.con2 T.mkNoSrcPos p T.Cons
                                                T.aCons fc fcs) fu)) f_y
                                      v0v0v0v0v1 _ p =
                                        T.projection T.mkNoSrcPos p f_y in
                                      (v0v0v0v0v1)) f_x))
                              (T.uwrapForward p (hreadl ft p))) f_y
                        v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                        (v0v0v0v0v1)) f_x))
                (T.uwrapForward p (hreadLitChar fs p)))
              (T.fromExpList T.mkNoSrcPos p []) in
          (T.uwrapForward p
            (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
              (T.ufun1 T.mkLambda T.mkNoSrcPos p
                (\ fr p ->
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 (T.R (T.Cons (T.R '"' _) fs) _) ft)
                                  _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.uap2 T.mkNoSrcPos p
                                    (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 fl _) _)
                                              p =
                                              T.uap1 T.mkNoSrcPos p
                                                (T.pa1 T.Cons T.cn1 T.mkNoSrcPos
                                                  p T.aCons
                                                  (T.con2 T.mkNoSrcPos p
                                                    T.Tuple2 T.aTuple2 fl ft))
                                                f_y
                                            v0v0v0v0v1 _ p =
                                              T.projection T.mkNoSrcPos p f_y in
                                            (v0v0v0v0v1)) f_x))
                                    (T.uwrapForward p (hreadl fs p))) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlex fr p)))
                    (T.fromExpList T.mkNoSrcPos p []))) p)))
  

instance Show a => Show ((T.List a))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun1 a1988v5v1988v31showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp p = gshowList T.mkNoSrcPos p
    
  

instance Read a => Read ((T.List a))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a1992v5v1992v31readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p = greadList T.mkNoSrcPos p
    
  

instance (Show a,Show b) => Show ((T.Tuple2 a b))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a1998v5v1999v61showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple2 fx fy) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
              (T.conChar T.mkNoSrcPos p ','))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
                (T.conChar T.mkNoSrcPos p ')')))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance (Read a,Read b) => Read ((T.Tuple2 a b))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2003v5v2004v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fu) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fy fv)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ')'
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fw)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.pa1
                                                                                        T.Cons
                                                                                        T.cn1
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        T.aCons
                                                                                        (T.con2
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          T.Tuple2
                                                                                          T.aTuple2
                                                                                          (T.con2
                                                                                            T.mkNoSrcPos
                                                                                            p
                                                                                            T.Tuple2
                                                                                            T.aTuple2
                                                                                            fx
                                                                                            fy)
                                                                                          fw))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fv
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fu)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex ft p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance (Read a,Read b,Read c) => Read ((T.Tuple3 a b c))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2012v5v2013v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ')'
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fw)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.pa1
                                                                                                                    T.Cons
                                                                                                                    T.cn1
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    T.aCons
                                                                                                                    (T.con2
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      T.Tuple2
                                                                                                                      T.aTuple2
                                                                                                                      (T.con3
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p
                                                                                                                        T.Tuple3
                                                                                                                        T.aTuple3
                                                                                                                        fx1
                                                                                                                        fx2
                                                                                                                        fx3)
                                                                                                                      fw))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance (Read a,Read b,Read c,Read d) => Read ((T.Tuple4 a b c d))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2023v5v2024v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ')'
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fw)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.pa1
                                                                                                                                                T.Cons
                                                                                                                                                T.cn1
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                T.aCons
                                                                                                                                                (T.con2
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  T.Tuple2
                                                                                                                                                  T.aTuple2
                                                                                                                                                  (T.con4
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p
                                                                                                                                                    T.Tuple4
                                                                                                                                                    T.aTuple4
                                                                                                                                                    fx1
                                                                                                                                                    fx2
                                                                                                                                                    fx3
                                                                                                                                                    fx4)
                                                                                                                                                  fw))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance (Read a,Read b,Read c,Read d,Read e) => Read ((T.Tuple5 a b c d e))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2036v5v2037v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ')'
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fw)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.pa1
                                                                                                                                                                            T.Cons
                                                                                                                                                                            T.cn1
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            T.aCons
                                                                                                                                                                            (T.con2
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              T.Tuple2
                                                                                                                                                                              T.aTuple2
                                                                                                                                                                              (T.con5
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p
                                                                                                                                                                                T.Tuple5
                                                                                                                                                                                T.aTuple5
                                                                                                                                                                                fx1
                                                                                                                                                                                fx2
                                                                                                                                                                                fx3
                                                                                                                                                                                fx4
                                                                                                                                                                                fx5)
                                                                                                                                                                              fw))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f) => Read ((T.Tuple6 a b c d e f))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2052v5v2053v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ')'
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fw)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.pa1
                                                                                                                                                                                                        T.Cons
                                                                                                                                                                                                        T.cn1
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        T.aCons
                                                                                                                                                                                                        (T.con2
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          T.Tuple2
                                                                                                                                                                                                          T.aTuple2
                                                                                                                                                                                                          (T.con6
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p
                                                                                                                                                                                                            T.Tuple6
                                                                                                                                                                                                            T.aTuple6
                                                                                                                                                                                                            fx1
                                                                                                                                                                                                            fx2
                                                                                                                                                                                                            fx3
                                                                                                                                                                                                            fx4
                                                                                                                                                                                                            fx5
                                                                                                                                                                                                            fx6)
                                                                                                                                                                                                          fw))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g) =>
    Read ((T.Tuple7 a b c d e f g))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2070v5v2071v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ')'
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fw)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.pa1
                                                                                                                                                                                                                                    T.Cons
                                                                                                                                                                                                                                    T.cn1
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    T.aCons
                                                                                                                                                                                                                                    (T.con2
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      T.Tuple2
                                                                                                                                                                                                                                      T.aTuple2
                                                                                                                                                                                                                                      (T.con7
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                        T.Tuple7
                                                                                                                                                                                                                                        T.aTuple7
                                                                                                                                                                                                                                        fx1
                                                                                                                                                                                                                                        fx2
                                                                                                                                                                                                                                        fx3
                                                                                                                                                                                                                                        fx4
                                                                                                                                                                                                                                        fx5
                                                                                                                                                                                                                                        fx6
                                                                                                                                                                                                                                        fx7)
                                                                                                                                                                                                                                      fw))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h) =>
    Read ((T.Tuple8 a b c d e f g h))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2091v5v2092v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ')'
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fw)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.pa1
                                                                                                                                                                                                                                                                T.Cons
                                                                                                                                                                                                                                                                T.cn1
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                T.aCons
                                                                                                                                                                                                                                                                (T.con2
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  T.Tuple2
                                                                                                                                                                                                                                                                  T.aTuple2
                                                                                                                                                                                                                                                                  (T.con8
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                    T.Tuple8
                                                                                                                                                                                                                                                                    T.aTuple8
                                                                                                                                                                                                                                                                    fx1
                                                                                                                                                                                                                                                                    fx2
                                                                                                                                                                                                                                                                    fx3
                                                                                                                                                                                                                                                                    fx4
                                                                                                                                                                                                                                                                    fx5
                                                                                                                                                                                                                                                                    fx6
                                                                                                                                                                                                                                                                    fx7
                                                                                                                                                                                                                                                                    fx8)
                                                                                                                                                                                                                                                                  fw))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i) =>
    Read ((T.Tuple9 a b c d e f g h i))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2114v5v2115v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ')'
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fw)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.pa1
                                                                                                                                                                                                                                                                                            T.Cons
                                                                                                                                                                                                                                                                                            T.cn1
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            T.aCons
                                                                                                                                                                                                                                                                                            (T.con2
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              T.Tuple2
                                                                                                                                                                                                                                                                                              T.aTuple2
                                                                                                                                                                                                                                                                                              (T.con9
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                T.Tuple9
                                                                                                                                                                                                                                                                                                T.aTuple9
                                                                                                                                                                                                                                                                                                fx1
                                                                                                                                                                                                                                                                                                fx2
                                                                                                                                                                                                                                                                                                fx3
                                                                                                                                                                                                                                                                                                fx4
                                                                                                                                                                                                                                                                                                fx5
                                                                                                                                                                                                                                                                                                fx6
                                                                                                                                                                                                                                                                                                fx7
                                                                                                                                                                                                                                                                                                fx8
                                                                                                                                                                                                                                                                                                fx9)
                                                                                                                                                                                                                                                                                              fw))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j) =>
    Read ((T.Tuple10 a b c d e f g h i j))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2139v5v2140v30readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ')'
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fw)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.pa1
                                                                                                                                                                                                                                                                                                                        T.Cons
                                                                                                                                                                                                                                                                                                                        T.cn1
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        T.aCons
                                                                                                                                                                                                                                                                                                                        (T.con2
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          T.Tuple2
                                                                                                                                                                                                                                                                                                                          T.aTuple2
                                                                                                                                                                                                                                                                                                                          (T.con10
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                            T.Tuple10
                                                                                                                                                                                                                                                                                                                            T.aTuple10
                                                                                                                                                                                                                                                                                                                            fx1
                                                                                                                                                                                                                                                                                                                            fx2
                                                                                                                                                                                                                                                                                                                            fx3
                                                                                                                                                                                                                                                                                                                            fx4
                                                                                                                                                                                                                                                                                                                            fx5
                                                                                                                                                                                                                                                                                                                            fx6
                                                                                                                                                                                                                                                                                                                            fx7
                                                                                                                                                                                                                                                                                                                            fx8
                                                                                                                                                                                                                                                                                                                            fx9
                                                                                                                                                                                                                                                                                                                            fx10)
                                                                                                                                                                                                                                                                                                                          fw))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j
      ,Read k) => Read ((T.Tuple11 a b c d e f g h i j k))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2166v5v2167v22readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fs11)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                      fx11
                                                                                                                                                                                                                                                                                                                                      fr11)
                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          ')'
                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                    fw)
                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  (T.pa1
                                                                                                                                                                                                                                                                                                                                                    T.Cons
                                                                                                                                                                                                                                                                                                                                                    T.cn1
                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                    T.aCons
                                                                                                                                                                                                                                                                                                                                                    (T.con2
                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                      T.Tuple2
                                                                                                                                                                                                                                                                                                                                                      T.aTuple2
                                                                                                                                                                                                                                                                                                                                                      (T.con11
                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                        T.Tuple11
                                                                                                                                                                                                                                                                                                                                                        T.aTuple11
                                                                                                                                                                                                                                                                                                                                                        fx1
                                                                                                                                                                                                                                                                                                                                                        fx2
                                                                                                                                                                                                                                                                                                                                                        fx3
                                                                                                                                                                                                                                                                                                                                                        fx4
                                                                                                                                                                                                                                                                                                                                                        fx5
                                                                                                                                                                                                                                                                                                                                                        fx6
                                                                                                                                                                                                                                                                                                                                                        fx7
                                                                                                                                                                                                                                                                                                                                                        fx8
                                                                                                                                                                                                                                                                                                                                                        fx9
                                                                                                                                                                                                                                                                                                                                                        fx10
                                                                                                                                                                                                                                                                                                                                                        fx11)
                                                                                                                                                                                                                                                                                                                                                      fw))
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                          fr11
                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                          fs11))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j,Read k
      ,Read l) => Read ((T.Tuple12 a b c d e f g h i j k l))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2195v5v2196v22readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fs11)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                      fx11
                                                                                                                                                                                                                                                                                                                                      fr11)
                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                    fs12)
                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                                                                                                                                  fx12
                                                                                                                                                                                                                                                                                                                                                                  fr12)
                                                                                                                                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      ')'
                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                fw)
                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              (T.pa1
                                                                                                                                                                                                                                                                                                                                                                                T.Cons
                                                                                                                                                                                                                                                                                                                                                                                T.cn1
                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                T.aCons
                                                                                                                                                                                                                                                                                                                                                                                (T.con2
                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                  T.Tuple2
                                                                                                                                                                                                                                                                                                                                                                                  T.aTuple2
                                                                                                                                                                                                                                                                                                                                                                                  (T.con12
                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                                    T.Tuple12
                                                                                                                                                                                                                                                                                                                                                                                    T.aTuple12
                                                                                                                                                                                                                                                                                                                                                                                    fx1
                                                                                                                                                                                                                                                                                                                                                                                    fx2
                                                                                                                                                                                                                                                                                                                                                                                    fx3
                                                                                                                                                                                                                                                                                                                                                                                    fx4
                                                                                                                                                                                                                                                                                                                                                                                    fx5
                                                                                                                                                                                                                                                                                                                                                                                    fx6
                                                                                                                                                                                                                                                                                                                                                                                    fx7
                                                                                                                                                                                                                                                                                                                                                                                    fx8
                                                                                                                                                                                                                                                                                                                                                                                    fx9
                                                                                                                                                                                                                                                                                                                                                                                    fx10
                                                                                                                                                                                                                                                                                                                                                                                    fx11
                                                                                                                                                                                                                                                                                                                                                                                    fx12)
                                                                                                                                                                                                                                                                                                                                                                                  fw))
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                                                                                                                                      fr12
                                                                                                                                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                                                                                                                                      fs12))
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                          fr11
                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                          fs11))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j,Read k
      ,Read l,Read m) => Read ((T.Tuple13 a b c d e f g h i j k l m))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2226v5v2227v22readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fs11)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                      fx11
                                                                                                                                                                                                                                                                                                                                      fr11)
                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                    fs12)
                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                                                                                                                                  fx12
                                                                                                                                                                                                                                                                                                                                                                  fr12)
                                                                                                                                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                fs13)
                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                                                                                                                                              fx13
                                                                                                                                                                                                                                                                                                                                                                                              fr13)
                                                                                                                                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  ')'
                                                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                                                            fw)
                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          (T.pa1
                                                                                                                                                                                                                                                                                                                                                                                                            T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                            T.cn1
                                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                            T.aCons
                                                                                                                                                                                                                                                                                                                                                                                                            (T.con2
                                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                                              T.Tuple2
                                                                                                                                                                                                                                                                                                                                                                                                              T.aTuple2
                                                                                                                                                                                                                                                                                                                                                                                                              (T.con13
                                                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                                                T.Tuple13
                                                                                                                                                                                                                                                                                                                                                                                                                T.aTuple13
                                                                                                                                                                                                                                                                                                                                                                                                                fx1
                                                                                                                                                                                                                                                                                                                                                                                                                fx2
                                                                                                                                                                                                                                                                                                                                                                                                                fx3
                                                                                                                                                                                                                                                                                                                                                                                                                fx4
                                                                                                                                                                                                                                                                                                                                                                                                                fx5
                                                                                                                                                                                                                                                                                                                                                                                                                fx6
                                                                                                                                                                                                                                                                                                                                                                                                                fx7
                                                                                                                                                                                                                                                                                                                                                                                                                fx8
                                                                                                                                                                                                                                                                                                                                                                                                                fx9
                                                                                                                                                                                                                                                                                                                                                                                                                fx10
                                                                                                                                                                                                                                                                                                                                                                                                                fx11
                                                                                                                                                                                                                                                                                                                                                                                                                fx12
                                                                                                                                                                                                                                                                                                                                                                                                                fx13)
                                                                                                                                                                                                                                                                                                                                                                                                              fw))
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                                                                                                                                  fr13
                                                                                                                                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                                                                                                                                  fs13))
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                                                                                                                                      fr12
                                                                                                                                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                                                                                                                                      fs12))
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                          fr11
                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                          fs11))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j,Read k
      ,Read l,Read m,Read n) => Read ((T.Tuple14 a b c d e f g h i j k l m n))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2259v5v2260v22readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fs11)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                      fx11
                                                                                                                                                                                                                                                                                                                                      fr11)
                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                    fs12)
                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                                                                                                                                  fx12
                                                                                                                                                                                                                                                                                                                                                                  fr12)
                                                                                                                                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                fs13)
                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                                                                                                                                              fx13
                                                                                                                                                                                                                                                                                                                                                                                              fr13)
                                                                                                                                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                                                            fs14)
                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                                                                                                                                          fx14
                                                                                                                                                                                                                                                                                                                                                                                                                          fr14)
                                                                                                                                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                              ')'
                                                                                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                                                        fw)
                                                                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                      (T.pa1
                                                                                                                                                                                                                                                                                                                                                                                                                                        T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                                        T.cn1
                                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                                        T.aCons
                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.con2
                                                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                                                          T.Tuple2
                                                                                                                                                                                                                                                                                                                                                                                                                                          T.aTuple2
                                                                                                                                                                                                                                                                                                                                                                                                                                          (T.con14
                                                                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                                                            T.Tuple14
                                                                                                                                                                                                                                                                                                                                                                                                                                            T.aTuple14
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx1
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx2
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx3
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx4
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx5
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx6
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx7
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx8
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx9
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx10
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx11
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx12
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx13
                                                                                                                                                                                                                                                                                                                                                                                                                                            fx14)
                                                                                                                                                                                                                                                                                                                                                                                                                                          fw))
                                                                                                                                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                                                                                                                                              fr14
                                                                                                                                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                                                                                                                                              fs14))
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                                                                                                                                  fr13
                                                                                                                                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                                                                                                                                  fs13))
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                                                                                                                                      fr12
                                                                                                                                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                                                                                                                                      fs12))
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                          fr11
                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                          fs11))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance
  (Read a,Read b,Read c,Read d,Read e,Read f,Read g,Read h,Read i,Read j,Read k
      ,Read l,Read m,Read n,Read o) =>
    Read ((T.Tuple15 a b c d e f g h i j k l m n o))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a2295v5v2296v22readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen (T.con0 T.mkNoSrcPos p False aFalse)
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr0 p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R (T.Cons (T.R '(' _) (T.R T.List _)) _) fs1)
                              _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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 fx1 fr1) _)
                                          p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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
                                                            (T.R
                                                              (T.Cons
                                                                (T.R ',' _)
                                                                (T.R T.List _))
                                                              _) fs2) _) p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (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
                                                                          fx2
                                                                          fr2)
                                                                        _) p =
                                                                      T.uap1
                                                                        T.mkNoSrcPos
                                                                        p
                                                                        (T.uap2
                                                                          T.mkNoSrcPos
                                                                          p
                                                                          (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
                                                                                        (T.R
                                                                                          (T.Cons
                                                                                            (T.R
                                                                                              ','
                                                                                              _)
                                                                                            (T.R
                                                                                              T.List
                                                                                              _))
                                                                                          _)
                                                                                        fs3)
                                                                                      _)
                                                                                    p =
                                                                                    T.uap1
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      (T.uap2
                                                                                        T.mkNoSrcPos
                                                                                        p
                                                                                        (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
                                                                                                      fx3
                                                                                                      fr3)
                                                                                                    _)
                                                                                                  p =
                                                                                                  T.uap1
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    (T.uap2
                                                                                                      T.mkNoSrcPos
                                                                                                      p
                                                                                                      (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
                                                                                                                    (T.R
                                                                                                                      (T.Cons
                                                                                                                        (T.R
                                                                                                                          ','
                                                                                                                          _)
                                                                                                                        (T.R
                                                                                                                          T.List
                                                                                                                          _))
                                                                                                                      _)
                                                                                                                    fs4)
                                                                                                                  _)
                                                                                                                p =
                                                                                                                T.uap1
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  (T.uap2
                                                                                                                    T.mkNoSrcPos
                                                                                                                    p
                                                                                                                    (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
                                                                                                                                  fx4
                                                                                                                                  fr4)
                                                                                                                                _)
                                                                                                                              p =
                                                                                                                              T.uap1
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                (T.uap2
                                                                                                                                  T.mkNoSrcPos
                                                                                                                                  p
                                                                                                                                  (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
                                                                                                                                                (T.R
                                                                                                                                                  (T.Cons
                                                                                                                                                    (T.R
                                                                                                                                                      ','
                                                                                                                                                      _)
                                                                                                                                                    (T.R
                                                                                                                                                      T.List
                                                                                                                                                      _))
                                                                                                                                                  _)
                                                                                                                                                fs5)
                                                                                                                                              _)
                                                                                                                                            p =
                                                                                                                                            T.uap1
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              (T.uap2
                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                p
                                                                                                                                                (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
                                                                                                                                                              fx5
                                                                                                                                                              fr5)
                                                                                                                                                            _)
                                                                                                                                                          p =
                                                                                                                                                          T.uap1
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            (T.uap2
                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                              p
                                                                                                                                                              (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
                                                                                                                                                                            (T.R
                                                                                                                                                                              (T.Cons
                                                                                                                                                                                (T.R
                                                                                                                                                                                  ','
                                                                                                                                                                                  _)
                                                                                                                                                                                (T.R
                                                                                                                                                                                  T.List
                                                                                                                                                                                  _))
                                                                                                                                                                              _)
                                                                                                                                                                            fs6)
                                                                                                                                                                          _)
                                                                                                                                                                        p =
                                                                                                                                                                        T.uap1
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          (T.uap2
                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                            p
                                                                                                                                                                            (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
                                                                                                                                                                                          fx6
                                                                                                                                                                                          fr6)
                                                                                                                                                                                        _)
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.uap1
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                          p
                                                                                                                                                                                          (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
                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              ','
                                                                                                                                                                                                              _)
                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                              T.List
                                                                                                                                                                                                              _))
                                                                                                                                                                                                          _)
                                                                                                                                                                                                        fs7)
                                                                                                                                                                                                      _)
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                        p
                                                                                                                                                                                                        (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
                                                                                                                                                                                                                      fx7
                                                                                                                                                                                                                      fr7)
                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                      p
                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                    fs8)
                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                  fx8
                                                                                                                                                                                                                                                  fr8)
                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                fs9)
                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                              fx9
                                                                                                                                                                                                                                                                              fr9)
                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                            fs10)
                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                          fx10
                                                                                                                                                                                                                                                                                                          fr10)
                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                        fs11)
                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                      fx11
                                                                                                                                                                                                                                                                                                                                      fr11)
                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          ','
                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                    fs12)
                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  (T.uap2
                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                    (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
                                                                                                                                                                                                                                                                                                                                                                  fx12
                                                                                                                                                                                                                                                                                                                                                                  fr12)
                                                                                                                                                                                                                                                                                                                                                                _)
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.uap1
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                (T.uap2
                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                  (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
                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                  (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      ','
                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                      T.List
                                                                                                                                                                                                                                                                                                                                                                                      _))
                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                fs13)
                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.uap1
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                (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
                                                                                                                                                                                                                                                                                                                                                                                              fx13
                                                                                                                                                                                                                                                                                                                                                                                              fr13)
                                                                                                                                                                                                                                                                                                                                                                                            _)
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.uap1
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                              (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
                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                              (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  ','
                                                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                                                (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                  T.List
                                                                                                                                                                                                                                                                                                                                                                                                                  _))
                                                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                                                            fs14)
                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                            (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
                                                                                                                                                                                                                                                                                                                                                                                                                          fx14
                                                                                                                                                                                                                                                                                                                                                                                                                          fr14)
                                                                                                                                                                                                                                                                                                                                                                                                                        _)
                                                                                                                                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                                                                                                                                      T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                        (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                                          (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
                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                          (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                              ','
                                                                                                                                                                                                                                                                                                                                                                                                                                              _)
                                                                                                                                                                                                                                                                                                                                                                                                                                            (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                              T.List
                                                                                                                                                                                                                                                                                                                                                                                                                                              _))
                                                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                                                        fs15)
                                                                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                                                                                                                                    T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                      (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                                        (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
                                                                                                                                                                                                                                                                                                                                                                                                                                                      fx15
                                                                                                                                                                                                                                                                                                                                                                                                                                                      fr15)
                                                                                                                                                                                                                                                                                                                                                                                                                                                    _)
                                                                                                                                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                                                                                                                                  T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                                                                                                    (T.uap2
                                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (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
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ')'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.R
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          T.List
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    fw)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (T.pa1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.Cons
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.cn1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.aCons
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (T.con2
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      T.Tuple2
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      T.aTuple2
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (T.con15
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        T.Tuple15
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        T.aTuple15
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx2
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx3
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx4
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx5
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx6
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx7
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx8
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx9
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx10
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx11
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx12
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx13
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx14
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        fx15)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      fw))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                                                                                                                                          fr15
                                                                                                                                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                                                                                                                                          fs15))
                                                                                                                                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                                                                                                                                              fr14
                                                                                                                                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                                                                                                                                              fs14))
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                                                                                                                                  fr13
                                                                                                                                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                                                                                                                                  fs13))
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                                                                                                                                      fr12
                                                                                                                                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                                                                                                                                      fs12))
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                                                                                                                                              in
                                                                                                                                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                                                                                                                                          fr11
                                                                                                                                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                                  _
                                                                                                                                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                                                                                                                                in
                                                                                                                                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                                                          (greads
                                                                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                            p)
                                                                                                                                                                                                                                                                                                                          fs11))
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                                                                                                                                    _
                                                                                                                                                                                                                                                                                                                    p =
                                                                                                                                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                                                                                                      f_y
                                                                                                                                                                                                                                                                                                                  in
                                                                                                                                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                                f_x))
                                                                                                                                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                                                            (hlex
                                                                                                                                                                                                                                                                                                              fr10
                                                                                                                                                                                                                                                                                                              p)))
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                                                                                                                                      _
                                                                                                                                                                                                                                                                                                      p =
                                                                                                                                                                                                                                                                                                      T.projection
                                                                                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                        p
                                                                                                                                                                                                                                                                                                        f_y
                                                                                                                                                                                                                                                                                                    in
                                                                                                                                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                                  f_x))
                                                                                                                                                                                                                                                                                            (T.uap1
                                                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                                                              (greads
                                                                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                                                                p)
                                                                                                                                                                                                                                                                                              fs10))
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                                                                                                                                        _
                                                                                                                                                                                                                                                                                        p =
                                                                                                                                                                                                                                                                                        T.projection
                                                                                                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                                                                                                          p
                                                                                                                                                                                                                                                                                          f_y
                                                                                                                                                                                                                                                                                      in
                                                                                                                                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                                                                                                                                    f_x))
                                                                                                                                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                                                (hlex
                                                                                                                                                                                                                                                                                  fr9
                                                                                                                                                                                                                                                                                  p)))
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                                                                                                                                          _
                                                                                                                                                                                                                                                                          p =
                                                                                                                                                                                                                                                                          T.projection
                                                                                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                                                                                            p
                                                                                                                                                                                                                                                                            f_y
                                                                                                                                                                                                                                                                        in
                                                                                                                                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                                                                                                                                      f_x))
                                                                                                                                                                                                                                                                (T.uap1
                                                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                                                  (greads
                                                                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                                                                    p)
                                                                                                                                                                                                                                                                  fs9))
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          v0v0v0v0v1
                                                                                                                                                                                                                                                            _
                                                                                                                                                                                                                                                            p =
                                                                                                                                                                                                                                                            T.projection
                                                                                                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                                                                                                              p
                                                                                                                                                                                                                                                              f_y
                                                                                                                                                                                                                                                          in
                                                                                                                                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                                                                                                                                        f_x))
                                                                                                                                                                                                                                                  (T.uwrapForward
                                                                                                                                                                                                                                                    p
                                                                                                                                                                                                                                                    (hlex
                                                                                                                                                                                                                                                      fr8
                                                                                                                                                                                                                                                      p)))
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            v0v0v0v0v1
                                                                                                                                                                                                                                              _
                                                                                                                                                                                                                                              p =
                                                                                                                                                                                                                                              T.projection
                                                                                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                                                                                p
                                                                                                                                                                                                                                                f_y
                                                                                                                                                                                                                                            in
                                                                                                                                                                                                                                            (v0v0v0v0v1))
                                                                                                                                                                                                                                          f_x))
                                                                                                                                                                                                                                    (T.uap1
                                                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                                                      p
                                                                                                                                                                                                                                      (greads
                                                                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                                                                        p)
                                                                                                                                                                                                                                      fs8))
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              v0v0v0v0v1
                                                                                                                                                                                                                                _
                                                                                                                                                                                                                                p =
                                                                                                                                                                                                                                T.projection
                                                                                                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                                                                                                  p
                                                                                                                                                                                                                                  f_y
                                                                                                                                                                                                                              in
                                                                                                                                                                                                                              (v0v0v0v0v1))
                                                                                                                                                                                                                            f_x))
                                                                                                                                                                                                                      (T.uwrapForward
                                                                                                                                                                                                                        p
                                                                                                                                                                                                                        (hlex
                                                                                                                                                                                                                          fr7
                                                                                                                                                                                                                          p)))
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                v0v0v0v0v1
                                                                                                                                                                                                                  _
                                                                                                                                                                                                                  p =
                                                                                                                                                                                                                  T.projection
                                                                                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                                                                                    p
                                                                                                                                                                                                                    f_y
                                                                                                                                                                                                                in
                                                                                                                                                                                                                (v0v0v0v0v1))
                                                                                                                                                                                                              f_x))
                                                                                                                                                                                                        (T.uap1
                                                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                                                          p
                                                                                                                                                                                                          (greads
                                                                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                                                                            p)
                                                                                                                                                                                                          fs7))
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  v0v0v0v0v1
                                                                                                                                                                                                    _
                                                                                                                                                                                                    p =
                                                                                                                                                                                                    T.projection
                                                                                                                                                                                                      T.mkNoSrcPos
                                                                                                                                                                                                      p
                                                                                                                                                                                                      f_y
                                                                                                                                                                                                  in
                                                                                                                                                                                                  (v0v0v0v0v1))
                                                                                                                                                                                                f_x))
                                                                                                                                                                                          (T.uwrapForward
                                                                                                                                                                                            p
                                                                                                                                                                                            (hlex
                                                                                                                                                                                              fr6
                                                                                                                                                                                              p)))
                                                                                                                                                                                        f_y
                                                                                                                                                                                    v0v0v0v0v1
                                                                                                                                                                                      _
                                                                                                                                                                                      p =
                                                                                                                                                                                      T.projection
                                                                                                                                                                                        T.mkNoSrcPos
                                                                                                                                                                                        p
                                                                                                                                                                                        f_y
                                                                                                                                                                                    in
                                                                                                                                                                                    (v0v0v0v0v1))
                                                                                                                                                                                  f_x))
                                                                                                                                                                            (T.uap1
                                                                                                                                                                              T.mkNoSrcPos
                                                                                                                                                                              p
                                                                                                                                                                              (greads
                                                                                                                                                                                T.mkNoSrcPos
                                                                                                                                                                                p)
                                                                                                                                                                              fs6))
                                                                                                                                                                          f_y
                                                                                                                                                                      v0v0v0v0v1
                                                                                                                                                                        _
                                                                                                                                                                        p =
                                                                                                                                                                        T.projection
                                                                                                                                                                          T.mkNoSrcPos
                                                                                                                                                                          p
                                                                                                                                                                          f_y
                                                                                                                                                                      in
                                                                                                                                                                      (v0v0v0v0v1))
                                                                                                                                                                    f_x))
                                                                                                                                                              (T.uwrapForward
                                                                                                                                                                p
                                                                                                                                                                (hlex
                                                                                                                                                                  fr5
                                                                                                                                                                  p)))
                                                                                                                                                            f_y
                                                                                                                                                        v0v0v0v0v1
                                                                                                                                                          _
                                                                                                                                                          p =
                                                                                                                                                          T.projection
                                                                                                                                                            T.mkNoSrcPos
                                                                                                                                                            p
                                                                                                                                                            f_y
                                                                                                                                                        in
                                                                                                                                                        (v0v0v0v0v1))
                                                                                                                                                      f_x))
                                                                                                                                                (T.uap1
                                                                                                                                                  T.mkNoSrcPos
                                                                                                                                                  p
                                                                                                                                                  (greads
                                                                                                                                                    T.mkNoSrcPos
                                                                                                                                                    p)
                                                                                                                                                  fs5))
                                                                                                                                              f_y
                                                                                                                                          v0v0v0v0v1
                                                                                                                                            _
                                                                                                                                            p =
                                                                                                                                            T.projection
                                                                                                                                              T.mkNoSrcPos
                                                                                                                                              p
                                                                                                                                              f_y
                                                                                                                                          in
                                                                                                                                          (v0v0v0v0v1))
                                                                                                                                        f_x))
                                                                                                                                  (T.uwrapForward
                                                                                                                                    p
                                                                                                                                    (hlex
                                                                                                                                      fr4
                                                                                                                                      p)))
                                                                                                                                f_y
                                                                                                                            v0v0v0v0v1
                                                                                                                              _
                                                                                                                              p =
                                                                                                                              T.projection
                                                                                                                                T.mkNoSrcPos
                                                                                                                                p
                                                                                                                                f_y
                                                                                                                            in
                                                                                                                            (v0v0v0v0v1))
                                                                                                                          f_x))
                                                                                                                    (T.uap1
                                                                                                                      T.mkNoSrcPos
                                                                                                                      p
                                                                                                                      (greads
                                                                                                                        T.mkNoSrcPos
                                                                                                                        p)
                                                                                                                      fs4))
                                                                                                                  f_y
                                                                                                              v0v0v0v0v1
                                                                                                                _
                                                                                                                p =
                                                                                                                T.projection
                                                                                                                  T.mkNoSrcPos
                                                                                                                  p
                                                                                                                  f_y
                                                                                                              in
                                                                                                              (v0v0v0v0v1))
                                                                                                            f_x))
                                                                                                      (T.uwrapForward
                                                                                                        p
                                                                                                        (hlex
                                                                                                          fr3
                                                                                                          p)))
                                                                                                    f_y
                                                                                                v0v0v0v0v1
                                                                                                  _
                                                                                                  p =
                                                                                                  T.projection
                                                                                                    T.mkNoSrcPos
                                                                                                    p
                                                                                                    f_y
                                                                                                in
                                                                                                (v0v0v0v0v1))
                                                                                              f_x))
                                                                                        (T.uap1
                                                                                          T.mkNoSrcPos
                                                                                          p
                                                                                          (greads
                                                                                            T.mkNoSrcPos
                                                                                            p)
                                                                                          fs3))
                                                                                      f_y
                                                                                  v0v0v0v0v1
                                                                                    _
                                                                                    p =
                                                                                    T.projection
                                                                                      T.mkNoSrcPos
                                                                                      p
                                                                                      f_y
                                                                                  in
                                                                                  (v0v0v0v0v1))
                                                                                f_x))
                                                                          (T.uwrapForward
                                                                            p
                                                                            (hlex
                                                                              fr2
                                                                              p)))
                                                                        f_y
                                                                    v0v0v0v0v1 _
                                                                      p =
                                                                      T.projection
                                                                        T.mkNoSrcPos
                                                                        p f_y in
                                                                    (v0v0v0v0v1))
                                                                  f_x))
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (greads
                                                                T.mkNoSrcPos p)
                                                              fs2)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uwrapForward p (hlex fr1 p)))
                                            f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p)
                                  fs1)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr0 p)))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance (Show a,Show b,Show c) => Show ((T.Tuple3 a b c))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2332v5v2334v63showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple3 fx fy fz) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
                    (T.conChar T.mkNoSrcPos p ')')))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance (Show a,Show b,Show c,Show d) => Show ((T.Tuple4 a b c d))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2341v5v2344v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple4 fx fy fz fu) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
                        (T.conChar T.mkNoSrcPos p ')')))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance (Show a,Show b,Show c,Show d,Show e) => Show ((T.Tuple5 a b c d e))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2352v5v2356v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple5 fx fy fz fu fv) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
                            (T.conChar T.mkNoSrcPos p ')')))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f) => Show ((T.Tuple6 a b c d e f))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2366v5v2371v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple6 fx fy fz fu fv fw) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
                                (T.conChar T.mkNoSrcPos p ')')))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g) =>
    Show ((T.Tuple7 a b c d e f g))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2382v5v2388v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple7 fx fy fz fu fv fw ft) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap1 T.mkNoSrcPos p
                                    (gshowChar T.mkNoSrcPos p)
                                    (T.conChar T.mkNoSrcPos p ')')))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h) =>
    Show ((T.Tuple8 a b c d e f g h))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2401v5v2408v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple8 fx fy fz fu fv fw ft fa) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshowChar T.mkNoSrcPos p)
                                        (T.conChar T.mkNoSrcPos p
                                          ')')))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i) =>
    Show ((T.Tuple9 a b c d e f g h i))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2422v5v2431v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple9 fx fy fz fu fv fw ft fa fb) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshowChar T.mkNoSrcPos p)
                                            (T.conChar T.mkNoSrcPos p
                                              ')')))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j) =>
    Show ((T.Tuple10 a b c d e f g h i j))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2447v5v2457v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple10 fx fy fz fu fv fw ft fa fb fc) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshowChar T.mkNoSrcPos p)
                                                (T.conChar T.mkNoSrcPos p
                                                  ')')))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j
      ,Show k) => Show ((T.Tuple11 a b c d e f g h i j k))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2474v5v2485v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple11 fx fy fz fu fv fw ft fa fb fc fd) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !. p)
                                                (T.uap1 T.mkNoSrcPos p
                                                  (gshowString T.mkNoSrcPos p)
                                                  (T.fromLitString T.mkNoSrcPos
                                                    p ","))
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !. p)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshows T.mkNoSrcPos p) fd)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshowChar T.mkNoSrcPos p)
                                                    (T.conChar T.mkNoSrcPos p
                                                      ')')))))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j,Show k
      ,Show l) => Show ((T.Tuple12 a b c d e f g h i j k l))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2503v5v2515v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple12 fx fy fz fu fv fw ft fa fb fc fd fe) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !. p)
                                                (T.uap1 T.mkNoSrcPos p
                                                  (gshowString T.mkNoSrcPos p)
                                                  (T.fromLitString T.mkNoSrcPos
                                                    p ","))
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !. p)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshows T.mkNoSrcPos p) fd)
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (T.mkNoSrcPos !. p)
                                                    (T.uap1 T.mkNoSrcPos p
                                                      (gshowString T.mkNoSrcPos
                                                        p)
                                                      (T.fromLitString
                                                        T.mkNoSrcPos p ","))
                                                    (T.uap2 T.mkNoSrcPos p
                                                      (T.mkNoSrcPos !. p)
                                                      (T.uap1 T.mkNoSrcPos p
                                                        (gshows T.mkNoSrcPos p)
                                                        fe)
                                                      (T.uap1 T.mkNoSrcPos p
                                                        (gshowChar T.mkNoSrcPos
                                                          p)
                                                        (T.conChar T.mkNoSrcPos
                                                          p
                                                          ')')))))))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j,Show k
      ,Show l,Show m) => Show ((T.Tuple13 a b c d e f g h i j k l m))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2534v5v2547v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple13 fx fy fz fu fv fw ft fa fb fc fd fe ff) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !. p)
                                                (T.uap1 T.mkNoSrcPos p
                                                  (gshowString T.mkNoSrcPos p)
                                                  (T.fromLitString T.mkNoSrcPos
                                                    p ","))
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !. p)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshows T.mkNoSrcPos p) fd)
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (T.mkNoSrcPos !. p)
                                                    (T.uap1 T.mkNoSrcPos p
                                                      (gshowString T.mkNoSrcPos
                                                        p)
                                                      (T.fromLitString
                                                        T.mkNoSrcPos p ","))
                                                    (T.uap2 T.mkNoSrcPos p
                                                      (T.mkNoSrcPos !. p)
                                                      (T.uap1 T.mkNoSrcPos p
                                                        (gshows T.mkNoSrcPos p)
                                                        fe)
                                                      (T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !. p)
                                                        (T.uap1 T.mkNoSrcPos p
                                                          (gshowString
                                                            T.mkNoSrcPos p)
                                                          (T.fromLitString
                                                            T.mkNoSrcPos p ","))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (T.mkNoSrcPos !. p)
                                                          (T.uap1 T.mkNoSrcPos p
                                                            (gshows T.mkNoSrcPos
                                                              p) ff)
                                                          (T.uap1 T.mkNoSrcPos p
                                                            (gshowChar
                                                              T.mkNoSrcPos p)
                                                            (T.conChar
                                                              T.mkNoSrcPos p
                                                              ')')))))))))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j,Show k
      ,Show l,Show m,Show n) => Show ((T.Tuple14 a b c d e f g h i j k l m n))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2567v5v2581v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (T.Tuple14 fx fy fz fu fv fw ft fa fb fc fd fe ff fg) _)
      p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !. p)
                                                (T.uap1 T.mkNoSrcPos p
                                                  (gshowString T.mkNoSrcPos p)
                                                  (T.fromLitString T.mkNoSrcPos
                                                    p ","))
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !. p)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshows T.mkNoSrcPos p) fd)
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (T.mkNoSrcPos !. p)
                                                    (T.uap1 T.mkNoSrcPos p
                                                      (gshowString T.mkNoSrcPos
                                                        p)
                                                      (T.fromLitString
                                                        T.mkNoSrcPos p ","))
                                                    (T.uap2 T.mkNoSrcPos p
                                                      (T.mkNoSrcPos !. p)
                                                      (T.uap1 T.mkNoSrcPos p
                                                        (gshows T.mkNoSrcPos p)
                                                        fe)
                                                      (T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !. p)
                                                        (T.uap1 T.mkNoSrcPos p
                                                          (gshowString
                                                            T.mkNoSrcPos p)
                                                          (T.fromLitString
                                                            T.mkNoSrcPos p ","))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (T.mkNoSrcPos !. p)
                                                          (T.uap1 T.mkNoSrcPos p
                                                            (gshows T.mkNoSrcPos
                                                              p) ff)
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (T.mkNoSrcPos !. p)
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (gshowString
                                                                T.mkNoSrcPos p)
                                                              (T.fromLitString
                                                                T.mkNoSrcPos p
                                                                ","))
                                                            (T.uap2 T.mkNoSrcPos
                                                              p
                                                              (T.mkNoSrcPos
                                                                !.
                                                                p)
                                                              (T.uap1
                                                                T.mkNoSrcPos p
                                                                (gshows
                                                                  T.mkNoSrcPos
                                                                  p) fg)
                                                              (T.uap1
                                                                T.mkNoSrcPos p
                                                                (gshowChar
                                                                  T.mkNoSrcPos
                                                                  p)
                                                                (T.conChar
                                                                  T.mkNoSrcPos p
                                                                  ')')))))))))))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

instance
  (Show a,Show b,Show c,Show d,Show e,Show f,Show g,Show h,Show i,Show j,Show k
      ,Show l,Show m,Show n,Show o) =>
    Show ((T.Tuple15 a b c d e f g h i j k l m n o))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a2602v5v2617v65showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp
      (T.R (T.Tuple15 fx fy fz fu fv fw ft fa fb fc fd fe ff fg fh) _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
        (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '('))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
              (T.fromLitString T.mkNoSrcPos p ","))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                  (T.fromLitString T.mkNoSrcPos p ","))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fz)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                    (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                      (T.fromLitString T.mkNoSrcPos p ","))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                      (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fu)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                        (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                          (T.fromLitString T.mkNoSrcPos p ","))
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fv)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                            (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                              (T.fromLitString T.mkNoSrcPos p ","))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fw)
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gshowString T.mkNoSrcPos p)
                                  (T.fromLitString T.mkNoSrcPos p ","))
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                  (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
                                    ft)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshowString T.mkNoSrcPos p)
                                      (T.fromLitString T.mkNoSrcPos p ","))
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (gshows T.mkNoSrcPos p) fa)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (gshowString T.mkNoSrcPos p)
                                          (T.fromLitString T.mkNoSrcPos p ","))
                                        (T.uap2 T.mkNoSrcPos p
                                          (T.mkNoSrcPos !. p)
                                          (T.uap1 T.mkNoSrcPos p
                                            (gshows T.mkNoSrcPos p) fb)
                                          (T.uap2 T.mkNoSrcPos p
                                            (T.mkNoSrcPos !. p)
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshowString T.mkNoSrcPos p)
                                              (T.fromLitString T.mkNoSrcPos p
                                                ","))
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !. p)
                                              (T.uap1 T.mkNoSrcPos p
                                                (gshows T.mkNoSrcPos p) fc)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !. p)
                                                (T.uap1 T.mkNoSrcPos p
                                                  (gshowString T.mkNoSrcPos p)
                                                  (T.fromLitString T.mkNoSrcPos
                                                    p ","))
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !. p)
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (gshows T.mkNoSrcPos p) fd)
                                                  (T.uap2 T.mkNoSrcPos p
                                                    (T.mkNoSrcPos !. p)
                                                    (T.uap1 T.mkNoSrcPos p
                                                      (gshowString T.mkNoSrcPos
                                                        p)
                                                      (T.fromLitString
                                                        T.mkNoSrcPos p ","))
                                                    (T.uap2 T.mkNoSrcPos p
                                                      (T.mkNoSrcPos !. p)
                                                      (T.uap1 T.mkNoSrcPos p
                                                        (gshows T.mkNoSrcPos p)
                                                        fe)
                                                      (T.uap2 T.mkNoSrcPos p
                                                        (T.mkNoSrcPos !. p)
                                                        (T.uap1 T.mkNoSrcPos p
                                                          (gshowString
                                                            T.mkNoSrcPos p)
                                                          (T.fromLitString
                                                            T.mkNoSrcPos p ","))
                                                        (T.uap2 T.mkNoSrcPos p
                                                          (T.mkNoSrcPos !. p)
                                                          (T.uap1 T.mkNoSrcPos p
                                                            (gshows T.mkNoSrcPos
                                                              p) ff)
                                                          (T.uap2 T.mkNoSrcPos p
                                                            (T.mkNoSrcPos !. p)
                                                            (T.uap1 T.mkNoSrcPos
                                                              p
                                                              (gshowString
                                                                T.mkNoSrcPos p)
                                                              (T.fromLitString
                                                                T.mkNoSrcPos p
                                                                ","))
                                                            (T.uap2 T.mkNoSrcPos
                                                              p
                                                              (T.mkNoSrcPos
                                                                !.
                                                                p)
                                                              (T.uap1
                                                                T.mkNoSrcPos p
                                                                (gshows
                                                                  T.mkNoSrcPos
                                                                  p) fg)
                                                              (T.uap2
                                                                T.mkNoSrcPos p
                                                                (T.mkNoSrcPos
                                                                  !.
                                                                  p)
                                                                (T.uap1
                                                                  T.mkNoSrcPos p
                                                                  (gshowString
                                                                    T.mkNoSrcPos
                                                                    p)
                                                                  (T.fromLitString
                                                                    T.mkNoSrcPos
                                                                    p ","))
                                                                (T.uap2
                                                                  T.mkNoSrcPos p
                                                                  (T.mkNoSrcPos
                                                                    !.
                                                                    p)
                                                                  (T.uap1
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (gshows
                                                                      T.mkNoSrcPos
                                                                      p) fh)
                                                                  (T.uap1
                                                                    T.mkNoSrcPos
                                                                    p
                                                                    (gshowChar
                                                                      T.mkNoSrcPos
                                                                      p)
                                                                    (T.conChar
                                                                      T.mkNoSrcPos
                                                                      p
                                                                      ')')))))))))))))))))))))))))))))))
    hshowsPrec _ _ p = T.fatal p
    
  

type FilePath = String

gputStr :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (IO T.Tuple0))

hputStr :: (T.R String) -> T.RefExp -> T.R (IO T.Tuple0)

gputStr pputStr p = T.ufun1 aputStr pputStr p hputStr

hputStr fs p = T.uwrapForward p (hmapM_ (gputChar T.mkNoSrcPos p) fs p)

gputStrLn :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (IO T.Tuple0))

hputStrLn :: (T.R String) -> T.RefExp -> T.R (IO T.Tuple0)

gputStrLn pputStrLn p = T.ufun1 aputStrLn pputStrLn p hputStrLn

hputStrLn fs p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>> p) (T.uwrapForward p (hputStr fs p))
    (T.uwrapForward p (hputStr (T.fromLitString T.mkNoSrcPos p "\n") p))

gprint :: Show a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (IO T.Tuple0))

hprint :: Show a => (T.R a) -> T.RefExp -> T.R (IO T.Tuple0)

gprint pprint p = T.ufun1 aprint pprint p hprint

hprint fx p =
  T.uwrapForward p
    (hputStrLn (T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p) fx) p)

ggetLine :: T.RefSrcPos -> T.RefExp -> T.R (IO String)

sgetLine :: T.R (IO String)

ggetLine pgetLine p = T.uconstUse pgetLine p sgetLine

sgetLine =
  T.uconstDef T.mkRoot agetLine
    (\ p ->
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) (ggetChar T.mkNoSrcPos p)
        (T.ufun1 T.mkDoLambda T.mkNoSrcPos p
          (\ fc p ->
            T.ucif p
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fc
                (T.conChar T.mkNoSrcPos p '\n'))
              (T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
                (T.fromLitString T.mkNoSrcPos p ""))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p)
                (ggetLine T.mkNoSrcPos p)
                (T.ufun1 T.mkDoLambda T.mkNoSrcPos p
                  (\ fs p ->
                    T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p)
                      (T.con2 T.mkNoSrcPos p T.Cons T.aCons fc fs)))))))

ginteract ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun String String) (IO T.Tuple0))

hinteract :: (T.R (T.Fun String String)) -> T.RefExp -> T.R (IO T.Tuple0)

ginteract pinteract p = T.ufun1 ainteract pinteract p hinteract

hinteract ff p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) (ggetContents T.mkNoSrcPos p)
    (T.ufun1 T.mkDoLambda T.mkNoSrcPos p
      (\ fs p -> T.uwrapForward p (hputStr (T.uap1 T.mkNoSrcPos p ff fs) p)))

greadIO :: Read a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun String (IO a))

hreadIO :: Read a => (T.R String) -> T.RefExp -> T.R (IO a)

greadIO preadIO p = T.ufun1 areadIO preadIO p hreadIO

hreadIO fs p =
  T.uccase T.mkNoSrcPos p
    (let
      v2711v13v2714v73v1 (T.R (T.Cons fx (T.R T.List _)) _) p =
        T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p) fx
      v2711v13v2714v73v1 (T.R T.List _) p =
        T.uwrapForward p
          (hioError
            (T.uwrapForward p
              (huserError
                (T.fromLitString T.mkNoSrcPos p "Prelude.readIO: no parse") p))
            p)
      v2711v13v2714v73v1 _ p =
        T.uwrapForward p
          (hioError
            (T.uwrapForward p
              (huserError
                (T.fromLitString T.mkNoSrcPos p
                  "Prelude.readIO: ambiguous parse") p)) p) in
      (v2711v13v2714v73v1))
    (T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 (T.R T.List _) (T.R T.List _)) _)
                                p =
                                T.uap1 T.mkNoSrcPos p
                                  (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))
                      (T.uwrapForward p (hlex ft p))) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p) fs))
      (T.fromExpList T.mkNoSrcPos p []))

greadLn :: Read a => T.RefSrcPos -> T.RefExp -> T.R (IO a)

sreadLn :: Read a => T.R (IO a)

greadLn preadLn p = T.uconstUse preadLn p sreadLn

sreadLn =
  T.uconstDef T.mkRoot areadLn
    (\ p ->
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p) (ggetLine T.mkNoSrcPos p)
        (T.ufun1 T.mkDoLambda T.mkNoSrcPos p
          (\ fl p ->
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>>= p)
              (T.uwrapForward p (hreadIO fl p))
              (T.ufun1 T.mkDoLambda T.mkNoSrcPos p
                (\ fr p ->
                  T.uap1 T.mkNoSrcPos p (greturn T.mkNoSrcPos p) fr)))))

gdigitToInt :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Char Int)

hdigitToInt :: (T.R Char) -> T.RefExp -> T.R Int

gdigitToInt pdigitToInt p = T.ufun1 adigitToInt pdigitToInt p hdigitToInt

hdigitToInt fc p =
  T.ucguard (T.uwrapForward p (hisDigit fc p))
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
      (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
      (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
        (T.conChar T.mkNoSrcPos p '0')))
    (T.ucguard
      (T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fc
              (T.conChar T.mkNoSrcPos p 'a'))
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fc
              (T.conChar T.mkNoSrcPos p 'f'))) p))
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
          (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
          (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
            (T.conChar T.mkNoSrcPos p 'a')))
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 10)))
      (T.ucguard
        (T.uwrapForward p
          (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fc
                (T.conChar T.mkNoSrcPos p 'A'))
              *&&
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fc
                (T.conChar T.mkNoSrcPos p 'F'))) p))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p) fc)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
              (T.conChar T.mkNoSrcPos p 'A')))
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 10)))
        (T.ucguard (gotherwise T.mkNoSrcPos p)
          (T.uwrapForward p
            (herror
              (T.fromLitString T.mkNoSrcPos p "Char.digitToInt: not a digit")
              p)) (T.fatal p))))

gintToDigit :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int Char)

hintToDigit :: (T.R Int) -> T.RefExp -> T.R Char

gintToDigit pintToDigit p = T.ufun1 aintToDigit pintToDigit p hintToDigit

hintToDigit fi p =
  T.ucguard
    (T.uwrapForward p
      (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fi
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          *&&
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fi
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 9)))) p))
    (T.uap1 T.mkNoSrcPos p (gtoEnum T.mkNoSrcPos p)
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
        (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '0')) fi))
    (T.ucguard
      (T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fi
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 10)))
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fi
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 15)))) p))
      (T.uap1 T.mkNoSrcPos p (gtoEnum T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
            (T.uap1 T.mkNoSrcPos p (gfromEnum T.mkNoSrcPos p)
              (T.conChar T.mkNoSrcPos p 'a')) fi)
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 10))))
      (T.ucguard (gotherwise T.mkNoSrcPos p)
        (T.uwrapForward p
          (herror
            (T.fromLitString T.mkNoSrcPos p "Char.intToDigit: not a digit") p))
        (T.fatal p)))

gord :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Char Int)

sord :: T.R (T.Fun Char Int)

gord pord p = T.uconstUse pord p sord

sord = T.uconstDef T.mkRoot aord (\ p -> gfromEnum T.mkNoSrcPos p)

gchr :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Int Char)

schr :: T.R (T.Fun Int Char)

gchr pchr p = T.uconstUse pchr p schr

schr = T.uconstDef T.mkRoot achr (\ p -> gtoEnum T.mkNoSrcPos p)

greadLitChar :: T.RefSrcPos -> T.RefExp -> T.R (ReadS Char)

hreadLitChar :: (T.R (ReadS___1 Char)) -> T.RefExp -> T.R (ReadS___2 Char)

greadLitChar preadLitChar p = T.ufun1 areadLitChar preadLitChar p hreadLitChar

hreadLitChar (T.R (T.Cons (T.R '\\' _) fs) _) p =
  T.uwrapForward p (hreadEsc fs p)
  where
  
  greadEsc preadEsc p = T.ufun1 a2770v9v2792v29readEsc preadEsc p hreadEsc
  
  areadEsc = a2770v9v2792v29readEsc
  
  hreadEsc (T.R (T.Cons (T.R 'a' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.conChar T.mkNoSrcPos p '\o007') fs]
  hreadEsc (T.R (T.Cons (T.R 'b' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.conChar T.mkNoSrcPos p '\o010') fs]
  hreadEsc (T.R (T.Cons (T.R 'f' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.conChar T.mkNoSrcPos p '\o014') fs]
  hreadEsc (T.R (T.Cons (T.R 'n' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.conChar T.mkNoSrcPos p '\n')
          fs]
  hreadEsc (T.R (T.Cons (T.R 'r' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.conChar T.mkNoSrcPos p '\o015') fs]
  hreadEsc (T.R (T.Cons (T.R 't' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.conChar T.mkNoSrcPos p '\t')
          fs]
  hreadEsc (T.R (T.Cons (T.R 'v' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.conChar T.mkNoSrcPos p '\o013') fs]
  hreadEsc (T.R (T.Cons (T.R '\\' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.conChar T.mkNoSrcPos p '\\')
          fs]
  hreadEsc (T.R (T.Cons (T.R '"' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.conChar T.mkNoSrcPos p '"')
          fs]
  hreadEsc (T.R (T.Cons (T.R '\'' _) fs) _) p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (T.conChar T.mkNoSrcPos p '\'')
          fs]
  hreadEsc (z1readEsc@(T.R (T.Cons (T.R '^' _) (T.R (T.Cons fc fs) _)) _)) p =
    T.ucguard
      (T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fc
              (T.conChar T.mkNoSrcPos p '@'))
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fc
              (T.conChar T.mkNoSrcPos p '_'))) p))
      (T.fromExpList T.mkNoSrcPos p
        [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.uap1 T.mkNoSrcPos p (gchr T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                (T.uap1 T.mkNoSrcPos p (gord T.mkNoSrcPos p) fc)
                (T.uap1 T.mkNoSrcPos p (gord T.mkNoSrcPos p)
                  (T.conChar T.mkNoSrcPos p '@')))) fs]) (y1readEsc z1readEsc p)
  hreadEsc z1readEsc p = y1readEsc z1readEsc p
  
  y1readEsc (fs@(T.R (T.Cons fd _) _)) p =
    T.ucguard (T.uwrapForward p (hisDigit fd p))
      (T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (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 fn ft) _) p =
                    T.uap1 T.mkNoSrcPos p
                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                          (T.uap1 T.mkNoSrcPos p (gchr T.mkNoSrcPos p) fn) ft))
                      f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.uap1 T.mkNoSrcPos p (greadDec T.mkNoSrcPos p) fs))
        (T.fromExpList T.mkNoSrcPos p [])) (y2readEsc fs p)
  y1readEsc fs p = y2readEsc fs p
  
  y2readEsc (T.R (T.Cons (T.R 'o' _) fs) _) p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fn ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                        (T.uap1 T.mkNoSrcPos p (gchr T.mkNoSrcPos p) fn) ft))
                    f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (greadOct T.mkNoSrcPos p) fs))
      (T.fromExpList T.mkNoSrcPos p [])
  y2readEsc (T.R (T.Cons (T.R 'x' _) fs) _) p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fn ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                        (T.uap1 T.mkNoSrcPos p (gchr T.mkNoSrcPos p) fn) ft))
                    f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (greadHex T.mkNoSrcPos p) fs))
      (T.fromExpList T.mkNoSrcPos p [])
  y2readEsc (fs@(T.R (T.Cons fc _) _)) p =
    T.ucguard (T.uwrapForward p (hisUpper fc p))
      (let
        gtable ptable p = T.uconstUse ptable p stable
        stable =
          T.uconstDef p a2787v32v2787v78table
            (\ p ->
              T.con2 T.mkNoSrcPos p T.Cons T.aCons
                (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                  (T.conChar T.mkNoSrcPos p '\o177')
                  (T.fromLitString T.mkNoSrcPos p "DEL"))
                (gasciiTab T.mkNoSrcPos p)) in
        (T.uccase T.mkNoSrcPos p
          (let
            v2788v31v2791v45v1 (T.R (T.Cons fpr _) _) p =
              T.fromExpList T.mkNoSrcPos p [fpr]
            v2788v31v2791v45v1 (T.R T.List _) p =
              T.con0 T.mkNoSrcPos p T.List T.aList
            v2788v31v2791v45v1 _ p = T.fatal p in (v2788v31v2791v45v1))
          (T.uap1 T.mkNoSrcPos p
            (T.uap2 T.mkNoSrcPos p (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 fc fmne) _) p =
                        T.uap1 T.mkNoSrcPos p
                          (T.uap2 T.mkNoSrcPos p (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 (T.R T.List _) fs') _) p =
                                      T.uap1 T.mkNoSrcPos p
                                        (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                          T.aCons
                                          (T.con2 T.mkNoSrcPos p T.Tuple2
                                            T.aTuple2 fc fs')) f_y
                                    v0v0v0v0v1 _ p =
                                      T.projection T.mkNoSrcPos p f_y in
                                    (v0v0v0v0v1)) f_x))
                            (T.fromExpList T.mkNoSrcPos p
                              [T.uwrapForward p (hmatch fmne fs p)])) f_y
                      v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                      (v0v0v0v0v1)) f_x)) (gtable T.mkNoSrcPos p))
            (T.fromExpList T.mkNoSrcPos p [])))) (y3readEsc fs p)
  y2readEsc fs p = y3readEsc fs p
  
  y3readEsc _ p = T.con0 T.mkNoSrcPos p T.List T.aList
  
  gmatch ::
    Eq a =>
    T.RefSrcPos ->
      T.RefExp ->
        T.R
          (T.Fun (T.List a) (T.Fun (T.List a) (T.Tuple2 (T.List a) (T.List a))))
  
  hmatch ::
    Eq a =>
    (T.R (T.List a)) ->
      (T.R (T.List a)) -> T.RefExp -> T.R (T.Tuple2 (T.List a) (T.List a))
  
  gmatch pmatch p = T.ufun2 a2795v9v2796v48match pmatch p hmatch
  
  amatch = a2795v9v2796v48match
  
  hmatch (z1match@(T.R (T.Cons fx fxs) _)) (z2match@(T.R (T.Cons fy fys) _)) p =
    T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx fy)
      (T.uwrapForward p (hmatch fxs fys p)) (y1match z1match z2match p)
  hmatch z1match z2match p = y1match z1match z2match p
  
  y1match fxs fys p = T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fxs fys
  
hreadLitChar (T.R (T.Cons fc fs) _) p =
  T.fromExpList T.mkNoSrcPos p [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fc fs]
hreadLitChar _ p = T.fatal p

gshowLitChar :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Char ShowS)

hshowLitChar :: (T.R Char) -> T.RefExp -> T.R ShowS

gshowLitChar pshowLitChar p = T.ufun1 ashowLitChar pshowLitChar p hshowLitChar

hshowLitChar fc p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fc
      (T.conChar T.mkNoSrcPos p '\o177'))
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
      (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
        (T.conChar T.mkNoSrcPos p '\\'))
      (T.uwrapForward p
        (hprotectEsc (gisDigit T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p (gord T.mkNoSrcPos p) fc)) p)))
    (y1showLitChar fc p)
hshowLitChar fc p = y1showLitChar fc p

y1showLitChar (T.R '\o177' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\DEL")
y1showLitChar (T.R '\\' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\\\")
y1showLitChar fc p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fc
      (T.conChar T.mkNoSrcPos p ' '))
    (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p) fc) (y2showLitChar fc p)
y1showLitChar fc p = y2showLitChar fc p

y2showLitChar (T.R '\o007' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\a")
y2showLitChar (T.R '\o010' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\b")
y2showLitChar (T.R '\o014' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\f")
y2showLitChar (T.R '\n' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\n")
y2showLitChar (T.R '\o015' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\r")
y2showLitChar (T.R '\t' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\t")
y2showLitChar (T.R '\o013' _) p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.fromLitString T.mkNoSrcPos p "\\v")
y2showLitChar (T.R '\o016' _) p =
  T.uwrapForward p
    (hprotectEsc
      (T.uap2 T.mkNoSrcPos p (gflip T.mkNoSrcPos p) (T.mkNoSrcPos !== p)
        (T.conChar T.mkNoSrcPos p 'H'))
      (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
        (T.fromLitString T.mkNoSrcPos p "\\SO")) p)
y2showLitChar fc p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.con2 T.mkNoSrcPos p T.Cons T.aCons (T.conChar T.mkNoSrcPos p '\\')
      (T.uwrapForward p
        (hsnd
          (T.uwrapForward p
            (((gasciiTab T.mkNoSrcPos p)
                *!!
                (T.uap1 T.mkNoSrcPos p (gord T.mkNoSrcPos p) fc)) p)) p)))

gprotectEsc pprotectEsc p = T.ufun2 aprotectEsc pprotectEsc p hprotectEsc

hprotectEsc fp ff p =
  T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) ff (gcont T.mkNoSrcPos p)
  where
  
  gcont pcont p = T.ufun1 a2816v36v2817v57cont pcont p hcont
  
  acont = a2816v36v2817v57cont
  
  hcont (fs@(T.R (T.Cons fc _) _)) p =
    T.ucguard (T.uap1 T.mkNoSrcPos p fp fc)
      (T.uwrapForward p (((T.fromLitString T.mkNoSrcPos p "\\&") *++ fs) p))
      (y1cont fs p)
  hcont fs p = y1cont fs p
  
  y1cont fs p = T.projection T.mkNoSrcPos p fs
  

gasciiTab pasciiTab p = T.uconstUse pasciiTab p sasciiTab

sasciiTab =
  T.uconstDef T.mkRoot aasciiTab
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gzip T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p)
          (T.conChar T.mkNoSrcPos p '\o000') (T.conChar T.mkNoSrcPos p ' '))
        (T.fromExpList T.mkNoSrcPos p
          [T.fromLitString T.mkNoSrcPos p "NUL"
            ,T.fromLitString T.mkNoSrcPos p "SOH"
            ,T.fromLitString T.mkNoSrcPos p "STX"
            ,T.fromLitString T.mkNoSrcPos p "ETX"
            ,T.fromLitString T.mkNoSrcPos p "EOT"
            ,T.fromLitString T.mkNoSrcPos p "ENQ"
            ,T.fromLitString T.mkNoSrcPos p "ACK"
            ,T.fromLitString T.mkNoSrcPos p "BEL"
            ,T.fromLitString T.mkNoSrcPos p "BS"
            ,T.fromLitString T.mkNoSrcPos p "HT"
            ,T.fromLitString T.mkNoSrcPos p "LF"
            ,T.fromLitString T.mkNoSrcPos p "VT"
            ,T.fromLitString T.mkNoSrcPos p "FF"
            ,T.fromLitString T.mkNoSrcPos p "CR"
            ,T.fromLitString T.mkNoSrcPos p "SO"
            ,T.fromLitString T.mkNoSrcPos p "SI"
            ,T.fromLitString T.mkNoSrcPos p "DLE"
            ,T.fromLitString T.mkNoSrcPos p "DC1"
            ,T.fromLitString T.mkNoSrcPos p "DC2"
            ,T.fromLitString T.mkNoSrcPos p "DC3"
            ,T.fromLitString T.mkNoSrcPos p "DC4"
            ,T.fromLitString T.mkNoSrcPos p "NAK"
            ,T.fromLitString T.mkNoSrcPos p "SYN"
            ,T.fromLitString T.mkNoSrcPos p "ETB"
            ,T.fromLitString T.mkNoSrcPos p "CAN"
            ,T.fromLitString T.mkNoSrcPos p "EM"
            ,T.fromLitString T.mkNoSrcPos p "SUB"
            ,T.fromLitString T.mkNoSrcPos p "ESC"
            ,T.fromLitString T.mkNoSrcPos p "FS"
            ,T.fromLitString T.mkNoSrcPos p "GS"
            ,T.fromLitString T.mkNoSrcPos p "RS"
            ,T.fromLitString T.mkNoSrcPos p "US"
            ,T.fromLitString T.mkNoSrcPos p "SP"]))

glexLitChar :: T.RefSrcPos -> T.RefExp -> T.R (ReadS String)

hlexLitChar :: (T.R (ReadS___1 String)) -> T.RefExp -> T.R (ReadS___2 String)

glexLitChar plexLitChar p = T.ufun1 alexLitChar plexLitChar p hlexLitChar

hlexLitChar (T.R (T.Cons (T.R '\\' _) fs) _) p =
  T.uap1 T.mkNoSrcPos p
    (T.uap2 T.mkNoSrcPos p (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 fesc ft) _) p =
                T.uap1 T.mkNoSrcPos p
                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                      (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                        (T.conChar T.mkNoSrcPos p '\\') fesc) ft)) f_y
              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
            f_x)) (T.uwrapForward p (hlexEsc fs p)))
    (T.fromExpList T.mkNoSrcPos p [])
  where
  
  glexEsc plexEsc p = T.ufun1 a2829v11v2834v57lexEsc plexEsc p hlexEsc
  
  alexEsc = a2829v11v2834v57lexEsc
  
  hlexEsc (z1lexEsc@(T.R (T.Cons fc fs) _)) p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fc
        (T.fromLitString T.mkNoSrcPos p "abfnrtv\\\"'"))
      (T.fromExpList T.mkNoSrcPos p
        [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.fromExpList T.mkNoSrcPos p [fc]) fs]) (y1lexEsc z1lexEsc p)
  hlexEsc z1lexEsc p = y1lexEsc z1lexEsc p
  
  y1lexEsc (fs@(T.R (T.Cons fd _) _)) p =
    T.ucguard (T.uwrapForward p (hisDigit fd p))
      (T.uap1 T.mkNoSrcPos p (glexDigits T.mkNoSrcPos p) fs) (y2lexEsc fs p)
  y1lexEsc fs p = y2lexEsc fs p
  
  y2lexEsc (z1lexEsc@(T.R (T.Cons (T.R '^' _) (T.R (T.Cons fc fs) _)) _)) p =
    T.ucguard
      (T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fc
              (T.conChar T.mkNoSrcPos p '@'))
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fc
              (T.conChar T.mkNoSrcPos p '_'))) p))
      (T.fromExpList T.mkNoSrcPos p
        [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.fromExpList T.mkNoSrcPos p [T.conChar T.mkNoSrcPos p '^',fc])
            fs]) (y3lexEsc z1lexEsc p)
  y2lexEsc z1lexEsc p = y3lexEsc z1lexEsc p
  
  y3lexEsc (fs@(T.R (T.Cons fc _) _)) p =
    T.ucguard (T.uwrapForward p (hisUpper fc p))
      (T.fromExpList T.mkNoSrcPos p
        [T.uwrapForward p (hspan (gisCharName T.mkNoSrcPos p) fs p)])
      (y4lexEsc fs p)
  y3lexEsc fs p = y4lexEsc fs p
  
  y4lexEsc _ p = T.con0 T.mkNoSrcPos p T.List T.aList
  
  gisCharName pisCharName p =
    T.ufun1 a2835v11v2835v47isCharName pisCharName p hisCharName
  
  aisCharName = a2835v11v2835v47isCharName
  
  hisCharName fc p =
    T.uwrapForward p
      (((T.uwrapForward p (hisUpper fc p))
          *||
          (T.uwrapForward p (hisDigit fc p))) p)
  
hlexLitChar (T.R (T.Cons fc fs) _) p =
  T.fromExpList T.mkNoSrcPos p
    [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.fromExpList T.mkNoSrcPos p [fc]) fs]
hlexLitChar (T.R T.List _) p = T.con0 T.mkNoSrcPos p T.List T.aList
hlexLitChar _ p = T.fatal p

gfromRat :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun Rational a)

hfromRat :: RealFloat a => (T.R Rational) -> T.RefExp -> T.R a

gfromRat pfromRat p = T.ufun1 afromRat pfromRat p hfromRat

hfromRat fx p =
  T.ucif p
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)))
    (T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p)
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)))
    (T.ucif p
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)))
      (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
        (T.uwrapForward p
          (hfromRat' (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx) p)))
      (T.uwrapForward p (hfromRat' fx p)))

gfromRat' :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun Rational a)

hfromRat' :: RealFloat a => (T.R Rational) -> T.RefExp -> T.R a

gfromRat' pfromRat' p = T.ufun1 afromRat' pfromRat' p hfromRat'

hfromRat' fx p =
  gr T.mkNoSrcPos p
  where
  
  gb pb p = T.uconstUse pb p sb
  
  sb =
    T.uconstDef p a2874v9v2874v24b
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) (gr T.mkNoSrcPos p))
  
  gp pp p = T.uconstUse pp p sp
  
  sp =
    T.uconstDef p a2875v9v2875v25p
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gfloatDigits T.mkNoSrcPos p) (gr T.mkNoSrcPos p))
  
  gminExp0 pminExp0 p = T.uconstUse pminExp0 p sminExp0
  
  j2876v9v2876v20minExp0 =
    case
      T.uap1 T.mkNoSrcPos p (gfloatRange T.mkNoSrcPos p) (gr T.mkNoSrcPos p) of
      T.R (T.Tuple2 fminExp0 _) kminExp0 -> (kminExp0,fminExp0)
      _ -> T.fatal p
  
  sminExp0 =
    T.uconstDef p a2876v10v2876v16minExp0
      (\ _ -> case j2876v9v2876v20minExp0 of (kminExp0,fminExp0) -> fminExp0)
  
  gminExp pminExp p = T.uconstUse pminExp p sminExp
  
  sminExp =
    T.uconstDef p a2877v9v2877v28minExp
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gminExp0 T.mkNoSrcPos p)
          (gp T.mkNoSrcPos p))
  
  gxMin pxMin p = T.uconstUse pxMin p sxMin
  
  sxMin =
    T.uconstDef p a2878v9v2878v38xMin
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gtoRational T.mkNoSrcPos p)
          (T.uwrapForward p
            (hexpt (gb T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gp T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) p)))
  
  gxMax pxMax p = T.uconstUse pxMax p sxMax
  
  sxMax =
    T.uconstDef p a2879v9v2879v35xMax
      (\ p ->
        T.uap1 T.mkNoSrcPos p (gtoRational T.mkNoSrcPos p)
          (T.uwrapForward p (hexpt (gb T.mkNoSrcPos p) (gp T.mkNoSrcPos p) p)))
  
  gp0 pp0 p = T.uconstUse pp0 p sp0
  
  sp0 =
    T.uconstDef p a2880v9v2881v64p0
      (\ p ->
        T.uap2 T.mkNoSrcPos p (gmax T.mkNoSrcPos p)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
              (T.uwrapForward p
                (hintegerLogBase (gb T.mkNoSrcPos p)
                  (T.uwrapForward p (hnumerator fx p)) p))
              (T.uwrapForward p
                (hintegerLogBase (gb T.mkNoSrcPos p)
                  (T.uwrapForward p (hdenominator fx p)) p)))
            (gp T.mkNoSrcPos p)) (gminExp T.mkNoSrcPos p))
  
  gf pf p = T.uconstUse pf p sf
  
  sf =
    T.uconstDef p a2882v9v2882v62f
      (\ p ->
        T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) (gp0 T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          (T.uwrapForward p
            (((T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))
                *%
                (T.uwrapForward p
                  (hexpt (gb T.mkNoSrcPos p)
                    (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                      (gp0 T.mkNoSrcPos p)) p))) p))
          (T.uwrapForward p
            (((T.uwrapForward p
                  (hexpt (gb T.mkNoSrcPos p) (gp0 T.mkNoSrcPos p) p))
                *%
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) p)))
  
  gx' px' p = T.uconstUse px' p sx'
  
  gp' px' p = T.uconstUse px' p sp'
  
  j2883v9v2883v16x' =
    case
      T.uap6 T.mkNoSrcPos p (gscaleRat T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (gtoRational T.mkNoSrcPos p) (gb T.mkNoSrcPos p))
        (gminExp T.mkNoSrcPos p) (gxMin T.mkNoSrcPos p) (gxMax T.mkNoSrcPos p)
        (gp0 T.mkNoSrcPos p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fx (gf T.mkNoSrcPos p)) of
      T.R (T.Tuple2 fx' fp') kx' -> (kx',fx',fp')
      _ -> T.fatal p
  
  sx' =
    T.uconstDef p a2883v10v2883v11x'
      (\ _ -> case j2883v9v2883v16x' of (kx',fx',fp') -> fx')
  
  sp' =
    T.uconstDef p a2883v14v2883v15p'
      (\ _ -> case j2883v9v2883v16x' of (kx',fx',fp') -> fp')
  
  gr pr p = T.uconstUse pr p sr
  
  sr =
    T.uconstDef p a2884v9v2884v37r
      (\ p ->
        T.uap2 T.mkNoSrcPos p (gencodeFloat T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (ground T.mkNoSrcPos p) (gx' T.mkNoSrcPos p))
          (gp' T.mkNoSrcPos p))
  

gscaleRat ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun Rational
          (T.Fun Int
            (T.Fun Rational
              (T.Fun Rational
                (T.Fun Int (T.Fun Rational (T.Tuple2 Rational Int)))))))

hscaleRat ::
  (T.R Rational) ->
    (T.R Int) ->
      (T.R Rational) ->
        (T.R Rational) ->
          (T.R Int) -> (T.R Rational) -> T.RefExp -> T.R (T.Tuple2 Rational Int)

gscaleRat pscaleRat p = T.ufun6 ascaleRat pscaleRat p hscaleRat

hscaleRat fb fminExp fxMin fxMax fp fx p =
  T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fp fminExp)
    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fx fp)
    (T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fx fxMax)
      (T.uap6 T.mkNoSrcPos p (gscaleRat T.mkNoSrcPos p) fb fminExp fxMin fxMax
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fp
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p) fx fb))
      (T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx fxMin)
        (T.uap6 T.mkNoSrcPos p (gscaleRat T.mkNoSrcPos p) fb fminExp fxMin fxMax
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fp
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fb))
        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fx fp)))

gminExpt pminExpt p = T.uconstUse pminExpt p sminExpt

sminExpt =
  T.uconstDef T.mkRoot aminExpt
    (\ p ->
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)
        :: T.R Int)

gmaxExpt pmaxExpt p = T.uconstUse pmaxExpt p smaxExpt

smaxExpt =
  T.uconstDef T.mkRoot amaxExpt
    (\ p ->
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1100)
        :: T.R Int)

gexpt :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Integer (T.Fun Int Integer))

hexpt :: (T.R Integer) -> (T.R Int) -> T.RefExp -> T.R Integer

gexpt pexpt p = T.ufun2 aexpt pexpt p hexpt

hexpt fbase fn p =
  T.ucif p
    (T.uwrapForward p
      (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fbase
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 2)))
          *&&
          (T.uwrapForward p
            (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fn
                  (gminExpt T.mkNoSrcPos p))
                *&&
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p) fn
                  (gmaxExpt T.mkNoSrcPos p))) p))) p))
    (T.uwrapForward p
      (((gexpts T.mkNoSrcPos p)
          *!!
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fn
            (gminExpt T.mkNoSrcPos p))) p)) (T.uwrapForward p ((fbase *^ fn) p))

gexpts :: T.RefSrcPos -> T.RefExp -> T.R (T.List Integer)

sexpts :: T.R (T.List Integer)

gexpts pexpts p = T.uconstUse pexpts p sexpts

sexpts =
  T.uconstDef T.mkRoot aexpts
    (\ p ->
      T.uap1 T.mkNoSrcPos p
        (T.uap2 T.mkNoSrcPos p (g_foldr T.mkNoSrcPos p)
          (T.ufun2 T.mkLambda T.mkNoSrcPos p
            (\ f_x f_y p ->
              T.uccase T.mkNoSrcPos p
                (let
                  v0v0v0v0v1 fn p =
                    T.uap1 T.mkNoSrcPos p
                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                        (T.uwrapForward p
                          (((T.uap1 T.mkNoSrcPos p
                                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                                (T.conInteger T.mkNoSrcPos p 2))
                              *^
                              fn) p))) f_y
                  v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                  (v0v0v0v0v1)) f_x))
          (T.uap2 T.mkNoSrcPos p (genumFromTo T.mkNoSrcPos p)
            (gminExpt T.mkNoSrcPos p) (gmaxExpt T.mkNoSrcPos p)))
        (T.fromExpList T.mkNoSrcPos p []))

gintegerLogBase ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun Integer (T.Fun Integer Int))

hintegerLogBase :: (T.R Integer) -> (T.R Integer) -> T.RefExp -> T.R Int

gintegerLogBase pintegerLogBase p =
  T.ufun2 aintegerLogBase pintegerLogBase p hintegerLogBase

hintegerLogBase fb fi p =
  T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fi fb)
    (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
      (T.conInteger T.mkNoSrcPos p 0))
    (let
      gl pl p = T.uconstUse pl p sl
      sl =
        T.uconstDef p a2922v13v2922v42l
          (\ 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 2))
              (T.uwrapForward p
                (hintegerLogBase
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fb fb) fi p)))
      gdoDiv :: T.RefSrcPos -> T.RefExp -> T.R (T.Fun Integer (T.Fun Int Int))
      hdoDiv :: (T.R Integer) -> (T.R Int) -> T.RefExp -> T.R Int
      gdoDiv pdoDiv p = T.ufun2 a2924v13v2924v67doDiv pdoDiv p hdoDiv
      adoDiv = a2924v13v2924v67doDiv
      hdoDiv fi fl p =
        T.ucif p (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fi fb)
          (T.projection T.mkNoSrcPos p fl)
          (T.uwrapForward p
            (hdoDiv (T.uap2 T.mkNoSrcPos p (gdiv T.mkNoSrcPos p) fi fb)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fl
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) p)) in
      (T.uwrapForward p
        (hdoDiv
          (T.uap2 T.mkNoSrcPos p (gdiv T.mkNoSrcPos p) fi
            (T.uwrapForward p ((fb *^ (gl T.mkNoSrcPos p)) p)))
          (gl T.mkNoSrcPos p) p)))

gshowSigned ::
  Real a =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun (T.Fun a ShowS) (T.Fun Int (T.Fun a ShowS)))

hshowSigned ::
  Real a =>
  (T.R (T.Fun a ShowS)) -> (T.R Int) -> (T.R a) -> T.RefExp -> T.R ShowS

gshowSigned pshowSigned p = T.ufun3 ashowSigned pshowSigned p hshowSigned

hshowSigned fshowPos fp fx p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0)))
    (T.uwrapForward p
      (hshowParen
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fp
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 6)))
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
          (T.uap1 T.mkNoSrcPos p (gshowChar T.mkNoSrcPos p)
            (T.conChar T.mkNoSrcPos p '-'))
          (T.uap1 T.mkNoSrcPos p fshowPos
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx))) p))
    (T.ucguard (gotherwise T.mkNoSrcPos p) (T.uap1 T.mkNoSrcPos p fshowPos fx)
      (T.fatal p))

gshowInt,gshowOct,gshowHex ::
  Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a ShowS)

sshowInt,sshowOct,sshowHex :: Integral a => T.R (T.Fun a ShowS)

gshowOct pshowOct p = T.uconstUse pshowOct p sshowOct

sshowOct =
  T.uconstDef T.mkRoot ashowOct
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gshowIntAtBase T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 8)) (gintToDigit T.mkNoSrcPos p))

gshowInt pshowInt p = T.uconstUse pshowInt p sshowInt

sshowInt =
  T.uconstDef T.mkRoot ashowInt
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gshowIntAtBase T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 10)) (gintToDigit T.mkNoSrcPos p))

gshowHex pshowHex p = T.uconstUse pshowHex p sshowHex

sshowHex =
  T.uconstDef T.mkRoot ashowHex
    (\ p ->
      T.uap2 T.mkNoSrcPos p (gshowIntAtBase T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 16)) (gintToDigit T.mkNoSrcPos p))

gshowIntAtBase ::
  Integral a =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun a (T.Fun (T.Fun Int Char) (T.Fun a ShowS)))

hshowIntAtBase ::
  Integral a =>
  (T.R a) ->
    (T.R (T.Fun Int Char)) ->
      (T.R a) -> (T.R ShowS___1) -> T.RefExp -> T.R ShowS___2

gshowIntAtBase pshowIntAtBase p =
  T.ufun4 ashowIntAtBase pshowIntAtBase p hshowIntAtBase

hshowIntAtBase fbase fintToDig fn frest 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
      (herror
        (T.fromLitString T.mkNoSrcPos p
          "Numeric.showIntAtBase: can't show negative numbers") p))
    (T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gn' T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (grest' T.mkNoSrcPos p)
      (T.ucguard (gotherwise T.mkNoSrcPos p)
        (T.uwrapForward p
          (hshowIntAtBase fbase fintToDig (gn' T.mkNoSrcPos p)
            (grest' T.mkNoSrcPos p) p)) (T.fatal p)))
  where
  
  gn' pn' p = T.uconstUse pn' p sn'
  
  gd pn' p = T.uconstUse pn' p sd
  
  j2951v5v2951v10n' =
    case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn fbase of
      T.R (T.Tuple2 fn' fd) kn' -> (kn',fn',fd)
      _ -> T.fatal p
  
  sn' =
    T.uconstDef p a2951v6v2951v7n'
      (\ _ -> case j2951v5v2951v10n' of (kn',fn',fd) -> fn')
  
  sd =
    T.uconstDef p a2951v9v2951v9d
      (\ _ -> case j2951v5v2951v10n' of (kn',fn',fd) -> fd)
  
  grest' prest' p = T.uconstUse prest' p srest'
  
  srest' =
    T.uconstDef p a2952v5v2952v45rest'
      (\ p ->
        T.con2 T.mkNoSrcPos p T.Cons T.aCons
          (T.uap1 T.mkNoSrcPos p fintToDig
            (T.uap1 T.mkNoSrcPos p (gfromIntegral T.mkNoSrcPos p)
              (gd T.mkNoSrcPos p))) frest)
  

greadSigned ::
  Real a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (ReadS a) (ReadS a))

hreadSigned :: Real a => (T.R (ReadS a)) -> T.RefExp -> T.R (ReadS a)

greadSigned preadSigned p = T.ufun1 areadSigned preadSigned p hreadSigned

hreadSigned freadPos p =
  T.uwrapForward p
    (hreadParen (T.con0 T.mkNoSrcPos p False aFalse) (gread' T.mkNoSrcPos p) p)
  where
  
  gread' pread' p = T.ufun1 a2956v28v2956v46read' pread' p hread'
  
  aread' = a2956v28v2956v46read'
  
  hread' fr p =
    T.uwrapForward p
      (((T.uwrapForward p (hread'' fr p))
          *++
          (T.uap1 T.mkNoSrcPos p
            (T.uap2 T.mkNoSrcPos p (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 (T.R (T.Cons (T.R '-' _) (T.R T.List _)) _)
                            fs) _) p =
                        T.uap1 T.mkNoSrcPos p
                          (T.uap2 T.mkNoSrcPos p (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 ft) _) p =
                                      T.uap1 T.mkNoSrcPos p
                                        (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p
                                          T.aCons
                                          (T.con2 T.mkNoSrcPos p T.Tuple2
                                            T.aTuple2
                                            (T.uap1 T.mkNoSrcPos p
                                              (gnegate T.mkNoSrcPos p) fx) ft))
                                        f_y
                                    v0v0v0v0v1 _ p =
                                      T.projection T.mkNoSrcPos p f_y in
                                    (v0v0v0v0v1)) f_x))
                            (T.uwrapForward p (hread'' fs p))) f_y
                      v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                      (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
            (T.fromExpList T.mkNoSrcPos p []))) p)
  
  gread'' pread'' p = T.ufun1 a2959v28v2959v33read'' pread'' p hread''
  
  aread'' = a2959v28v2959v33read''
  
  hread'' fr p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fstr fs) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 fn (T.R T.List _)) _)
                                p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fn
                                      fs)) f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uap1 T.mkNoSrcPos p freadPos fstr)) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
      (T.fromExpList T.mkNoSrcPos p [])
  

greadInt ::
  Integral a =>
  T.RefSrcPos ->
    T.RefExp ->
      T.R (T.Fun a (T.Fun (T.Fun Char Bool) (T.Fun (T.Fun Char Int) (ReadS a))))

hreadInt ::
  Integral a =>
  (T.R a) ->
    (T.R (T.Fun Char Bool)) ->
      (T.R (T.Fun Char Int)) ->
        (T.R (ReadS___1 a)) -> T.RefExp -> T.R (ReadS___2 a)

greadInt preadInt p = T.ufun4 areadInt preadInt p hreadInt

hreadInt fradix fisDig fdigToInt fs p =
  T.uap1 T.mkNoSrcPos p
    (T.uap2 T.mkNoSrcPos p (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 fds fr) _) p =
                T.uap1 T.mkNoSrcPos p
                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                      (T.uwrapForward p
                        (hfoldl1
                          (T.ufun2 T.mkLambda T.mkNoSrcPos p
                            (\ fn fd p ->
                              T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fn
                                  fradix) fd))
                          (T.uwrapForward p
                            (hmap
                              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
                                (gfromIntegral T.mkNoSrcPos p) fdigToInt) fds
                              p)) p)) fr)) f_y
              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
            f_x)) (T.uwrapForward p (hnonnull fisDig fs p)))
    (T.fromExpList T.mkNoSrcPos p [])

greadDec,greadOct,greadHex ::
  Integral a => T.RefSrcPos -> T.RefExp -> T.R (ReadS a)

sreadDec,sreadOct,sreadHex :: Integral a => T.R (ReadS a)

greadDec preadDec p = T.uconstUse preadDec p sreadDec

sreadDec =
  T.uconstDef T.mkRoot areadDec
    (\ p ->
      T.uap3 T.mkNoSrcPos p (greadInt T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 10)) (gisDigit T.mkNoSrcPos p)
        (gdigitToInt T.mkNoSrcPos p))

greadOct preadOct p = T.uconstUse preadOct p sreadOct

sreadOct =
  T.uconstDef T.mkRoot areadOct
    (\ p ->
      T.uap3 T.mkNoSrcPos p (greadInt T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 8)) (gisOctDigit T.mkNoSrcPos p)
        (gdigitToInt T.mkNoSrcPos p))

greadHex preadHex p = T.uconstUse preadHex p sreadHex

sreadHex =
  T.uconstDef T.mkRoot areadHex
    (\ p ->
      T.uap3 T.mkNoSrcPos p (greadInt T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 16)) (gisHexDigit T.mkNoSrcPos p)
        (gdigitToInt T.mkNoSrcPos p))

gshowEFloat ::
  RealFloat a =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Maybe Int) (T.Fun a ShowS))

hshowEFloat ::
  RealFloat a => (T.R (Maybe Int)) -> (T.R a) -> T.RefExp -> T.R ShowS

gshowFFloat ::
  RealFloat a =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Maybe Int) (T.Fun a ShowS))

hshowFFloat ::
  RealFloat a => (T.R (Maybe Int)) -> (T.R a) -> T.RefExp -> T.R ShowS

gshowGFloat ::
  RealFloat a =>
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Maybe Int) (T.Fun a ShowS))

hshowGFloat ::
  RealFloat a => (T.R (Maybe Int)) -> (T.R a) -> T.RefExp -> T.R ShowS

gshowFloat :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a ShowS)

sshowFloat :: RealFloat a => T.R (T.Fun a ShowS)

gshowEFloat pshowEFloat p = T.ufun2 ashowEFloat pshowEFloat p hshowEFloat

hshowEFloat fd fx p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.uwrapForward p
      (hformatRealFloat (T.con0 T.mkNoSrcPos p FFExponent aFFExponent) fd fx p))

gshowFFloat pshowFFloat p = T.ufun2 ashowFFloat pshowFFloat p hshowFFloat

hshowFFloat fd fx p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.uwrapForward p
      (hformatRealFloat (T.con0 T.mkNoSrcPos p FFFixed aFFFixed) fd fx p))

gshowGFloat pshowGFloat p = T.ufun2 ashowGFloat pshowGFloat p hshowGFloat

hshowGFloat fd fx p =
  T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
    (T.uwrapForward p
      (hformatRealFloat (T.con0 T.mkNoSrcPos p FFGeneric aFFGeneric) fd fx p))

gshowFloat pshowFloat p = T.uconstUse pshowFloat p sshowFloat

sshowFloat =
  T.uconstDef T.mkRoot ashowFloat
    (\ p ->
      T.uap1 T.mkNoSrcPos p (gshowGFloat T.mkNoSrcPos p)
        (T.con0 T.mkNoSrcPos p Nothing aNothing))

data FFFormat = FFExponent  | FFFixed  | FFGeneric 

instance T.WrapVal (FFFormat)
  where
  
  wrapVal pwrapVal (kwrapVal@FFExponent) p =
    T.R kwrapVal (T.mkValueUse p pwrapVal aFFExponent)
  wrapVal pwrapVal (kwrapVal@FFFixed) p =
    T.R kwrapVal (T.mkValueUse p pwrapVal aFFFixed)
  wrapVal pwrapVal (kwrapVal@FFGeneric) p =
    T.R kwrapVal (T.mkValueUse p pwrapVal aFFGeneric)
  

gformatRealFloat ::
  RealFloat a =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun FFFormat (T.Fun (Maybe Int) (T.Fun a String)))

hformatRealFloat ::
  RealFloat a =>
  (T.R FFFormat) -> (T.R (Maybe Int)) -> (T.R a) -> T.RefExp -> T.R String

gformatRealFloat pformatRealFloat p =
  T.ufun3 aformatRealFloat pformatRealFloat p hformatRealFloat

hformatRealFloat ffmt fdecs fx p =
  gs T.mkNoSrcPos p
  where
  
  gbase pbase p = T.uconstUse pbase p sbase
  
  sbase =
    T.uconstDef p a2996v5v2996v13base
      (\ p ->
        T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 10))
  
  gs ps p = T.uconstUse ps p ss
  
  ss =
    T.uconstDef p a2997v5v3004v55s
      (\ p ->
        T.ucif p (T.uap1 T.mkNoSrcPos p (gisNaN T.mkNoSrcPos p) fx)
          (T.fromLitString T.mkNoSrcPos p "NaN")
          (T.ucif p (T.uap1 T.mkNoSrcPos p (gisInfinite T.mkNoSrcPos p) fx)
            (T.ucif p
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 0)))
              (T.fromLitString T.mkNoSrcPos p "-Infinity")
              (T.fromLitString T.mkNoSrcPos p "Infinity"))
            (T.ucif p
              (T.uwrapForward p
                (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fx
                      (T.uap1 T.mkNoSrcPos p
                        (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                        (T.conInteger T.mkNoSrcPos p 0)))
                    *||
                    (T.uap1 T.mkNoSrcPos p (gisNegativeZero T.mkNoSrcPos p) fx))
                  p))
              (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                (T.conChar T.mkNoSrcPos p '-')
                (T.uwrapForward p
                  (hdoFmt ffmt
                    (T.uwrapForward p
                      (hfloatToDigits
                        (T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p)
                          (gbase T.mkNoSrcPos p))
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx) p))
                    p)))
              (T.uwrapForward p
                (hdoFmt ffmt
                  (T.uwrapForward p
                    (hfloatToDigits
                      (T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p)
                        (gbase T.mkNoSrcPos p)) fx p)) p)))))
  
  gdoFmt pdoFmt p = T.ufun2 a3006v5v3057v33doFmt pdoFmt p hdoFmt
  
  adoFmt = a3006v5v3057v33doFmt
  
  hdoFmt ffmt (T.R (T.Tuple2 fis fe) _) p =
    let
      gds pds p = T.uconstUse pds p sds
      sds =
        T.uconstDef p a3008v12v3008v33ds
          (\ p -> T.uwrapForward p (hmap (gintToDigit T.mkNoSrcPos p) fis p)) in
      (T.uccase T.mkNoSrcPos p
        (let
          v3010v9v3057v33v1 (T.R FFGeneric _) p =
            T.uwrapForward p
              (hdoFmt
                (T.ucif p
                  (T.uwrapForward p
                    (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fe
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 0)))
                        *||
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fe
                          (T.uap1 T.mkNoSrcPos p
                            (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                            (T.conInteger T.mkNoSrcPos p 7)))) p))
                  (T.con0 T.mkNoSrcPos p FFExponent aFFExponent)
                  (T.con0 T.mkNoSrcPos p FFFixed aFFFixed))
                (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fis fe) p)
          v3010v9v3057v33v1 (T.R FFExponent _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v3015v13v3030v55v1 (T.R Nothing _) p =
                  T.uccase T.mkNoSrcPos p
                    (let
                      v3017v17v3020v57v1 (T.R T.List _) p =
                        T.fromLitString T.mkNoSrcPos p "0.0e0"
                      v3017v17v3020v57v1 (T.R (T.Cons fd (T.R T.List _)) _) p =
                        T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
                          (T.uwrapForward p
                            (((T.fromLitString T.mkNoSrcPos p ".0e")
                                *++
                                (T.uap1 T.mkNoSrcPos p (gshow T.mkNoSrcPos p)
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fe
                                    (T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 1))))) p))
                      v3017v17v3020v57v1 (T.R (T.Cons fd fds) _) p =
                        T.con2 T.mkNoSrcPos p T.Cons T.aCons fd
                          (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                            (T.conChar T.mkNoSrcPos p '.')
                            (T.uwrapForward p
                              ((fds
                                  *++
                                  (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                                    (T.conChar T.mkNoSrcPos p 'e')
                                    (T.uap1 T.mkNoSrcPos p
                                      (gshow T.mkNoSrcPos p)
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                                        fe
                                        (T.uap1 T.mkNoSrcPos p
                                          (Hat.PreludeBasic.gfromInteger
                                            T.mkNoSrcPos p)
                                          (T.conInteger T.mkNoSrcPos p 1))))))
                                p)))
                      v3017v17v3020v57v1 _ p = T.fatal p in
                      (v3017v17v3020v57v1)) (gds T.mkNoSrcPos p)
                v3015v13v3030v55v1 (T.R (Just fdec) _) p =
                  let
                    gdec' pdec' p = T.uconstUse pdec' p sdec'
                    sdec' =
                      T.uconstDef p a3023v21v3023v36dec'
                        (\ p ->
                          T.uap2 T.mkNoSrcPos p (gmax T.mkNoSrcPos p) fdec
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 1))) in
                    (T.uccase T.mkNoSrcPos p
                      (let
                        v3024v17v3030v55v1 (T.R T.List _) p =
                          T.con2 T.mkNoSrcPos p T.Cons T.aCons
                            (T.conChar T.mkNoSrcPos p '0')
                            (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                              (T.conChar T.mkNoSrcPos p '.')
                              (T.uwrapForward p
                                (((T.uwrapForward p
                                      (htake (gdec' T.mkNoSrcPos p)
                                        (T.uwrapForward p
                                          (hrepeat
                                            (T.conChar T.mkNoSrcPos p '0') p))
                                        p))
                                    *++
                                    (T.fromLitString T.mkNoSrcPos p "e0")) p)))
                        v3024v17v3030v55v1 _ p =
                          let
                            gei pei p = T.uconstUse pei p sei
                            gis' pei p = T.uconstUse pei p sis'
                            j3027v25v3027v33ei =
                              case
                                T.uwrapForward p
                                  (hroundTo (gbase T.mkNoSrcPos p)
                                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                                      (gdec' T.mkNoSrcPos p)
                                      (T.uap1 T.mkNoSrcPos p
                                        (Hat.PreludeBasic.gfromInteger
                                          T.mkNoSrcPos p)
                                        (T.conInteger T.mkNoSrcPos p 1))) fis
                                    p) of
                                T.R (T.Tuple2 fei fis') kei -> (kei,fei,fis')
                                _ -> T.fatal p
                            sei =
                              T.uconstDef p a3027v26v3027v27ei
                                (\ _ ->
                                  case j3027v25v3027v33ei of
                                    (kei,fei,fis') -> fei)
                            sis' =
                              T.uconstDef p a3027v30v3027v32is'
                                (\ _ ->
                                  case j3027v25v3027v33ei of
                                    (kei,fei,fis') -> fis')
                            gd pd p = T.uconstUse pd p sd
                            gds pd p = T.uconstUse pd p sds
                            j3028v25v3028v28d =
                              case
                                T.uwrapForward p
                                  (hmap (gintToDigit T.mkNoSrcPos p)
                                    (T.ucif p
                                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p)
                                        (gei T.mkNoSrcPos p)
                                        (T.uap1 T.mkNoSrcPos p
                                          (Hat.PreludeBasic.gfromInteger
                                            T.mkNoSrcPos p)
                                          (T.conInteger T.mkNoSrcPos p 0)))
                                      (T.uwrapForward p
                                        (hinit (gis' T.mkNoSrcPos p) p))
                                      (gis' T.mkNoSrcPos p)) p) of
                                T.R (T.Cons fd fds) kd -> (kd,fd,fds)
                                _ -> T.fatal p
                            sd =
                              T.uconstDef p a3028v25v3028v25d
                                (\ _ ->
                                  case j3028v25v3028v28d of (kd,fd,fds) -> fd)
                            sds =
                              T.uconstDef p a3028v27v3028v28ds
                                (\ _ ->
                                  case j3028v25v3028v28d of (kd,fd,fds) -> fds)
                            in
                            (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                              (gd T.mkNoSrcPos p)
                              (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                                (T.conChar T.mkNoSrcPos p '.')
                                (T.uwrapForward p
                                  (((gds T.mkNoSrcPos p)
                                      *++
                                      (T.uwrapForward p
                                        (((T.fromLitString T.mkNoSrcPos p "e")
                                            *++
                                            (T.uap1 T.mkNoSrcPos p
                                              (gshow T.mkNoSrcPos p)
                                              (T.uap2 T.mkNoSrcPos p
                                                (T.mkNoSrcPos !+ p)
                                                (T.uap2 T.mkNoSrcPos p
                                                  (T.mkNoSrcPos !- p) fe
                                                  (T.uap1 T.mkNoSrcPos p
                                                    (Hat.PreludeBasic.gfromInteger
                                                      T.mkNoSrcPos p)
                                                    (T.conInteger T.mkNoSrcPos p
                                                      1)))
                                                (gei T.mkNoSrcPos p)))) p)))
                                    p)))) in (v3024v17v3030v55v1)) fis)
                v3015v13v3030v55v1 _ p = T.fatal p in (v3015v13v3030v55v1))
              fdecs
          v3010v9v3057v33v1 (T.R FFFixed _) p =
            T.uccase T.mkNoSrcPos p
              (let
                v3033v13v3051v36v1 (T.R Nothing _) p =
                  T.ucguard
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fe
                      (T.uap1 T.mkNoSrcPos p
                        (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                        (T.conInteger T.mkNoSrcPos p 0)))
                    (T.uwrapForward p
                      (((T.uwrapForward p
                            (htake fe
                              (T.uwrapForward p
                                (((gds T.mkNoSrcPos p)
                                    *++
                                    (T.uwrapForward p
                                      (hrepeat (T.conChar T.mkNoSrcPos p '0')
                                        p))) p)) p))
                          *++
                          (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                            (T.conChar T.mkNoSrcPos p '.')
                            (T.uwrapForward p
                              (hmk0
                                (T.uwrapForward p
                                  (hdrop fe (gds T.mkNoSrcPos p) p)) p)))) p))
                    (T.ucguard (gotherwise T.mkNoSrcPos p)
                      (T.uwrapForward p
                        (((T.fromLitString T.mkNoSrcPos p "0.")
                            *++
                            (T.uwrapForward p
                              (hmk0
                                (T.uwrapForward p
                                  (((T.uwrapForward p
                                        (hreplicate
                                          (T.uap1 T.mkNoSrcPos p
                                            (gnegate T.mkNoSrcPos p) fe)
                                          (T.conChar T.mkNoSrcPos p '0') p))
                                      *++
                                      (gds T.mkNoSrcPos p)) p)) p))) p))
                      (T.fatal p))
                v3033v13v3051v36v1 (T.R (Just fdec) _) p =
                  let
                    gdec' pdec' p = T.uconstUse pdec' p sdec'
                    sdec' =
                      T.uconstDef p a3040v22v3040v37dec'
                        (\ p ->
                          T.uap2 T.mkNoSrcPos p (gmax T.mkNoSrcPos p) fdec
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 0))) in
                    (T.ucif p
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fe
                        (T.uap1 T.mkNoSrcPos p
                          (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                          (T.conInteger T.mkNoSrcPos p 0)))
                      (let
                        gei pei p = T.uconstUse pei p sei
                        gis' pei p = T.uconstUse pei p sis'
                        j3042v24v3042v32ei =
                          case
                            T.uwrapForward p
                              (hroundTo (gbase T.mkNoSrcPos p)
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                                  (gdec' T.mkNoSrcPos p) fe) fis p) of
                            T.R (T.Tuple2 fei fis') kei -> (kei,fei,fis')
                            _ -> T.fatal p
                        sei =
                          T.uconstDef p a3042v25v3042v26ei
                            (\ _ ->
                              case j3042v24v3042v32ei of (kei,fei,fis') -> fei)
                        sis' =
                          T.uconstDef p a3042v29v3042v31is'
                            (\ _ ->
                              case j3042v24v3042v32ei of (kei,fei,fis') -> fis')
                        gls pls p = T.uconstUse pls p sls
                        grs pls p = T.uconstUse pls p srs
                        j3043v24v3043v31ls =
                          case
                            T.uwrapForward p
                              (hsplitAt
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fe
                                  (gei T.mkNoSrcPos p))
                                (T.uwrapForward p
                                  (hmap (gintToDigit T.mkNoSrcPos p)
                                    (gis' T.mkNoSrcPos p) p)) p) of
                            T.R (T.Tuple2 fls frs) kls -> (kls,fls,frs)
                            _ -> T.fatal p
                        sls =
                          T.uconstDef p a3043v25v3043v26ls
                            (\ _ ->
                              case j3043v24v3043v31ls of (kls,fls,frs) -> fls)
                        srs =
                          T.uconstDef p a3043v29v3043v30rs
                            (\ _ ->
                              case j3043v24v3043v31ls of (kls,fls,frs) -> frs)
                        in
                        (T.uwrapForward p
                          (((T.uwrapForward p (hmk0 (gls T.mkNoSrcPos p) p))
                              *++
                              (T.uwrapForward p
                                (hmkdot0 (grs T.mkNoSrcPos p) p))) p)))
                      (let
                        gei pei p = T.uconstUse pei p sei
                        gis' pei p = T.uconstUse pei p sis'
                        j3047v24v3047v32ei =
                          case
                            T.uwrapForward p
                              (hroundTo (gbase T.mkNoSrcPos p)
                                (gdec' T.mkNoSrcPos p)
                                (T.uwrapForward p
                                  (((T.uwrapForward p
                                        (hreplicate
                                          (T.uap1 T.mkNoSrcPos p
                                            (gnegate T.mkNoSrcPos p) fe)
                                          (T.uap1 T.mkNoSrcPos p
                                            (Hat.PreludeBasic.gfromInteger
                                              T.mkNoSrcPos p)
                                            (T.conInteger T.mkNoSrcPos p 0)) p))
                                      *++
                                      fis) p)) p) of
                            T.R (T.Tuple2 fei fis') kei -> (kei,fei,fis')
                            _ -> T.fatal p
                        sei =
                          T.uconstDef p a3047v25v3047v26ei
                            (\ _ ->
                              case j3047v24v3047v32ei of (kei,fei,fis') -> fei)
                        sis' =
                          T.uconstDef p a3047v29v3047v31is'
                            (\ _ ->
                              case j3047v24v3047v32ei of (kei,fei,fis') -> fis')
                        gd pd p = T.uconstUse pd p sd
                        gds pd p = T.uconstUse pd p sds
                        j3049v24v3049v29d =
                          case
                            T.uwrapForward p
                              (hmap (gintToDigit T.mkNoSrcPos p)
                                (T.ucif p
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p)
                                    (gei T.mkNoSrcPos p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 0)))
                                  (gis' T.mkNoSrcPos p)
                                  (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                                    (T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 0))
                                    (gis' T.mkNoSrcPos p))) p) of
                            T.R (T.Cons fd fds) kd -> (kd,fd,fds)
                            _ -> T.fatal p
                        sd =
                          T.uconstDef p a3049v24v3049v24d
                            (\ _ -> case j3049v24v3049v29d of (kd,fd,fds) -> fd)
                        sds =
                          T.uconstDef p a3049v28v3049v29ds
                            (\ _ ->
                              case j3049v24v3049v29d of (kd,fd,fds) -> fds) in
                        (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                          (gd T.mkNoSrcPos p)
                          (T.uwrapForward p (hmkdot0 (gds T.mkNoSrcPos p) p)))))
                v3033v13v3051v36v1 _ p = T.fatal p in (v3033v13v3051v36v1))
              fdecs
            where
            
            gmk0 pmk0 p = T.ufun1 a3053v15v3054v24mk0 pmk0 p hmk0
            
            amk0 = a3053v15v3054v24mk0
            
            hmk0 (T.R T.List _) p = T.fromLitString T.mkNoSrcPos p "0"
            hmk0 fs p = T.projection T.mkNoSrcPos p fs
            
            gmkdot0 pmkdot0 p = T.ufun1 a3056v15v3057v33mkdot0 pmkdot0 p hmkdot0
            
            amkdot0 = a3056v15v3057v33mkdot0
            
            hmkdot0 (T.R T.List _) p = T.fromLitString T.mkNoSrcPos p ""
            hmkdot0 fs p =
              T.con2 T.mkNoSrcPos p T.Cons T.aCons
                (T.conChar T.mkNoSrcPos p '.') fs
            
          v3010v9v3057v33v1 _ p = T.fatal p in (v3010v9v3057v33v1)) ffmt)
  hdoFmt _ _ p = T.fatal p
  

groundTo ::
  T.RefSrcPos ->
    T.RefExp ->
      T.R
        (T.Fun Int (T.Fun Int (T.Fun (T.List Int) (T.Tuple2 Int (T.List Int)))))

hroundTo ::
  (T.R Int) ->
    (T.R Int) ->
      (T.R (T.List Int)) -> T.RefExp -> T.R (T.Tuple2 Int (T.List Int))

groundTo proundTo p = T.ufun3 aroundTo proundTo p hroundTo

hroundTo fbase fd fis p =
  T.uccase T.mkNoSrcPos p
    (let
      v3062v21v3064v38v1
        (v3062v21v3064v38v2@(T.R (T.Tuple2 fv3063v18v3063v18n fis) _)) p =
        T.ucguard
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv3063v18v3063v18n
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0))) (h fis p)
          (v3062v21v3064v38v3 v3062v21v3064v38v2 p)
        where
        
        h fis p =
          T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)) fis
        h _ p = v3062v21v3064v38v3 v3062v21v3064v38v2 p
        
      v3062v21v3064v38v1 v3062v21v3064v38v2 p =
        v3062v21v3064v38v3 v3062v21v3064v38v2 p
      v3062v21v3064v38v3 (T.R (T.Tuple2 fv3064v18v3064v18n fis) _) p =
        T.ucguard
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv3064v18v3064v18n
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1))) (h fis p) (T.fatal p)
        where
        
        h fis p =
          T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1))
            (T.con2 T.mkNoSrcPos p T.Cons T.aCons
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)) fis)
        h _ p = T.fatal p
        
      v3062v21v3064v38v3 _ p = T.fatal p in (v3062v21v3064v38v1))
    (T.uwrapForward p (hf fd fis p))
  where
  
  gb2 pb2 p = T.uconstUse pb2 p sb2
  
  sb2 =
    T.uconstDef p a3065v9v3065v25b2
      (\ p ->
        T.uap2 T.mkNoSrcPos p (gdiv T.mkNoSrcPos p) fbase
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 2)))
  
  gf pf p = T.ufun2 a3066v9v3071v60f pf p hf
  
  af = a3066v9v3071v60f
  
  hf fn (T.R T.List _) p =
    T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))
      (T.uwrapForward p
        (hreplicate fn
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)) p))
  hf fv3067v11v3067v11n v3067v14v3067v16n p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv3067v11v3067v11n
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0))) (h v3067v14v3067v16n p)
      (y1f fv3067v11v3067v11n v3067v14v3067v16n p)
    where
    
    h (T.R (T.Cons fi _) _) p =
      T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) fi (gb2 T.mkNoSrcPos p))
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)))
        (T.con0 T.mkNoSrcPos p T.List T.aList)
    h _ p = y1f fv3067v11v3067v11n v3067v14v3067v16n p
    
  hf fv3067v11v3067v11n v3067v14v3067v16n p =
    y1f fv3067v11v3067v11n v3067v14v3067v16n p
  
  y1f fd (T.R (T.Cons fi fis) _) p =
    let
      gc pc p = T.uconstUse pc p sc
      gds pc p = T.uconstUse pc p sds
      j3069v17v3069v23c =
        case
          T.uwrapForward p
            (hf
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fd
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) fis p) of
          T.R (T.Tuple2 fc fds) kc -> (kc,fc,fds)
          _ -> T.fatal p
      sc =
        T.uconstDef p a3069v18v3069v18c
          (\ _ -> case j3069v17v3069v23c of (kc,fc,fds) -> fc)
      sds =
        T.uconstDef p a3069v21v3069v22ds
          (\ _ -> case j3069v17v3069v23c of (kc,fc,fds) -> fds)
      gi' pi' p = T.uconstUse pi' p si'
      si' =
        T.uconstDef p a3070v17v3070v26i'
          (\ p ->
            T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gc T.mkNoSrcPos p) fi) in
      (T.ucif p
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gi' T.mkNoSrcPos p) fbase)
        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1))
          (T.con2 T.mkNoSrcPos p T.Cons T.aCons
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)) (gds T.mkNoSrcPos p)))
        (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (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 (gi' T.mkNoSrcPos p)
            (gds T.mkNoSrcPos p))))
  y1f _ _ p = T.fatal p
  

gfloatToDigits ::
  RealFloat a =>
  T.RefSrcPos ->
    T.RefExp -> T.R (T.Fun Integer (T.Fun a (T.Tuple2 (T.List Int) Int)))

hfloatToDigits ::
  RealFloat a =>
  (T.R Integer) -> (T.R a) -> T.RefExp -> T.R (T.Tuple2 (T.List Int) Int)

gfloatToDigits pfloatToDigits p =
  T.ufun2 afloatToDigits pfloatToDigits p hfloatToDigits

hfloatToDigits (z1floatToDigits@_) fv3088v17v3088v17n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv3088v17v3088v17n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h p)
    (y1floatToDigits z1floatToDigits fv3088v17v3088v17n p)
  where
  
  h p =
    T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
      (T.con0 T.mkNoSrcPos p T.List T.aList)
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))
  h p = y1floatToDigits z1floatToDigits fv3088v17v3088v17n p
  
hfloatToDigits z1floatToDigits fv3088v17v3088v17n p =
  y1floatToDigits z1floatToDigits fv3088v17v3088v17n p

y1floatToDigits fbase fx p =
  let
    gf0 pf0 p = T.uconstUse pf0 p sf0
    ge0 pf0 p = T.uconstUse pf0 p se0
    j3090v9v3090v16f0 =
      case T.uap1 T.mkNoSrcPos p (gdecodeFloat T.mkNoSrcPos p) fx of
        T.R (T.Tuple2 ff0 fe0) kf0 -> (kf0,ff0,fe0)
        _ -> T.fatal p
    sf0 =
      T.uconstDef p a3090v10v3090v11f0
        (\ _ -> case j3090v9v3090v16f0 of (kf0,ff0,fe0) -> ff0)
    se0 =
      T.uconstDef p a3090v14v3090v15e0
        (\ _ -> case j3090v9v3090v16f0 of (kf0,ff0,fe0) -> fe0)
    gminExp0 pminExp0 p = T.uconstUse pminExp0 p sminExp0
    j3091v9v3091v20minExp0 =
      case T.uap1 T.mkNoSrcPos p (gfloatRange T.mkNoSrcPos p) fx of
        T.R (T.Tuple2 fminExp0 _) kminExp0 -> (kminExp0,fminExp0)
        _ -> T.fatal p
    sminExp0 =
      T.uconstDef p a3091v10v3091v16minExp0
        (\ _ -> case j3091v9v3091v20minExp0 of (kminExp0,fminExp0) -> fminExp0)
    gp pp p = T.uconstUse pp p sp
    sp =
      T.uconstDef p a3092v9v3092v25p
        (\ p -> T.uap1 T.mkNoSrcPos p (gfloatDigits T.mkNoSrcPos p) fx)
    gb pb p = T.uconstUse pb p sb
    sb =
      T.uconstDef p a3093v9v3093v24b
        (\ p -> T.uap1 T.mkNoSrcPos p (gfloatRadix T.mkNoSrcPos p) fx)
    gminExp pminExp p = T.uconstUse pminExp p sminExp
    sminExp =
      T.uconstDef p a3094v9v3094v28minExp
        (\ p ->
          T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) (gminExp0 T.mkNoSrcPos p)
            (gp T.mkNoSrcPos p))
    gf :: T.RefSrcPos -> T.RefExp -> T.R Integer
    sf :: T.R Integer
    ge :: T.RefSrcPos -> T.RefExp -> T.R Int
    se :: T.R Int
    gf pf p = T.uconstUse pf p sf
    ge pf p = T.uconstUse pf p se
    j3100v9v3100v14f =
      case
        let
          gn pn p = T.uconstUse pn p sn
          sn =
            T.uconstDef p a3100v22v3100v36n
              (\ p ->
                T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                  (gminExp T.mkNoSrcPos p) (ge0 T.mkNoSrcPos p)) in
          (T.ucif p
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) (gn T.mkNoSrcPos p)
              (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.uap2 T.mkNoSrcPos p (gdiv T.mkNoSrcPos p) (gf0 T.mkNoSrcPos p)
                (T.uwrapForward p
                  (((gb T.mkNoSrcPos p) *^ (gn T.mkNoSrcPos p)) p)))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (ge0 T.mkNoSrcPos p)
                (gn T.mkNoSrcPos p)))
            (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 (gf0 T.mkNoSrcPos p)
              (ge0 T.mkNoSrcPos p))) of
        T.R (T.Tuple2 ff fe) kf -> (kf,ff,fe)
        _ -> T.fatal p
    sf =
      T.uconstDef p a3100v10v3100v10f
        (\ _ -> case j3100v9v3100v14f of (kf,ff,fe) -> ff)
    se =
      T.uconstDef p a3100v13v3100v13e
        (\ _ -> case j3100v9v3100v14f of (kf,ff,fe) -> fe)
    gr pr p = T.uconstUse pr p sr
    gs pr p = T.uconstUse pr p ss
    gmUp pr p = T.uconstUse pr p smUp
    gmDn pr p = T.uconstUse pr p smDn
    j3103v9v3103v24r =
      case
        T.ucif p
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) (ge T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          (let
            gbe pbe p = T.uconstUse pbe p sbe
            sbe =
              T.uconstDef p a3105v20v3105v27be
                (\ p ->
                  T.uwrapForward p
                    (((gb T.mkNoSrcPos p) *^ (ge T.mkNoSrcPos p)) p)) in
            (T.ucif p
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gf T.mkNoSrcPos p)
                (T.uwrapForward p
                  (((gb T.mkNoSrcPos p)
                      *^
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                        (gp T.mkNoSrcPos p)
                        (T.uap1 T.mkNoSrcPos p
                          (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                          (T.conInteger T.mkNoSrcPos p 1)))) p)))
              (T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                      (gf T.mkNoSrcPos p) (gbe T.mkNoSrcPos p))
                    (gb T.mkNoSrcPos p))
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 2)))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 2)) (gb T.mkNoSrcPos p))
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gbe T.mkNoSrcPos p)
                  (gb T.mkNoSrcPos p)) (gb T.mkNoSrcPos p))
              (T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gf T.mkNoSrcPos p)
                    (gbe T.mkNoSrcPos p))
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 2)))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)) (gbe T.mkNoSrcPos p)
                (gbe T.mkNoSrcPos p))))
          (T.ucif p
            (T.uwrapForward p
              (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) (ge T.mkNoSrcPos p)
                    (gminExp T.mkNoSrcPos p))
                  *&&
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
                    (gf T.mkNoSrcPos p)
                    (T.uwrapForward p
                      (((gb T.mkNoSrcPos p)
                          *^
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                            (gp T.mkNoSrcPos p)
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 1)))) p)))) p))
            (T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gf T.mkNoSrcPos p)
                  (gb T.mkNoSrcPos p))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                (T.uwrapForward p
                  (((gb T.mkNoSrcPos p)
                      *^
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                          (ge T.mkNoSrcPos p))
                        (T.uap1 T.mkNoSrcPos p
                          (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                          (T.conInteger T.mkNoSrcPos p 1)))) p))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2))) (gb T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)))
            (T.con4 T.mkNoSrcPos p T.Tuple4 T.aTuple4
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gf T.mkNoSrcPos p)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)))
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                (T.uwrapForward p
                  (((gb T.mkNoSrcPos p)
                      *^
                      (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                        (ge T.mkNoSrcPos p))) p))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 2)))
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1))
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 1)))) of
        T.R (T.Tuple4 fr fs fmUp fmDn) kr -> (kr,fr,fs,fmUp,fmDn)
        _ -> T.fatal p
    sr =
      T.uconstDef p a3103v10v3103v10r
        (\ _ -> case j3103v9v3103v24r of (kr,fr,fs,fmUp,fmDn) -> fr)
    ss =
      T.uconstDef p a3103v13v3103v13s
        (\ _ -> case j3103v9v3103v24r of (kr,fr,fs,fmUp,fmDn) -> fs)
    smUp =
      T.uconstDef p a3103v16v3103v18mUp
        (\ _ -> case j3103v9v3103v24r of (kr,fr,fs,fmUp,fmDn) -> fmUp)
    smDn =
      T.uconstDef p a3103v21v3103v23mDn
        (\ _ -> case j3103v9v3103v24r of (kr,fr,fs,fmUp,fmDn) -> fmDn)
    gk pk p = T.uconstUse pk p sk
    sk =
      T.uconstDef p a3115v9v3134v24k
        (\ p ->
          let
            gk0 pk0 p = T.uconstUse pk0 p sk0
            sk0 =
              T.uconstDef p a3116v17v3127v42k0
                (\ p ->
                  T.ucif p
                    (T.uwrapForward p
                      (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p)
                            (gb T.mkNoSrcPos p)
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 2)))
                          *&&
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fbase
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 10)))) p))
                    (T.uap2 T.mkNoSrcPos p (gdiv T.mkNoSrcPos p)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p)
                            (gp T.mkNoSrcPos p)
                            (T.uap1 T.mkNoSrcPos p
                              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                              (T.conInteger T.mkNoSrcPos p 1)))
                          (ge0 T.mkNoSrcPos p))
                        (T.uap1 T.mkNoSrcPos p
                          (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                          (T.conInteger T.mkNoSrcPos p 3)))
                      (T.uap1 T.mkNoSrcPos p
                        (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                        (T.conInteger T.mkNoSrcPos p 10)))
                    (T.uap1 T.mkNoSrcPos p (gceiling T.mkNoSrcPos p)
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                            (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
                              (T.uap1 T.mkNoSrcPos p
                                (gfromInteger T.mkNoSrcPos p)
                                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                                  (gf T.mkNoSrcPos p)
                                  (T.uap1 T.mkNoSrcPos p
                                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos
                                      p) (T.conInteger T.mkNoSrcPos p 1)))))
                            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                              (T.uap1 T.mkNoSrcPos p
                                (gfromIntegral T.mkNoSrcPos p)
                                (ge T.mkNoSrcPos p))
                              (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
                                (T.uap1 T.mkNoSrcPos p
                                  (gfromInteger T.mkNoSrcPos p)
                                  (gb T.mkNoSrcPos p)))))
                          (T.uap1 T.mkNoSrcPos p (glog T.mkNoSrcPos p)
                            (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p)
                              fbase))
                        :: T.R Double)))
            gfixup pfixup p = T.ufun1 a3128v17v3133v74fixup pfixup p hfixup
            afixup = a3128v17v3133v74fixup
            hfixup fn p =
              T.ucif p
                (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.ucif p
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                      (gr T.mkNoSrcPos p) (gmUp T.mkNoSrcPos p))
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                      (T.uwrapForward p (hexpt fbase fn p))
                      (gs T.mkNoSrcPos p))) (T.projection T.mkNoSrcPos p fn)
                  (T.uwrapForward p
                    (hfixup
                      (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.ucif p
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p)
                    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                      (T.uwrapForward p
                        (hexpt fbase
                          (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fn)
                          p))
                      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                        (gr T.mkNoSrcPos p) (gmUp T.mkNoSrcPos p)))
                    (gs T.mkNoSrcPos p)) (T.projection T.mkNoSrcPos p fn)
                  (T.uwrapForward p
                    (hfixup
                      (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))) in
            (T.uwrapForward p (hfixup (gk0 T.mkNoSrcPos p) p)))
    ggen pgen p = T.ufun5 a3136v9v3144v64gen pgen p hgen
    agen = a3136v9v3144v64gen
    hgen fds frn fsN fmUpN fmDnN p =
      let
        gdn pdn p = T.uconstUse pdn p sdn
        grn' pdn p = T.uconstUse pdn p srn'
        j3137v17v3137v25dn =
          case
            T.uap2 T.mkNoSrcPos p (gdivMod T.mkNoSrcPos p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) frn fbase) fsN of
            T.R (T.Tuple2 fdn frn') kdn -> (kdn,fdn,frn')
            _ -> T.fatal p
        sdn =
          T.uconstDef p a3137v18v3137v19dn
            (\ _ -> case j3137v17v3137v25dn of (kdn,fdn,frn') -> fdn)
        srn' =
          T.uconstDef p a3137v22v3137v24rn'
            (\ _ -> case j3137v17v3137v25dn of (kdn,fdn,frn') -> frn')
        gmUpN' pmUpN' p = T.uconstUse pmUpN' p smUpN'
        smUpN' =
          T.uconstDef p a3138v17v3138v35mUpN'
            (\ p -> T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fmUpN fbase)
        gmDnN' pmDnN' p = T.uconstUse pmDnN' p smDnN'
        smDnN' =
          T.uconstDef p a3139v17v3139v35mDnN'
            (\ p -> T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fmDnN fbase) in
        (T.uccase T.mkNoSrcPos p
          (let
            v3140v17v3144v64v1 (T.R (T.Tuple2 (T.R True _) (T.R False _)) _) p =
              T.con2 T.mkNoSrcPos p T.Cons T.aCons (gdn T.mkNoSrcPos p) fds
            v3140v17v3144v64v1 (T.R (T.Tuple2 (T.R False _) (T.R True _)) _) p =
              T.con2 T.mkNoSrcPos p T.Cons T.aCons
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gdn T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p
                    (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                    (T.conInteger T.mkNoSrcPos p 1))) fds
            v3140v17v3144v64v1 (T.R (T.Tuple2 (T.R True _) (T.R True _)) _) p =
              T.ucif p
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                    (grn' T.mkNoSrcPos p)
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 2))) fsN)
                (T.con2 T.mkNoSrcPos p T.Cons T.aCons (gdn T.mkNoSrcPos p) fds)
                (T.con2 T.mkNoSrcPos p T.Cons T.aCons
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
                    (gdn T.mkNoSrcPos p)
                    (T.uap1 T.mkNoSrcPos p
                      (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                      (T.conInteger T.mkNoSrcPos p 1))) fds)
            v3140v17v3144v64v1 (T.R (T.Tuple2 (T.R False _) (T.R False _)) _)
              p =
              T.uwrapForward p
                (hgen
                  (T.con2 T.mkNoSrcPos p T.Cons T.aCons (gdn T.mkNoSrcPos p)
                    fds) (grn' T.mkNoSrcPos p) fsN (gmUpN' T.mkNoSrcPos p)
                  (gmDnN' T.mkNoSrcPos p) p)
            v3140v17v3144v64v1 _ p = T.fatal p in (v3140v17v3144v64v1))
          (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) (grn' T.mkNoSrcPos p)
              (gmDnN' T.mkNoSrcPos p))
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (grn' T.mkNoSrcPos p)
                (gmUpN' T.mkNoSrcPos p)) fsN)))
    grds prds p = T.uconstUse prds p srds
    srds =
      T.uconstDef p a3145v9v3150v58rds
        (\ p ->
          T.ucif p
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !>= p) (gk T.mkNoSrcPos p)
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 0)))
            (T.uwrapForward p
              (hgen (T.con0 T.mkNoSrcPos p T.List T.aList) (gr T.mkNoSrcPos p)
                (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gs T.mkNoSrcPos p)
                  (T.uwrapForward p (hexpt fbase (gk T.mkNoSrcPos p) p)))
                (gmUp T.mkNoSrcPos p) (gmDn T.mkNoSrcPos p) p))
            (let
              gbk pbk p = T.uconstUse pbk p sbk
              sbk =
                T.uconstDef p a3149v21v3149v38bk
                  (\ p ->
                    T.uwrapForward p
                      (hexpt fbase
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                          (gk T.mkNoSrcPos p)) p)) in
              (T.uwrapForward p
                (hgen (T.con0 T.mkNoSrcPos p T.List T.aList)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gr T.mkNoSrcPos p)
                    (gbk T.mkNoSrcPos p)) (gs T.mkNoSrcPos p)
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                    (gmUp T.mkNoSrcPos p) (gbk T.mkNoSrcPos p))
                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p)
                    (gmDn T.mkNoSrcPos p) (gbk T.mkNoSrcPos p)) p)))) in
    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
      (T.uwrapForward p
        (hmap (gfromIntegral T.mkNoSrcPos p)
          (T.uap1 T.mkNoSrcPos p (greverse T.mkNoSrcPos p)
            (grds T.mkNoSrcPos p)) p)) (gk T.mkNoSrcPos p))

greadFloat :: RealFloat a => T.RefSrcPos -> T.RefExp -> T.R (ReadS a)

hreadFloat ::
  RealFloat a => (T.R (ReadS___1 a)) -> T.RefExp -> T.R (ReadS___2 a)

greadFloat preadFloat p = T.ufun1 areadFloat preadFloat p hreadFloat

hreadFloat fr p =
  T.uwrapForward p
    (((T.uap1 T.mkNoSrcPos p
          (T.uap2 T.mkNoSrcPos p (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.Tuple3 fn fd fs) _) p =
                      T.uap1 T.mkNoSrcPos p
                        (T.uap2 T.mkNoSrcPos p (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 fk ft) _) p =
                                    T.uap1 T.mkNoSrcPos p
                                      (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                        (T.con2 T.mkNoSrcPos p T.Tuple2
                                          T.aTuple2
                                          (T.uap1 T.mkNoSrcPos p
                                            (gfromRational T.mkNoSrcPos p)
                                            (T.uap2 T.mkNoSrcPos p
                                              (T.mkNoSrcPos !* p)
                                              (T.uwrapForward p
                                                ((fn
                                                    *%
                                                    (T.uap1 T.mkNoSrcPos p
                                                      (Hat.PreludeBasic.gfromInteger
                                                        T.mkNoSrcPos p)
                                                      (T.conInteger T.mkNoSrcPos
                                                        p 1))) p))
                                              (T.uwrapForward p
                                                (((T.uap1 T.mkNoSrcPos p
                                                      (Hat.PreludeBasic.gfromInteger
                                                        T.mkNoSrcPos p)
                                                      (T.conInteger T.mkNoSrcPos
                                                        p 10))
                                                    *^^
                                                    (T.uap2 T.mkNoSrcPos p
                                                      (T.mkNoSrcPos !- p) fk
                                                      fd)) p)))) ft)) f_y
                                  v0v0v0v0v1 _ p =
                                    T.projection T.mkNoSrcPos p f_y in
                                  (v0v0v0v0v1)) f_x))
                          (T.uwrapForward p (hreadExp fs p))) f_y
                    v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                    (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hreadFix fr p)))
          (T.fromExpList T.mkNoSrcPos p []))
        *++
        (T.uwrapForward p
          (((T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R
                                  (T.Cons (T.R 'N' _)
                                    (T.R
                                      (T.Cons (T.R 'a' _)
                                        (T.R (T.Cons (T.R 'N' _) (T.R T.List _))
                                          _)) _)) _) ft) _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                  (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/ p)
                                    (T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 0))
                                    (T.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 0))) ft)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
                (T.fromExpList T.mkNoSrcPos p []))
              *++
              (T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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
                                (T.R
                                  (T.Cons (T.R 'I' _)
                                    (T.R
                                      (T.Cons (T.R 'n' _)
                                        (T.R
                                          (T.Cons (T.R 'f' _)
                                            (T.R
                                              (T.Cons (T.R 'i' _)
                                                (T.R
                                                  (T.Cons (T.R 'n' _)
                                                    (T.R
                                                      (T.Cons (T.R 'i' _)
                                                        (T.R
                                                          (T.Cons (T.R 't' _)
                                                            (T.R
                                                              (T.Cons
                                                                (T.R 'y' _)
                                                                (T.R T.List _))
                                                              _)) _)) _)) _))
                                              _)) _)) _)) _) ft) _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                                  (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.uap1 T.mkNoSrcPos p
                                      (Hat.PreludeBasic.gfromInteger
                                        T.mkNoSrcPos p)
                                      (T.conInteger T.mkNoSrcPos p 0))) ft)) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x)) (T.uwrapForward p (hlex fr p)))
                (T.fromExpList T.mkNoSrcPos p []))) p))) p)
  where
  
  greadFix preadFix p = T.ufun1 a3164v18v3164v24readFix preadFix p hreadFix
  
  areadFix = a3164v18v3164v24readFix
  
  hreadFix fr p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fds fd) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.uap2 T.mkNoSrcPos p (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 fds' ft) _) p =
                                T.uap1 T.mkNoSrcPos p
                                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                                    (T.con3 T.mkNoSrcPos p T.Tuple3 T.aTuple3
                                      (T.uwrapForward p
                                        (hread
                                          (T.uwrapForward p ((fds *++ fds') p))
                                          p))
                                      (T.uwrapForward p (hlength fds' p)) ft))
                                  f_y
                              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y
                              in (v0v0v0v0v1)) f_x))
                      (T.uwrapForward p (hlexFrac fd p))) f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (glexDigits T.mkNoSrcPos p) fr))
      (T.fromExpList T.mkNoSrcPos p [])
  
  glexFrac plexFrac p = T.ufun1 a3168v18v3169v44lexFrac plexFrac p hlexFrac
  
  alexFrac = a3168v18v3169v44lexFrac
  
  hlexFrac (T.R (T.Cons (T.R '.' _) fds) _) p =
    T.uap1 T.mkNoSrcPos p (glexDigits T.mkNoSrcPos p) fds
  hlexFrac fs p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.fromLitString T.mkNoSrcPos p "") fs]
  
  greadExp preadExp p = T.ufun1 a3171v18v3172v56readExp preadExp p hreadExp
  
  areadExp = a3171v18v3172v56readExp
  
  hreadExp (z1readExp@(T.R (T.Cons fe fs) _)) p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (gelem T.mkNoSrcPos p) fe
        (T.fromLitString T.mkNoSrcPos p "eE"))
      (T.uwrapForward p (hreadExp' fs p)) (y1readExp z1readExp p)
  hreadExp z1readExp p = y1readExp z1readExp p
  
  y1readExp fs p =
    T.fromExpList T.mkNoSrcPos p
      [T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 0)) fs]
  
  greadExp' preadExp' p = T.ufun1 a3174v18v3176v45readExp' preadExp' p hreadExp'
  
  areadExp' = a3174v18v3176v45readExp'
  
  hreadExp' (T.R (T.Cons (T.R '-' _) fs) _) p =
    T.uap1 T.mkNoSrcPos p
      (T.uap2 T.mkNoSrcPos p (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 fk ft) _) p =
                  T.uap1 T.mkNoSrcPos p
                    (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                      (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
                        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fk) ft))
                    f_y
                v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                (v0v0v0v0v1)) f_x))
        (T.uap1 T.mkNoSrcPos p (greadDec T.mkNoSrcPos p) fs))
      (T.fromExpList T.mkNoSrcPos p [])
  hreadExp' (T.R (T.Cons (T.R '+' _) fs) _) p =
    T.uap1 T.mkNoSrcPos p (greadDec T.mkNoSrcPos p) fs
  hreadExp' fs p = T.uap1 T.mkNoSrcPos p (greadDec T.mkNoSrcPos p) fs
  

glexDigits :: T.RefSrcPos -> T.RefExp -> T.R (ReadS String)

slexDigits :: T.R (ReadS String)

glexDigits plexDigits p = T.uconstUse plexDigits p slexDigits

slexDigits =
  T.uconstDef T.mkRoot alexDigits
    (\ p ->
      T.uap1 T.mkNoSrcPos p (gnonnull T.mkNoSrcPos p) (gisDigit T.mkNoSrcPos p))

gnonnull ::
  T.RefSrcPos -> T.RefExp -> T.R (T.Fun (T.Fun Char Bool) (ReadS String))

hnonnull ::
  (T.R (T.Fun Char Bool)) ->
    (T.R (ReadS___1 String)) -> T.RefExp -> T.R (ReadS___2 String)

gnonnull pnonnull p = T.ufun2 anonnull pnonnull p hnonnull

hnonnull fp fs p =
  T.uap1 T.mkNoSrcPos p
    (T.uap2 T.mkNoSrcPos p (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 (fcs@(T.R (T.Cons _ _) _)) ft) _) p =
                T.uap1 T.mkNoSrcPos p
                  (T.pa1 T.Cons T.cn1 T.mkNoSrcPos p T.aCons
                    (T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2 fcs ft)) f_y
              v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in (v0v0v0v0v1))
            f_x))
      (T.fromExpList T.mkNoSrcPos p [T.uwrapForward p (hspan fp fs p)]))
    (T.fromExpList T.mkNoSrcPos p [])

gprec pprec p = T.uconstUse pprec p sprec

sprec =
  T.uconstDef T.mkRoot aprec
    (\ p ->
      T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 7)
        :: T.R Int)

data Ratio a = (:%) !(T.R a) !(T.R a)

instance T.WrapVal ((Ratio a))
  where
  
  wrapVal pwrapVal (kwrapVal@((T.R _ z1wrapVal) :% (T.R _ z2wrapVal))) p =
    T.R kwrapVal (T.mkValueApp2 p pwrapVal (+:%) z1wrapVal z2wrapVal)
  

instance Eq a => Eq ((Ratio a))
  where
  
  (!==) (%==) p =
    T.ufun2 (+%#>$=%^=%#>$=%@==) (%==) p (*==)
    where
    
    (*==) (T.R (fy1 :% fy2) _) (T.R (fy3 :% fy4) _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy1 fy3)
            *&&
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fy2 fy4)) p)
    (*==) _ _ p = T.con0 T.mkNoSrcPos p False aFalse
    
  

type Rational = Ratio Integer

(!%) ::
  Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a (Ratio a)))

(*%) :: Integral a => (T.R a) -> (T.R a) -> T.RefExp -> T.R (Ratio a)

gnumerator,gdenominator ::
  Integral a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun (Ratio a) a)

hnumerator :: Integral a => (T.R (Ratio a)) -> T.RefExp -> T.R a

hdenominator :: Integral a => (T.R (Ratio a)) -> T.RefExp -> T.R a

gapproxRational ::
  RealFrac a => T.RefSrcPos -> T.RefExp -> T.R (T.Fun a (T.Fun a Rational))

happroxRational :: RealFrac a => (T.R a) -> (T.R a) -> T.RefExp -> T.R Rational

greduce preduce p = T.ufun2 areduce preduce p hreduce

hreduce (z1reduce@_) fv3208v10v3208v10n p =
  T.ucguard
    (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fv3208v10v3208v10n
      (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
        (T.conInteger T.mkNoSrcPos p 0))) (h p)
    (y1reduce z1reduce fv3208v10v3208v10n p)
  where
  
  h p =
    T.uwrapForward p
      (herror (T.fromLitString T.mkNoSrcPos p "Ratio.% : zero denominator") p)
  h p = y1reduce z1reduce fv3208v10v3208v10n p
  
hreduce z1reduce fv3208v10v3208v10n p = y1reduce z1reduce fv3208v10v3208v10n p

y1reduce fx fy p =
  T.con2 T.mkNoSrcPos p (:%) (+:%)
    (T.uap2 T.mkNoSrcPos p (gquot T.mkNoSrcPos p) fx (gd T.mkNoSrcPos p))
    (T.uap2 T.mkNoSrcPos p (gquot T.mkNoSrcPos p) fy (gd T.mkNoSrcPos p))
  where
  
  gd pd p = T.uconstUse pd p sd
  
  sd = T.uconstDef p a3210v34v3210v44d (\ p -> T.uwrapForward p (hgcd fx fy p))
  

(!%) (%%) p = T.ufun2 (+%) (%%) p (*%)

(*%) fx fy p =
  T.uwrapForward p
    (hreduce
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx
        (T.uap1 T.mkNoSrcPos p (gsignum T.mkNoSrcPos p) fy))
      (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fy) p)

gnumerator pnumerator p = T.ufun1 anumerator pnumerator p hnumerator

hnumerator (T.R (fx :% _) _) p = T.projection T.mkNoSrcPos p fx
hnumerator _ p = T.fatal p

gdenominator pdenominator p = T.ufun1 adenominator pdenominator p hdenominator

hdenominator (T.R (_ :% fy) _) p = T.projection T.mkNoSrcPos p fy
hdenominator _ p = T.fatal p

instance Integral a => Ord ((Ratio a))
  where
  
  (!<=) (%<=) p =
    T.ufun2 (+%$$!=#$=%$$!=#%<=) (%<=) p (*<=)
    where
    
    (*<=) (T.R (fx :% fy) _) (T.R (fx' :% fy') _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !<= p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy')
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx' fy)
    (*<=) _ _ p = T.fatal p
    
  
  (!<) (%<) p =
    T.ufun2 (+%$$#=#$=%$$#=#$<) (%<) p (*<)
    where
    
    (*<) (T.R (fx :% fy) _) (T.R (fx' :% fy') _) p =
      T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p)
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy')
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx' fy)
    (*<) _ _ p = T.fatal p
    
  

instance Integral a => Num ((Ratio a))
  where
  
  (!+) (%+) p =
    T.ufun2 (+%$$&=#$=%$$&=#$+) (%+) p (*+)
    where
    
    (*+) (T.R (fx :% fy) _) (T.R (fx' :% fy') _) p =
      T.uwrapForward p
        (hreduce
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy')
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx' fy))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy fy') p)
    (*+) _ _ p = T.fatal p
    
  
  (!*) (%*) p =
    T.ufun2 (+%$$*=#$=%$$*=#$*) (%*) p (**)
    where
    
    (**) (T.R (fx :% fy) _) (T.R (fx' :% fy') _) p =
      T.uwrapForward p
        (hreduce (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fx')
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy fy') p)
    (**) _ _ p = T.fatal p
    
  
  gnegate pnegate p =
    T.ufun1 a3226v5v3226v36negate pnegate p hnegate
    where
    
    hnegate (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p) fx) fy
    hnegate _ p = T.fatal p
    
  
  gabs pabs p =
    T.ufun1 a3227v5v3227v37abs pabs p habs
    where
    
    habs (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gabs T.mkNoSrcPos p) fx) fy
    habs _ p = T.fatal p
    
  
  gsignum psignum p =
    T.ufun1 a3228v5v3228v40signum psignum p hsignum
    where
    
    hsignum (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gsignum T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    hsignum _ p = T.fatal p
    
  
  gfromInteger pfromInteger p =
    T.ufun1 a3229v5v3229v45fromInteger pfromInteger p hfromInteger
    where
    
    hfromInteger fx p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1))
    
  

instance Integral a => Real ((Ratio a))
  where
  
  gtoRational ptoRational p =
    T.ufun1 a3232v5v3232v53toRational ptoRational p htoRational
    where
    
    htoRational (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (gtoInteger T.mkNoSrcPos p) fy)
    htoRational _ p = T.fatal p
    
  

instance Integral a => Fractional ((Ratio a))
  where
  
  (!/) (%/) p =
    T.ufun2 (+%$%*=#$=%$%*=#$/) (%/) p (*/)
    where
    
    (*/) (T.R (fx :% fy) _) (T.R (fx' :% fy') _) p =
      T.uwrapForward p
        (((T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fx fy')
            *%
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) fy fx')) p)
    (*/) _ _ p = T.fatal p
    
  
  grecip precip p =
    T.ufun1 a3236v5v3236v32recip precip p hrecip
    where
    
    hrecip (T.R (fx :% fy) _) p = T.uwrapForward p ((fy *% fx) p)
    hrecip _ p = T.fatal p
    
  
  gfromRational pfromRational p =
    T.ufun1 a3237v5v3237v57fromRational pfromRational p hfromRational
    where
    
    hfromRational (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p (:%) (+:%)
        (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fx)
        (T.uap1 T.mkNoSrcPos p (gfromInteger T.mkNoSrcPos p) fy)
    hfromRational _ p = T.fatal p
    
  

instance Integral a => RealFrac ((Ratio a))
  where
  
  gproperFraction pproperFraction p =
    T.ufun1 a3240v5v3241v53properFraction pproperFraction p hproperFraction
    where
    
    hproperFraction (T.R (fx :% fy) _) p =
      T.con2 T.mkNoSrcPos p T.Tuple2 T.aTuple2
        (T.uap1 T.mkNoSrcPos p (gfromIntegral T.mkNoSrcPos p)
          (gq T.mkNoSrcPos p))
        (T.con2 T.mkNoSrcPos p (:%) (+:%) (gr T.mkNoSrcPos p) fy)
      where
      
      gq pq p = T.uconstUse pq p sq
      
      gr pq p = T.uconstUse pq p sr
      
      j3241v35v3241v39q =
        case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fx fy of
          T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
          _ -> T.fatal p
      
      sq =
        T.uconstDef p a3241v36v3241v36q
          (\ _ -> case j3241v35v3241v39q of (kq,fq,fr) -> fq)
      
      sr =
        T.uconstDef p a3241v38v3241v38r
          (\ _ -> case j3241v35v3241v39q of (kq,fq,fr) -> fr)
      
    hproperFraction _ p = T.fatal p
    
  

instance Integral a => Enum ((Ratio a))
  where
  
  gtoEnum ptoEnum p = T.uconstUse ptoEnum p stoEnum
  
  stoEnum =
    T.uconstDef T.mkRoot a3244v5v3244v36toEnum
      (\ p -> gfromIntegral T.mkNoSrcPos p)
  
  gfromEnum pfromEnum p = T.uconstUse pfromEnum p sfromEnum
  
  sfromEnum =
    T.uconstDef T.mkRoot a3245v5v3245v46fromEnum
      (\ p ->
        T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p) (gfromInteger T.mkNoSrcPos p)
          (gtruncate T.mkNoSrcPos p))
  
  genumFrom penumFrom p = T.uconstUse penumFrom p senumFrom
  
  senumFrom =
    T.uconstDef T.mkRoot a3246v5v3246v39enumFrom
      (\ p -> gnumericEnumFrom T.mkNoSrcPos p)
  
  genumFromThen penumFromThen p = T.uconstUse penumFromThen p senumFromThen
  
  senumFromThen =
    T.uconstDef T.mkRoot a3247v5v3247v43enumFromThen
      (\ p -> gnumericEnumFromThen T.mkNoSrcPos p)
  
  genumFromTo penumFromTo p = T.uconstUse penumFromTo p senumFromTo
  
  senumFromTo =
    T.uconstDef T.mkRoot a3248v5v3248v41enumFromTo
      (\ p -> gnumericEnumFromTo T.mkNoSrcPos p)
  
  genumFromThenTo penumFromThenTo p =
    T.uconstUse penumFromThenTo p senumFromThenTo
  
  senumFromThenTo =
    T.uconstDef T.mkRoot a3249v5v3249v45enumFromThenTo
      (\ p -> gnumericEnumFromThenTo T.mkNoSrcPos p)
  

instance (Read a,Integral a) => Read ((Ratio a))
  where
  
  greadsPrec preadsPrec p =
    T.ufun1 a3252v5v3253v32readsPrec preadsPrec p hreadsPrec
    where
    
    hreadsPrec fp p =
      T.uwrapForward p
        (hreadParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fp (gprec T.mkNoSrcPos p))
          (T.ufun1 T.mkLambda T.mkNoSrcPos p
            (\ fr p ->
              T.uap1 T.mkNoSrcPos p
                (T.uap2 T.mkNoSrcPos p (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 fs) _) p =
                            T.uap1 T.mkNoSrcPos p
                              (T.uap2 T.mkNoSrcPos p (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
                                              (T.R
                                                (T.Cons (T.R '%' _)
                                                  (T.R T.List _)) _) ft) _) p =
                                          T.uap1 T.mkNoSrcPos p
                                            (T.uap2 T.mkNoSrcPos p
                                              (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 fy fu) _)
                                                        p =
                                                        T.uap1 T.mkNoSrcPos p
                                                          (T.pa1 T.Cons T.cn1
                                                            T.mkNoSrcPos p
                                                            T.aCons
                                                            (T.con2 T.mkNoSrcPos
                                                              p T.Tuple2
                                                              T.aTuple2
                                                              (T.uwrapForward p
                                                                ((fx *% fy) p))
                                                              fu)) f_y
                                                      v0v0v0v0v1 _ p =
                                                        T.projection
                                                          T.mkNoSrcPos p f_y in
                                                      (v0v0v0v0v1)) f_x))
                                              (T.uap1 T.mkNoSrcPos p
                                                (greads T.mkNoSrcPos p) ft)) f_y
                                        v0v0v0v0v1 _ p =
                                          T.projection T.mkNoSrcPos p f_y in
                                        (v0v0v0v0v1)) f_x))
                                (T.uwrapForward p (hlex fs p))) f_y
                          v0v0v0v0v1 _ p = T.projection T.mkNoSrcPos p f_y in
                          (v0v0v0v0v1)) f_x))
                  (T.uap1 T.mkNoSrcPos p (greads T.mkNoSrcPos p) fr))
                (T.fromExpList T.mkNoSrcPos p []))) p)
    
  

instance Integral a => Show ((Ratio a))
  where
  
  gshowsPrec pshowsPrec p =
    T.ufun2 a3258v5v3259v68showsPrec pshowsPrec p hshowsPrec
    where
    
    hshowsPrec fp (T.R (fx :% fy) _) p =
      T.uwrapForward p
        (hshowParen
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fp (gprec T.mkNoSrcPos p))
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
            (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fx)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !. p)
              (T.uap1 T.mkNoSrcPos p (gshowString T.mkNoSrcPos p)
                (T.fromLitString T.mkNoSrcPos p " % "))
              (T.uap1 T.mkNoSrcPos p (gshows T.mkNoSrcPos p) fy))) p)
    hshowsPrec _ _ p = T.fatal p
    
  

gapproxRational papproxRational p =
  T.ufun2 aapproxRational papproxRational p happroxRational

happroxRational fx feps p =
  T.uwrapForward p
    (hsimplest (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !- p) fx feps)
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) fx feps) p)
  where
  
  gsimplest psimplest p = T.ufun2 a3264v15v3270v70simplest psimplest p hsimplest
  
  asimplest = a3264v15v3270v70simplest
  
  hsimplest fx fy p =
    T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fy fx)
      (T.uwrapForward p (hsimplest fy fx p))
      (T.ucguard (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) fx fy)
        (gxr T.mkNoSrcPos p)
        (T.ucguard
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !> p) fx
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 0)))
          (T.uwrapForward p
            (hsimplest' (gn T.mkNoSrcPos p) (gd T.mkNoSrcPos p)
              (gn' T.mkNoSrcPos p) (gd' T.mkNoSrcPos p) p))
          (T.ucguard
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !< p) fy
              (T.uap1 T.mkNoSrcPos p
                (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                (T.conInteger T.mkNoSrcPos p 0)))
            (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
              (T.uwrapForward p
                (hsimplest'
                  (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                    (gn' T.mkNoSrcPos p)) (gd' T.mkNoSrcPos p)
                  (T.uap1 T.mkNoSrcPos p (gnegate T.mkNoSrcPos p)
                    (gn T.mkNoSrcPos p)) (gd T.mkNoSrcPos p) p)))
            (T.ucguard (gotherwise T.mkNoSrcPos p)
              (T.con2 T.mkNoSrcPos p (:%) (+:%)
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 0))
                (T.uap1 T.mkNoSrcPos p
                  (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
                  (T.conInteger T.mkNoSrcPos p 1))) (T.fatal p)))))
    where
    
    gxr pxr p = T.uconstUse pxr p sxr
    
    sxr =
      T.uconstDef p a3269v47v3269v48xr
        (\ p -> T.uap1 T.mkNoSrcPos p (gtoRational T.mkNoSrcPos p) fx)
    
    gn pn p = T.uconstUse pn p sn
    
    gd pn p = T.uconstUse pn p sd
    
    j3269v51v3269v54n =
      case gxr T.mkNoSrcPos p of T.R (fn :% fd) kn -> (kn,fn,fd); _ -> T.fatal p
    
    sn =
      T.uconstDef p a3269v51v3269v51n
        (\ _ -> case j3269v51v3269v54n of (kn,fn,fd) -> fn)
    
    sd =
      T.uconstDef p a3269v54v3269v54d
        (\ _ -> case j3269v51v3269v54n of (kn,fn,fd) -> fd)
    
    gn' pn' p = T.uconstUse pn' p sn'
    
    gd' pn' p = T.uconstUse pn' p sd'
    
    j3270v48v3270v53n' =
      case T.uap1 T.mkNoSrcPos p (gtoRational T.mkNoSrcPos p) fy of
        T.R (fn' :% fd') kn' -> (kn',fn',fd')
        _ -> T.fatal p
    
    sn' =
      T.uconstDef p a3270v48v3270v49n'
        (\ _ -> case j3270v48v3270v53n' of (kn',fn',fd') -> fn')
    
    sd' =
      T.uconstDef p a3270v52v3270v53d'
        (\ _ -> case j3270v48v3270v53n' of (kn',fn',fd') -> fd')
    
  
  gsimplest' psimplest' p =
    T.ufun4 a3272v15v3278v76simplest' psimplest' p hsimplest'
  
  asimplest' = a3272v15v3278v76simplest'
  
  hsimplest' fn fd fn' fd' p =
    T.ucguard
      (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !== p) (gr T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 0)))
      (T.con2 T.mkNoSrcPos p (:%) (+:%) (gq T.mkNoSrcPos p)
        (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
          (T.conInteger T.mkNoSrcPos p 1)))
      (T.ucguard
        (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !/= p) (gq T.mkNoSrcPos p)
          (gq' T.mkNoSrcPos p))
        (T.con2 T.mkNoSrcPos p (:%) (+:%)
          (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p) (gq T.mkNoSrcPos p)
            (T.uap1 T.mkNoSrcPos p
              (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
              (T.conInteger T.mkNoSrcPos p 1)))
          (T.uap1 T.mkNoSrcPos p (Hat.PreludeBasic.gfromInteger T.mkNoSrcPos p)
            (T.conInteger T.mkNoSrcPos p 1)))
        (T.ucguard (gotherwise T.mkNoSrcPos p)
          (T.con2 T.mkNoSrcPos p (:%) (+:%)
            (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !+ p)
              (T.uap2 T.mkNoSrcPos p (T.mkNoSrcPos !* p) (gq T.mkNoSrcPos p)
                (gn'' T.mkNoSrcPos p)) (gd'' T.mkNoSrcPos p))
            (gn'' T.mkNoSrcPos p)) (T.fatal p)))
    where
    
    gq pq p = T.uconstUse pq p sq
    
    gr pq p = T.uconstUse pq p sr
    
    j3276v44v3276v48q =
      case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn fd of
        T.R (T.Tuple2 fq fr) kq -> (kq,fq,fr)
        _ -> T.fatal p
    
    sq =
      T.uconstDef p a3276v45v3276v45q
        (\ _ -> case j3276v44v3276v48q of (kq,fq,fr) -> fq)
    
    sr =
      T.uconstDef p a3276v47v3276v47r
        (\ _ -> case j3276v44v3276v48q of (kq,fq,fr) -> fr)
    
    gq' pq' p = T.uconstUse pq' p sq'
    
    gr' pq' p = T.uconstUse pq' p sr'
    
    j3277v44v3277v50q' =
      case T.uap2 T.mkNoSrcPos p (gquotRem T.mkNoSrcPos p) fn' fd' of
        T.R (T.Tuple2 fq' fr') kq' -> (kq',fq',fr')
        _ -> T.fatal p
    
    sq' =
      T.uconstDef p a3277v45v3277v46q'
        (\ _ -> case j3277v44v3277v50q' of (kq',fq',fr') -> fq')
    
    sr' =
      T.uconstDef p a3277v48v3277v49r'
        (\ _ -> case j3277v44v3277v50q' of (kq',fq',fr') -> fr')
    
    gn'' pn'' p = T.uconstUse pn'' p sn''
    
    gd'' pn'' p = T.uconstUse pn'' p sd''
    
    j3278v45v3278v52n'' =
      case
        T.uwrapForward p
          (hsimplest' fd' (gr' T.mkNoSrcPos p) fd (gr T.mkNoSrcPos p) p) of
        T.R (fn'' :% fd'') kn'' -> (kn'',fn'',fd'')
        _ -> T.fatal p
    
    sn'' =
      T.uconstDef p a3278v45v3278v47n''
        (\ _ -> case j3278v45v3278v52n'' of (kn'',fn'',fd'') -> fn'')
    
    sd'' =
      T.uconstDef p a3278v50v3278v52d''
        (\ _ -> case j3278v45v3278v52n'' of (kn'',fn'',fd'') -> fd'')
    
  

tPreludeBasic = T.mkModule "Prelude" "PreludeBasic.hs" Prelude.False

aNothing = T.mkConstructor tPreludeBasic 5030019 5030025 3 0 "Nothing"

aJust = T.mkConstructor tPreludeBasic 5030029 5030032 3 1 "Just"

aLeft = T.mkConstructor tPreludeBasic 5250022 5250025 3 1 "Left"

aRight = T.mkConstructor tPreludeBasic 5250031 5250035 3 1 "Right"

aLT = T.mkConstructor tPreludeBasic 5500020 5500021 3 0 "LT"

aEQ = T.mkConstructor tPreludeBasic 5500025 5500026 3 0 "EQ"

aGT = T.mkConstructor tPreludeBasic 5500030 5500031 3 0 "GT"

aFFExponent = T.mkConstructor tPreludeBasic 29900017 29900026 3 0 "FFExponent"

aFFFixed = T.mkConstructor tPreludeBasic 29900030 29900036 3 0 "FFFixed"

aFFGeneric = T.mkConstructor tPreludeBasic 29900040 29900048 3 0 "FFGeneric"

(+:%) = T.mkConstructor tPreludeBasic 31920020 31920021 3 2 ":%"

ayield = T.mkVariable tPreludeBasic 430001 430019 3 2 "yield" Prelude.False

alift = T.mkVariable tPreludeBasic 460001 460077 3 4 "lift" Prelude.False

athenAp = T.mkVariable tPreludeBasic 490001 490034 3 0 "thenAp" Prelude.False

athenLex = T.mkVariable tPreludeBasic 520001 520067 3 2 "thenLex" Prelude.False

aalt = T.mkVariable tPreludeBasic 550001 550022 3 3 "alt" Prelude.False

asubtract =
  T.mkVariable tPreludeBasic 2670001 2670027 3 0 "subtract" Prelude.False

aeven = T.mkVariable tPreludeBasic 2710001 2710034 3 1 "even" Prelude.False

aodd = T.mkVariable tPreludeBasic 2720001 2720030 3 0 "odd" Prelude.False

agcd = T.mkVariable tPreludeBasic 2760001 2790056 3 2 "gcd" Prelude.False

alcm = T.mkVariable tPreludeBasic 2830001 2850049 3 2 "lcm" Prelude.False

(+^) = T.mkVariable tPreludeBasic 2890003 2950003 33 2 "^" Prelude.False

(+^^) = T.mkVariable tPreludeBasic 2990003 2990004 33 2 "^^" Prelude.False

afromIntegral =
  T.mkVariable tPreludeBasic 3030001 3030043 3 0 "fromIntegral" Prelude.False

arealToFrac =
  T.mkVariable tPreludeBasic 3070001 3070044 3 0 "realToFrac" Prelude.False

asequence =
  T.mkVariable tPreludeBasic 3290001 3300073 3 0 "sequence" Prelude.False

asequence_ =
  T.mkVariable tPreludeBasic 3340001 3340040 3 0 "sequence_" Prelude.False

amapM = T.mkVariable tPreludeBasic 3400001 3400038 3 2 "mapM" Prelude.False

amapM_ = T.mkVariable tPreludeBasic 3440001 3440039 3 2 "mapM_" Prelude.False

(+=<<) = T.mkVariable tPreludeBasic 3480003 3480005 5 2 "=<<" Prelude.False

aid = T.mkVariable tPreludeBasic 3790001 3790021 3 1 "id" Prelude.False

aconst = T.mkVariable tPreludeBasic 3840001 3840021 3 2 "const" Prelude.False

(+.) = T.mkVariable tPreludeBasic 3890002 3890026 37 3 "." Prelude.False

aflip = T.mkVariable tPreludeBasic 3940001 3940025 3 3 "flip" Prelude.False

(+$) = T.mkVariable tPreludeBasic 4040003 4040003 1 2 "$" Prelude.False

(+$!) = T.mkVariable tPreludeBasic 4050003 4050004 1 2 "$!" Prelude.False

(+&&) = T.mkVariable tPreludeBasic 4530007 4540008 13 2 "&&" Prelude.False

(+||) = T.mkVariable tPreludeBasic 4550007 4560008 9 2 "||" Prelude.False

anot = T.mkVariable tPreludeBasic 4600001 4610024 3 1 "not" Prelude.False

aotherwise =
  T.mkVariable tPreludeBasic 4650001 4650024 3 0 "otherwise" Prelude.False

amaybe = T.mkVariable tPreludeBasic 5070001 5080025 3 3 "maybe" Prelude.False

aeither = T.mkVariable tPreludeBasic 5290001 5300027 3 3 "either" Prelude.False

aintEnumFromByTo =
  T.mkVariable tPreludeBasic 6020001 6090068 3 3 "intEnumFromByTo" Prelude.False

anumericEnumFrom =
  T.mkVariable tPreludeBasic 8640001 8640038 3 0 "numericEnumFrom" Prelude.False

anumericEnumFromThen =
  T.mkVariable tPreludeBasic 8650001 8650045 3 2 "numericEnumFromThen"
    Prelude.False

anumericEnumFromTo =
  T.mkVariable tPreludeBasic 8660001 8660066 3 2 "numericEnumFromTo"
    Prelude.False

anumericEnumFromThenTo =
  T.mkVariable tPreludeBasic 8670001 8700063 3 3 "numericEnumFromThenTo"
    Prelude.False

afst = T.mkVariable tPreludeBasic 13750001 13750021 3 1 "fst" Prelude.False

asnd = T.mkVariable tPreludeBasic 13790001 13790021 3 1 "snd" Prelude.False

acurry = T.mkVariable tPreludeBasic 13850001 13850028 3 3 "curry" Prelude.False

auncurry =
  T.mkVariable tPreludeBasic 13890001 13890036 3 2 "uncurry" Prelude.False

auntil = T.mkVariable tPreludeBasic 13960001 13980034 3 3 "until" Prelude.False

aasTypeOf =
  T.mkVariable tPreludeBasic 14050001 14050025 3 0 "asTypeOf" Prelude.False

a_foldr =
  T.mkVariable tPreludeBasic 14410001 14420042 3 3 "_foldr" Prelude.False

a_filter =
  T.mkVariable tPreludeBasic 14450001 14450036 3 3 "_filter" Prelude.False

amap = T.mkVariable tPreludeBasic 14550001 14560029 3 2 "map" Prelude.False

(+++) = T.mkVariable tPreludeBasic 14600008 14610009 21 2 "++" Prelude.False

afilter =
  T.mkVariable tPreludeBasic 14650001 14670041 3 2 "filter" Prelude.False

aconcat =
  T.mkVariable tPreludeBasic 14710001 14710030 3 1 "concat" Prelude.False

ahead = T.mkVariable tPreludeBasic 14810001 14820052 3 1 "head" Prelude.False

alast = T.mkVariable tPreludeBasic 14860001 14880052 3 1 "last" Prelude.False

atail = T.mkVariable tPreludeBasic 14920001 14930052 3 1 "tail" Prelude.False

ainit = T.mkVariable tPreludeBasic 14970001 14990052 3 1 "init" Prelude.False

anull = T.mkVariable tPreludeBasic 15030001 15040025 3 1 "null" Prelude.False

alength =
  T.mkVariable tPreludeBasic 15090001 15100032 3 1 "length" Prelude.False

(+!!) = T.mkVariable tPreludeBasic 15150008 15180009 38 2 "!!" Prelude.False

afoldl = T.mkVariable tPreludeBasic 15340001 15350038 3 3 "foldl" Prelude.False

afoldl1 =
  T.mkVariable tPreludeBasic 15390001 15400054 3 2 "foldl1" Prelude.False

ascanl = T.mkVariable tPreludeBasic 15440001 15460054 3 3 "scanl" Prelude.False

ascanl1 =
  T.mkVariable tPreludeBasic 15500001 15510022 3 2 "scanl1" Prelude.False

afoldr = T.mkVariable tPreludeBasic 15580001 15590037 3 3 "foldr" Prelude.False

afoldr1 =
  T.mkVariable tPreludeBasic 15630001 15650054 3 2 "foldr1" Prelude.False

ascanr = T.mkVariable tPreludeBasic 15690001 15710051 3 3 "scanr" Prelude.False

ascanr1 =
  T.mkVariable tPreludeBasic 15750001 15780047 3 2 "scanr1" Prelude.False

aiterate =
  T.mkVariable tPreludeBasic 15840001 15840038 3 2 "iterate" Prelude.False

arepeat =
  T.mkVariable tPreludeBasic 15890001 15890038 3 1 "repeat" Prelude.False

areplicate =
  T.mkVariable tPreludeBasic 15940001 15940036 3 2 "replicate" Prelude.False

acycle = T.mkVariable tPreludeBasic 16020001 16030045 3 1 "cycle" Prelude.False

atake = T.mkVariable tPreludeBasic 16120001 16140043 3 2 "take" Prelude.False

adrop = T.mkVariable tPreludeBasic 16180001 16200039 3 2 "drop" Prelude.False

asplitAt =
  T.mkVariable tPreludeBasic 16240001 16240050 3 2 "splitAt" Prelude.False

atakeWhile =
  T.mkVariable tPreludeBasic 16330001 16360029 3 2 "takeWhile" Prelude.False

adropWhile =
  T.mkVariable tPreludeBasic 16400001 16430029 3 2 "dropWhile" Prelude.False

aspan = T.mkVariable tPreludeBasic 16470001 16510053 3 2 "span" Prelude.False

abreak = T.mkVariable tPreludeBasic 16530001 16530040 3 1 "break" Prelude.False

alines = T.mkVariable tPreludeBasic 16640001 16680052 3 1 "lines" Prelude.False

awords = T.mkVariable tPreludeBasic 16720001 16750061 3 1 "words" Prelude.False

aunlines =
  T.mkVariable tPreludeBasic 16790001 16790038 3 0 "unlines" Prelude.False

aunwords =
  T.mkVariable tPreludeBasic 16830001 16840050 3 1 "unwords" Prelude.False

areverse =
  T.mkVariable tPreludeBasic 16890001 16890039 3 0 "reverse" Prelude.False

aand = T.mkVariable tPreludeBasic 16970001 16970035 3 0 "and" Prelude.False

aor = T.mkVariable tPreludeBasic 16980001 16980036 3 0 "or" Prelude.False

aany = T.mkVariable tPreludeBasic 17040001 17040030 3 1 "any" Prelude.False

aall = T.mkVariable tPreludeBasic 17050001 17050031 3 1 "all" Prelude.False

aelem = T.mkVariable tPreludeBasic 17110001 17110029 16 1 "elem" Prelude.False

anotElem =
  T.mkVariable tPreludeBasic 17120001 17120029 16 1 "notElem" Prelude.False

alookup =
  T.mkVariable tPreludeBasic 17170001 17200034 3 2 "lookup" Prelude.False

asum = T.mkVariable tPreludeBasic 17250001 17250031 3 0 "sum" Prelude.False

aproduct =
  T.mkVariable tPreludeBasic 17260001 17260031 3 0 "product" Prelude.False

amaximum =
  T.mkVariable tPreludeBasic 17320001 17330033 3 1 "maximum" Prelude.False

aminimum =
  T.mkVariable tPreludeBasic 17350001 17360033 3 1 "minimum" Prelude.False

aconcatMap =
  T.mkVariable tPreludeBasic 17400001 17400034 3 1 "concatMap" Prelude.False

azip = T.mkVariable tPreludeBasic 17490001 17490031 3 0 "zip" Prelude.False

azip3 = T.mkVariable tPreludeBasic 17520001 17520033 3 0 "zip3" Prelude.False

azipWith =
  T.mkVariable tPreludeBasic 17610001 17630022 3 3 "zipWith" Prelude.False

azipWith3 =
  T.mkVariable tPreludeBasic 17670001 17690022 3 4 "zipWith3" Prelude.False

aunzip = T.mkVariable tPreludeBasic 17760001 17760066 3 0 "unzip" Prelude.False

aunzip3 =
  T.mkVariable tPreludeBasic 17800001 17810036 3 0 "unzip3" Prelude.False

areads = T.mkVariable tPreludeBasic 18360001 18360031 3 0 "reads" Prelude.False

ashows = T.mkVariable tPreludeBasic 18400001 18400031 3 0 "shows" Prelude.False

aread = T.mkVariable tPreludeBasic 18440001 18470069 3 1 "read" Prelude.False

ashowChar =
  T.mkVariable tPreludeBasic 18510001 18510022 3 0 "showChar" Prelude.False

ashowString =
  T.mkVariable tPreludeBasic 18550001 18550023 3 0 "showString" Prelude.False

ashowParen =
  T.mkVariable tPreludeBasic 18590001 18590068 3 2 "showParen" Prelude.False

areadParen =
  T.mkVariable tPreludeBasic 18630001 18650035 3 2 "readParen" Prelude.False

alex = T.mkVariable tPreludeBasic 18770001 19160033 3 1 "lex" Prelude.False

aputStr =
  T.mkVariable tPreludeBasic 26740001 26740035 3 1 "putStr" Prelude.False

aputStrLn =
  T.mkVariable tPreludeBasic 26770001 26780034 3 1 "putStrLn" Prelude.False

aprint = T.mkVariable tPreludeBasic 26810001 26810036 3 1 "print" Prelude.False

agetLine =
  T.mkVariable tPreludeBasic 26870001 26900040 3 0 "getLine" Prelude.False

ainteract =
  T.mkVariable tPreludeBasic 26960001 26970034 3 1 "interact" Prelude.False

areadIO =
  T.mkVariable tPreludeBasic 27110001 27140073 3 1 "readIO" Prelude.False

areadLn =
  T.mkVariable tPreludeBasic 27180001 27200031 3 0 "readLn" Prelude.False

adigitToInt =
  T.mkVariable tPreludeBasic 27450001 27490064 3 1 "digitToInt" Prelude.False

aintToDigit =
  T.mkVariable tPreludeBasic 27520001 27550064 3 1 "intToDigit" Prelude.False

aord = T.mkVariable tPreludeBasic 27610001 27610035 3 0 "ord" Prelude.False

achr = T.mkVariable tPreludeBasic 27640001 27640033 3 0 "chr" Prelude.False

areadLitChar =
  T.mkVariable tPreludeBasic 27680001 27970034 3 1 "readLitChar" Prelude.False

ashowLitChar =
  T.mkVariable tPreludeBasic 28000001 28130071 3 1 "showLitChar" Prelude.False

aprotectEsc =
  T.mkVariable tPreludeBasic 28150001 28170057 3 2 "protectEsc" Prelude.False

aasciiTab =
  T.mkVariable tPreludeBasic 28180001 28240017 3 0 "asciiTab" Prelude.False

alexLitChar =
  T.mkVariable tPreludeBasic 28270001 28380025 3 1 "lexLitChar" Prelude.False

afromRat =
  T.mkVariable tPreludeBasic 28600001 28630019 3 1 "fromRat" Prelude.False

afromRat' =
  T.mkVariable tPreludeBasic 28730001 28840037 3 1 "fromRat'" Prelude.False

ascaleRat =
  T.mkVariable tPreludeBasic 28890001 28970014 3 6 "scaleRat" Prelude.False

aminExpt =
  T.mkVariable tPreludeBasic 29000001 29000016 3 0 "minExpt" Prelude.False

amaxExpt =
  T.mkVariable tPreludeBasic 29010001 29010019 3 0 "maxExpt" Prelude.False

aexpt = T.mkVariable tPreludeBasic 29030001 29070014 3 2 "expt" Prelude.False

aexpts = T.mkVariable tPreludeBasic 29100001 29100005 3 0 "expts" Prelude.False

aintegerLogBase =
  T.mkVariable tPreludeBasic 29170001 29250035 3 2 "integerLogBase"
    Prelude.False

ashowSigned =
  T.mkVariable tPreludeBasic 29310001 29330046 3 3 "showSigned" Prelude.False

ashowOct =
  T.mkVariable tPreludeBasic 29370001 29370037 3 0 "showOct" Prelude.False

ashowInt =
  T.mkVariable tPreludeBasic 29380001 29380037 3 0 "showInt" Prelude.False

ashowHex =
  T.mkVariable tPreludeBasic 29390001 29390037 3 0 "showHex" Prelude.False

ashowIntAtBase =
  T.mkVariable tPreludeBasic 29460001 29520045 3 4 "showIntAtBase" Prelude.False

areadSigned =
  T.mkVariable tPreludeBasic 29550001 29590033 3 1 "readSigned" Prelude.False

areadInt =
  T.mkVariable tPreludeBasic 29670001 29670007 3 4 "readInt" Prelude.False

areadDec =
  T.mkVariable tPreludeBasic 29730001 29730042 3 0 "readDec" Prelude.False

areadOct =
  T.mkVariable tPreludeBasic 29740001 29740042 3 0 "readOct" Prelude.False

areadHex =
  T.mkVariable tPreludeBasic 29750001 29750042 3 0 "readHex" Prelude.False

ashowEFloat =
  T.mkVariable tPreludeBasic 29830001 29830060 3 2 "showEFloat" Prelude.False

ashowFFloat =
  T.mkVariable tPreludeBasic 29840001 29840057 3 2 "showFFloat" Prelude.False

ashowGFloat =
  T.mkVariable tPreludeBasic 29850001 29850059 3 2 "showGFloat" Prelude.False

ashowFloat =
  T.mkVariable tPreludeBasic 29860001 29860036 3 0 "showFloat" Prelude.False

aformatRealFloat =
  T.mkVariable tPreludeBasic 29930001 30570033 3 3 "formatRealFloat"
    Prelude.False

aroundTo =
  T.mkVariable tPreludeBasic 30620001 30710060 3 3 "roundTo" Prelude.False

afloatToDigits =
  T.mkVariable tPreludeBasic 30880001 31510043 3 2 "floatToDigits" Prelude.False

areadFloat =
  T.mkVariable tPreludeBasic 31590001 31760045 3 1 "readFloat" Prelude.False

alexDigits =
  T.mkVariable tPreludeBasic 31790001 31790035 3 0 "lexDigits" Prelude.False

anonnull =
  T.mkVariable tPreludeBasic 31820001 31820007 3 2 "nonnull" Prelude.False

aprec = T.mkVariable tPreludeBasic 31900001 31900015 3 0 "prec" Prelude.False

areduce =
  T.mkVariable tPreludeBasic 32080001 32100044 3 2 "reduce" Prelude.False

(+%) = T.mkVariable tPreludeBasic 32120003 32120003 30 2 "%" Prelude.False

anumerator =
  T.mkVariable tPreludeBasic 32140001 32140028 3 1 "numerator" Prelude.False

adenominator =
  T.mkVariable tPreludeBasic 32160001 32160028 3 1 "denominator" Prelude.False

aapproxRational =
  T.mkVariable tPreludeBasic 32630001 32780076 3 2 "approxRational"
    Prelude.False

(+++=^=++=@/=) =
  T.mkVariable tPreludeBasic 660007 660008 16 2 "/=" Prelude.False

(++^=^=+^=@==) =
  T.mkVariable tPreludeBasic 670007 670008 16 2 "==" Prelude.False

a78v5v81v26compare =
  T.mkVariable tPreludeBasic 780005 810026 3 2 "compare" Prelude.False

(+@%=^=@%=@<=) =
  T.mkVariable tPreludeBasic 830007 830008 16 2 "<=" Prelude.False

(+@&=^=@&=^<) = T.mkVariable tPreludeBasic 840007 840007 16 2 "<" Prelude.False

(+@*=^=@*=@>=) =
  T.mkVariable tPreludeBasic 850007 850008 16 2 ">=" Prelude.False

(+@+=^=@+=^>) = T.mkVariable tPreludeBasic 860007 860007 16 2 ">" Prelude.False

a89v5v91v25max =
  T.mkVariable tPreludeBasic 890005 910025 3 2 "max" Prelude.False

a92v5v94v25min =
  T.mkVariable tPreludeBasic 920005 940025 3 2 "min" Prelude.False

a114v5v114v48succ =
  T.mkVariable tPreludeBasic 1140005 1140048 3 0 "succ" Prelude.False

a115v5v115v56pred =
  T.mkVariable tPreludeBasic 1150005 1150056 3 0 "pred" Prelude.False

a116v5v116v36enumFrom =
  T.mkVariable tPreludeBasic 1160005 1160036 3 1 "enumFrom" Prelude.False

a117v5v117v36enumFromTo =
  T.mkVariable tPreludeBasic 1170005 1170036 3 2 "enumFromTo" Prelude.False

a118v5v118v36enumFromThen =
  T.mkVariable tPreludeBasic 1180005 1180036 3 2 "enumFromThen" Prelude.False

a119v5v120v36enumFromThenTo =
  T.mkVariable tPreludeBasic 1190005 1200036 3 3 "enumFromThenTo" Prelude.False

(+#%@=^=#%@=^-) =
  T.mkVariable tPreludeBasic 1380007 1380007 26 2 "-" Prelude.False

a139v5v139v29negate =
  T.mkVariable tPreludeBasic 1390005 1390029 3 1 "negate" Prelude.False

a154v8v154v11quot =
  T.mkVariable tPreludeBasic 1540008 1540011 30 2 "quot" Prelude.False

a155v8v155v10rem =
  T.mkVariable tPreludeBasic 1550008 1550010 30 2 "rem" Prelude.False

a156v8v156v10div =
  T.mkVariable tPreludeBasic 1560008 1560010 30 2 "div" Prelude.False

a157v8v157v10mod =
  T.mkVariable tPreludeBasic 1570008 1570010 30 2 "mod" Prelude.False

a158v5v161v52divMod =
  T.mkVariable tPreludeBasic 1580005 1610052 3 2 "divMod" Prelude.False

a171v5v171v29recip =
  T.mkVariable tPreludeBasic 1710005 1710029 3 1 "recip" Prelude.False

(+#^$=^=#^$=^/) =
  T.mkVariable tPreludeBasic 1720007 1720007 30 2 "/" Prelude.False

(+#@@=^=#@@=@**) =
  T.mkVariable tPreludeBasic 1880007 1880008 33 2 "**" Prelude.False

a189v5v189v37logBase =
  T.mkVariable tPreludeBasic 1890005 1890037 3 2 "logBase" Prelude.False

a190v5v190v31sqrt =
  T.mkVariable tPreludeBasic 1900005 1900031 3 1 "sqrt" Prelude.False

a191v5v191v39tan =
  T.mkVariable tPreludeBasic 1910005 1910039 3 1 "tan" Prelude.False

a192v5v192v39tanh =
  T.mkVariable tPreludeBasic 1920005 1920039 3 1 "tanh" Prelude.False

a203v5v203v57truncate =
  T.mkVariable tPreludeBasic 2030005 2030057 3 1 "truncate" Prelude.False

a205v5v210v40round =
  T.mkVariable tPreludeBasic 2050005 2100040 3 1 "round" Prelude.False

a218v5v219v54ceiling =
  T.mkVariable tPreludeBasic 2180005 2190054 3 1 "ceiling" Prelude.False

a221v5v222v54floor =
  T.mkVariable tPreludeBasic 2210005 2220054 3 1 "floor" Prelude.False

a241v5v242v51exponent =
  T.mkVariable tPreludeBasic 2410005 2420051 3 1 "exponent" Prelude.False

a244v5v245v51significand =
  T.mkVariable tPreludeBasic 2440005 2450051 3 1 "significand" Prelude.False

a247v5v248v51scaleFloat =
  T.mkVariable tPreludeBasic 2470005 2480051 3 2 "scaleFloat" Prelude.False

a250v5v261v30atan2 =
  T.mkVariable tPreludeBasic 2500005 2610030 3 2 "atan2" Prelude.False

(+%$&=^=%$&=@>>) =
  T.mkVariable tPreludeBasic 3240007 3240008 6 2 ">>" Prelude.False

a325v5v325v21fail =
  T.mkVariable tPreludeBasic 3250005 3250021 3 1 "fail" Prelude.False

(+%*^=^=%*^=@==) =
  T.mkVariable tPreludeBasic 3570007 3570008 16 2 "==" Prelude.False

a360v3v360v22compare =
  T.mkVariable tPreludeBasic 3600003 3600022 3 2 "compare" Prelude.False

a363v3v363v18fromEnum =
  T.mkVariable tPreludeBasic 3630003 3630018 3 1 "fromEnum" Prelude.False

a364v3v365v78toEnum =
  T.mkVariable tPreludeBasic 3640003 3650078 3 1 "toEnum" Prelude.False

a368v3v368v16minBound =
  T.mkVariable tPreludeBasic 3680003 3680016 3 0 "minBound" Prelude.False

a369v3v369v16maxBound =
  T.mkVariable tPreludeBasic 3690003 3690016 3 0 "maxBound" Prelude.False

(+&#&=>=&#+=#!==) =
  T.mkVariable tPreludeBasic 4140009 4160010 16 2 "==" Prelude.False

a419v3v422v26compare =
  T.mkVariable tPreludeBasic 4190003 4220026 3 2 "compare" Prelude.False

a425v3v426v22fromEnum =
  T.mkVariable tPreludeBasic 4250003 4260022 3 1 "fromEnum" Prelude.False

a428v3v430v70toEnum =
  T.mkVariable tPreludeBasic 4280003 4300070 3 1 "toEnum" Prelude.False

a432v3v432v32enumFrom =
  T.mkVariable tPreludeBasic 4320003 4320032 3 1 "enumFrom" Prelude.False

a433v3v433v53enumFromThen =
  T.mkVariable tPreludeBasic 4330003 4330053 3 2 "enumFromThen" Prelude.False

a436v3v437v20readsPrec =
  T.mkVariable tPreludeBasic 4360003 4370020 3 1 "readsPrec" Prelude.False

a441v3v442v38showsPrec =
  T.mkVariable tPreludeBasic 4410003 4420038 3 2 "showsPrec" Prelude.False

a445v3v445v18minBound =
  T.mkVariable tPreludeBasic 4450003 4450018 3 0 "minBound" Prelude.False

a446v3v446v17maxBound =
  T.mkVariable tPreludeBasic 4460003 4460017 3 0 "maxBound" Prelude.False

(+&^*=^=&^*=@==) =
  T.mkVariable tPreludeBasic 4750007 4750008 16 2 "==" Prelude.False

(+&^>=^=&^>=@<=) =
  T.mkVariable tPreludeBasic 4790007 4790008 16 2 "<=" Prelude.False

a483v5v483v37toEnum =
  T.mkVariable tPreludeBasic 4830005 4830037 3 0 "toEnum" Prelude.False

a484v5v484v37fromEnum =
  T.mkVariable tPreludeBasic 4840005 4840037 3 0 "fromEnum" Prelude.False

a485v5v485v36enumFrom =
  T.mkVariable tPreludeBasic 4850005 4850036 3 1 "enumFrom" Prelude.False

a486v5v489v59enumFromThen =
  T.mkVariable tPreludeBasic 4860005 4890059 3 2 "enumFromThen" Prelude.False

a493v5v493v31minBound =
  T.mkVariable tPreludeBasic 4930005 4930031 3 0 "minBound" Prelude.False

a494v5v494v46maxBound =
  T.mkVariable tPreludeBasic 4940005 4940046 3 0 "maxBound" Prelude.False

(+*!%=*#=*!%=*$==) =
  T.mkVariable tPreludeBasic 5030051 5030052 3 2 "==" Prelude.False

a503v55v503v57compare =
  T.mkVariable tPreludeBasic 5030055 5030057 3 2 "compare" Prelude.False

a503v60v503v63readsPrec =
  T.mkVariable tPreludeBasic 5030060 5030063 3 1 "readsPrec" Prelude.False

a503v66v503v69showsPrec =
  T.mkVariable tPreludeBasic 5030066 5030069 3 2 "showsPrec" Prelude.False

a512v5v513v34fmap =
  T.mkVariable tPreludeBasic 5120005 5130034 3 2 "fmap" Prelude.False

(+*#^=#&=*#@=#+>>=) =
  T.mkVariable tPreludeBasic 5170014 5180016 6 2 ">>=" Prelude.False

a519v5v519v28return =
  T.mkVariable tPreludeBasic 5190005 5190028 3 0 "return" Prelude.False

a520v5v520v31fail =
  T.mkVariable tPreludeBasic 5200005 5200031 3 1 "fail" Prelude.False

(+*$*=*#=*$*=*$==) =
  T.mkVariable tPreludeBasic 5250051 5250052 3 2 "==" Prelude.False

a525v55v525v57compare =
  T.mkVariable tPreludeBasic 5250055 5250057 3 2 "compare" Prelude.False

a525v60v525v63readsPrec =
  T.mkVariable tPreludeBasic 5250060 5250063 3 1 "readsPrec" Prelude.False

a525v66v525v69showsPrec =
  T.mkVariable tPreludeBasic 5250066 5250069 3 2 "showsPrec" Prelude.False

a539v4v539v42fmap =
  T.mkVariable tPreludeBasic 5390004 5390042 3 2 "fmap" Prelude.False

(+*&%=*=*&%=$$>>=) =
  T.mkVariable tPreludeBasic 5430005 5430022 6 0 ">>=" Prelude.False

a544v4v544v24return =
  T.mkVariable tPreludeBasic 5440004 5440024 3 0 "return" Prelude.False

a545v4v545v32fail =
  T.mkVariable tPreludeBasic 5450004 5450032 3 1 "fail" Prelude.False

(+**#=$#=**#=$$==) =
  T.mkVariable tPreludeBasic 5510021 5510022 3 2 "==" Prelude.False

a551v25v551v27compare =
  T.mkVariable tPreludeBasic 5510025 5510027 3 2 "compare" Prelude.False

a551v30v551v33fromEnum =
  T.mkVariable tPreludeBasic 5510030 5510033 3 1 "fromEnum" Prelude.False

a551v30v551v33toEnum =
  T.mkVariable tPreludeBasic 5510030 5510033 3 1 "toEnum" Prelude.False

a551v30v551v33enumFrom =
  T.mkVariable tPreludeBasic 5510030 5510033 3 1 "enumFrom" Prelude.False

a551v30v551v33enumFromThen =
  T.mkVariable tPreludeBasic 5510030 5510033 3 2 "enumFromThen" Prelude.False

a551v36v551v39readsPrec =
  T.mkVariable tPreludeBasic 5510036 5510039 3 1 "readsPrec" Prelude.False

a551v42v551v45showsPrec =
  T.mkVariable tPreludeBasic 5510042 5510045 3 2 "showsPrec" Prelude.False

a551v48v551v54minBound =
  T.mkVariable tPreludeBasic 5510048 5510054 3 0 "minBound" Prelude.False

a551v48v551v54maxBound =
  T.mkVariable tPreludeBasic 5510048 5510054 3 0 "maxBound" Prelude.False

(+*+$=*=*+$=+==) =
  T.mkVariable tPreludeBasic 5620005 5620006 16 2 "==" Prelude.False

(+*+%=*=*+%=+/=) =
  T.mkVariable tPreludeBasic 5630005 5630006 16 2 "/=" Prelude.False

(+*++=*=*++=*<) =
  T.mkVariable tPreludeBasic 5660005 5660005 16 2 "<" Prelude.False

(+*+^=*=*+^=+<=) =
  T.mkVariable tPreludeBasic 5670005 5670006 16 2 "<=" Prelude.False

(+*+@=*=*+@=+>=) =
  T.mkVariable tPreludeBasic 5680005 5680006 16 2 ">=" Prelude.False

(+*+>=*=*+>=*>) =
  T.mkVariable tPreludeBasic 5690005 5690005 16 2 ">" Prelude.False

(+*^$=&=*^$=&+) =
  T.mkVariable tPreludeBasic 5720004 5720004 26 2 "+" Prelude.False

(+*^%=&=*^%=&-) =
  T.mkVariable tPreludeBasic 5730004 5730004 26 2 "-" Prelude.False

(+*^&=&=*^&=&*) =
  T.mkVariable tPreludeBasic 5740004 5740004 30 2 "*" Prelude.False

a575v2v575v27negate =
  T.mkVariable tPreludeBasic 5750002 5750027 3 1 "negate" Prelude.False

a576v2v576v24abs =
  T.mkVariable tPreludeBasic 5760002 5760024 3 1 "abs" Prelude.False

a577v2v577v27signum =
  T.mkVariable tPreludeBasic 5770002 5770027 3 1 "signum" Prelude.False

a578v2v578v37fromInteger =
  T.mkVariable tPreludeBasic 5780002 5780037 3 1 "fromInteger" Prelude.False

a581v5v581v36toRational =
  T.mkVariable tPreludeBasic 5810005 5810036 3 1 "toRational" Prelude.False

a584v8v584v11quot =
  T.mkVariable tPreludeBasic 5840008 5840011 30 2 "quot" Prelude.False

a585v8v585v10rem =
  T.mkVariable tPreludeBasic 5850008 5850010 30 2 "rem" Prelude.False

a586v8v586v14quotRem =
  T.mkVariable tPreludeBasic 5860008 5860014 3 2 "quotRem" Prelude.False

a588v5v588v46toInteger =
  T.mkVariable tPreludeBasic 5880005 5880046 3 1 "toInteger" Prelude.False

a591v3v591v13toEnum =
  T.mkVariable tPreludeBasic 5910003 5910013 3 0 "toEnum" Prelude.False

a592v3v592v15fromEnum =
  T.mkVariable tPreludeBasic 5920003 5920015 3 0 "fromEnum" Prelude.False

a594v3v594v36enumFrom =
  T.mkVariable tPreludeBasic 5940003 5940036 3 1 "enumFrom" Prelude.False

a595v3v595v78enumFromThen =
  T.mkVariable tPreludeBasic 5950003 5950078 3 2 "enumFromThen" Prelude.False

a596v3v596v40enumFromTo =
  T.mkVariable tPreludeBasic 5960003 5960040 3 2 "enumFromTo" Prelude.False

a597v3v597v52enumFromThenTo =
  T.mkVariable tPreludeBasic 5970003 5970052 3 3 "enumFromThenTo" Prelude.False

a613v3v613v28minBound =
  T.mkVariable tPreludeBasic 6130003 6130028 3 0 "minBound" Prelude.False

a614v3v614v28maxBound =
  T.mkVariable tPreludeBasic 6140003 6140028 3 0 "maxBound" Prelude.False

(++$!=*=+$!=+==) =
  T.mkVariable tPreludeBasic 6200005 6200006 16 2 "==" Prelude.False

(++$#=*=+$#=+/=) =
  T.mkVariable tPreludeBasic 6210005 6210006 16 2 "/=" Prelude.False

(++$&=*=+$&=*<) =
  T.mkVariable tPreludeBasic 6240005 6240005 16 2 "<" Prelude.False

(++$*=*=+$*=+<=) =
  T.mkVariable tPreludeBasic 6250005 6250006 16 2 "<=" Prelude.False

(++$+=*=+$+=+>=) =
  T.mkVariable tPreludeBasic 6260005 6260006 16 2 ">=" Prelude.False

(++$^=*=+$^=*>) =
  T.mkVariable tPreludeBasic 6270005 6270005 16 2 ">" Prelude.False

(++%!=&=+%!=&+) =
  T.mkVariable tPreludeBasic 6300004 6300004 26 2 "+" Prelude.False

(++%#=&=+%#=&-) =
  T.mkVariable tPreludeBasic 6310004 6310004 26 2 "-" Prelude.False

(++%$=&=+%$=&*) =
  T.mkVariable tPreludeBasic 6320004 6320004 30 2 "*" Prelude.False

a633v2v633v28negate =
  T.mkVariable tPreludeBasic 6330002 6330028 3 1 "negate" Prelude.False

a634v2v634v41abs =
  T.mkVariable tPreludeBasic 6340002 6340041 3 1 "abs" Prelude.False

a635v2v638v24signum =
  T.mkVariable tPreludeBasic 6350002 6380024 3 1 "signum" Prelude.False

a639v2v639v18fromInteger =
  T.mkVariable tPreludeBasic 6390002 6390018 3 1 "fromInteger" Prelude.False

a642v5v642v24toRational =
  T.mkVariable tPreludeBasic 6420005 6420024 3 1 "toRational" Prelude.False

a645v8v645v11quot =
  T.mkVariable tPreludeBasic 6450008 6450011 30 2 "quot" Prelude.False

a646v8v646v10rem =
  T.mkVariable tPreludeBasic 6460008 6460010 30 2 "rem" Prelude.False

a647v8v647v10div =
  T.mkVariable tPreludeBasic 6470008 6470010 30 2 "div" Prelude.False

a648v8v648v10mod =
  T.mkVariable tPreludeBasic 6480008 6480010 30 2 "mod" Prelude.False

a650v8v650v14quotRem =
  T.mkVariable tPreludeBasic 6500008 6500014 3 2 "quotRem" Prelude.False

a652v5v652v21toInteger =
  T.mkVariable tPreludeBasic 6520005 6520021 3 1 "toInteger" Prelude.False

a655v3v655v18succ =
  T.mkVariable tPreludeBasic 6550003 6550018 3 1 "succ" Prelude.False

a656v3v656v18pred =
  T.mkVariable tPreludeBasic 6560003 6560018 3 1 "pred" Prelude.False

a657v3v657v26toEnum =
  T.mkVariable tPreludeBasic 6570003 6570026 3 1 "toEnum" Prelude.False

a658v3v658v28fromEnum =
  T.mkVariable tPreludeBasic 6580003 6580028 3 1 "fromEnum" Prelude.False

a660v3v660v24enumFrom =
  T.mkVariable tPreludeBasic 6600003 6600024 3 0 "enumFrom" Prelude.False

a661v3v661v41enumFromThen =
  T.mkVariable tPreludeBasic 6610003 6610041 3 2 "enumFromThen" Prelude.False

a662v3v662v51enumFromTo =
  T.mkVariable tPreludeBasic 6620003 6620051 3 2 "enumFromTo" Prelude.False

a663v3v666v54enumFromThenTo =
  T.mkVariable tPreludeBasic 6630003 6660054 3 3 "enumFromThenTo" Prelude.False

(++^$=*=+^$=+==) =
  T.mkVariable tPreludeBasic 6720005 6720006 16 2 "==" Prelude.False

(++^%=*=+^%=+/=) =
  T.mkVariable tPreludeBasic 6730005 6730006 16 2 "/=" Prelude.False

(++^+=*=+^+=*<) =
  T.mkVariable tPreludeBasic 6760005 6760005 16 2 "<" Prelude.False

(++^^=*=+^^=+<=) =
  T.mkVariable tPreludeBasic 6770005 6770006 16 2 "<=" Prelude.False

(++^@=*=+^@=+>=) =
  T.mkVariable tPreludeBasic 6780005 6780006 16 2 ">=" Prelude.False

(++^>=*=+^>=*>) =
  T.mkVariable tPreludeBasic 6790005 6790005 16 2 ">" Prelude.False

(++@$=&=+@$=&+) =
  T.mkVariable tPreludeBasic 6820004 6820004 26 2 "+" Prelude.False

(++@%=&=+@%=&-) =
  T.mkVariable tPreludeBasic 6830004 6830004 26 2 "-" Prelude.False

(++@&=&=+@&=&*) =
  T.mkVariable tPreludeBasic 6840004 6840004 30 2 "*" Prelude.False

a685v2v685v17negate =
  T.mkVariable tPreludeBasic 6850002 6850017 3 1 "negate" Prelude.False

a686v2v686v26abs =
  T.mkVariable tPreludeBasic 6860002 6860026 3 1 "abs" Prelude.False

a687v2v687v29signum =
  T.mkVariable tPreludeBasic 6870002 6870029 3 1 "signum" Prelude.False

a688v2v688v39fromInteger =
  T.mkVariable tPreludeBasic 6880002 6880039 3 1 "fromInteger" Prelude.False

a691v5v692v52toRational =
  T.mkVariable tPreludeBasic 6910005 6920052 3 1 "toRational" Prelude.False

(++>*=*=+>*=*/) =
  T.mkVariable tPreludeBasic 6950005 6950005 30 2 "/" Prelude.False

a696v3v704v76fromRational =
  T.mkVariable tPreludeBasic 6960003 7040076 3 1 "fromRational" Prelude.False

a707v5v707v38pi =
  T.mkVariable tPreludeBasic 7070005 7070038 3 0 "pi" Prelude.False

a708v5v708v41exp =
  T.mkVariable tPreludeBasic 7080005 7080041 3 1 "exp" Prelude.False

a709v5v709v41log =
  T.mkVariable tPreludeBasic 7090005 7090041 3 1 "log" Prelude.False

a710v5v710v42sqrt =
  T.mkVariable tPreludeBasic 7100005 7100042 3 1 "sqrt" Prelude.False

a711v5v711v41sin =
  T.mkVariable tPreludeBasic 7110005 7110041 3 1 "sin" Prelude.False

a712v5v712v41cos =
  T.mkVariable tPreludeBasic 7120005 7120041 3 1 "cos" Prelude.False

a713v5v713v41tan =
  T.mkVariable tPreludeBasic 7130005 7130041 3 1 "tan" Prelude.False

a714v5v714v42asin =
  T.mkVariable tPreludeBasic 7140005 7140042 3 1 "asin" Prelude.False

a715v5v715v42acos =
  T.mkVariable tPreludeBasic 7150005 7150042 3 1 "acos" Prelude.False

a716v5v716v42atan =
  T.mkVariable tPreludeBasic 7160005 7160042 3 1 "atan" Prelude.False

a717v5v717v48sinh =
  T.mkVariable tPreludeBasic 7170005 7170048 3 1 "sinh" Prelude.False

a718v5v718v48cosh =
  T.mkVariable tPreludeBasic 7180005 7180048 3 1 "cosh" Prelude.False

a719v5v719v73tanh =
  T.mkVariable tPreludeBasic 7190005 7190073 3 1 "tanh" Prelude.False

a720v5v720v34asinh =
  T.mkVariable tPreludeBasic 7200005 7200034 3 1 "asinh" Prelude.False

a721v5v721v47acosh =
  T.mkVariable tPreludeBasic 7210005 7210047 3 1 "acosh" Prelude.False

a722v5v722v40atanh =
  T.mkVariable tPreludeBasic 7220005 7220040 3 1 "atanh" Prelude.False

a725v5v731v67properFraction =
  T.mkVariable tPreludeBasic 7250005 7310067 3 1 "properFraction" Prelude.False

a734v5v734v34floatRadix =
  T.mkVariable tPreludeBasic 7340005 7340034 3 0 "floatRadix" Prelude.False

a735v5v735v35floatDigits =
  T.mkVariable tPreludeBasic 7350005 7350035 3 0 "floatDigits" Prelude.False

a736v5v736v34floatRange =
  T.mkVariable tPreludeBasic 7360005 7360034 3 0 "floatRange" Prelude.False

a737v5v737v37decodeFloat =
  T.mkVariable tPreludeBasic 7370005 7370037 3 1 "decodeFloat" Prelude.False

a738v5v738v41encodeFloat =
  T.mkVariable tPreludeBasic 7380005 7380041 3 2 "encodeFloat" Prelude.False

a740v5v740v35isNaN =
  T.mkVariable tPreludeBasic 7400005 7400035 3 0 "isNaN" Prelude.False

a741v5v741v40isInfinite =
  T.mkVariable tPreludeBasic 7410005 7410040 3 0 "isInfinite" Prelude.False

a742v5v742v44isDenormalized =
  T.mkVariable tPreludeBasic 7420005 7420044 3 0 "isDenormalized" Prelude.False

a743v5v743v44isNegativeZero =
  T.mkVariable tPreludeBasic 7430005 7430044 3 0 "isNegativeZero" Prelude.False

a744v5v744v36isIEEE =
  T.mkVariable tPreludeBasic 7440005 7440036 3 0 "isIEEE" Prelude.False

(+^*!=*=^*!=+==) =
  T.mkVariable tPreludeBasic 7500005 7500006 16 2 "==" Prelude.False

(+^*#=*=^*#=+/=) =
  T.mkVariable tPreludeBasic 7510005 7510006 16 2 "/=" Prelude.False

(+^*&=*=^*&=*<) =
  T.mkVariable tPreludeBasic 7540005 7540005 16 2 "<" Prelude.False

(+^**=*=^**=+<=) =
  T.mkVariable tPreludeBasic 7550005 7550006 16 2 "<=" Prelude.False

(+^*+=*=^*+=+>=) =
  T.mkVariable tPreludeBasic 7560005 7560006 16 2 ">=" Prelude.False

(+^*^=*=^*^=*>) =
  T.mkVariable tPreludeBasic 7570005 7570005 16 2 ">" Prelude.False

(+^+!=&=^+!=&+) =
  T.mkVariable tPreludeBasic 7600004 7600004 26 2 "+" Prelude.False

(+^+#=&=^+#=&-) =
  T.mkVariable tPreludeBasic 7610004 7610004 26 2 "-" Prelude.False

(+^+$=&=^+$=&*) =
  T.mkVariable tPreludeBasic 7620004 7620004 30 2 "*" Prelude.False

a763v2v763v18negate =
  T.mkVariable tPreludeBasic 7630002 7630018 3 1 "negate" Prelude.False

a764v2v764v27abs =
  T.mkVariable tPreludeBasic 7640002 7640027 3 1 "abs" Prelude.False

a765v2v765v30signum =
  T.mkVariable tPreludeBasic 7650002 7650030 3 1 "signum" Prelude.False

a766v2v766v40fromInteger =
  T.mkVariable tPreludeBasic 7660002 7660040 3 1 "fromInteger" Prelude.False

a769v5v770v51toRational =
  T.mkVariable tPreludeBasic 7690005 7700051 3 1 "toRational" Prelude.False

(+^^%=*=^^%=*/) =
  T.mkVariable tPreludeBasic 7730005 7730005 30 2 "/" Prelude.False

a774v3v783v11fromRational =
  T.mkVariable tPreludeBasic 7740003 7830011 3 1 "fromRational" Prelude.False

a787v5v787v39pi =
  T.mkVariable tPreludeBasic 7870005 7870039 3 0 "pi" Prelude.False

a788v5v788v42exp =
  T.mkVariable tPreludeBasic 7880005 7880042 3 1 "exp" Prelude.False

a789v5v789v42log =
  T.mkVariable tPreludeBasic 7890005 7890042 3 1 "log" Prelude.False

a790v5v790v43sqrt =
  T.mkVariable tPreludeBasic 7900005 7900043 3 1 "sqrt" Prelude.False

a791v5v791v42sin =
  T.mkVariable tPreludeBasic 7910005 7910042 3 1 "sin" Prelude.False

a792v5v792v42cos =
  T.mkVariable tPreludeBasic 7920005 7920042 3 1 "cos" Prelude.False

a793v5v793v42tan =
  T.mkVariable tPreludeBasic 7930005 7930042 3 1 "tan" Prelude.False

a794v5v794v43asin =
  T.mkVariable tPreludeBasic 7940005 7940043 3 1 "asin" Prelude.False

a795v5v795v43acos =
  T.mkVariable tPreludeBasic 7950005 7950043 3 1 "acos" Prelude.False

a796v5v796v43atan =
  T.mkVariable tPreludeBasic 7960005 7960043 3 1 "atan" Prelude.False

a797v5v797v63sinh =
  T.mkVariable tPreludeBasic 7970005 7970063 3 1 "sinh" Prelude.False

a798v5v798v63cosh =
  T.mkVariable tPreludeBasic 7980005 7980063 3 1 "cosh" Prelude.False

a799v5v799v67tanh =
  T.mkVariable tPreludeBasic 7990005 7990067 3 1 "tanh" Prelude.False

a800v5v800v34asinh =
  T.mkVariable tPreludeBasic 8000005 8000034 3 1 "asinh" Prelude.False

a801v5v801v47acosh =
  T.mkVariable tPreludeBasic 8010005 8010047 3 1 "acosh" Prelude.False

a802v5v802v40atanh =
  T.mkVariable tPreludeBasic 8020005 8020040 3 1 "atanh" Prelude.False

a805v5v811v67properFraction =
  T.mkVariable tPreludeBasic 8050005 8110067 3 1 "properFraction" Prelude.False

a815v5v815v35floatRadix =
  T.mkVariable tPreludeBasic 8150005 8150035 3 0 "floatRadix" Prelude.False

a816v5v816v36floatDigits =
  T.mkVariable tPreludeBasic 8160005 8160036 3 0 "floatDigits" Prelude.False

a817v5v817v35floatRange =
  T.mkVariable tPreludeBasic 8170005 8170035 3 0 "floatRange" Prelude.False

a818v5v818v38decodeFloat =
  T.mkVariable tPreludeBasic 8180005 8180038 3 1 "decodeFloat" Prelude.False

a819v5v819v42encodeFloat =
  T.mkVariable tPreludeBasic 8190005 8190042 3 2 "encodeFloat" Prelude.False

a821v5v821v36isNaN =
  T.mkVariable tPreludeBasic 8210005 8210036 3 0 "isNaN" Prelude.False

a822v5v822v41isInfinite =
  T.mkVariable tPreludeBasic 8220005 8220041 3 0 "isInfinite" Prelude.False

a823v5v823v45isDenormalized =
  T.mkVariable tPreludeBasic 8230005 8230045 3 0 "isDenormalized" Prelude.False

a824v5v824v45isNegativeZero =
  T.mkVariable tPreludeBasic 8240005 8240045 3 0 "isNegativeZero" Prelude.False

a825v5v825v37isIEEE =
  T.mkVariable tPreludeBasic 8250005 8250037 3 0 "isIEEE" Prelude.False

a836v5v836v27succ =
  T.mkVariable tPreludeBasic 8360005 8360027 3 1 "succ" Prelude.False

a837v5v837v27pred =
  T.mkVariable tPreludeBasic 8370005 8370027 3 1 "pred" Prelude.False

a838v5v838v36toEnum =
  T.mkVariable tPreludeBasic 8380005 8380036 3 0 "toEnum" Prelude.False

a839v5v839v46fromEnum =
  T.mkVariable tPreludeBasic 8390005 8390046 3 0 "fromEnum" Prelude.False

a840v5v840v39enumFrom =
  T.mkVariable tPreludeBasic 8400005 8400039 3 0 "enumFrom" Prelude.False

a841v5v841v43enumFromThen =
  T.mkVariable tPreludeBasic 8410005 8410043 3 0 "enumFromThen" Prelude.False

a842v5v842v41enumFromTo =
  T.mkVariable tPreludeBasic 8420005 8420041 3 0 "enumFromTo" Prelude.False

a843v5v843v45enumFromThenTo =
  T.mkVariable tPreludeBasic 8430005 8430045 3 0 "enumFromThenTo" Prelude.False

a847v5v847v27succ =
  T.mkVariable tPreludeBasic 8470005 8470027 3 1 "succ" Prelude.False

a848v5v848v27pred =
  T.mkVariable tPreludeBasic 8480005 8480027 3 1 "pred" Prelude.False

a849v5v849v36toEnum =
  T.mkVariable tPreludeBasic 8490005 8490036 3 0 "toEnum" Prelude.False

a850v5v850v46fromEnum =
  T.mkVariable tPreludeBasic 8500005 8500046 3 0 "fromEnum" Prelude.False

a851v5v851v39enumFrom =
  T.mkVariable tPreludeBasic 8510005 8510039 3 0 "enumFrom" Prelude.False

a852v5v852v43enumFromThen =
  T.mkVariable tPreludeBasic 8520005 8520043 3 0 "enumFromThen" Prelude.False

a853v5v853v41enumFromTo =
  T.mkVariable tPreludeBasic 8530005 8530041 3 0 "enumFromTo" Prelude.False

a854v5v854v45enumFromThenTo =
  T.mkVariable tPreludeBasic 8540005 8540045 3 0 "enumFromThenTo" Prelude.False

(+@@!=#!=@@$=##==) =
  T.mkVariable tPreludeBasic 8800010 8820011 16 2 "==" Prelude.False

a885v3v892v16compare =
  T.mkVariable tPreludeBasic 8850003 8920016 3 2 "compare" Prelude.False

a896v5v896v14fmap =
  T.mkVariable tPreludeBasic 8960005 8960014 3 0 "fmap" Prelude.False

(+>!!=^=>!!=>>>=) =
  T.mkVariable tPreludeBasic 9000007 9000009 6 2 ">>=" Prelude.False

a901v5v901v26return =
  T.mkVariable tPreludeBasic 9010005 9010026 3 1 "return" Prelude.False

a902v5v902v25fail =
  T.mkVariable tPreludeBasic 9020005 9020025 3 1 "fail" Prelude.False

(+>#%=>=>#%=#!==) =
  T.mkVariable tPreludeBasic 9130009 9130010 16 2 "==" Prelude.False

a916v3v920v16compare =
  T.mkVariable tPreludeBasic 9160003 9200016 3 2 "compare" Prelude.False

a923v3v923v33minBound =
  T.mkVariable tPreludeBasic 9230003 9230033 3 0 "minBound" Prelude.False

a924v3v924v33maxBound =
  T.mkVariable tPreludeBasic 9240003 9240033 3 0 "maxBound" Prelude.False

(+>$@=##=>$@=#$==) =
  T.mkVariable tPreludeBasic 9280011 9280012 16 2 "==" Prelude.False

a931v3v936v15compare =
  T.mkVariable tPreludeBasic 9310003 9360015 3 2 "compare" Prelude.False

a939v3v939v41minBound =
  T.mkVariable tPreludeBasic 9390003 9390041 3 0 "minBound" Prelude.False

a940v3v940v41maxBound =
  T.mkVariable tPreludeBasic 9400003 9400041 3 0 "maxBound" Prelude.False

(+>&&=#%=>&&=#&==) =
  T.mkVariable tPreludeBasic 9440013 9440014 16 2 "==" Prelude.False

a947v3v954v15compare =
  T.mkVariable tPreludeBasic 9470003 9540015 3 2 "compare" Prelude.False

a957v3v957v50minBound =
  T.mkVariable tPreludeBasic 9570003 9570050 3 0 "minBound" Prelude.False

a958v3v958v50maxBound =
  T.mkVariable tPreludeBasic 9580003 9580050 3 0 "maxBound" Prelude.False

(+>+$=#*=>+$=#+==) =
  T.mkVariable tPreludeBasic 9620015 9620016 16 2 "==" Prelude.False

a966v3v975v15compare =
  T.mkVariable tPreludeBasic 9660003 9750015 3 2 "compare" Prelude.False

a979v3v979v59minBound =
  T.mkVariable tPreludeBasic 9790003 9790059 3 0 "minBound" Prelude.False

a980v3v980v59maxBound =
  T.mkVariable tPreludeBasic 9800003 9800059 3 0 "maxBound" Prelude.False

(+>@&=#^=>@&=#@==) =
  T.mkVariable tPreludeBasic 9840017 9840018 16 2 "==" Prelude.False

a988v3v999v15compare =
  T.mkVariable tPreludeBasic 9880003 9990015 3 2 "compare" Prelude.False

a1003v3v1003v68minBound =
  T.mkVariable tPreludeBasic 10030003 10030068 3 0 "minBound" Prelude.False

a1004v3v1004v68maxBound =
  T.mkVariable tPreludeBasic 10040003 10040068 3 0 "maxBound" Prelude.False

(+#!!@=#>=#!!@=$!==) =
  T.mkVariable tPreludeBasic 10080019 10080020 16 2 "==" Prelude.False

a1013v3v1026v15compare =
  T.mkVariable tPreludeBasic 10130003 10260015 3 2 "compare" Prelude.False

a1031v3v1031v77minBound =
  T.mkVariable tPreludeBasic 10310003 10310077 3 0 "minBound" Prelude.False

a1032v3v1032v77maxBound =
  T.mkVariable tPreludeBasic 10320003 10320077 3 0 "maxBound" Prelude.False

(+#!%^=$#=#!%^=$$==) =
  T.mkVariable tPreludeBasic 10370021 10370022 16 2 "==" Prelude.False

a1043v3v1057v15compare =
  T.mkVariable tPreludeBasic 10430003 10570015 3 2 "compare" Prelude.False

a1062v3v1063v23minBound =
  T.mkVariable tPreludeBasic 10620003 10630023 3 0 "minBound" Prelude.False

a1064v3v1065v23maxBound =
  T.mkVariable tPreludeBasic 10640003 10650023 3 0 "maxBound" Prelude.False

(+#!+>=$%=#!+>=$&==) =
  T.mkVariable tPreludeBasic 10690023 10690024 16 2 "==" Prelude.False

a1075v3v1091v13compare =
  T.mkVariable tPreludeBasic 10750003 10910013 3 2 "compare" Prelude.False

a1096v3v1097v32minBound =
  T.mkVariable tPreludeBasic 10960003 10970032 3 0 "minBound" Prelude.False

a1098v3v1099v32maxBound =
  T.mkVariable tPreludeBasic 10980003 10990032 3 0 "maxBound" Prelude.False

(+##!&=$*=##!&=$+==) =
  T.mkVariable tPreludeBasic 11040025 11040026 16 2 "==" Prelude.False

a1110v3v1128v13compare =
  T.mkVariable tPreludeBasic 11100003 11280013 3 2 "compare" Prelude.False

a1133v3v1134v41minBound =
  T.mkVariable tPreludeBasic 11330003 11340041 3 0 "minBound" Prelude.False

a1135v3v1136v41maxBound =
  T.mkVariable tPreludeBasic 11350003 11360041 3 0 "maxBound" Prelude.False

(+##&#=$^=##&#=$@==) =
  T.mkVariable tPreludeBasic 11410027 11410028 16 2 "==" Prelude.False

a1147v3v1167v13compare =
  T.mkVariable tPreludeBasic 11470003 11670013 3 2 "compare" Prelude.False

a1172v3v1173v50minBound =
  T.mkVariable tPreludeBasic 11720003 11730050 3 0 "minBound" Prelude.False

a1174v3v1175v50maxBound =
  T.mkVariable tPreludeBasic 11740003 11750050 3 0 "maxBound" Prelude.False

(+##@!=$>=##@!=%!==) =
  T.mkVariable tPreludeBasic 11800029 11800030 16 2 "==" Prelude.False

a1187v3v1209v13compare =
  T.mkVariable tPreludeBasic 11870003 12090013 3 2 "compare" Prelude.False

a1214v3v1215v59minBound =
  T.mkVariable tPreludeBasic 12140003 12150059 3 0 "minBound" Prelude.False

a1216v3v1217v59maxBound =
  T.mkVariable tPreludeBasic 12160003 12170059 3 0 "maxBound" Prelude.False

(+#$$$=%#=#$$$=%$==) =
  T.mkVariable tPreludeBasic 12220031 12220032 16 2 "==" Prelude.False

a1229v3v1254v13compare =
  T.mkVariable tPreludeBasic 12290003 12540013 3 2 "compare" Prelude.False

a1260v3v1261v68minBound =
  T.mkVariable tPreludeBasic 12600003 12610068 3 0 "minBound" Prelude.False

a1262v3v1263v68maxBound =
  T.mkVariable tPreludeBasic 12620003 12630068 3 0 "maxBound" Prelude.False

(+#$+@=%%=#$+@=%&==) =
  T.mkVariable tPreludeBasic 12680033 12680034 16 2 "==" Prelude.False

a1277v3v1304v13compare =
  T.mkVariable tPreludeBasic 12770003 13040013 3 2 "compare" Prelude.False

a1310v3v1311v77minBound =
  T.mkVariable tPreludeBasic 13100003 13110077 3 0 "minBound" Prelude.False

a1312v3v1313v77maxBound =
  T.mkVariable tPreludeBasic 13120003 13130077 3 0 "maxBound" Prelude.False

(+#%#>=%*=#%#>=%+==) =
  T.mkVariable tPreludeBasic 13190035 13190036 16 2 "==" Prelude.False

a1328v3v1357v13compare =
  T.mkVariable tPreludeBasic 13280003 13570013 3 2 "compare" Prelude.False

a1363v3v1365v23minBound =
  T.mkVariable tPreludeBasic 13630003 13650023 3 0 "minBound" Prelude.False

a1366v3v1368v23maxBound =
  T.mkVariable tPreludeBasic 13660003 13680023 3 0 "maxBound" Prelude.False

a1807v5v1812v35readList =
  T.mkVariable tPreludeBasic 18070005 18120035 3 0 "readList" Prelude.False

a1825v5v1825v35showsPrec =
  T.mkVariable tPreludeBasic 18250005 18250035 3 3 "showsPrec" Prelude.False

a1827v5v1827v36show =
  T.mkVariable tPreludeBasic 18270005 18270036 3 1 "show" Prelude.False

a1829v5v1833v53showList =
  T.mkVariable tPreludeBasic 18290005 18330053 3 1 "showList" Prelude.False

a1920v5v1920v41showsPrec =
  T.mkVariable tPreludeBasic 19200005 19200041 3 1 "showsPrec" Prelude.False

a1926v3v1926v11readsPrec =
  T.mkVariable tPreludeBasic 19260003 19260011 3 2 "readsPrec" Prelude.False

a1932v5v1932v44showsPrec =
  T.mkVariable tPreludeBasic 19320005 19320044 3 0 "showsPrec" Prelude.False

a1936v5v1936v44readsPrec =
  T.mkVariable tPreludeBasic 19360005 19360044 3 1 "readsPrec" Prelude.False

a1940v5v1940v35showsPrec =
  T.mkVariable tPreludeBasic 19400005 19400035 3 1 "showsPrec" Prelude.False

a1944v5v1944v46readsPrec =
  T.mkVariable tPreludeBasic 19440005 19440046 3 1 "readsPrec" Prelude.False

a1948v5v1948v35showsPrec =
  T.mkVariable tPreludeBasic 19480005 19480035 3 1 "showsPrec" Prelude.False

a1952v5v1952v46readsPrec =
  T.mkVariable tPreludeBasic 19520005 19520046 3 1 "readsPrec" Prelude.False

a1956v5v1956v37showsPrec =
  T.mkVariable tPreludeBasic 19560005 19560037 3 2 "showsPrec" Prelude.False

a1960v5v1961v30readsPrec =
  T.mkVariable tPreludeBasic 19600005 19610030 3 1 "readsPrec" Prelude.False

a1965v5v1966v68showsPrec =
  T.mkVariable tPreludeBasic 19650005 19660068 3 2 "showsPrec" Prelude.False

a1968v5v1971v64showList =
  T.mkVariable tPreludeBasic 19680005 19710064 3 1 "showList" Prelude.False

a1975v5v1976v30readsPrec =
  T.mkVariable tPreludeBasic 19750005 19760030 3 1 "readsPrec" Prelude.False

a1979v5v1983v19readList =
  T.mkVariable tPreludeBasic 19790005 19830019 3 0 "readList" Prelude.False

a1988v5v1988v31showsPrec =
  T.mkVariable tPreludeBasic 19880005 19880031 3 1 "showsPrec" Prelude.False

a1992v5v1992v31readsPrec =
  T.mkVariable tPreludeBasic 19920005 19920031 3 1 "readsPrec" Prelude.False

a1998v5v1999v61showsPrec =
  T.mkVariable tPreludeBasic 19980005 19990061 3 2 "showsPrec" Prelude.False

a2003v5v2004v30readsPrec =
  T.mkVariable tPreludeBasic 20030005 20040030 3 1 "readsPrec" Prelude.False

a2012v5v2013v30readsPrec =
  T.mkVariable tPreludeBasic 20120005 20130030 3 1 "readsPrec" Prelude.False

a2023v5v2024v30readsPrec =
  T.mkVariable tPreludeBasic 20230005 20240030 3 1 "readsPrec" Prelude.False

a2036v5v2037v30readsPrec =
  T.mkVariable tPreludeBasic 20360005 20370030 3 1 "readsPrec" Prelude.False

a2052v5v2053v30readsPrec =
  T.mkVariable tPreludeBasic 20520005 20530030 3 1 "readsPrec" Prelude.False

a2070v5v2071v30readsPrec =
  T.mkVariable tPreludeBasic 20700005 20710030 3 1 "readsPrec" Prelude.False

a2091v5v2092v30readsPrec =
  T.mkVariable tPreludeBasic 20910005 20920030 3 1 "readsPrec" Prelude.False

a2114v5v2115v30readsPrec =
  T.mkVariable tPreludeBasic 21140005 21150030 3 1 "readsPrec" Prelude.False

a2139v5v2140v30readsPrec =
  T.mkVariable tPreludeBasic 21390005 21400030 3 1 "readsPrec" Prelude.False

a2166v5v2167v22readsPrec =
  T.mkVariable tPreludeBasic 21660005 21670022 3 1 "readsPrec" Prelude.False

a2195v5v2196v22readsPrec =
  T.mkVariable tPreludeBasic 21950005 21960022 3 1 "readsPrec" Prelude.False

a2226v5v2227v22readsPrec =
  T.mkVariable tPreludeBasic 22260005 22270022 3 1 "readsPrec" Prelude.False

a2259v5v2260v22readsPrec =
  T.mkVariable tPreludeBasic 22590005 22600022 3 1 "readsPrec" Prelude.False

a2295v5v2296v22readsPrec =
  T.mkVariable tPreludeBasic 22950005 22960022 3 1 "readsPrec" Prelude.False

a2332v5v2334v63showsPrec =
  T.mkVariable tPreludeBasic 23320005 23340063 3 2 "showsPrec" Prelude.False

a2341v5v2344v65showsPrec =
  T.mkVariable tPreludeBasic 23410005 23440065 3 2 "showsPrec" Prelude.False

a2352v5v2356v65showsPrec =
  T.mkVariable tPreludeBasic 23520005 23560065 3 2 "showsPrec" Prelude.False

a2366v5v2371v65showsPrec =
  T.mkVariable tPreludeBasic 23660005 23710065 3 2 "showsPrec" Prelude.False

a2382v5v2388v65showsPrec =
  T.mkVariable tPreludeBasic 23820005 23880065 3 2 "showsPrec" Prelude.False

a2401v5v2408v65showsPrec =
  T.mkVariable tPreludeBasic 24010005 24080065 3 2 "showsPrec" Prelude.False

a2422v5v2431v65showsPrec =
  T.mkVariable tPreludeBasic 24220005 24310065 3 2 "showsPrec" Prelude.False

a2447v5v2457v65showsPrec =
  T.mkVariable tPreludeBasic 24470005 24570065 3 2 "showsPrec" Prelude.False

a2474v5v2485v65showsPrec =
  T.mkVariable tPreludeBasic 24740005 24850065 3 2 "showsPrec" Prelude.False

a2503v5v2515v65showsPrec =
  T.mkVariable tPreludeBasic 25030005 25150065 3 2 "showsPrec" Prelude.False

a2534v5v2547v65showsPrec =
  T.mkVariable tPreludeBasic 25340005 25470065 3 2 "showsPrec" Prelude.False

a2567v5v2581v65showsPrec =
  T.mkVariable tPreludeBasic 25670005 25810065 3 2 "showsPrec" Prelude.False

a2602v5v2617v65showsPrec =
  T.mkVariable tPreludeBasic 26020005 26170065 3 2 "showsPrec" Prelude.False

(+%#>$=%^=%#>$=%@==) =
  T.mkVariable tPreludeBasic 31920037 31920038 3 2 "==" Prelude.False

(+%$$!=#$=%$$!=#%<=) =
  T.mkVariable tPreludeBasic 32200012 32200013 16 2 "<=" Prelude.False

(+%$$#=#$=%$$#=#$<) =
  T.mkVariable tPreludeBasic 32210012 32210012 16 2 "<" Prelude.False

(+%$$&=#$=%$$&=#$+) =
  T.mkVariable tPreludeBasic 32240012 32240012 26 2 "+" Prelude.False

(+%$$*=#$=%$$*=#$*) =
  T.mkVariable tPreludeBasic 32250012 32250012 30 2 "*" Prelude.False

a3226v5v3226v36negate =
  T.mkVariable tPreludeBasic 32260005 32260036 3 1 "negate" Prelude.False

a3227v5v3227v37abs =
  T.mkVariable tPreludeBasic 32270005 32270037 3 1 "abs" Prelude.False

a3228v5v3228v40signum =
  T.mkVariable tPreludeBasic 32280005 32280040 3 1 "signum" Prelude.False

a3229v5v3229v45fromInteger =
  T.mkVariable tPreludeBasic 32290005 32290045 3 1 "fromInteger" Prelude.False

a3232v5v3232v53toRational =
  T.mkVariable tPreludeBasic 32320005 32320053 3 1 "toRational" Prelude.False

(+%$%*=#$=%$%*=#$/) =
  T.mkVariable tPreludeBasic 32350012 32350012 30 2 "/" Prelude.False

a3236v5v3236v32recip =
  T.mkVariable tPreludeBasic 32360005 32360032 3 1 "recip" Prelude.False

a3237v5v3237v57fromRational =
  T.mkVariable tPreludeBasic 32370005 32370057 3 1 "fromRational" Prelude.False

a3240v5v3241v53properFraction =
  T.mkVariable tPreludeBasic 32400005 32410053 3 1 "properFraction"
    Prelude.False

a3244v5v3244v36toEnum =
  T.mkVariable tPreludeBasic 32440005 32440036 3 0 "toEnum" Prelude.False

a3245v5v3245v46fromEnum =
  T.mkVariable tPreludeBasic 32450005 32450046 3 0 "fromEnum" Prelude.False

a3246v5v3246v39enumFrom =
  T.mkVariable tPreludeBasic 32460005 32460039 3 0 "enumFrom" Prelude.False

a3247v5v3247v43enumFromThen =
  T.mkVariable tPreludeBasic 32470005 32470043 3 0 "enumFromThen" Prelude.False

a3248v5v3248v41enumFromTo =
  T.mkVariable tPreludeBasic 32480005 32480041 3 0 "enumFromTo" Prelude.False

a3249v5v3249v45enumFromThenTo =
  T.mkVariable tPreludeBasic 32490005 32490045 3 0 "enumFromThenTo"
    Prelude.False

a3252v5v3253v32readsPrec =
  T.mkVariable tPreludeBasic 32520005 32530032 3 1 "readsPrec" Prelude.False

a3258v5v3259v68showsPrec =
  T.mkVariable tPreludeBasic 32580005 32590068 3 2 "showsPrec" Prelude.False

a154v35v154v35q =
  T.mkVariable tPreludeBasic 1540035 1540035 3 0 "q" Prelude.True

a154v37v154v37r =
  T.mkVariable tPreludeBasic 1540037 1540037 3 0 "r" Prelude.True

a155v35v155v35q =
  T.mkVariable tPreludeBasic 1550035 1550035 3 0 "q" Prelude.True

a155v37v155v37r =
  T.mkVariable tPreludeBasic 1550037 1550037 3 0 "r" Prelude.True

a156v35v156v35q =
  T.mkVariable tPreludeBasic 1560035 1560035 3 0 "q" Prelude.True

a156v37v156v37r =
  T.mkVariable tPreludeBasic 1560037 1560037 3 0 "r" Prelude.True

a157v35v157v35q =
  T.mkVariable tPreludeBasic 1570035 1570035 3 0 "q" Prelude.True

a157v37v157v37r =
  T.mkVariable tPreludeBasic 1570037 1570037 3 0 "r" Prelude.True

a161v31v161v32qr =
  T.mkVariable tPreludeBasic 1610031 1610032 3 0 "qr" Prelude.True

a161v35v161v35q =
  T.mkVariable tPreludeBasic 1610035 1610035 3 0 "q" Prelude.True

a161v37v161v37r =
  T.mkVariable tPreludeBasic 1610037 1610037 3 0 "r" Prelude.True

a203v35v203v35m =
  T.mkVariable tPreludeBasic 2030035 2030035 3 0 "m" Prelude.True

a205v30v205v30n =
  T.mkVariable tPreludeBasic 2050030 2050030 3 0 "n" Prelude.True

a205v32v205v32r =
  T.mkVariable tPreludeBasic 2050032 2050032 3 0 "r" Prelude.True

a206v29v206v66m =
  T.mkVariable tPreludeBasic 2060029 2060066 3 0 "m" Prelude.True

a219v32v219v32n =
  T.mkVariable tPreludeBasic 2190032 2190032 3 0 "n" Prelude.True

a219v34v219v34r =
  T.mkVariable tPreludeBasic 2190034 2190034 3 0 "r" Prelude.True

a222v32v222v32n =
  T.mkVariable tPreludeBasic 2220032 2220032 3 0 "n" Prelude.True

a222v34v222v34r =
  T.mkVariable tPreludeBasic 2220034 2220034 3 0 "r" Prelude.True

a242v32v242v32m =
  T.mkVariable tPreludeBasic 2420032 2420032 3 0 "m" Prelude.True

a242v34v242v34n =
  T.mkVariable tPreludeBasic 2420034 2420034 3 0 "n" Prelude.True

a245v32v245v32m =
  T.mkVariable tPreludeBasic 2450032 2450032 3 0 "m" Prelude.True

a248v32v248v32m =
  T.mkVariable tPreludeBasic 2480032 2480032 3 0 "m" Prelude.True

a248v34v248v34n =
  T.mkVariable tPreludeBasic 2480034 2480034 3 0 "n" Prelude.True

a278v27v279v56gcd' =
  T.mkVariable tPreludeBasic 2780027 2790056 3 2 "gcd'" Prelude.True

a291v27v294v70f =
  T.mkVariable tPreludeBasic 2910027 2940070 3 3 "f" Prelude.True

a293v37v294v70g =
  T.mkVariable tPreludeBasic 2930037 2940070 3 2 "g" Prelude.True

a330v27v330v73mcons =
  T.mkVariable tPreludeBasic 3300027 3300073 3 2 "mcons" Prelude.True

a488v29v489v59lastChar =
  T.mkVariable tPreludeBasic 4880029 4890059 3 0 "lastChar" Prelude.True

a503v55v503v57localFromEnum =
  T.mkVariable tPreludeBasic 5030055 5030057 3 1 "localFromEnum" Prelude.True

a525v55v525v57localFromEnum =
  T.mkVariable tPreludeBasic 5250055 5250057 3 1 "localFromEnum" Prelude.True

a551v25v551v27localFromEnum =
  T.mkVariable tPreludeBasic 5510025 5510027 3 1 "localFromEnum" Prelude.True

a609v3v609v68go =
  T.mkVariable tPreludeBasic 6090003 6090068 3 2 "go" Prelude.True

a664v9v664v16d = T.mkVariable tPreludeBasic 6640009 6640016 3 0 "d" Prelude.True

a692v31v692v52bf =
  T.mkVariable tPreludeBasic 6920031 6920052 3 0 "bf" Prelude.True

a697v13v697v25x0 =
  T.mkVariable tPreludeBasic 6970013 6970025 3 0 "x0" Prelude.True

a698v13v702v48ff =
  T.mkVariable tPreludeBasic 6980013 7020048 3 1 "ff" Prelude.True

a703v16v703v17ef =
  T.mkVariable tPreludeBasic 7030016 7030017 3 0 "ef" Prelude.True

a700v26v700v78yf =
  T.mkVariable tPreludeBasic 7000026 7000078 3 0 "yf" Prelude.True

a701v29v701v31ef' =
  T.mkVariable tPreludeBasic 7010029 7010031 3 0 "ef'" Prelude.True

a702v26v702v48bf =
  T.mkVariable tPreludeBasic 7020026 7020048 3 0 "bf" Prelude.True

a719v49v719v58af =
  T.mkVariable tPreludeBasic 7190049 7190058 3 0 "af" Prelude.True

a719v62v719v73bf =
  T.mkVariable tPreludeBasic 7190062 7190073 3 0 "bf" Prelude.True

a770v31v770v51b =
  T.mkVariable tPreludeBasic 7700031 7700051 3 0 "b" Prelude.True

a775v11v779v48f =
  T.mkVariable tPreludeBasic 7750011 7790048 3 1 "f" Prelude.True

a780v11v781v76e =
  T.mkVariable tPreludeBasic 7800011 7810076 3 0 "e" Prelude.True

a782v11v782v20x' =
  T.mkVariable tPreludeBasic 7820011 7820020 3 0 "x'" Prelude.True

a776v22v776v69y =
  T.mkVariable tPreludeBasic 7760022 7760069 3 0 "y" Prelude.True

a777v22v777v44e' =
  T.mkVariable tPreludeBasic 7770022 7770044 3 0 "e'" Prelude.True

a778v22v778v39bd =
  T.mkVariable tPreludeBasic 7780022 7780039 3 0 "bd" Prelude.True

a799v45v799v53a =
  T.mkVariable tPreludeBasic 7990045 7990053 3 0 "a" Prelude.True

a799v57v799v67b =
  T.mkVariable tPreludeBasic 7990057 7990067 3 0 "b" Prelude.True

a869v32v870v63p =
  T.mkVariable tPreludeBasic 8690032 8700063 3 0 "p" Prelude.True

a1571v28v1571v29qs =
  T.mkVariable tPreludeBasic 15710028 15710029 3 0 "qs" Prelude.True

a1571v32v1571v32q =
  T.mkVariable tPreludeBasic 15710032 15710032 3 0 "q" Prelude.True

a1578v26v1578v27qs =
  T.mkVariable tPreludeBasic 15780026 15780027 3 0 "qs" Prelude.True

a1578v30v1578v30q =
  T.mkVariable tPreludeBasic 15780030 15780030 3 0 "q" Prelude.True

a1589v30v1589v38xs =
  T.mkVariable tPreludeBasic 15890030 15890038 3 0 "xs" Prelude.True

a1603v31v1603v45xs' =
  T.mkVariable tPreludeBasic 16030031 16030045 3 0 "xs'" Prelude.True

a1651v35v1651v36ys =
  T.mkVariable tPreludeBasic 16510035 16510036 3 0 "ys" Prelude.True

a1651v38v1651v39zs =
  T.mkVariable tPreludeBasic 16510038 16510039 3 0 "zs" Prelude.True

a1665v26v1665v26l =
  T.mkVariable tPreludeBasic 16650026 16650026 3 0 "l" Prelude.True

a1665v29v1665v30s' =
  T.mkVariable tPreludeBasic 16650029 16650030 3 0 "s'" Prelude.True

a1675v36v1675v36w =
  T.mkVariable tPreludeBasic 16750036 16750036 3 0 "w" Prelude.True

a1675v39v1675v41s'' =
  T.mkVariable tPreludeBasic 16750039 16750041 3 0 "s''" Prelude.True

a0v0v0v0as = T.mkVariable tPreludeBasic 0 0 3 0 "as" Prelude.True

a0v0v0v0bs = T.mkVariable tPreludeBasic 0 0 3 0 "bs" Prelude.True

a0v0v0v0cs = T.mkVariable tPreludeBasic 0 0 3 0 "cs" Prelude.True

a1809v30v1809v34readl =
  T.mkVariable tPreludeBasic 18090030 18090034 3 1 "readl" Prelude.True

a1812v30v1812v35readl' =
  T.mkVariable tPreludeBasic 18120030 18120035 3 1 "readl'" Prelude.True

a1831v31v1833v53showl =
  T.mkVariable tPreludeBasic 18310031 18330053 3 1 "showl" Prelude.True

a1864v27v1864v58optional =
  T.mkVariable tPreludeBasic 18640027 18640058 3 1 "optional" Prelude.True

a1865v27v1865v35mandatory =
  T.mkVariable tPreludeBasic 18650027 18650035 3 1 "mandatory" Prelude.True

a1884v21v1885v29lexString =
  T.mkVariable tPreludeBasic 18840021 18850029 3 1 "lexString" Prelude.True

a1889v21v1894v58lexStrItem =
  T.mkVariable tPreludeBasic 18890021 18940058 3 1 "lexStrItem" Prelude.True

a1903v15v1903v49isSingle =
  T.mkVariable tPreludeBasic 19030015 19030049 3 1 "isSingle" Prelude.True

a1904v15v1904v60isSym =
  T.mkVariable tPreludeBasic 19040015 19040060 3 1 "isSym" Prelude.True

a1905v15v1905v57isIdChar =
  T.mkVariable tPreludeBasic 19050015 19050057 3 1 "isIdChar" Prelude.True

a1907v15v1910v38lexFracExp =
  T.mkVariable tPreludeBasic 19070015 19100038 3 1 "lexFracExp" Prelude.True

a1912v15v1916v33lexExp =
  T.mkVariable tPreludeBasic 19120015 19160033 3 1 "lexExp" Prelude.True

a1969v24v1971v64showl =
  T.mkVariable tPreludeBasic 19690024 19710064 3 1 "showl" Prelude.True

a1981v15v1983v19readl =
  T.mkVariable tPreludeBasic 19810015 19830019 3 1 "readl" Prelude.True

a2770v9v2792v29readEsc =
  T.mkVariable tPreludeBasic 27700009 27920029 3 1 "readEsc" Prelude.True

a2795v9v2796v48match =
  T.mkVariable tPreludeBasic 27950009 27960048 3 2 "match" Prelude.True

a2787v32v2787v78table =
  T.mkVariable tPreludeBasic 27870032 27870078 3 0 "table" Prelude.True

a2816v36v2817v57cont =
  T.mkVariable tPreludeBasic 28160036 28170057 3 1 "cont" Prelude.True

a2829v11v2834v57lexEsc =
  T.mkVariable tPreludeBasic 28290011 28340057 3 1 "lexEsc" Prelude.True

a2835v11v2835v47isCharName =
  T.mkVariable tPreludeBasic 28350011 28350047 3 1 "isCharName" Prelude.True

a2874v9v2874v24b =
  T.mkVariable tPreludeBasic 28740009 28740024 3 0 "b" Prelude.True

a2875v9v2875v25p =
  T.mkVariable tPreludeBasic 28750009 28750025 3 0 "p" Prelude.True

a2876v10v2876v16minExp0 =
  T.mkVariable tPreludeBasic 28760010 28760016 3 0 "minExp0" Prelude.True

a2877v9v2877v28minExp =
  T.mkVariable tPreludeBasic 28770009 28770028 3 0 "minExp" Prelude.True

a2878v9v2878v38xMin =
  T.mkVariable tPreludeBasic 28780009 28780038 3 0 "xMin" Prelude.True

a2879v9v2879v35xMax =
  T.mkVariable tPreludeBasic 28790009 28790035 3 0 "xMax" Prelude.True

a2880v9v2881v64p0 =
  T.mkVariable tPreludeBasic 28800009 28810064 3 0 "p0" Prelude.True

a2882v9v2882v62f =
  T.mkVariable tPreludeBasic 28820009 28820062 3 0 "f" Prelude.True

a2883v10v2883v11x' =
  T.mkVariable tPreludeBasic 28830010 28830011 3 0 "x'" Prelude.True

a2883v14v2883v15p' =
  T.mkVariable tPreludeBasic 28830014 28830015 3 0 "p'" Prelude.True

a2884v9v2884v37r =
  T.mkVariable tPreludeBasic 28840009 28840037 3 0 "r" Prelude.True

a2922v13v2922v42l =
  T.mkVariable tPreludeBasic 29220013 29220042 3 0 "l" Prelude.True

a2924v13v2924v67doDiv =
  T.mkVariable tPreludeBasic 29240013 29240067 3 2 "doDiv" Prelude.True

a2951v6v2951v7n' =
  T.mkVariable tPreludeBasic 29510006 29510007 3 0 "n'" Prelude.True

a2951v9v2951v9d =
  T.mkVariable tPreludeBasic 29510009 29510009 3 0 "d" Prelude.True

a2952v5v2952v45rest' =
  T.mkVariable tPreludeBasic 29520005 29520045 3 0 "rest'" Prelude.True

a2956v28v2956v46read' =
  T.mkVariable tPreludeBasic 29560028 29560046 3 1 "read'" Prelude.True

a2959v28v2959v33read'' =
  T.mkVariable tPreludeBasic 29590028 29590033 3 1 "read''" Prelude.True

a2996v5v2996v13base =
  T.mkVariable tPreludeBasic 29960005 29960013 3 0 "base" Prelude.True

a2997v5v3004v55s =
  T.mkVariable tPreludeBasic 29970005 30040055 3 0 "s" Prelude.True

a3006v5v3057v33doFmt =
  T.mkVariable tPreludeBasic 30060005 30570033 3 2 "doFmt" Prelude.True

a3008v12v3008v33ds =
  T.mkVariable tPreludeBasic 30080012 30080033 3 0 "ds" Prelude.True

a3053v15v3054v24mk0 =
  T.mkVariable tPreludeBasic 30530015 30540024 3 1 "mk0" Prelude.True

a3056v15v3057v33mkdot0 =
  T.mkVariable tPreludeBasic 30560015 30570033 3 1 "mkdot0" Prelude.True

a3023v21v3023v36dec' =
  T.mkVariable tPreludeBasic 30230021 30230036 3 0 "dec'" Prelude.True

a3027v26v3027v27ei =
  T.mkVariable tPreludeBasic 30270026 30270027 3 0 "ei" Prelude.True

a3027v30v3027v32is' =
  T.mkVariable tPreludeBasic 30270030 30270032 3 0 "is'" Prelude.True

a3028v25v3028v25d =
  T.mkVariable tPreludeBasic 30280025 30280025 3 0 "d" Prelude.True

a3028v27v3028v28ds =
  T.mkVariable tPreludeBasic 30280027 30280028 3 0 "ds" Prelude.True

a3040v22v3040v37dec' =
  T.mkVariable tPreludeBasic 30400022 30400037 3 0 "dec'" Prelude.True

a3042v25v3042v26ei =
  T.mkVariable tPreludeBasic 30420025 30420026 3 0 "ei" Prelude.True

a3042v29v3042v31is' =
  T.mkVariable tPreludeBasic 30420029 30420031 3 0 "is'" Prelude.True

a3043v25v3043v26ls =
  T.mkVariable tPreludeBasic 30430025 30430026 3 0 "ls" Prelude.True

a3043v29v3043v30rs =
  T.mkVariable tPreludeBasic 30430029 30430030 3 0 "rs" Prelude.True

a3047v25v3047v26ei =
  T.mkVariable tPreludeBasic 30470025 30470026 3 0 "ei" Prelude.True

a3047v29v3047v31is' =
  T.mkVariable tPreludeBasic 30470029 30470031 3 0 "is'" Prelude.True

a3049v24v3049v24d =
  T.mkVariable tPreludeBasic 30490024 30490024 3 0 "d" Prelude.True

a3049v28v3049v29ds =
  T.mkVariable tPreludeBasic 30490028 30490029 3 0 "ds" Prelude.True

a3065v9v3065v25b2 =
  T.mkVariable tPreludeBasic 30650009 30650025 3 0 "b2" Prelude.True

a3066v9v3071v60f =
  T.mkVariable tPreludeBasic 30660009 30710060 3 2 "f" Prelude.True

a3069v18v3069v18c =
  T.mkVariable tPreludeBasic 30690018 30690018 3 0 "c" Prelude.True

a3069v21v3069v22ds =
  T.mkVariable tPreludeBasic 30690021 30690022 3 0 "ds" Prelude.True

a3070v17v3070v26i' =
  T.mkVariable tPreludeBasic 30700017 30700026 3 0 "i'" Prelude.True

a3090v10v3090v11f0 =
  T.mkVariable tPreludeBasic 30900010 30900011 3 0 "f0" Prelude.True

a3090v14v3090v15e0 =
  T.mkVariable tPreludeBasic 30900014 30900015 3 0 "e0" Prelude.True

a3091v10v3091v16minExp0 =
  T.mkVariable tPreludeBasic 30910010 30910016 3 0 "minExp0" Prelude.True

a3092v9v3092v25p =
  T.mkVariable tPreludeBasic 30920009 30920025 3 0 "p" Prelude.True

a3093v9v3093v24b =
  T.mkVariable tPreludeBasic 30930009 30930024 3 0 "b" Prelude.True

a3094v9v3094v28minExp =
  T.mkVariable tPreludeBasic 30940009 30940028 3 0 "minExp" Prelude.True

a3100v10v3100v10f =
  T.mkVariable tPreludeBasic 31000010 31000010 3 0 "f" Prelude.True

a3100v13v3100v13e =
  T.mkVariable tPreludeBasic 31000013 31000013 3 0 "e" Prelude.True

a3103v10v3103v10r =
  T.mkVariable tPreludeBasic 31030010 31030010 3 0 "r" Prelude.True

a3103v13v3103v13s =
  T.mkVariable tPreludeBasic 31030013 31030013 3 0 "s" Prelude.True

a3103v16v3103v18mUp =
  T.mkVariable tPreludeBasic 31030016 31030018 3 0 "mUp" Prelude.True

a3103v21v3103v23mDn =
  T.mkVariable tPreludeBasic 31030021 31030023 3 0 "mDn" Prelude.True

a3115v9v3134v24k =
  T.mkVariable tPreludeBasic 31150009 31340024 3 0 "k" Prelude.True

a3136v9v3144v64gen =
  T.mkVariable tPreludeBasic 31360009 31440064 3 5 "gen" Prelude.True

a3145v9v3150v58rds =
  T.mkVariable tPreludeBasic 31450009 31500058 3 0 "rds" Prelude.True

a3100v22v3100v36n =
  T.mkVariable tPreludeBasic 31000022 31000036 3 0 "n" Prelude.True

a3105v20v3105v27be =
  T.mkVariable tPreludeBasic 31050020 31050027 3 0 "be" Prelude.True

a3116v17v3127v42k0 =
  T.mkVariable tPreludeBasic 31160017 31270042 3 0 "k0" Prelude.True

a3128v17v3133v74fixup =
  T.mkVariable tPreludeBasic 31280017 31330074 3 1 "fixup" Prelude.True

a3137v18v3137v19dn =
  T.mkVariable tPreludeBasic 31370018 31370019 3 0 "dn" Prelude.True

a3137v22v3137v24rn' =
  T.mkVariable tPreludeBasic 31370022 31370024 3 0 "rn'" Prelude.True

a3138v17v3138v35mUpN' =
  T.mkVariable tPreludeBasic 31380017 31380035 3 0 "mUpN'" Prelude.True

a3139v17v3139v35mDnN' =
  T.mkVariable tPreludeBasic 31390017 31390035 3 0 "mDnN'" Prelude.True

a3149v21v3149v38bk =
  T.mkVariable tPreludeBasic 31490021 31490038 3 0 "bk" Prelude.True

a3164v18v3164v24readFix =
  T.mkVariable tPreludeBasic 31640018 31640024 3 1 "readFix" Prelude.True

a3168v18v3169v44lexFrac =
  T.mkVariable tPreludeBasic 31680018 31690044 3 1 "lexFrac" Prelude.True

a3171v18v3172v56readExp =
  T.mkVariable tPreludeBasic 31710018 31720056 3 1 "readExp" Prelude.True

a3174v18v3176v45readExp' =
  T.mkVariable tPreludeBasic 31740018 31760045 3 1 "readExp'" Prelude.True

a3210v34v3210v44d =
  T.mkVariable tPreludeBasic 32100034 32100044 3 0 "d" Prelude.True

a3241v36v3241v36q =
  T.mkVariable tPreludeBasic 32410036 32410036 3 0 "q" Prelude.True

a3241v38v3241v38r =
  T.mkVariable tPreludeBasic 32410038 32410038 3 0 "r" Prelude.True

a3264v15v3270v70simplest =
  T.mkVariable tPreludeBasic 32640015 32700070 3 2 "simplest" Prelude.True

a3272v15v3278v76simplest' =
  T.mkVariable tPreludeBasic 32720015 32780076 3 4 "simplest'" Prelude.True

a3269v47v3269v48xr =
  T.mkVariable tPreludeBasic 32690047 32690048 3 0 "xr" Prelude.True

a3269v51v3269v51n =
  T.mkVariable tPreludeBasic 32690051 32690051 3 0 "n" Prelude.True

a3269v54v3269v54d =
  T.mkVariable tPreludeBasic 32690054 32690054 3 0 "d" Prelude.True

a3270v48v3270v49n' =
  T.mkVariable tPreludeBasic 32700048 32700049 3 0 "n'" Prelude.True

a3270v52v3270v53d' =
  T.mkVariable tPreludeBasic 32700052 32700053 3 0 "d'" Prelude.True

a3276v45v3276v45q =
  T.mkVariable tPreludeBasic 32760045 32760045 3 0 "q" Prelude.True

a3276v47v3276v47r =
  T.mkVariable tPreludeBasic 32760047 32760047 3 0 "r" Prelude.True

a3277v45v3277v46q' =
  T.mkVariable tPreludeBasic 32770045 32770046 3 0 "q'" Prelude.True

a3277v48v3277v49r' =
  T.mkVariable tPreludeBasic 32770048 32770049 3 0 "r'" Prelude.True

a3278v45v3278v47n'' =
  T.mkVariable tPreludeBasic 32780045 32780047 3 0 "n''" Prelude.True

a3278v50v3278v52d'' =
  T.mkVariable tPreludeBasic 32780050 32780052 3 0 "d''" Prelude.True