-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A framework for generating singleton types
--   
--   This library generates singleton types, promoted functions, and
--   singleton functions using Template Haskell. It is useful for
--   programmers who wish to use dependently typed programming techniques.
--   The library was originally presented in <i>Dependently Typed
--   Programming with Singletons</i>, published at the Haskell Symposium,
--   2012.
--   (<a>http://www.cis.upenn.edu/~eir/papers/2012/singletons/paper.pdf</a>)
--   Version 1.0 and onwards works a lot harder to promote functions. See
--   the paper published at Haskell Symposium, 2014:
--   <a>http://www.cis.upenn.edu/~eir/papers/2014/promotion/promotion.pdf</a>.
@package singletons
@version 2.2

module Data.Singletons.SuppressUnusedWarnings

-- | This class (which users should never see) is to be instantiated in
--   order to use an otherwise-unused data constructor, such as the
--   "kind-inference" data constructor for defunctionalization symbols.
class SuppressUnusedWarnings (t :: k)
suppressUnusedWarnings :: SuppressUnusedWarnings t => Proxy t -> ()


-- | This module exports the basic definitions to use singletons. For
--   routine use, consider importing <a>Prelude</a>, which exports
--   constructors for singletons based on types in the <tt>Prelude</tt>.
--   
--   You may also want to read
--   <a>http://www.cis.upenn.edu/~eir/packages/singletons/README.html</a>
--   and the original paper presenting this library, available at
--   <a>http://www.cis.upenn.edu/~eir/papers/2012/singletons/paper.pdf</a>.
module Data.Singletons

-- | The singleton kind-indexed data family.

-- | A <a>SingI</a> constraint is essentially an implicitly-passed
--   singleton. If you need to satisfy this constraint with an explicit
--   singleton, please see <a>withSingI</a>.
class SingI (a :: k)

-- | Produce the singleton explicitly. You will likely need the
--   <tt>ScopedTypeVariables</tt> extension to use this method the way you
--   want.
sing :: SingI a => Sing a

-- | The <a>SingKind</a> class is a <i>kind</i> class. It classifies all
--   kinds for which singletons are defined. The class supports converting
--   between a singleton type and the base (unrefined) type which it is
--   built from.
class SingKind k where type DemoteRep k :: * where {
    type family DemoteRep k :: *;
}

-- | Convert a singleton to its unrefined version.
fromSing :: SingKind k => Sing (a :: k) -> DemoteRep k

-- | Convert an unrefined type to an existentially-quantified singleton
--   type.
toSing :: SingKind k => DemoteRep k -> SomeSing k

-- | Convenient synonym to refer to the kind of a type variable: <tt>type
--   KindOf (a :: k) = ('Proxy :: Proxy k)</tt>
type KindOf (a :: k) = (Proxy :: Proxy k)

-- | Convenient abbreviation for <a>DemoteRep</a>: <tt>type Demote (a :: k)
--   = DemoteRep k</tt>
type Demote (a :: k) = DemoteRep k

-- | A <a>SingInstance</a> wraps up a <a>SingI</a> instance for explicit
--   handling.
data SingInstance (a :: k)
[SingInstance] :: SingI a => SingInstance a

-- | An <i>existentially-quantified</i> singleton. This type is useful when
--   you want a singleton type, but there is no way of knowing, at
--   compile-time, what the type index will be. To make use of this type,
--   you will generally have to use a pattern-match:
--   
--   <pre>
--   foo :: Bool -&gt; ...
--   foo b = case toSing b of
--             SomeSing sb -&gt; {- fancy dependently-typed code with sb -}
--   </pre>
--   
--   An example like the one above may be easier to write using
--   <a>withSomeSing</a>.
data SomeSing k
[SomeSing] :: Sing (a :: k) -> SomeSing k

-- | Get an implicit singleton (a <a>SingI</a> instance) from an explicit
--   one.
singInstance :: forall (a :: k). Sing a -> SingInstance a

-- | Convenience function for creating a context with an implicit singleton
--   available.
withSingI :: Sing n -> (SingI n => r) -> r

-- | Convert a normal datatype (like <a>Bool</a>) to a singleton for that
--   datatype, passing it into a continuation.
withSomeSing :: SingKind k => DemoteRep k -> (forall (a :: k). Sing a -> r) -> r

-- | Allows creation of a singleton when a proxy is at hand.
singByProxy :: SingI a => proxy a -> Sing a

-- | Allows creation of a singleton when a <tt>proxy#</tt> is at hand.
singByProxy# :: SingI a => Proxy# a -> Sing a

-- | A convenience function useful when we need to name a singleton value
--   multiple times. Without this function, each use of <a>sing</a> could
--   potentially refer to a different singleton, and one has to use type
--   signatures (often with <tt>ScopedTypeVariables</tt>) to ensure that
--   they are the same.
withSing :: SingI a => (Sing a -> b) -> b

-- | A convenience function that names a singleton satisfying a certain
--   property. If the singleton does not satisfy the property, then the
--   function returns <a>Nothing</a>. The property is expressed in terms of
--   the underlying representation of the singleton.
singThat :: forall (a :: k). (SingKind k, SingI a) => (Demote a -> Bool) -> Maybe (Sing a)

-- | Representation of the kind of a type-level function. The difference
--   between term-level arrows and this type-level arrow is that at the
--   term level applications can be unsaturated, whereas at the type level
--   all applications have to be fully saturated.
data TyFun :: * -> * -> *

-- | Something of kind `a ~&gt; b` is a defunctionalized type function that
--   is not necessarily generative or injective.
type (~>) a b = TyFun a b -> *

-- | Wrapper for converting the normal type-level arrow into a
--   <a>~&gt;</a>. For example, given:
--   
--   <pre>
--   data Nat = Zero | Succ Nat
--   type family Map (a :: a ~&gt; b) (a :: [a]) :: [b]
--     Map f '[] = '[]
--     Map f (x ': xs) = Apply f x ': Map f xs
--   </pre>
--   
--   We can write:
--   
--   <pre>
--   Map (TyCon1 Succ) [Zero, Succ Zero]
--   </pre>
data TyCon1 :: (k1 -> k2) -> (k1 ~> k2)

-- | Similar to <a>TyCon1</a>, but for two-parameter type constructors.
data TyCon2 :: (k1 -> k2 -> k3) -> (k1 ~> (k2 ~> k3))
data TyCon3 :: (k1 -> k2 -> k3 -> k4) -> (k1 ~> (k2 ~> (k3 ~> k4)))
data TyCon4 :: (k1 -> k2 -> k3 -> k4 -> k5) -> (k1 ~> (k2 ~> (k3 ~> (k4 ~> k5))))
data TyCon5 :: (k1 -> k2 -> k3 -> k4 -> k5 -> k6) -> (k1 ~> (k2 ~> (k3 ~> (k4 ~> (k5 ~> k6)))))
data TyCon6 :: (k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7) -> (k1 ~> (k2 ~> (k3 ~> (k4 ~> (k5 ~> (k6 ~> k7))))))
data TyCon7 :: (k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> k8) -> (k1 ~> (k2 ~> (k3 ~> (k4 ~> (k5 ~> (k6 ~> (k7 ~> k8)))))))
data TyCon8 :: (k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> k8 -> k9) -> (k1 ~> (k2 ~> (k3 ~> (k4 ~> (k5 ~> (k6 ~> (k7 ~> (k8 ~> k9))))))))

-- | Type level function application

-- | An infix synonym for <a>Apply</a>
type (@@) a b = Apply a b

-- | Use this function when passing a function on singletons as a
--   higher-order function. You will often need an explicit type annotation
--   to get this to work. For example:
--   
--   <pre>
--   falses = sMap (singFun1 (Proxy :: Proxy NotSym0) sNot)
--                 (STrue `SCons` STrue `SCons` SNil)
--   </pre>
--   
--   There are a family of <tt>singFun...</tt> functions, keyed by the
--   number of parameters of the function.
singFun1 :: Proxy f -> SingFunction1 f -> Sing f
singFun2 :: Proxy f -> SingFunction2 f -> Sing f
singFun3 :: Proxy f -> SingFunction3 f -> Sing f
singFun4 :: Proxy f -> SingFunction4 f -> Sing f
singFun5 :: Proxy f -> SingFunction5 f -> Sing f
singFun6 :: Proxy f -> SingFunction6 f -> Sing f
singFun7 :: Proxy f -> SingFunction7 f -> Sing f
singFun8 :: Proxy f -> SingFunction8 f -> Sing f

-- | This is the inverse of <a>singFun1</a>, and likewise for the other
--   <tt>unSingFun...</tt> functions.
unSingFun1 :: Proxy f -> Sing f -> SingFunction1 f
unSingFun2 :: Proxy f -> Sing f -> SingFunction2 f
unSingFun3 :: Proxy f -> Sing f -> SingFunction3 f
unSingFun4 :: Proxy f -> Sing f -> SingFunction4 f
unSingFun5 :: Proxy f -> Sing f -> SingFunction5 f
unSingFun6 :: Proxy f -> Sing f -> SingFunction6 f
unSingFun7 :: Proxy f -> Sing f -> SingFunction7 f
unSingFun8 :: Proxy f -> Sing f -> SingFunction8 f
type SingFunction1 f = forall t. Sing t -> Sing (f @@ t)
type SingFunction2 f = forall t. Sing t -> SingFunction1 (f @@ t)
type SingFunction3 f = forall t. Sing t -> SingFunction2 (f @@ t)
type SingFunction4 f = forall t. Sing t -> SingFunction3 (f @@ t)
type SingFunction5 f = forall t. Sing t -> SingFunction4 (f @@ t)
type SingFunction6 f = forall t. Sing t -> SingFunction5 (f @@ t)
type SingFunction7 f = forall t. Sing t -> SingFunction6 (f @@ t)
type SingFunction8 f = forall t. Sing t -> SingFunction7 (f @@ t)

-- | A concrete, poly-kinded proxy type
data Proxy k (t :: k) :: forall k. k -> *
Proxy :: Proxy k
instance (Data.Singletons.SingKind k1, Data.Singletons.SingKind k2) => Data.Singletons.SingKind (k1 Data.Singletons.~> k2)


-- | Defines the class <a>SDecide</a>, allowing for decidable equality over
--   singletons.
module Data.Singletons.Decide

-- | Members of the <a>SDecide</a> "kind" class support decidable equality.
--   Instances of this class are generated alongside singleton definitions
--   for datatypes that derive an <a>Eq</a> instance.
class SDecide k

-- | Compute a proof or disproof of equality, given two singletons.
(%~) :: forall (a :: k) (b :: k). SDecide k => Sing a -> Sing b -> Decision (a :~: b)

-- | Propositional equality. If <tt>a :~: b</tt> is inhabited by some
--   terminating value, then the type <tt>a</tt> is the same as the type
--   <tt>b</tt>. To use this equality in practice, pattern-match on the
--   <tt>a :~: b</tt> to get out the <tt>Refl</tt> constructor; in the body
--   of the pattern-match, the compiler knows that <tt>a ~ b</tt>.
data (:~:) k (a :: k) (b :: k) :: forall k. k -> k -> *
[Refl] :: (:~:) k a a

-- | Uninhabited data type
data Void :: *

-- | Because we can never create a value of type <a>Void</a>, a function
--   that type-checks at <tt>a -&gt; Void</tt> shows that objects of type
--   <tt>a</tt> can never exist. Thus, we say that <tt>a</tt> is
--   <a>Refuted</a>
type Refuted a = a -> Void

-- | A <a>Decision</a> about a type <tt>a</tt> is either a proof of
--   existence or a proof that <tt>a</tt> cannot exist.
data Decision a

-- | Witness for <tt>a</tt>
Proved :: a -> Decision a

-- | Proof that no <tt>a</tt> exists
Disproved :: (Refuted a) -> Decision a
instance forall k (k1 :: k) k2. Data.Singletons.Decide.SDecide k2 => Data.Type.Equality.TestEquality Data.Singletons.Sing


-- | Defines functions and datatypes relating to the singleton for
--   <a>Bool</a>, including a singletons version of all the definitions in
--   <tt>Data.Bool</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Bool</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Singletons.Prelude.Bool

-- | The singleton kind-indexed data family.
type SBool = (Sing :: Bool -> Type)

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>

-- | Conditional over singletons
sIf :: Sing a -> Sing b -> Sing c -> Sing (If a b c)
sNot :: forall (t_a2fCQ :: Bool). Sing t_a2fCQ -> Sing (Apply NotSym0 t_a2fCQ :: Bool)
(%:&&) :: forall (t_a2fCT :: Bool) (t_a2fCU :: Bool). Sing t_a2fCT -> Sing t_a2fCU -> Sing (Apply (Apply (:&&$) t_a2fCT) t_a2fCU :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a2fCR :: Bool) (t_a2fCS :: Bool). Sing t_a2fCR -> Sing t_a2fCS -> Sing (Apply (Apply (:||$) t_a2fCR) t_a2fCS :: Bool)
infixr 2 %:||
bool_ :: forall a_a2fqU. a_a2fqU -> a_a2fqU -> Bool -> a_a2fqU
sBool_ :: forall (t_a2frj :: a_a2fqU) (t_a2frk :: a_a2fqU) (t_a2frl :: Bool). Sing t_a2frj -> Sing t_a2frk -> Sing t_a2frl -> Sing (Apply (Apply (Apply Bool_Sym0 t_a2frj) t_a2frk) t_a2frl :: a_a2fqU)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a2fCn :: TyFun Bool Bool)
type NotSym1 (t_a2fCm :: Bool) = Not t_a2fCm
data (:&&$) (l_a2fCF :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2fCI :: Bool) (l_a2fCH :: TyFun Bool Bool)
type (:&&$$$) (t_a2fCD :: Bool) (t_a2fCE :: Bool) = (:&&) t_a2fCD t_a2fCE
data (:||$) (l_a2fCs :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2fCv :: Bool) (l_a2fCu :: TyFun Bool Bool)
type (:||$$$) (t_a2fCq :: Bool) (t_a2fCr :: Bool) = (:||) t_a2fCq t_a2fCr
data Bool_Sym0 (l_a2fr3 :: TyFun a6989586621679545776 (TyFun a6989586621679545776 (TyFun Bool a6989586621679545776 -> Type) -> Type))
data Bool_Sym1 (l_a2fr6 :: a6989586621679545776) (l_a2fr5 :: TyFun a6989586621679545776 (TyFun Bool a6989586621679545776 -> Type))
data Bool_Sym2 (l_a2fr9 :: a6989586621679545776) (l_a2fra :: a6989586621679545776) (l_a2fr8 :: TyFun Bool a6989586621679545776)
type Bool_Sym3 (t_a2fr0 :: a6989586621679545776) (t_a2fr1 :: a6989586621679545776) (t_a2fr2 :: Bool) = Bool_ t_a2fr0 t_a2fr1 t_a2fr2
type OtherwiseSym0 = Otherwise
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.NotSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.:||$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.:||$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.:&&$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.:&&$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym0


-- | Implements singletonized versions of functions from <tt>GHC.Base</tt>
--   module.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Tuple</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude.Base
sFoldr :: forall (t_a2gCm :: TyFun a_a2gyJ (TyFun b_a2gyK b_a2gyK -> Type) -> Type) (t_a2gCn :: b_a2gyK) (t_a2gCo :: [a_a2gyJ]). Sing t_a2gCm -> Sing t_a2gCn -> Sing t_a2gCo -> Sing (Apply (Apply (Apply FoldrSym0 t_a2gCm) t_a2gCn) t_a2gCo :: b_a2gyK)
sMap :: forall (t_a2gCk :: TyFun a_a2gyH b_a2gyI -> Type) (t_a2gCl :: [a_a2gyH]). Sing t_a2gCk -> Sing t_a2gCl -> Sing (Apply (Apply MapSym0 t_a2gCk) t_a2gCl :: [b_a2gyI])
(%:++) :: forall (t_a2gCi :: [a_a2gyG]) (t_a2gCj :: [a_a2gyG]). Sing t_a2gCi -> Sing t_a2gCj -> Sing (Apply (Apply (:++$) t_a2gCi) t_a2gCj :: [a_a2gyG])
infixr 5 %:++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a2gCh :: a_a2gyF). Sing t_a2gCh -> Sing (Apply IdSym0 t_a2gCh :: a_a2gyF)
sConst :: forall (t_a2gCd :: a_a2gyD) (t_a2gCe :: b_a2gyE). Sing t_a2gCd -> Sing t_a2gCe -> Sing (Apply (Apply ConstSym0 t_a2gCd) t_a2gCe :: a_a2gyD)
(%:.) :: forall (t_a2gCa :: TyFun b_a2gyA c_a2gyB -> Type) (t_a2gCb :: TyFun a_a2gyC b_a2gyA -> Type) (t_a2gCc :: a_a2gyC). Sing t_a2gCa -> Sing t_a2gCb -> Sing t_a2gCc -> Sing (Apply (Apply (Apply (:.$) t_a2gCa) t_a2gCb) t_a2gCc :: c_a2gyB)
infixr 9 %:.
(%$) :: forall (f :: TyFun a b -> *) (x :: a). Sing f -> Sing x -> Sing ((($$) @@ f) @@ x)
infixr 0 %$
(%$!) :: forall (f :: TyFun a b -> *) (x :: a). Sing f -> Sing x -> Sing ((($!$) @@ f) @@ x)
infixr 0 %$!
sFlip :: forall (t_a2gC7 :: TyFun a_a2gyx (TyFun b_a2gyy c_a2gyz -> Type) -> Type) (t_a2gC8 :: b_a2gyy) (t_a2gC9 :: a_a2gyx). Sing t_a2gC7 -> Sing t_a2gC8 -> Sing t_a2gC9 -> Sing (Apply (Apply (Apply FlipSym0 t_a2gC7) t_a2gC8) t_a2gC9 :: c_a2gyz)
sAsTypeOf :: forall (t_a2gCf :: a_a2gyw) (t_a2gCg :: a_a2gyw). Sing t_a2gCf -> Sing t_a2gCg -> Sing (Apply (Apply AsTypeOfSym0 t_a2gCf) t_a2gCg :: a_a2gyw)
sSeq :: forall (t_a2gC5 :: a_a2gyu) (t_a2gC6 :: b_a2gyv). Sing t_a2gC5 -> Sing t_a2gC6 -> Sing (Apply (Apply SeqSym0 t_a2gC5) t_a2gC6 :: b_a2gyv)
infixr 0 `sSeq`
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
type (:++$$$) (t_a2gAX :: [a6989586621679550102]) (t_a2gAY :: [a6989586621679550102]) = (:++) t_a2gAX t_a2gAY
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a2gAT :: TyFun a6989586621679550101 a6989586621679550101)
type IdSym1 (t_a2gAS :: a6989586621679550101) = Id t_a2gAS
data ConstSym0 (l_a2gAs :: TyFun a6989586621679550099 (TyFun b6989586621679550100 a6989586621679550099 -> Type))
data ConstSym1 (l_a2gAv :: a6989586621679550099) (l_a2gAu :: TyFun b6989586621679550100 a6989586621679550099)
type ConstSym2 (t_a2gAq :: a6989586621679550099) (t_a2gAr :: b6989586621679550100) = Const t_a2gAq t_a2gAr
data (:.$) (l_a2gzN :: TyFun (TyFun b6989586621679550096 c6989586621679550097 -> Type) (TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type) -> Type))
data (:.$$) (l_a2gzQ :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzP :: TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type))
data (:.$$$) (l_a2gzT :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzU :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (l_a2gzS :: TyFun a6989586621679550098 c6989586621679550097)
type (:.$$$$) (t_a2gzK :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (t_a2gzL :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (t_a2gzM :: a6989586621679550098) = (:.) t_a2gzK t_a2gzL t_a2gzM
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data ($!$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($!$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($!$$$) a b = ($!) a b
data FlipSym0 (l_a2gzv :: TyFun (TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type) -> Type))
data FlipSym1 (l_a2gzy :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzx :: TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type))
data FlipSym2 (l_a2gzB :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzC :: b6989586621679550094) (l_a2gzA :: TyFun a6989586621679550093 c6989586621679550095)
type FlipSym3 (t_a2gzs :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (t_a2gzt :: b6989586621679550094) (t_a2gzu :: a6989586621679550093) = Flip t_a2gzs t_a2gzt t_a2gzu
data AsTypeOfSym0 (l_a2gAJ :: TyFun a6989586621679550092 (TyFun a6989586621679550092 a6989586621679550092 -> Type))
data AsTypeOfSym1 (l_a2gAM :: a6989586621679550092) (l_a2gAL :: TyFun a6989586621679550092 a6989586621679550092)
type AsTypeOfSym2 (t_a2gAH :: a6989586621679550092) (t_a2gAI :: a6989586621679550092) = AsTypeOf t_a2gAH t_a2gAI
data SeqSym0 (l_a2gzh :: TyFun a6989586621679550090 (TyFun b6989586621679550091 b6989586621679550091 -> Type))
data SeqSym1 (l_a2gzk :: a6989586621679550090) (l_a2gzj :: TyFun b6989586621679550091 b6989586621679550091)
type SeqSym2 (t_a2gzf :: a6989586621679550090) (t_a2gzg :: b6989586621679550091) = Seq t_a2gzf t_a2gzg
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679550188Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679550188Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679550188Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679550188Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679550291GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679550291GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679550291GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679550291GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.SeqSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.SeqSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FlipSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FlipSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FlipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:.$$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:.$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:.$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.ConstSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.ConstSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.AsTypeOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.AsTypeOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.IdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:++$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:++$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.MapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.MapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym0


-- | Defines the SEq singleton version of the Eq type class.
module Data.Singletons.Prelude.Eq

-- | The promoted analogue of <a>Eq</a>. If you supply no definition for
--   '(:==)', then it defaults to a use of '(==)', from
--   <tt>Data.Type.Equality</tt>.
class kproxy ~ Proxy => PEq (kproxy :: Proxy a) where type (:==) (x :: a) (y :: a) :: Bool type (:/=) (x :: a) (y :: a) :: Bool type (:==) (x :: a) (y :: a) = x == y type (:/=) (x :: a) (y :: a) = Not (x :== y) where {
    type family (:==) (x :: a) (y :: a) :: Bool;
    type family (:/=) (x :: a) (y :: a) :: Bool;
    type (:==) (x :: a) (y :: a) = x == y;
    type (:/=) (x :: a) (y :: a) = Not (x :== y);
}

-- | The singleton analogue of <a>Eq</a>. Unlike the definition for
--   <a>Eq</a>, it is required that instances define a body for '(%:==)'.
--   You may also supply a body for '(%:/=)'.
class SEq k where a %:/= b = sNot (a %:== b)

-- | Boolean equality on singletons
(%:==) :: forall (a :: k) (b :: k). SEq k => Sing a -> Sing b -> Sing (a :== b)

-- | Boolean disequality on singletons
(%:/=) :: forall (a :: k) (b :: k). SEq k => Sing a -> Sing b -> Sing (a :/= b)

-- | Boolean disequality on singletons
(%:/=) :: forall (a :: k) (b :: k). (SEq k, (a :/= b) ~ Not (a :== b)) => Sing a -> Sing b -> Sing (a :/= b)
data (:==$) (l_a2jsM :: TyFun a6989586621679561203 (TyFun a6989586621679561203 Bool -> Type))
data (:==$$) (l_a2jsP :: a6989586621679561203) (l_a2jsO :: TyFun a6989586621679561203 Bool)
type (:==$$$) (t_a2jsK :: a6989586621679561203) (t_a2jsL :: a6989586621679561203) = (:==) t_a2jsK t_a2jsL
data (:/=$) (l_a2jsT :: TyFun a6989586621679561203 (TyFun a6989586621679561203 Bool -> Type))
data (:/=$$) (l_a2jsW :: a6989586621679561203) (l_a2jsV :: TyFun a6989586621679561203 Bool)
type (:/=$$$) (t_a2jsR :: a6989586621679561203) (t_a2jsS :: a6989586621679561203) = (:/=) t_a2jsR t_a2jsS
instance Data.Singletons.Prelude.Eq.SEq a0 => Data.Singletons.Prelude.Eq.SEq (GHC.Base.Maybe a0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq a0 => Data.Singletons.Prelude.Eq.SEq [a0]
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0) => Data.Singletons.Prelude.Eq.SEq (Data.Either.Either a0 b0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq a0 => Data.Singletons.Prelude.Eq.SEq (Data.List.NonEmpty.NonEmpty a0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0) => Data.Singletons.Prelude.Eq.SEq (a0, b0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0, Data.Singletons.Prelude.Eq.SEq c0) => Data.Singletons.Prelude.Eq.SEq (a0, b0, c0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0, Data.Singletons.Prelude.Eq.SEq c0, Data.Singletons.Prelude.Eq.SEq d0) => Data.Singletons.Prelude.Eq.SEq (a0, b0, c0, d0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0, Data.Singletons.Prelude.Eq.SEq c0, Data.Singletons.Prelude.Eq.SEq d0, Data.Singletons.Prelude.Eq.SEq e0) => Data.Singletons.Prelude.Eq.SEq (a0, b0, c0, d0, e0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0, Data.Singletons.Prelude.Eq.SEq c0, Data.Singletons.Prelude.Eq.SEq d0, Data.Singletons.Prelude.Eq.SEq e0, Data.Singletons.Prelude.Eq.SEq f0) => Data.Singletons.Prelude.Eq.SEq (a0, b0, c0, d0, e0, f0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Eq.SEq a0, Data.Singletons.Prelude.Eq.SEq b0, Data.Singletons.Prelude.Eq.SEq c0, Data.Singletons.Prelude.Eq.SEq d0, Data.Singletons.Prelude.Eq.SEq e0, Data.Singletons.Prelude.Eq.SEq f0, Data.Singletons.Prelude.Eq.SEq g0) => Data.Singletons.Prelude.Eq.SEq (a0, b0, c0, d0, e0, f0, g0)
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq GHC.Types.Bool
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq GHC.Types.Ordering
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq ()
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Eq.:==$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Eq.:==$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Eq.:/=$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Eq.:/=$)


-- | This file implements <a>singletonStar</a>, which generates a datatype
--   <tt>Rep</tt> and associated singleton from a list of types. The
--   promoted version of <tt>Rep</tt> is kind <tt>*</tt> and the Haskell
--   types themselves. This is still very experimental, so expect unusual
--   results!
module Data.Singletons.CustomStar

-- | Produce a representation and singleton for the collection of types
--   given.
--   
--   A datatype <tt>Rep</tt> is created, with one constructor per type in
--   the declared universe. When this type is promoted by the singletons
--   library, the constructors become full types in <tt>*</tt>, not just
--   promoted data constructors.
--   
--   For example,
--   
--   <pre>
--   $(singletonStar [''Nat, ''Bool, ''Maybe])
--   </pre>
--   
--   generates the following:
--   
--   <pre>
--   data Rep = Nat | Bool | Maybe Rep deriving (Eq, Show, Read)
--   </pre>
--   
--   and its singleton. However, because <tt>Rep</tt> is promoted to
--   <tt>*</tt>, the singleton is perhaps slightly unexpected:
--   
--   <pre>
--   data instance Sing (a :: *) where
--     SNat :: Sing Nat
--     SBool :: Sing Bool
--     SMaybe :: SingRep a =&gt; Sing a -&gt; Sing (Maybe a)
--   </pre>
--   
--   The unexpected part is that <tt>Nat</tt>, <tt>Bool</tt>, and
--   <tt>Maybe</tt> above are the real <tt>Nat</tt>, <tt>Bool</tt>, and
--   <tt>Maybe</tt>, not just promoted data constructors.
--   
--   Please note that this function is <i>very</i> experimental. Use at
--   your own risk.
singletonStar :: DsMonad q => [Name] -> q [Dec]


-- | Defines the promoted version of Ord, <a>POrd</a>, and the singleton
--   version, <a>SOrd</a>.
module Data.Singletons.Prelude.Ord
class (PEq (Proxy :: Proxy a_a2q0s), kproxy_a2qBy ~ Proxy) => POrd (kproxy_a2qBy :: Proxy a_a2q0s) where type Compare (arg_a2qBz :: a_a2q0s) (arg_a2qBA :: a_a2q0s) :: Ordering type (:<) (arg_a2qBI :: a_a2q0s) (arg_a2qBJ :: a_a2q0s) :: Bool type (:<=) (arg_a2qBR :: a_a2q0s) (arg_a2qBS :: a_a2q0s) :: Bool type (:>) (arg_a2qC0 :: a_a2q0s) (arg_a2qC1 :: a_a2q0s) :: Bool type (:>=) (arg_a2qC9 :: a_a2q0s) (arg_a2qCa :: a_a2q0s) :: Bool type Max (arg_a2qCi :: a_a2q0s) (arg_a2qCj :: a_a2q0s) :: a_a2q0s type Min (arg_a2qCr :: a_a2q0s) (arg_a2qCs :: a_a2q0s) :: a_a2q0s type Compare a_a2qD7 a_a2qD8 = Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8 type (:<) a_a2qDE a_a2qDF = Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF type (:<=) a_a2qEb a_a2qEc = Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc type (:>) a_a2qEI a_a2qEJ = Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ type (:>=) a_a2qFf a_a2qFg = Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg type Max a_a2qFM a_a2qFN = Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN type Min a_a2qGj a_a2qGk = Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk where {
    type family Compare (arg_a2qBz :: a_a2q0s)
                        (arg_a2qBA :: a_a2q0s) :: Ordering;
    type family (:<) (arg_a2qBI :: a_a2q0s)
                     (arg_a2qBJ :: a_a2q0s) :: Bool;
    type family (:<=) (arg_a2qBR :: a_a2q0s)
                      (arg_a2qBS :: a_a2q0s) :: Bool;
    type family (:>) (arg_a2qC0 :: a_a2q0s)
                     (arg_a2qC1 :: a_a2q0s) :: Bool;
    type family (:>=) (arg_a2qC9 :: a_a2q0s)
                      (arg_a2qCa :: a_a2q0s) :: Bool;
    type family Max (arg_a2qCi :: a_a2q0s)
                    (arg_a2qCj :: a_a2q0s) :: a_a2q0s;
    type family Min (arg_a2qCr :: a_a2q0s)
                    (arg_a2qCs :: a_a2q0s) :: a_a2q0s;
    type Compare a_a2qD7 a_a2qD8 =
        Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8;
    type (:<) a_a2qDE a_a2qDF =
        Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF;
    type (:<=) a_a2qEb a_a2qEc =
        Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc;
    type (:>) a_a2qEI a_a2qEJ =
        Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ;
    type (:>=) a_a2qFf a_a2qFg =
        Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg;
    type Max a_a2qFM a_a2qFN =
        Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN;
    type Min a_a2qGj a_a2qGk =
        Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk;
}
class SEq a_a2q0s => SOrd a_a2q0s where sCompare sX sY = let lambda_a2qGI :: forall x_a2qCJ y_a2qCK. (t_a2qGu ~ x_a2qCJ, t_a2qGv ~ y_a2qCK) => Sing x_a2qCJ -> Sing y_a2qCK -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering) lambda_a2qGI x_a2qGJ y_a2qGK = let sScrutinee_6989586621679586435 :: Sing (Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK) sScrutinee_6989586621679586435 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a2qGJ) y_a2qGK in  case sScrutinee_6989586621679586435 of { STrue -> let lambda_a2qGL :: TrueSym0 ~ Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK TrueSym0 :: Ordering) lambda_a2qGL = SEQ in lambda_a2qGL SFalse -> let lambda_a2qGM :: FalseSym0 ~ Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK FalseSym0 :: Ordering) lambda_a2qGM = let sScrutinee_6989586621679586437 :: Sing (Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK) sScrutinee_6989586621679586437 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qGJ) y_a2qGK in  case sScrutinee_6989586621679586437 of { STrue -> let lambda_a2qGN :: TrueSym0 ~ Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK TrueSym0 :: Ordering) lambda_a2qGN = SLT in lambda_a2qGN SFalse -> let lambda_a2qGO :: FalseSym0 ~ Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK FalseSym0 :: Ordering) lambda_a2qGO = SGT in lambda_a2qGO } :: Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK (Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK) :: Ordering) in lambda_a2qGM } :: Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK (Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK) :: Ordering) in lambda_a2qGI sX sY (%:<) sX sY = let lambda_a2qGP :: forall x_a2qDr y_a2qDs. (t_a2qGw ~ x_a2qDr, t_a2qGx ~ y_a2qDs) => Sing x_a2qDr -> Sing y_a2qDs -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool) lambda_a2qGP x_a2qGQ y_a2qGR = let sScrutinee_6989586621679586439 :: Sing (Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs) sScrutinee_6989586621679586439 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qGQ) y_a2qGR in  case sScrutinee_6989586621679586439 of { SLT -> let lambda_a2qGS :: LTSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs LTSym0 :: Bool) lambda_a2qGS = STrue in lambda_a2qGS SEQ -> let lambda_a2qGT :: EQSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs EQSym0 :: Bool) lambda_a2qGT = SFalse in lambda_a2qGT SGT -> let lambda_a2qGU :: GTSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs GTSym0 :: Bool) lambda_a2qGU = SFalse in lambda_a2qGU } :: Sing (Case_6989586621679588847 x_a2qDr y_a2qDs (Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs) :: Bool) in lambda_a2qGP sX sY (%:<=) sX sY = let lambda_a2qGV :: forall x_a2qDY y_a2qDZ. (t_a2qGy ~ x_a2qDY, t_a2qGz ~ y_a2qDZ) => Sing x_a2qDY -> Sing y_a2qDZ -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool) lambda_a2qGV x_a2qGW y_a2qGX = let sScrutinee_6989586621679586441 :: Sing (Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ) sScrutinee_6989586621679586441 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qGW) y_a2qGX in  case sScrutinee_6989586621679586441 of { SLT -> let lambda_a2qGY :: LTSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ LTSym0 :: Bool) lambda_a2qGY = STrue in lambda_a2qGY SEQ -> let lambda_a2qGZ :: EQSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ EQSym0 :: Bool) lambda_a2qGZ = STrue in lambda_a2qGZ SGT -> let lambda_a2qH0 :: GTSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ GTSym0 :: Bool) lambda_a2qH0 = SFalse in lambda_a2qH0 } :: Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ (Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ) :: Bool) in lambda_a2qGV sX sY (%:>) sX sY = let lambda_a2qH1 :: forall x_a2qEv y_a2qEw. (t_a2qGA ~ x_a2qEv, t_a2qGB ~ y_a2qEw) => Sing x_a2qEv -> Sing y_a2qEw -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool) lambda_a2qH1 x_a2qH2 y_a2qH3 = let sScrutinee_6989586621679586443 :: Sing (Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw) sScrutinee_6989586621679586443 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qH2) y_a2qH3 in  case sScrutinee_6989586621679586443 of { SLT -> let lambda_a2qH4 :: LTSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw LTSym0 :: Bool) lambda_a2qH4 = SFalse in lambda_a2qH4 SEQ -> let lambda_a2qH5 :: EQSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw EQSym0 :: Bool) lambda_a2qH5 = SFalse in lambda_a2qH5 SGT -> let lambda_a2qH6 :: GTSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw GTSym0 :: Bool) lambda_a2qH6 = STrue in lambda_a2qH6 } :: Sing (Case_6989586621679588913 x_a2qEv y_a2qEw (Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw) :: Bool) in lambda_a2qH1 sX sY (%:>=) sX sY = let lambda_a2qH7 :: forall x_a2qF2 y_a2qF3. (t_a2qGC ~ x_a2qF2, t_a2qGD ~ y_a2qF3) => Sing x_a2qF2 -> Sing y_a2qF3 -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool) lambda_a2qH7 x_a2qH8 y_a2qH9 = let sScrutinee_6989586621679586445 :: Sing (Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3) sScrutinee_6989586621679586445 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qH8) y_a2qH9 in  case sScrutinee_6989586621679586445 of { SLT -> let lambda_a2qHa :: LTSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 LTSym0 :: Bool) lambda_a2qHa = SFalse in lambda_a2qHa SEQ -> let lambda_a2qHb :: EQSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 EQSym0 :: Bool) lambda_a2qHb = STrue in lambda_a2qHb SGT -> let lambda_a2qHc :: GTSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 GTSym0 :: Bool) lambda_a2qHc = STrue in lambda_a2qHc } :: Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 (Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3) :: Bool) in lambda_a2qH7 sX sY sMax sX sY = let lambda_a2qHd :: forall x_a2qFz y_a2qFA. (t_a2qGE ~ x_a2qFz, t_a2qGF ~ y_a2qFA) => Sing x_a2qFz -> Sing y_a2qFA -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s) lambda_a2qHd x_a2qHe y_a2qHf = let sScrutinee_6989586621679586447 :: Sing (Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA) sScrutinee_6989586621679586447 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qHe) y_a2qHf in  case sScrutinee_6989586621679586447 of { STrue -> let lambda_a2qHg :: TrueSym0 ~ Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA => Sing (Case_6989586621679588979 x_a2qFz y_a2qFA TrueSym0 :: a_a2q0s) lambda_a2qHg = y_a2qHf in lambda_a2qHg SFalse -> let lambda_a2qHh :: FalseSym0 ~ Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA => Sing (Case_6989586621679588979 x_a2qFz y_a2qFA FalseSym0 :: a_a2q0s) lambda_a2qHh = x_a2qHe in lambda_a2qHh } :: Sing (Case_6989586621679588979 x_a2qFz y_a2qFA (Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA) :: a_a2q0s) in lambda_a2qHd sX sY sMin sX sY = let lambda_a2qHi :: forall x_a2qG6 y_a2qG7. (t_a2qGG ~ x_a2qG6, t_a2qGH ~ y_a2qG7) => Sing x_a2qG6 -> Sing y_a2qG7 -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s) lambda_a2qHi x_a2qHj y_a2qHk = let sScrutinee_6989586621679586449 :: Sing (Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7) sScrutinee_6989586621679586449 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qHj) y_a2qHk in  case sScrutinee_6989586621679586449 of { STrue -> let lambda_a2qHl :: TrueSym0 ~ Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7 => Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 TrueSym0 :: a_a2q0s) lambda_a2qHl = x_a2qHj in lambda_a2qHl SFalse -> let lambda_a2qHm :: FalseSym0 ~ Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7 => Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 FalseSym0 :: a_a2q0s) lambda_a2qHm = y_a2qHk in lambda_a2qHm } :: Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 (Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7) :: a_a2q0s) in lambda_a2qHi sX sY
sCompare :: forall (t_a2qGu :: a_a2q0s) (t_a2qGv :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGu -> Sing t_a2qGv -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering)
(%:<) :: forall (t_a2qGw :: a_a2q0s) (t_a2qGx :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGw -> Sing t_a2qGx -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool)
(%:<=) :: forall (t_a2qGy :: a_a2q0s) (t_a2qGz :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGy -> Sing t_a2qGz -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool)
(%:>) :: forall (t_a2qGA :: a_a2q0s) (t_a2qGB :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGA -> Sing t_a2qGB -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool)
(%:>=) :: forall (t_a2qGC :: a_a2q0s) (t_a2qGD :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGC -> Sing t_a2qGD -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool)
sMax :: forall (t_a2qGE :: a_a2q0s) (t_a2qGF :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGE -> Sing t_a2qGF -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s)
sMin :: forall (t_a2qGG :: a_a2q0s) (t_a2qGH :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGG -> Sing t_a2qGH -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s)
sCompare :: forall (t_a2qGu :: a_a2q0s) (t_a2qGv :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply CompareSym0 t_a2qGu) t_a2qGv ~ Apply (Apply Compare_6989586621679588819Sym0 t_a2qGu) t_a2qGv) => Sing t_a2qGu -> Sing t_a2qGv -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering)
(%:<) :: forall (t_a2qGw :: a_a2q0s) (t_a2qGx :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:<$) t_a2qGw) t_a2qGx ~ Apply (Apply TFHelper_6989586621679588852Sym0 t_a2qGw) t_a2qGx) => Sing t_a2qGw -> Sing t_a2qGx -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool)
(%:<=) :: forall (t_a2qGy :: a_a2q0s) (t_a2qGz :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:<=$) t_a2qGy) t_a2qGz ~ Apply (Apply TFHelper_6989586621679588885Sym0 t_a2qGy) t_a2qGz) => Sing t_a2qGy -> Sing t_a2qGz -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool)
(%:>) :: forall (t_a2qGA :: a_a2q0s) (t_a2qGB :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:>$) t_a2qGA) t_a2qGB ~ Apply (Apply TFHelper_6989586621679588918Sym0 t_a2qGA) t_a2qGB) => Sing t_a2qGA -> Sing t_a2qGB -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool)
(%:>=) :: forall (t_a2qGC :: a_a2q0s) (t_a2qGD :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:>=$) t_a2qGC) t_a2qGD ~ Apply (Apply TFHelper_6989586621679588951Sym0 t_a2qGC) t_a2qGD) => Sing t_a2qGC -> Sing t_a2qGD -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool)
sMax :: forall (t_a2qGE :: a_a2q0s) (t_a2qGF :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply MaxSym0 t_a2qGE) t_a2qGF ~ Apply (Apply Max_6989586621679588984Sym0 t_a2qGE) t_a2qGF) => Sing t_a2qGE -> Sing t_a2qGF -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s)
sMin :: forall (t_a2qGG :: a_a2q0s) (t_a2qGH :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply MinSym0 t_a2qGG) t_a2qGH ~ Apply (Apply Min_6989586621679589017Sym0 t_a2qGG) t_a2qGH) => Sing t_a2qGG -> Sing t_a2qGH -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a2stj :: Ordering) (t_a2stk :: Ordering). Sing t_a2stj -> Sing t_a2stk -> Sing (Apply (Apply ThenCmpSym0 t_a2stj) t_a2stk :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a2st5 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a2st8 :: Ordering) (l_a2st7 :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a2st3 :: Ordering) (t_a2st4 :: Ordering) = ThenCmp t_a2st3 t_a2st4
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a2qBD :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Ordering -> Type))
data CompareSym1 (l_a2qBG :: a6989586621679586420) (l_a2qBF :: TyFun a6989586621679586420 Ordering)
type CompareSym2 (t_a2qBB :: a6989586621679586420) (t_a2qBC :: a6989586621679586420) = Compare t_a2qBB t_a2qBC
data (:<$) (l_a2qBM :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:<$$) (l_a2qBP :: a6989586621679586420) (l_a2qBO :: TyFun a6989586621679586420 Bool)
type (:<$$$) (t_a2qBK :: a6989586621679586420) (t_a2qBL :: a6989586621679586420) = (:<) t_a2qBK t_a2qBL
data (:<=$) (l_a2qBV :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:<=$$) (l_a2qBY :: a6989586621679586420) (l_a2qBX :: TyFun a6989586621679586420 Bool)
type (:<=$$$) (t_a2qBT :: a6989586621679586420) (t_a2qBU :: a6989586621679586420) = (:<=) t_a2qBT t_a2qBU
data (:>$) (l_a2qC4 :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:>$$) (l_a2qC7 :: a6989586621679586420) (l_a2qC6 :: TyFun a6989586621679586420 Bool)
type (:>$$$) (t_a2qC2 :: a6989586621679586420) (t_a2qC3 :: a6989586621679586420) = (:>) t_a2qC2 t_a2qC3
data (:>=$) (l_a2qCd :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:>=$$) (l_a2qCg :: a6989586621679586420) (l_a2qCf :: TyFun a6989586621679586420 Bool)
type (:>=$$$) (t_a2qCb :: a6989586621679586420) (t_a2qCc :: a6989586621679586420) = (:>=) t_a2qCb t_a2qCc
data MaxSym0 (l_a2qCm :: TyFun a6989586621679586420 (TyFun a6989586621679586420 a6989586621679586420 -> Type))
data MaxSym1 (l_a2qCp :: a6989586621679586420) (l_a2qCo :: TyFun a6989586621679586420 a6989586621679586420)
type MaxSym2 (t_a2qCk :: a6989586621679586420) (t_a2qCl :: a6989586621679586420) = Max t_a2qCk t_a2qCl
data MinSym0 (l_a2qCv :: TyFun a6989586621679586420 (TyFun a6989586621679586420 a6989586621679586420 -> Type))
data MinSym1 (l_a2qCy :: a6989586621679586420) (l_a2qCx :: TyFun a6989586621679586420 a6989586621679586420)
type MinSym2 (t_a2qCt :: a6989586621679586420) (t_a2qCu :: a6989586621679586420) = Min t_a2qCt t_a2qCu
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596234Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596234Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Ord.SOrd a0 => Data.Singletons.Prelude.Ord.SOrd (GHC.Base.Maybe a0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596286Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596286Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd [a0]) => Data.Singletons.Prelude.Ord.SOrd [a0]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596342Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596342Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0) => Data.Singletons.Prelude.Ord.SOrd (Data.Either.Either a0 b0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596386Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596386Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd [a0]) => Data.Singletons.Prelude.Ord.SOrd (Data.List.NonEmpty.NonEmpty a0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596423Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596423Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596466Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596466Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0, Data.Singletons.Prelude.Ord.SOrd c0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0, c0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596517Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596517Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0, Data.Singletons.Prelude.Ord.SOrd c0, Data.Singletons.Prelude.Ord.SOrd d0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0, c0, d0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596576Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596576Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0, Data.Singletons.Prelude.Ord.SOrd c0, Data.Singletons.Prelude.Ord.SOrd d0, Data.Singletons.Prelude.Ord.SOrd e0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0, c0, d0, e0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596643Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596643Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0, Data.Singletons.Prelude.Ord.SOrd c0, Data.Singletons.Prelude.Ord.SOrd d0, Data.Singletons.Prelude.Ord.SOrd e0, Data.Singletons.Prelude.Ord.SOrd f0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0, c0, d0, e0, f0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596718Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596718Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Ord.SOrd a0, Data.Singletons.Prelude.Ord.SOrd b0, Data.Singletons.Prelude.Ord.SOrd c0, Data.Singletons.Prelude.Ord.SOrd d0, Data.Singletons.Prelude.Ord.SOrd e0, Data.Singletons.Prelude.Ord.SOrd f0, Data.Singletons.Prelude.Ord.SOrd g0) => Data.Singletons.Prelude.Ord.SOrd (a0, b0, c0, d0, e0, f0, g0)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596753Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596753Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Ord.SOrd GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596777Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596777Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Ord.SOrd GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596806Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679596806Sym0
instance Data.Singletons.Prelude.Ord.POrd 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Ord.SOrd ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ThenCmpSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ThenCmpSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.CompareSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.CompareSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:<$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:<$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:<=$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:<=$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:>$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:>$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:>=$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Ord.:>=$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MaxSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MaxSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MinSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MinSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588795Scrutinee_6989586621679586435Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588795Scrutinee_6989586621679586435Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588805Scrutinee_6989586621679586437Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588805Scrutinee_6989586621679586437Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679588819Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679588819Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588839Scrutinee_6989586621679586439Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588839Scrutinee_6989586621679586439Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588852Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588852Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588872Scrutinee_6989586621679586441Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588872Scrutinee_6989586621679586441Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588885Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588885Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588905Scrutinee_6989586621679586443Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588905Scrutinee_6989586621679586443Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588918Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588918Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588938Scrutinee_6989586621679586445Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588938Scrutinee_6989586621679586445Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588951Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679588951Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588971Scrutinee_6989586621679586447Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679588971Scrutinee_6989586621679586447Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679588984Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679588984Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679589004Scrutinee_6989586621679586449Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679589004Scrutinee_6989586621679586449Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679589017Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679589017Sym0


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Singletons.Prelude.Num
class kproxy_a2PIk ~ Proxy => PNum (kproxy_a2PIk :: Proxy a_a2PIg) where type (:+) (arg_a2PIl :: a_a2PIg) (arg_a2PIm :: a_a2PIg) :: a_a2PIg type (:-) (arg_a2PIu :: a_a2PIg) (arg_a2PIv :: a_a2PIg) :: a_a2PIg type (:*) (arg_a2PID :: a_a2PIg) (arg_a2PIE :: a_a2PIg) :: a_a2PIg type Negate (arg_a2PIM :: a_a2PIg) :: a_a2PIg type Abs (arg_a2PIQ :: a_a2PIg) :: a_a2PIg type Signum (arg_a2PIU :: a_a2PIg) :: a_a2PIg type FromInteger (arg_a2PIY :: Nat) :: a_a2PIg type (:-) a_a2PJd a_a2PJe = Apply (Apply TFHelper_6989586621679685297Sym0 a_a2PJd) a_a2PJe type Negate a_a2PJt = Apply Negate_6989586621679685312Sym0 a_a2PJt where {
    type family (:+) (arg_a2PIl :: a_a2PIg)
                     (arg_a2PIm :: a_a2PIg) :: a_a2PIg;
    type family (:-) (arg_a2PIu :: a_a2PIg)
                     (arg_a2PIv :: a_a2PIg) :: a_a2PIg;
    type family (:*) (arg_a2PID :: a_a2PIg)
                     (arg_a2PIE :: a_a2PIg) :: a_a2PIg;
    type family Negate (arg_a2PIM :: a_a2PIg) :: a_a2PIg;
    type family Abs (arg_a2PIQ :: a_a2PIg) :: a_a2PIg;
    type family Signum (arg_a2PIU :: a_a2PIg) :: a_a2PIg;
    type family FromInteger (arg_a2PIY :: Nat) :: a_a2PIg;
    type (:-) a_a2PJd a_a2PJe =
        Apply (Apply TFHelper_6989586621679685297Sym0 a_a2PJd) a_a2PJe;
    type Negate a_a2PJt = Apply Negate_6989586621679685312Sym0 a_a2PJt;
}
class SNum a_a2PIg where (%:-) sX sY = let lambda_a2PJJ :: forall x_a2PJb y_a2PJc. (t_a2PJB ~ x_a2PJb, t_a2PJC ~ y_a2PJc) => Sing x_a2PJb -> Sing y_a2PJc -> Sing (Apply (Apply (:-$) t_a2PJB) t_a2PJC :: a_a2PIg) lambda_a2PJJ x_a2PJK y_a2PJL = applySing (applySing (singFun2 (Proxy :: Proxy (:+$)) (%:+)) x_a2PJK) (applySing (singFun1 (Proxy :: Proxy NegateSym0) sNegate) y_a2PJL) in lambda_a2PJJ sX sY sNegate sX = let lambda_a2PJM :: forall x_a2PJs. t_a2PJF ~ x_a2PJs => Sing x_a2PJs -> Sing (Apply NegateSym0 t_a2PJF :: a_a2PIg) lambda_a2PJM x_a2PJN = applySing (applySing (singFun2 (Proxy :: Proxy (:-$)) (%:-)) (sFromInteger (sing :: Sing 0))) x_a2PJN in lambda_a2PJM sX
(%:+) :: forall (t_a2PJz :: a_a2PIg) (t_a2PJA :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJz -> Sing t_a2PJA -> Sing (Apply (Apply (:+$) t_a2PJz) t_a2PJA :: a_a2PIg)
(%:-) :: forall (t_a2PJB :: a_a2PIg) (t_a2PJC :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJB -> Sing t_a2PJC -> Sing (Apply (Apply (:-$) t_a2PJB) t_a2PJC :: a_a2PIg)
(%:*) :: forall (t_a2PJD :: a_a2PIg) (t_a2PJE :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJD -> Sing t_a2PJE -> Sing (Apply (Apply (:*$) t_a2PJD) t_a2PJE :: a_a2PIg)
sNegate :: forall (t_a2PJF :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJF -> Sing (Apply NegateSym0 t_a2PJF :: a_a2PIg)
sAbs :: forall (t_a2PJG :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJG -> Sing (Apply AbsSym0 t_a2PJG :: a_a2PIg)
sSignum :: forall (t_a2PJH :: a_a2PIg). SNum a_a2PIg => Sing t_a2PJH -> Sing (Apply SignumSym0 t_a2PJH :: a_a2PIg)
sFromInteger :: forall (t_a2PJI :: Nat). SNum a_a2PIg => Sing t_a2PJI -> Sing (Apply FromIntegerSym0 t_a2PJI :: a_a2PIg)
(%:-) :: forall (t_a2PJB :: a_a2PIg) (t_a2PJC :: a_a2PIg). (SNum a_a2PIg, Apply (Apply (:-$) t_a2PJB) t_a2PJC ~ Apply (Apply TFHelper_6989586621679685297Sym0 t_a2PJB) t_a2PJC) => Sing t_a2PJB -> Sing t_a2PJC -> Sing (Apply (Apply (:-$) t_a2PJB) t_a2PJC :: a_a2PIg)
sNegate :: forall (t_a2PJF :: a_a2PIg). (SNum a_a2PIg, Apply NegateSym0 t_a2PJF ~ Apply Negate_6989586621679685312Sym0 t_a2PJF) => Sing t_a2PJF -> Sing (Apply NegateSym0 t_a2PJF :: a_a2PIg)
sSubtract :: forall (t_a2Qlb :: a_a2QjC) (t_a2Qlc :: a_a2QjC). SNum a_a2QjC => Sing t_a2Qlb -> Sing t_a2Qlc -> Sing (Apply (Apply SubtractSym0 t_a2Qlb) t_a2Qlc :: a_a2QjC)
data (:+$) (l_a2PIp :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:+$$) (l_a2PIs :: a6989586621679685236) (l_a2PIr :: TyFun a6989586621679685236 a6989586621679685236)
type (:+$$$) (t_a2PIn :: a6989586621679685236) (t_a2PIo :: a6989586621679685236) = (:+) t_a2PIn t_a2PIo
data (:-$) (l_a2PIy :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:-$$) (l_a2PIB :: a6989586621679685236) (l_a2PIA :: TyFun a6989586621679685236 a6989586621679685236)
type (:-$$$) (t_a2PIw :: a6989586621679685236) (t_a2PIx :: a6989586621679685236) = (:-) t_a2PIw t_a2PIx
data (:*$) (l_a2PIH :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:*$$) (l_a2PIK :: a6989586621679685236) (l_a2PIJ :: TyFun a6989586621679685236 a6989586621679685236)
type (:*$$$) (t_a2PIF :: a6989586621679685236) (t_a2PIG :: a6989586621679685236) = (:*) t_a2PIF t_a2PIG
data NegateSym0 (l_a2PIO :: TyFun a6989586621679685236 a6989586621679685236)
type NegateSym1 (t_a2PIN :: a6989586621679685236) = Negate t_a2PIN
data AbsSym0 (l_a2PIS :: TyFun a6989586621679685236 a6989586621679685236)
type AbsSym1 (t_a2PIR :: a6989586621679685236) = Abs t_a2PIR
data SignumSym0 (l_a2PIW :: TyFun a6989586621679685236 a6989586621679685236)
type SignumSym1 (t_a2PIV :: a6989586621679685236) = Signum t_a2PIV
data FromIntegerSym0 (l_a2PJ0 :: TyFun Nat a6989586621679685236)
type FromIntegerSym1 (t_a2PIZ :: Nat) = FromInteger t_a2PIZ
data SubtractSym0 (l_a2Ql2 :: TyFun a6989586621679687552 (TyFun a6989586621679687552 a6989586621679687552 -> Type))
data SubtractSym1 (l_a2Ql5 :: a6989586621679687552) (l_a2Ql4 :: TyFun a6989586621679687552 a6989586621679687552)
type SubtractSym2 (t_a2Ql0 :: a6989586621679687552) (t_a2Ql1 :: a6989586621679687552) = Subtract t_a2Ql0 t_a2Ql1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.SubtractSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.SubtractSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:+$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:+$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:-$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:-$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:*$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Num.:*$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.NegateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.AbsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.SignumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.FromIntegerSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679685297Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679685297Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_6989586621679685312Sym0
instance Data.Singletons.Prelude.Num.PNum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Num.SNum GHC.Types.Nat


-- | Defines and exports singletons useful for the Nat and Symbol kinds.
--   This exports the internal, unsafe constructors. Use
--   Data.Singletons.TypeLits for a safe interface.
module Data.Singletons.TypeLits

-- | (Kind) This is the kind of type-level natural numbers.
data Nat :: *

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *

-- | The singleton kind-indexed data family.

-- | Kind-restricted synonym for <a>Sing</a> for <tt>Nat</tt>s
type SNat (x :: Nat) = Sing x

-- | Kind-restricted synonym for <a>Sing</a> for <tt>Symbol</tt>s
type SSymbol (x :: Symbol) = Sing x

-- | Given a singleton for <tt>Nat</tt>, call something requiring a
--   <tt>KnownNat</tt> instance.
withKnownNat :: Sing n -> (KnownNat n => r) -> r

-- | Given a singleton for <tt>Symbol</tt>, call something requiring a
--   <tt>KnownSymbol</tt> instance.
withKnownSymbol :: Sing n -> (KnownSymbol n => r) -> r

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a2NiF :: TyFun k06989586621679675033 k6989586621679675035)
type ErrorSym1 (t_a2NiE :: k06989586621679675033) = Error t_a2NiE

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a

-- | This class gives the integer associated with a type-level natural.
--   There are instances of the class for every concrete literal: 0, 1, 2,
--   etc.
class KnownNat (n :: Nat)

natVal :: KnownNat n => proxy n -> Integer

-- | This class gives the string associated with a type-level symbol. There
--   are instances of the class for every concrete literal: "hello", etc.
class KnownSymbol (n :: Symbol)

symbolVal :: KnownSymbol n => proxy n -> String
type (:^) a b = a ^ b
data (:^$) l_a2Nln
data (:^$$) (l_a2Nlq :: Nat) l_a2Nlp
type (:^$$$) (t_a2Nll :: Nat) (t_a2Nlm :: Nat) = (:^) t_a2Nll t_a2Nlm
instance GHC.Num.Num GHC.Types.Nat


-- | Defines the promoted and singleton version of Bounded, <a>PBounded</a>
--   and <a>SBounded</a>
module Data.Singletons.Prelude.Enum
class kproxy_a2RQB ~ Proxy => PBounded (kproxy_a2RQB :: Proxy a_a2RQA) where type MinBound :: a_a2RQA type MaxBound :: a_a2RQA where {
    type family MinBound :: a_a2RQA;
    type family MaxBound :: a_a2RQA;
}
class SBounded a_a2RQA
sMinBound :: SBounded a_a2RQA => Sing (MinBoundSym0 :: a_a2RQA)
sMaxBound :: SBounded a_a2RQA => Sing (MaxBoundSym0 :: a_a2RQA)
class kproxy_a2T2y ~ Proxy => PEnum (kproxy_a2T2y :: Proxy a_a2SU0) where type Succ (arg_a2T2z :: a_a2SU0) :: a_a2SU0 type Pred (arg_a2T2D :: a_a2SU0) :: a_a2SU0 type ToEnum (arg_a2T2H :: Nat) :: a_a2SU0 type FromEnum (arg_a2T2L :: a_a2SU0) :: Nat type EnumFromTo (arg_a2T2P :: a_a2SU0) (arg_a2T2Q :: a_a2SU0) :: [a_a2SU0] type EnumFromThenTo (arg_a2T2Y :: a_a2SU0) (arg_a2T2Z :: a_a2SU0) (arg_a2T30 :: a_a2SU0) :: [a_a2SU0] type Succ a_a2T3k = Apply Succ_6989586621679698075Sym0 a_a2T3k type Pred a_a2T3x = Apply Pred_6989586621679698088Sym0 a_a2T3x type EnumFromTo a_a2T3O a_a2T3P = Apply (Apply EnumFromTo_6989586621679698106Sym0 a_a2T3O) a_a2T3P type EnumFromThenTo a_a2T4h a_a2T4i a_a2T4j = Apply (Apply (Apply EnumFromThenTo_6989586621679698136Sym0 a_a2T4h) a_a2T4i) a_a2T4j where {
    type family Succ (arg_a2T2z :: a_a2SU0) :: a_a2SU0;
    type family Pred (arg_a2T2D :: a_a2SU0) :: a_a2SU0;
    type family ToEnum (arg_a2T2H :: Nat) :: a_a2SU0;
    type family FromEnum (arg_a2T2L :: a_a2SU0) :: Nat;
    type family EnumFromTo (arg_a2T2P :: a_a2SU0)
                           (arg_a2T2Q :: a_a2SU0) :: [a_a2SU0];
    type family EnumFromThenTo (arg_a2T2Y :: a_a2SU0)
                               (arg_a2T2Z :: a_a2SU0)
                               (arg_a2T30 :: a_a2SU0) :: [a_a2SU0];
    type Succ a_a2T3k = Apply Succ_6989586621679698075Sym0 a_a2T3k;
    type Pred a_a2T3x = Apply Pred_6989586621679698088Sym0 a_a2T3x;
    type EnumFromTo a_a2T3O a_a2T3P =
        Apply (Apply EnumFromTo_6989586621679698106Sym0 a_a2T3O) a_a2T3P;
    type EnumFromThenTo a_a2T4h a_a2T4i a_a2T4j =
        Apply (Apply (Apply EnumFromThenTo_6989586621679698136Sym0 a_a2T4h) a_a2T4i) a_a2T4j;
}
class SEnum a_a2SU0 where sSucc sA_6989586621679698067 = let lambda_a2T7E :: forall a_6989586621679698067_a2T3j. t_a2T7v ~ a_6989586621679698067_a2T3j => Sing a_6989586621679698067_a2T3j -> Sing (Apply SuccSym0 t_a2T7v :: a_a2SU0) lambda_a2T7E a_6989586621679698067_a2T7F = applySing (applySing (applySing (singFun3 (Proxy :: Proxy (:.$)) (%:.)) (singFun1 (Proxy :: Proxy ToEnumSym0) sToEnum)) (applySing (applySing (singFun3 (Proxy :: Proxy (:.$)) (%:.)) (applySing (singFun2 (Proxy :: Proxy (:+$)) (%:+)) (sFromInteger (sing :: Sing 1)))) (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum))) a_6989586621679698067_a2T7F in lambda_a2T7E sA_6989586621679698067 sPred sA_6989586621679698080 = let lambda_a2T7G :: forall a_6989586621679698080_a2T3w. t_a2T7w ~ a_6989586621679698080_a2T3w => Sing a_6989586621679698080_a2T3w -> Sing (Apply PredSym0 t_a2T7w :: a_a2SU0) lambda_a2T7G a_6989586621679698080_a2T7H = applySing (applySing (applySing (singFun3 (Proxy :: Proxy (:.$)) (%:.)) (singFun1 (Proxy :: Proxy ToEnumSym0) sToEnum)) (applySing (applySing (singFun3 (Proxy :: Proxy (:.$)) (%:.)) (applySing (singFun2 (Proxy :: Proxy SubtractSym0) sSubtract) (sFromInteger (sing :: Sing 1)))) (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum))) a_6989586621679698080_a2T7H in lambda_a2T7G sA_6989586621679698080 sEnumFromTo sX sY = let lambda_a2T7K :: forall x_a2T3M y_a2T3N. (t_a2T7z ~ x_a2T3M, t_a2T7A ~ y_a2T3N) => Sing x_a2T3M -> Sing y_a2T3N -> Sing (Apply (Apply EnumFromToSym0 t_a2T7z) t_a2T7A :: [a_a2SU0]) lambda_a2T7K x_a2T7L y_a2T7M = applySing (applySing (singFun2 (Proxy :: Proxy MapSym0) sMap) (singFun1 (Proxy :: Proxy ToEnumSym0) sToEnum)) (applySing (applySing (singFun2 (Proxy :: Proxy EnumFromToSym0) sEnumFromTo) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) x_a2T7L)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a2T7M)) in lambda_a2T7K sX sY sEnumFromThenTo sX1 sX2 sY = let lambda_a2T7O :: forall x1_a2T4e x2_a2T4f y_a2T4g. (t_a2T7B ~ x1_a2T4e, t_a2T7C ~ x2_a2T4f, t_a2T7D ~ y_a2T4g) => Sing x1_a2T4e -> Sing x2_a2T4f -> Sing y_a2T4g -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2T7B) t_a2T7C) t_a2T7D :: [a_a2SU0]) lambda_a2T7O x1_a2T7P x2_a2T7Q y_a2T7R = applySing (applySing (singFun2 (Proxy :: Proxy MapSym0) sMap) (singFun1 (Proxy :: Proxy ToEnumSym0) sToEnum)) (applySing (applySing (applySing (singFun3 (Proxy :: Proxy EnumFromThenToSym0) sEnumFromThenTo) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) x1_a2T7P)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) x2_a2T7Q)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a2T7R)) in lambda_a2T7O sX1 sX2 sY
sSucc :: forall (t_a2T7v :: a_a2SU0). SEnum a_a2SU0 => Sing t_a2T7v -> Sing (Apply SuccSym0 t_a2T7v :: a_a2SU0)
sPred :: forall (t_a2T7w :: a_a2SU0). SEnum a_a2SU0 => Sing t_a2T7w -> Sing (Apply PredSym0 t_a2T7w :: a_a2SU0)
sToEnum :: forall (t_a2T7x :: Nat). SEnum a_a2SU0 => Sing t_a2T7x -> Sing (Apply ToEnumSym0 t_a2T7x :: a_a2SU0)
sFromEnum :: forall (t_a2T7y :: a_a2SU0). SEnum a_a2SU0 => Sing t_a2T7y -> Sing (Apply FromEnumSym0 t_a2T7y :: Nat)
sEnumFromTo :: forall (t_a2T7z :: a_a2SU0) (t_a2T7A :: a_a2SU0). SEnum a_a2SU0 => Sing t_a2T7z -> Sing t_a2T7A -> Sing (Apply (Apply EnumFromToSym0 t_a2T7z) t_a2T7A :: [a_a2SU0])
sEnumFromThenTo :: forall (t_a2T7B :: a_a2SU0) (t_a2T7C :: a_a2SU0) (t_a2T7D :: a_a2SU0). SEnum a_a2SU0 => Sing t_a2T7B -> Sing t_a2T7C -> Sing t_a2T7D -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2T7B) t_a2T7C) t_a2T7D :: [a_a2SU0])
sSucc :: forall (t_a2T7v :: a_a2SU0). (SEnum a_a2SU0, Apply SuccSym0 t_a2T7v ~ Apply Succ_6989586621679698075Sym0 t_a2T7v) => Sing t_a2T7v -> Sing (Apply SuccSym0 t_a2T7v :: a_a2SU0)
sPred :: forall (t_a2T7w :: a_a2SU0). (SEnum a_a2SU0, Apply PredSym0 t_a2T7w ~ Apply Pred_6989586621679698088Sym0 t_a2T7w) => Sing t_a2T7w -> Sing (Apply PredSym0 t_a2T7w :: a_a2SU0)
sEnumFromTo :: forall (t_a2T7z :: a_a2SU0) (t_a2T7A :: a_a2SU0). (SEnum a_a2SU0, Apply (Apply EnumFromToSym0 t_a2T7z) t_a2T7A ~ Apply (Apply EnumFromTo_6989586621679698106Sym0 t_a2T7z) t_a2T7A) => Sing t_a2T7z -> Sing t_a2T7A -> Sing (Apply (Apply EnumFromToSym0 t_a2T7z) t_a2T7A :: [a_a2SU0])
sEnumFromThenTo :: forall (t_a2T7B :: a_a2SU0) (t_a2T7C :: a_a2SU0) (t_a2T7D :: a_a2SU0). (SEnum a_a2SU0, Apply (Apply (Apply EnumFromThenToSym0 t_a2T7B) t_a2T7C) t_a2T7D ~ Apply (Apply (Apply EnumFromThenTo_6989586621679698136Sym0 t_a2T7B) t_a2T7C) t_a2T7D) => Sing t_a2T7B -> Sing t_a2T7C -> Sing t_a2T7D -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2T7B) t_a2T7C) t_a2T7D :: [a_a2SU0])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a2T2B :: TyFun a6989586621679697496 a6989586621679697496)
type SuccSym1 (t_a2T2A :: a6989586621679697496) = Succ t_a2T2A
data PredSym0 (l_a2T2F :: TyFun a6989586621679697496 a6989586621679697496)
type PredSym1 (t_a2T2E :: a6989586621679697496) = Pred t_a2T2E
data ToEnumSym0 (l_a2T2J :: TyFun Nat a6989586621679697496)
type ToEnumSym1 (t_a2T2I :: Nat) = ToEnum t_a2T2I
data FromEnumSym0 (l_a2T2N :: TyFun a6989586621679697496 Nat)
type FromEnumSym1 (t_a2T2M :: a6989586621679697496) = FromEnum t_a2T2M
data EnumFromToSym0 (l_a2T2T :: TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type))
data EnumFromToSym1 (l_a2T2W :: a6989586621679697496) (l_a2T2V :: TyFun a6989586621679697496 [a6989586621679697496])
type EnumFromToSym2 (t_a2T2R :: a6989586621679697496) (t_a2T2S :: a6989586621679697496) = EnumFromTo t_a2T2R t_a2T2S
data EnumFromThenToSym0 (l_a2T34 :: TyFun a6989586621679697496 (TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type) -> Type))
data EnumFromThenToSym1 (l_a2T37 :: a6989586621679697496) (l_a2T36 :: TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type))
data EnumFromThenToSym2 (l_a2T3a :: a6989586621679697496) (l_a2T3b :: a6989586621679697496) (l_a2T39 :: TyFun a6989586621679697496 [a6989586621679697496])
type EnumFromThenToSym3 (t_a2T31 :: a6989586621679697496) (t_a2T32 :: a6989586621679697496) (t_a2T33 :: a6989586621679697496) = EnumFromThenTo t_a2T31 t_a2T32 t_a2T33
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679717960Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679717970Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679717999Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679718009Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679718035Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679718045Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697584Scrutinee_6989586621679697555Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697621Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697766Scrutinee_6989586621679697545Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697803Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697993Scrutinee_6989586621679697531Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697993Scrutinee_6989586621679697531Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697993Scrutinee_6989586621679697531Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697993Scrutinee_6989586621679697531Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697993Scrutinee_6989586621679697531Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697965GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697965GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697965GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697965GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679697965GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EftNatSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EftNatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.SuccSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.PredSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromToSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromToSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenToSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenToSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenToSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679698075Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679698088Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679698106Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679698106Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698136Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698136Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698136Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679698156Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679698167Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679698178Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679698189Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679698211Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679698211Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698247Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698247Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679698247Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Nat
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0, Data.Singletons.Prelude.Enum.SBounded c0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0, c0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0, Data.Singletons.Prelude.Enum.SBounded c0, Data.Singletons.Prelude.Enum.SBounded d0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0, c0, d0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0, Data.Singletons.Prelude.Enum.SBounded c0, Data.Singletons.Prelude.Enum.SBounded d0, Data.Singletons.Prelude.Enum.SBounded e0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0, c0, d0, e0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0, Data.Singletons.Prelude.Enum.SBounded c0, Data.Singletons.Prelude.Enum.SBounded d0, Data.Singletons.Prelude.Enum.SBounded e0, Data.Singletons.Prelude.Enum.SBounded f0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0, c0, d0, e0, f0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance (Data.Singletons.Prelude.Enum.SBounded a0, Data.Singletons.Prelude.Enum.SBounded b0, Data.Singletons.Prelude.Enum.SBounded c0, Data.Singletons.Prelude.Enum.SBounded d0, Data.Singletons.Prelude.Enum.SBounded e0, Data.Singletons.Prelude.Enum.SBounded f0, Data.Singletons.Prelude.Enum.SBounded g0) => Data.Singletons.Prelude.Enum.SBounded (a0, b0, c0, d0, e0, f0, g0)
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SBounded GHC.Types.Bool
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SBounded GHC.Types.Ordering
instance Data.Singletons.Prelude.Enum.PBounded 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SBounded ()


-- | This module contains everything you need to derive your own singletons
--   via Template Haskell.
--   
--   TURN ON <tt>-XScopedTypeVariables</tt> IN YOUR MODULE IF YOU WANT THIS
--   TO WORK.
module Data.Singletons.TH

-- | Make promoted and singleton versions of all declarations given,
--   retaining the original declarations. See
--   <a>http://www.cis.upenn.edu/~eir/packages/singletons/README.html</a>
--   for further explanation.
singletons :: DsMonad q => q [Dec] -> q [Dec]

-- | Make promoted and singleton versions of all declarations given,
--   discarding the original declarations. Note that a singleton based on a
--   datatype needs the original datatype, so this will fail if it sees any
--   datatype declarations. Classes, instances, and functions are all fine.
singletonsOnly :: DsMonad q => q [Dec] -> q [Dec]

-- | Generate singleton definitions from a type that is already defined.
--   For example, the singletons package itself uses
--   
--   <pre>
--   $(genSingletons [''Bool, ''Maybe, ''Either, ''[]])
--   </pre>
--   
--   to generate singletons for Prelude types.
genSingletons :: DsMonad q => [Name] -> q [Dec]

-- | Promote every declaration given to the type level, retaining the
--   originals.
promote :: DsMonad q => q [Dec] -> q [Dec]

-- | Promote each declaration, discarding the originals. Note that a
--   promoted datatype uses the same definition as an original datatype, so
--   this will not work with datatypes. Classes, instances, and functions
--   are all fine.
promoteOnly :: DsMonad q => q [Dec] -> q [Dec]

-- | Generate defunctionalization symbols for existing type family
genDefunSymbols :: DsMonad q => [Name] -> q [Dec]

-- | Generate promoted definitions from a type that is already defined.
--   This is generally only useful with classes.
genPromotions :: DsMonad q => [Name] -> q [Dec]

-- | Produce instances for '(:==)' (type-level equality) from the given
--   types
promoteEqInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for '(:==)' (type-level equality) from the given
--   type
promoteEqInstance :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SEq</tt> and type-level '(:==)' for each type
--   in the list
singEqInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SEq</tt> and type-level '(:==)' for the given
--   type
singEqInstance :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SEq</tt> (only -- no instance for '(:==)',
--   which <tt>SEq</tt> generally relies on) for each type in the list
singEqInstancesOnly :: DsMonad q => [Name] -> q [Dec]

-- | Create instances of <tt>SEq</tt> (only -- no instance for '(:==)',
--   which <tt>SEq</tt> generally relies on) for the given type
singEqInstanceOnly :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SDecide</tt> for each type in the list.
singDecideInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SDecide</tt> for the given type.
singDecideInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>POrd</tt> from the given types
promoteOrdInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>POrd</tt> from the given type
promoteOrdInstance :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SOrd</tt> for the given types
singOrdInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SOrd</tt> for the given type
singOrdInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>PBounded</tt> from the given types
promoteBoundedInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>PBounded</tt> from the given type
promoteBoundedInstance :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SBounded</tt> for the given types
singBoundedInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SBounded</tt> for the given type
singBoundedInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>PEnum</tt> from the given types
promoteEnumInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>PEnum</tt> from the given type
promoteEnumInstance :: DsMonad q => Name -> q [Dec]

-- | Create instances of <tt>SEnum</tt> for the given types
singEnumInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SEnum</tt> for the given type
singEnumInstance :: DsMonad q => Name -> q [Dec]

-- | The function <a>cases</a> generates a case expression where each
--   right-hand side is identical. This may be useful if the type-checker
--   requires knowledge of which constructor is used to satisfy equality or
--   type-class constraints, but where each constructor is treated the
--   same.
cases :: DsMonad q => Name -> q Exp -> q Exp -> q Exp

-- | The function <a>sCases</a> generates a case expression where each
--   right-hand side is identical. This may be useful if the type-checker
--   requires knowledge of which constructor is used to satisfy equality or
--   type-class constraints, but where each constructor is treated the
--   same. For <a>sCases</a>, unlike <a>cases</a>, the scrutinee is a
--   singleton. But make sure to pass in the name of the <i>original</i>
--   datatype, preferring <tt>''Maybe</tt> over <tt>''SMaybe</tt>.
sCases :: DsMonad q => Name -> q Exp -> q Exp -> q Exp

-- | The singleton kind-indexed data family.

-- | The promoted analogue of <a>Eq</a>. If you supply no definition for
--   '(:==)', then it defaults to a use of '(==)', from
--   <tt>Data.Type.Equality</tt>.
class kproxy ~ Proxy => PEq (kproxy :: Proxy a) where type (:==) (x :: a) (y :: a) :: Bool type (:/=) (x :: a) (y :: a) :: Bool type (:==) (x :: a) (y :: a) = x == y type (:/=) (x :: a) (y :: a) = Not (x :== y) where {
    type family (:==) (x :: a) (y :: a) :: Bool;
    type family (:/=) (x :: a) (y :: a) :: Bool;
    type (:==) (x :: a) (y :: a) = x == y;
    type (:/=) (x :: a) (y :: a) = Not (x :== y);
}

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>

-- | Conditional over singletons
sIf :: Sing a -> Sing b -> Sing c -> Sing (If a b c)

-- | The singleton analogue of <a>Eq</a>. Unlike the definition for
--   <a>Eq</a>, it is required that instances define a body for '(%:==)'.
--   You may also supply a body for '(%:/=)'.
class SEq k where a %:/= b = sNot (a %:== b)

-- | Boolean equality on singletons
(%:==) :: forall (a :: k) (b :: k). SEq k => Sing a -> Sing b -> Sing (a :== b)

-- | Boolean disequality on singletons
(%:/=) :: forall (a :: k) (b :: k). SEq k => Sing a -> Sing b -> Sing (a :/= b)

-- | Boolean disequality on singletons
(%:/=) :: forall (a :: k) (b :: k). (SEq k, (a :/= b) ~ Not (a :== b)) => Sing a -> Sing b -> Sing (a :/= b)
class (PEq (Proxy :: Proxy a_a2q0s), kproxy_a2qBy ~ Proxy) => POrd (kproxy_a2qBy :: Proxy a_a2q0s) where type Compare (arg_a2qBz :: a_a2q0s) (arg_a2qBA :: a_a2q0s) :: Ordering type (:<) (arg_a2qBI :: a_a2q0s) (arg_a2qBJ :: a_a2q0s) :: Bool type (:<=) (arg_a2qBR :: a_a2q0s) (arg_a2qBS :: a_a2q0s) :: Bool type (:>) (arg_a2qC0 :: a_a2q0s) (arg_a2qC1 :: a_a2q0s) :: Bool type (:>=) (arg_a2qC9 :: a_a2q0s) (arg_a2qCa :: a_a2q0s) :: Bool type Max (arg_a2qCi :: a_a2q0s) (arg_a2qCj :: a_a2q0s) :: a_a2q0s type Min (arg_a2qCr :: a_a2q0s) (arg_a2qCs :: a_a2q0s) :: a_a2q0s type Compare a_a2qD7 a_a2qD8 = Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8 type (:<) a_a2qDE a_a2qDF = Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF type (:<=) a_a2qEb a_a2qEc = Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc type (:>) a_a2qEI a_a2qEJ = Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ type (:>=) a_a2qFf a_a2qFg = Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg type Max a_a2qFM a_a2qFN = Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN type Min a_a2qGj a_a2qGk = Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk where {
    type family Compare (arg_a2qBz :: a_a2q0s)
                        (arg_a2qBA :: a_a2q0s) :: Ordering;
    type family (:<) (arg_a2qBI :: a_a2q0s)
                     (arg_a2qBJ :: a_a2q0s) :: Bool;
    type family (:<=) (arg_a2qBR :: a_a2q0s)
                      (arg_a2qBS :: a_a2q0s) :: Bool;
    type family (:>) (arg_a2qC0 :: a_a2q0s)
                     (arg_a2qC1 :: a_a2q0s) :: Bool;
    type family (:>=) (arg_a2qC9 :: a_a2q0s)
                      (arg_a2qCa :: a_a2q0s) :: Bool;
    type family Max (arg_a2qCi :: a_a2q0s)
                    (arg_a2qCj :: a_a2q0s) :: a_a2q0s;
    type family Min (arg_a2qCr :: a_a2q0s)
                    (arg_a2qCs :: a_a2q0s) :: a_a2q0s;
    type Compare a_a2qD7 a_a2qD8 =
        Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8;
    type (:<) a_a2qDE a_a2qDF =
        Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF;
    type (:<=) a_a2qEb a_a2qEc =
        Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc;
    type (:>) a_a2qEI a_a2qEJ =
        Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ;
    type (:>=) a_a2qFf a_a2qFg =
        Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg;
    type Max a_a2qFM a_a2qFN =
        Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN;
    type Min a_a2qGj a_a2qGk =
        Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk;
}
class SEq a_a2q0s => SOrd a_a2q0s where sCompare sX sY = let lambda_a2qGI :: forall x_a2qCJ y_a2qCK. (t_a2qGu ~ x_a2qCJ, t_a2qGv ~ y_a2qCK) => Sing x_a2qCJ -> Sing y_a2qCK -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering) lambda_a2qGI x_a2qGJ y_a2qGK = let sScrutinee_6989586621679586435 :: Sing (Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK) sScrutinee_6989586621679586435 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a2qGJ) y_a2qGK in  case sScrutinee_6989586621679586435 of { STrue -> let lambda_a2qGL :: TrueSym0 ~ Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK TrueSym0 :: Ordering) lambda_a2qGL = SEQ in lambda_a2qGL SFalse -> let lambda_a2qGM :: FalseSym0 ~ Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK FalseSym0 :: Ordering) lambda_a2qGM = let sScrutinee_6989586621679586437 :: Sing (Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK) sScrutinee_6989586621679586437 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qGJ) y_a2qGK in  case sScrutinee_6989586621679586437 of { STrue -> let lambda_a2qGN :: TrueSym0 ~ Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK TrueSym0 :: Ordering) lambda_a2qGN = SLT in lambda_a2qGN SFalse -> let lambda_a2qGO :: FalseSym0 ~ Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK => Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK FalseSym0 :: Ordering) lambda_a2qGO = SGT in lambda_a2qGO } :: Sing (Case_6989586621679588813 x_a2qCJ y_a2qCK (Let6989586621679588805Scrutinee_6989586621679586437Sym2 x_a2qCJ y_a2qCK) :: Ordering) in lambda_a2qGM } :: Sing (Case_6989586621679588803 x_a2qCJ y_a2qCK (Let6989586621679588795Scrutinee_6989586621679586435Sym2 x_a2qCJ y_a2qCK) :: Ordering) in lambda_a2qGI sX sY (%:<) sX sY = let lambda_a2qGP :: forall x_a2qDr y_a2qDs. (t_a2qGw ~ x_a2qDr, t_a2qGx ~ y_a2qDs) => Sing x_a2qDr -> Sing y_a2qDs -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool) lambda_a2qGP x_a2qGQ y_a2qGR = let sScrutinee_6989586621679586439 :: Sing (Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs) sScrutinee_6989586621679586439 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qGQ) y_a2qGR in  case sScrutinee_6989586621679586439 of { SLT -> let lambda_a2qGS :: LTSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs LTSym0 :: Bool) lambda_a2qGS = STrue in lambda_a2qGS SEQ -> let lambda_a2qGT :: EQSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs EQSym0 :: Bool) lambda_a2qGT = SFalse in lambda_a2qGT SGT -> let lambda_a2qGU :: GTSym0 ~ Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs => Sing (Case_6989586621679588847 x_a2qDr y_a2qDs GTSym0 :: Bool) lambda_a2qGU = SFalse in lambda_a2qGU } :: Sing (Case_6989586621679588847 x_a2qDr y_a2qDs (Let6989586621679588839Scrutinee_6989586621679586439Sym2 x_a2qDr y_a2qDs) :: Bool) in lambda_a2qGP sX sY (%:<=) sX sY = let lambda_a2qGV :: forall x_a2qDY y_a2qDZ. (t_a2qGy ~ x_a2qDY, t_a2qGz ~ y_a2qDZ) => Sing x_a2qDY -> Sing y_a2qDZ -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool) lambda_a2qGV x_a2qGW y_a2qGX = let sScrutinee_6989586621679586441 :: Sing (Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ) sScrutinee_6989586621679586441 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qGW) y_a2qGX in  case sScrutinee_6989586621679586441 of { SLT -> let lambda_a2qGY :: LTSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ LTSym0 :: Bool) lambda_a2qGY = STrue in lambda_a2qGY SEQ -> let lambda_a2qGZ :: EQSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ EQSym0 :: Bool) lambda_a2qGZ = STrue in lambda_a2qGZ SGT -> let lambda_a2qH0 :: GTSym0 ~ Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ => Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ GTSym0 :: Bool) lambda_a2qH0 = SFalse in lambda_a2qH0 } :: Sing (Case_6989586621679588880 x_a2qDY y_a2qDZ (Let6989586621679588872Scrutinee_6989586621679586441Sym2 x_a2qDY y_a2qDZ) :: Bool) in lambda_a2qGV sX sY (%:>) sX sY = let lambda_a2qH1 :: forall x_a2qEv y_a2qEw. (t_a2qGA ~ x_a2qEv, t_a2qGB ~ y_a2qEw) => Sing x_a2qEv -> Sing y_a2qEw -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool) lambda_a2qH1 x_a2qH2 y_a2qH3 = let sScrutinee_6989586621679586443 :: Sing (Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw) sScrutinee_6989586621679586443 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qH2) y_a2qH3 in  case sScrutinee_6989586621679586443 of { SLT -> let lambda_a2qH4 :: LTSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw LTSym0 :: Bool) lambda_a2qH4 = SFalse in lambda_a2qH4 SEQ -> let lambda_a2qH5 :: EQSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw EQSym0 :: Bool) lambda_a2qH5 = SFalse in lambda_a2qH5 SGT -> let lambda_a2qH6 :: GTSym0 ~ Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw => Sing (Case_6989586621679588913 x_a2qEv y_a2qEw GTSym0 :: Bool) lambda_a2qH6 = STrue in lambda_a2qH6 } :: Sing (Case_6989586621679588913 x_a2qEv y_a2qEw (Let6989586621679588905Scrutinee_6989586621679586443Sym2 x_a2qEv y_a2qEw) :: Bool) in lambda_a2qH1 sX sY (%:>=) sX sY = let lambda_a2qH7 :: forall x_a2qF2 y_a2qF3. (t_a2qGC ~ x_a2qF2, t_a2qGD ~ y_a2qF3) => Sing x_a2qF2 -> Sing y_a2qF3 -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool) lambda_a2qH7 x_a2qH8 y_a2qH9 = let sScrutinee_6989586621679586445 :: Sing (Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3) sScrutinee_6989586621679586445 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a2qH8) y_a2qH9 in  case sScrutinee_6989586621679586445 of { SLT -> let lambda_a2qHa :: LTSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 LTSym0 :: Bool) lambda_a2qHa = SFalse in lambda_a2qHa SEQ -> let lambda_a2qHb :: EQSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 EQSym0 :: Bool) lambda_a2qHb = STrue in lambda_a2qHb SGT -> let lambda_a2qHc :: GTSym0 ~ Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3 => Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 GTSym0 :: Bool) lambda_a2qHc = STrue in lambda_a2qHc } :: Sing (Case_6989586621679588946 x_a2qF2 y_a2qF3 (Let6989586621679588938Scrutinee_6989586621679586445Sym2 x_a2qF2 y_a2qF3) :: Bool) in lambda_a2qH7 sX sY sMax sX sY = let lambda_a2qHd :: forall x_a2qFz y_a2qFA. (t_a2qGE ~ x_a2qFz, t_a2qGF ~ y_a2qFA) => Sing x_a2qFz -> Sing y_a2qFA -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s) lambda_a2qHd x_a2qHe y_a2qHf = let sScrutinee_6989586621679586447 :: Sing (Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA) sScrutinee_6989586621679586447 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qHe) y_a2qHf in  case sScrutinee_6989586621679586447 of { STrue -> let lambda_a2qHg :: TrueSym0 ~ Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA => Sing (Case_6989586621679588979 x_a2qFz y_a2qFA TrueSym0 :: a_a2q0s) lambda_a2qHg = y_a2qHf in lambda_a2qHg SFalse -> let lambda_a2qHh :: FalseSym0 ~ Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA => Sing (Case_6989586621679588979 x_a2qFz y_a2qFA FalseSym0 :: a_a2q0s) lambda_a2qHh = x_a2qHe in lambda_a2qHh } :: Sing (Case_6989586621679588979 x_a2qFz y_a2qFA (Let6989586621679588971Scrutinee_6989586621679586447Sym2 x_a2qFz y_a2qFA) :: a_a2q0s) in lambda_a2qHd sX sY sMin sX sY = let lambda_a2qHi :: forall x_a2qG6 y_a2qG7. (t_a2qGG ~ x_a2qG6, t_a2qGH ~ y_a2qG7) => Sing x_a2qG6 -> Sing y_a2qG7 -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s) lambda_a2qHi x_a2qHj y_a2qHk = let sScrutinee_6989586621679586449 :: Sing (Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7) sScrutinee_6989586621679586449 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a2qHj) y_a2qHk in  case sScrutinee_6989586621679586449 of { STrue -> let lambda_a2qHl :: TrueSym0 ~ Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7 => Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 TrueSym0 :: a_a2q0s) lambda_a2qHl = x_a2qHj in lambda_a2qHl SFalse -> let lambda_a2qHm :: FalseSym0 ~ Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7 => Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 FalseSym0 :: a_a2q0s) lambda_a2qHm = y_a2qHk in lambda_a2qHm } :: Sing (Case_6989586621679589012 x_a2qG6 y_a2qG7 (Let6989586621679589004Scrutinee_6989586621679586449Sym2 x_a2qG6 y_a2qG7) :: a_a2q0s) in lambda_a2qHi sX sY
sCompare :: forall (t_a2qGu :: a_a2q0s) (t_a2qGv :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGu -> Sing t_a2qGv -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering)
(%:<) :: forall (t_a2qGw :: a_a2q0s) (t_a2qGx :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGw -> Sing t_a2qGx -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool)
(%:<=) :: forall (t_a2qGy :: a_a2q0s) (t_a2qGz :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGy -> Sing t_a2qGz -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool)
(%:>) :: forall (t_a2qGA :: a_a2q0s) (t_a2qGB :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGA -> Sing t_a2qGB -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool)
(%:>=) :: forall (t_a2qGC :: a_a2q0s) (t_a2qGD :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGC -> Sing t_a2qGD -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool)
sMax :: forall (t_a2qGE :: a_a2q0s) (t_a2qGF :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGE -> Sing t_a2qGF -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s)
sMin :: forall (t_a2qGG :: a_a2q0s) (t_a2qGH :: a_a2q0s). SOrd a_a2q0s => Sing t_a2qGG -> Sing t_a2qGH -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s)
sCompare :: forall (t_a2qGu :: a_a2q0s) (t_a2qGv :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply CompareSym0 t_a2qGu) t_a2qGv ~ Apply (Apply Compare_6989586621679588819Sym0 t_a2qGu) t_a2qGv) => Sing t_a2qGu -> Sing t_a2qGv -> Sing (Apply (Apply CompareSym0 t_a2qGu) t_a2qGv :: Ordering)
(%:<) :: forall (t_a2qGw :: a_a2q0s) (t_a2qGx :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:<$) t_a2qGw) t_a2qGx ~ Apply (Apply TFHelper_6989586621679588852Sym0 t_a2qGw) t_a2qGx) => Sing t_a2qGw -> Sing t_a2qGx -> Sing (Apply (Apply (:<$) t_a2qGw) t_a2qGx :: Bool)
(%:<=) :: forall (t_a2qGy :: a_a2q0s) (t_a2qGz :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:<=$) t_a2qGy) t_a2qGz ~ Apply (Apply TFHelper_6989586621679588885Sym0 t_a2qGy) t_a2qGz) => Sing t_a2qGy -> Sing t_a2qGz -> Sing (Apply (Apply (:<=$) t_a2qGy) t_a2qGz :: Bool)
(%:>) :: forall (t_a2qGA :: a_a2q0s) (t_a2qGB :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:>$) t_a2qGA) t_a2qGB ~ Apply (Apply TFHelper_6989586621679588918Sym0 t_a2qGA) t_a2qGB) => Sing t_a2qGA -> Sing t_a2qGB -> Sing (Apply (Apply (:>$) t_a2qGA) t_a2qGB :: Bool)
(%:>=) :: forall (t_a2qGC :: a_a2q0s) (t_a2qGD :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply (:>=$) t_a2qGC) t_a2qGD ~ Apply (Apply TFHelper_6989586621679588951Sym0 t_a2qGC) t_a2qGD) => Sing t_a2qGC -> Sing t_a2qGD -> Sing (Apply (Apply (:>=$) t_a2qGC) t_a2qGD :: Bool)
sMax :: forall (t_a2qGE :: a_a2q0s) (t_a2qGF :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply MaxSym0 t_a2qGE) t_a2qGF ~ Apply (Apply Max_6989586621679588984Sym0 t_a2qGE) t_a2qGF) => Sing t_a2qGE -> Sing t_a2qGF -> Sing (Apply (Apply MaxSym0 t_a2qGE) t_a2qGF :: a_a2q0s)
sMin :: forall (t_a2qGG :: a_a2q0s) (t_a2qGH :: a_a2q0s). (SOrd a_a2q0s, Apply (Apply MinSym0 t_a2qGG) t_a2qGH ~ Apply (Apply Min_6989586621679589017Sym0 t_a2qGG) t_a2qGH) => Sing t_a2qGG -> Sing t_a2qGH -> Sing (Apply (Apply MinSym0 t_a2qGG) t_a2qGH :: a_a2q0s)
sThenCmp :: forall (t_a2stj :: Ordering) (t_a2stk :: Ordering). Sing t_a2stj -> Sing t_a2stk -> Sing (Apply (Apply ThenCmpSym0 t_a2stj) t_a2stk :: Ordering)
sFoldl :: forall (t_a25UU :: TyFun b_a25TW (TyFun a_a25TV b_a25TW -> Type) -> Type) (t_a25UV :: b_a25TW) (t_a25UW :: [a_a25TV]). Sing t_a25UU -> Sing t_a25UV -> Sing t_a25UW -> Sing (Apply (Apply (Apply FoldlSym0 t_a25UU) t_a25UV) t_a25UW :: b_a25TW)

-- | The type constructor <tt>Any</tt> is type to which you can unsafely
--   coerce any lifted type, and back.
--   
--   <ul>
--   <li>It is lifted, and hence represented by a pointer</li>
--   <li>It does not claim to be a <i>data</i> type, and that's important
--   for the code generator, because the code gen may <i>enter</i> a data
--   value but never enters a function value.</li>
--   </ul>
--   
--   It's also used to instantiate un-constrained type variables after type
--   checking. For example, <tt>length</tt> has type
--   
--   <pre>
--   length :: forall a. [a] -&gt; Int
--   </pre>
--   
--   and the list datacon for the empty list has type
--   
--   <pre>
--   [] :: forall a. [a]
--   </pre>
--   
--   In order to compose these two terms as <tt>length []</tt> a type
--   application is required, but there is no constraint on the choice. In
--   this situation GHC uses <tt>Any</tt>:
--   
--   <pre>
--   length (Any *) ([] (Any *))
--   </pre>
--   
--   Above, we print kinds explicitly, as if with
--   <tt>-fprint-explicit-kinds</tt>.
--   
--   Note that <tt>Any</tt> is kind polymorphic; its kind is thus
--   <tt>forall k. k</tt>.

-- | Members of the <a>SDecide</a> "kind" class support decidable equality.
--   Instances of this class are generated alongside singleton definitions
--   for datatypes that derive an <a>Eq</a> instance.
class SDecide k

-- | Compute a proof or disproof of equality, given two singletons.
(%~) :: forall (a :: k) (b :: k). SDecide k => Sing a -> Sing b -> Decision (a :~: b)

-- | Propositional equality. If <tt>a :~: b</tt> is inhabited by some
--   terminating value, then the type <tt>a</tt> is the same as the type
--   <tt>b</tt>. To use this equality in practice, pattern-match on the
--   <tt>a :~: b</tt> to get out the <tt>Refl</tt> constructor; in the body
--   of the pattern-match, the compiler knows that <tt>a ~ b</tt>.
data (:~:) k (a :: k) (b :: k) :: forall k. k -> k -> *
[Refl] :: (:~:) k a a

-- | Uninhabited data type
data Void :: *

-- | Because we can never create a value of type <a>Void</a>, a function
--   that type-checks at <tt>a -&gt; Void</tt> shows that objects of type
--   <tt>a</tt> can never exist. Thus, we say that <tt>a</tt> is
--   <a>Refuted</a>
type Refuted a = a -> Void

-- | A <a>Decision</a> about a type <tt>a</tt> is either a proof of
--   existence or a proof that <tt>a</tt> cannot exist.
data Decision a

-- | Witness for <tt>a</tt>
Proved :: a -> Decision a

-- | Proof that no <tt>a</tt> exists
Disproved :: (Refuted a) -> Decision a

-- | A concrete, poly-kinded proxy type
data Proxy k (t :: k) :: forall k. k -> *
Proxy :: Proxy k

-- | An <i>existentially-quantified</i> singleton. This type is useful when
--   you want a singleton type, but there is no way of knowing, at
--   compile-time, what the type index will be. To make use of this type,
--   you will generally have to use a pattern-match:
--   
--   <pre>
--   foo :: Bool -&gt; ...
--   foo b = case toSing b of
--             SomeSing sb -&gt; {- fancy dependently-typed code with sb -}
--   </pre>
--   
--   An example like the one above may be easier to write using
--   <a>withSomeSing</a>.
data SomeSing k
[SomeSing] :: Sing (a :: k) -> SomeSing k

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a2NiF :: TyFun k06989586621679675033 k6989586621679675035)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data CompareSym0 (l_a2qBD :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Ordering -> Type))
data ThenCmpSym0 (l_a2st5 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))

-- | This class (which users should never see) is to be instantiated in
--   order to use an otherwise-unused data constructor, such as the
--   "kind-inference" data constructor for defunctionalization symbols.
class SuppressUnusedWarnings (t :: k)
suppressUnusedWarnings :: SuppressUnusedWarnings t => Proxy t -> ()


-- | Defines functions and datatypes relating to the singleton for
--   <a>Either</a>, including a singletons version of all the definitions
--   in <tt>Data.Either</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Either</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude.Either

-- | The singleton kind-indexed data family.
type SEither = (Sing :: Either a_abwx b_abwy -> Type)
either_ :: forall a_a39u8 c_a39u9 b_a39ua. (a_a39u8 -> c_a39u9) -> (b_a39ua -> c_a39u9) -> Either a_a39u8 b_a39ua -> c_a39u9
sEither_ :: forall (t_a39uF :: TyFun a_a39u8 c_a39u9 -> Type) (t_a39uG :: TyFun b_a39ua c_a39u9 -> Type) (t_a39uH :: Either a_a39u8 b_a39ua). Sing t_a39uF -> Sing t_a39uG -> Sing t_a39uH -> Sing (Apply (Apply (Apply Either_Sym0 t_a39uF) t_a39uG) t_a39uH :: c_a39u9)
sLefts :: forall (t_a39Ql :: [Either a_a39OC b_a39OD]). Sing t_a39Ql -> Sing (Apply LeftsSym0 t_a39Ql :: [a_a39OC])
sRights :: forall (t_a39Qk :: [Either a_a39OA b_a39OB]). Sing t_a39Qk -> Sing (Apply RightsSym0 t_a39Qk :: [b_a39OB])
sPartitionEithers :: forall (t_a39Qj :: [Either a_a39Oy b_a39Oz]). Sing t_a39Qj -> Sing (Apply PartitionEithersSym0 t_a39Qj :: ([a_a39Oy], [b_a39Oz]))
sIsLeft :: forall (t_a39Qi :: Either a_a39Ow b_a39Ox). Sing t_a39Qi -> Sing (Apply IsLeftSym0 t_a39Qi :: Bool)
sIsRight :: forall (t_a39Qh :: Either a_a39Ou b_a39Ov). Sing t_a39Qh -> Sing (Apply IsRightSym0 t_a39Qh :: Bool)
data LeftSym0 (l_a22WI :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a22WH :: a6989586621679054093) = Left t_a22WH
data RightSym0 (l_a22WL :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a22WK :: b6989586621679054094) = Right t_a22WK
data Either_Sym0 (l_a39uj :: TyFun (TyFun a6989586621679761240 c6989586621679761241 -> Type) (TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type) -> Type))
data Either_Sym1 (l_a39um :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39ul :: TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type))
data Either_Sym2 (l_a39up :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39uq :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (l_a39uo :: TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241)
type Either_Sym3 (t_a39ug :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (t_a39uh :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (t_a39ui :: Either a6989586621679761240 b6989586621679761242) = Either_ t_a39ug t_a39uh t_a39ui
data LeftsSym0 (l_a39Q8 :: TyFun [Either a6989586621679762510 b6989586621679762511] [a6989586621679762510])
type LeftsSym1 (t_a39Q7 :: [Either a6989586621679762510 b6989586621679762511]) = Lefts t_a39Q7
data RightsSym0 (l_a39PY :: TyFun [Either a6989586621679762508 b6989586621679762509] [b6989586621679762509])
type RightsSym1 (t_a39PX :: [Either a6989586621679762508 b6989586621679762509]) = Rights t_a39PX
data IsLeftSym0 (l_a39P8 :: TyFun (Either a6989586621679762504 b6989586621679762505) Bool)
type IsLeftSym1 (t_a39P7 :: Either a6989586621679762504 b6989586621679762505) = IsLeft t_a39P7
data IsRightSym0 (l_a39OY :: TyFun (Either a6989586621679762502 b6989586621679762503) Bool)
type IsRightSym1 (t_a39OX :: Either a6989586621679762502 b6989586621679762503) = IsRight t_a39OX
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558RightSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679762558LeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.IsRightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.IsLeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.PartitionEithersSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.RightsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.LeftsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym0


-- | Defines functions and datatypes relating to the singleton for
--   <a>Maybe</a>, including a singletons version of all the definitions in
--   <tt>Data.Maybe</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Maybe</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude.Maybe

-- | The singleton kind-indexed data family.
type SMaybe = (Sing :: Maybe a_12 -> Type)
maybe_ :: forall b_a3bWE a_a3bWF. b_a3bWE -> (a_a3bWF -> b_a3bWE) -> Maybe a_a3bWF -> b_a3bWE
sMaybe_ :: forall (t_a3bX8 :: b_a3bWE) (t_a3bX9 :: TyFun a_a3bWF b_a3bWE -> Type) (t_a3bXa :: Maybe a_a3bWF). Sing t_a3bX8 -> Sing t_a3bX9 -> Sing t_a3bXa -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a3bX8) t_a3bX9) t_a3bXa :: b_a3bWE)
sIsJust :: forall (t_a3cj1 :: Maybe a_a3cgS). Sing t_a3cj1 -> Sing (Apply IsJustSym0 t_a3cj1 :: Bool)
sIsNothing :: forall (t_a3cj0 :: Maybe a_a3cgR). Sing t_a3cj0 -> Sing (Apply IsNothingSym0 t_a3cj0 :: Bool)
sFromJust :: forall (t_a3ciZ :: Maybe a_a3cgQ). Sing t_a3ciZ -> Sing (Apply FromJustSym0 t_a3ciZ :: a_a3cgQ)
sFromMaybe :: forall (t_a3ciX :: a_a3cgP) (t_a3ciY :: Maybe a_a3cgP). Sing t_a3ciX -> Sing t_a3ciY -> Sing (Apply (Apply FromMaybeSym0 t_a3ciX) t_a3ciY :: a_a3cgP)
sListToMaybe :: forall (t_a3ciV :: [a_a3cgN]). Sing t_a3ciV -> Sing (Apply ListToMaybeSym0 t_a3ciV :: Maybe a_a3cgN)
sMaybeToList :: forall (t_a3ciW :: Maybe a_a3cgO). Sing t_a3ciW -> Sing (Apply MaybeToListSym0 t_a3ciW :: [a_a3cgO])
sCatMaybes :: forall (t_a3ciU :: [Maybe a_a3cgM]). Sing t_a3ciU -> Sing (Apply CatMaybesSym0 t_a3ciU :: [a_a3cgM])
sMapMaybe :: forall (t_a3ciS :: TyFun a_a3cgK (Maybe b_a3cgL) -> Type) (t_a3ciT :: [a_a3cgK]). Sing t_a3ciS -> Sing t_a3ciT -> Sing (Apply (Apply MapMaybeSym0 t_a3ciS) t_a3ciT :: [b_a3cgL])
type NothingSym0 = Nothing
data JustSym0 (l_a22Wh :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a22Wg :: a3530822107858468866) = Just t_a22Wg
data Maybe_Sym0 (l_a3bWN :: TyFun b6989586621679770696 (TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type) -> Type))
data Maybe_Sym1 (l_a3bWQ :: b6989586621679770696) (l_a3bWP :: TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type))
data Maybe_Sym2 (l_a3bWT :: b6989586621679770696) (l_a3bWU :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (l_a3bWS :: TyFun (Maybe a6989586621679770697) b6989586621679770696)
type Maybe_Sym3 (t_a3bWK :: b6989586621679770696) (t_a3bWL :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (t_a3bWM :: Maybe a6989586621679770697) = Maybe_ t_a3bWK t_a3bWL t_a3bWM
data IsJustSym0 (l_a3ciM :: TyFun (Maybe a6989586621679771950) Bool)
type IsJustSym1 (t_a3ciL :: Maybe a6989586621679771950) = IsJust t_a3ciL
data IsNothingSym0 (l_a3ciF :: TyFun (Maybe a6989586621679771949) Bool)
type IsNothingSym1 (t_a3ciE :: Maybe a6989586621679771949) = IsNothing t_a3ciE
data FromJustSym0 (l_a3ciA :: TyFun (Maybe a6989586621679771948) a6989586621679771948)
type FromJustSym1 (t_a3ciz :: Maybe a6989586621679771948) = FromJust t_a3ciz
data FromMaybeSym0 (l_a3cim :: TyFun a6989586621679771947 (TyFun (Maybe a6989586621679771947) a6989586621679771947 -> Type))
data FromMaybeSym1 (l_a3cip :: a6989586621679771947) (l_a3cio :: TyFun (Maybe a6989586621679771947) a6989586621679771947)
type FromMaybeSym2 (t_a3cik :: a6989586621679771947) (t_a3cil :: Maybe a6989586621679771947) = FromMaybe t_a3cik t_a3cil
data ListToMaybeSym0 (l_a3ci8 :: TyFun [a6989586621679771945] (Maybe a6989586621679771945))
type ListToMaybeSym1 (t_a3ci7 :: [a6989586621679771945]) = ListToMaybe t_a3ci7
data MaybeToListSym0 (l_a3cig :: TyFun (Maybe a6989586621679771946) [a6989586621679771946])
type MaybeToListSym1 (t_a3cif :: Maybe a6989586621679771946) = MaybeToList t_a3cif
data CatMaybesSym0 (l_a3ci1 :: TyFun [Maybe a6989586621679771944] [a6989586621679771944])
type CatMaybesSym1 (t_a3ci0 :: [Maybe a6989586621679771944]) = CatMaybes t_a3ci0
data MapMaybeSym0 (l_a3chj :: TyFun (TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (TyFun [a6989586621679771942] [b6989586621679771943] -> Type))
data MapMaybeSym1 (l_a3chm :: TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (l_a3chl :: TyFun [a6989586621679771942] [b6989586621679771943])
type MapMaybeSym2 (t_a3chh :: TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (t_a3chi :: [a6989586621679771942]) = MapMaybe t_a3chh t_a3chi
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679771990RsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679771990RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679771990RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679772003Scrutinee_6989586621679771973Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679772003Scrutinee_6989586621679771973Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679772003Scrutinee_6989586621679771973Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.MapMaybeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.MapMaybeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.CatMaybesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.ListToMaybeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.MaybeToListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromMaybeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromMaybeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromJustSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.IsNothingSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.IsJustSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym0


-- | Defines functions and datatypes relating to the singleton for tuples,
--   including a singletons version of all the definitions in
--   <tt>Data.Tuple</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Tuple</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude.Tuple

-- | The singleton kind-indexed data family.
type STuple0 = (Sing :: () -> Type)
type STuple2 = (Sing :: (a_12, b_13) -> Type)
type STuple3 = (Sing :: (a_12, b_13, c_14) -> Type)
type STuple4 = (Sing :: (a_12, b_13, c_14, d_15) -> Type)
type STuple5 = (Sing :: (a_12, b_13, c_14, d_15, e_16) -> Type)
type STuple6 = (Sing :: (a_12, b_13, c_14, d_15, e_16, f_17) -> Type)
type STuple7 = (Sing :: (a_12, b_13, c_14, d_15, e_16, f_17, g_18) -> Type)
sFst :: forall (t_a3eRa :: (a_a3eQ0, b_a3eQ1)). Sing t_a3eRa -> Sing (Apply FstSym0 t_a3eRa :: a_a3eQ0)
sSnd :: forall (t_a3eR9 :: (a_a3ePY, b_a3ePZ)). Sing t_a3eR9 -> Sing (Apply SndSym0 t_a3eR9 :: b_a3ePZ)
sCurry :: forall (t_a3eR6 :: TyFun (a_a3ePV, b_a3ePW) c_a3ePX -> Type) (t_a3eR7 :: a_a3ePV) (t_a3eR8 :: b_a3ePW). Sing t_a3eR6 -> Sing t_a3eR7 -> Sing t_a3eR8 -> Sing (Apply (Apply (Apply CurrySym0 t_a3eR6) t_a3eR7) t_a3eR8 :: c_a3ePX)
sUncurry :: forall (t_a3eRb :: TyFun a_a3ePS (TyFun b_a3ePT c_a3ePU -> Type) -> Type) (t_a3eRc :: (a_a3ePS, b_a3ePT)). Sing t_a3eRb -> Sing t_a3eRc -> Sing (Apply (Apply UncurrySym0 t_a3eRb) t_a3eRc :: c_a3ePU)
sSwap :: forall (t_a3eR5 :: (a_a3ePQ, b_a3ePR)). Sing t_a3eR5 -> Sing (Apply SwapSym0 t_a3eR5 :: (b_a3ePR, a_a3ePQ))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data FstSym0 (l_a3eQN :: TyFun (a6989586621679781816, b6989586621679781817) a6989586621679781816)
type FstSym1 (t_a3eQM :: (a6989586621679781816, b6989586621679781817)) = Fst t_a3eQM
data SndSym0 (l_a3eQF :: TyFun (a6989586621679781814, b6989586621679781815) b6989586621679781815)
type SndSym1 (t_a3eQE :: (a6989586621679781814, b6989586621679781815)) = Snd t_a3eQE
data CurrySym0 (l_a3eQp :: TyFun (TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type) -> Type))
data CurrySym1 (l_a3eQs :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQr :: TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type))
data CurrySym2 (l_a3eQv :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQw :: a6989586621679781811) (l_a3eQu :: TyFun b6989586621679781812 c6989586621679781813)
type CurrySym3 (t_a3eQm :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (t_a3eQn :: a6989586621679781811) (t_a3eQo :: b6989586621679781812) = Curry t_a3eQm t_a3eQn t_a3eQo
data UncurrySym0 (l_a3eQW :: TyFun (TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810 -> Type))
data UncurrySym1 (l_a3eQZ :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (l_a3eQY :: TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810)
type UncurrySym2 (t_a3eQU :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (t_a3eQV :: (a6989586621679781808, b6989586621679781809)) = Uncurry t_a3eQU t_a3eQV
data SwapSym0 (l_a3eQh :: TyFun (a6989586621679781806, b6989586621679781807) (b6989586621679781807, a6989586621679781806))
type SwapSym1 (t_a3eQg :: (a6989586621679781806, b6989586621679781807)) = Swap t_a3eQg
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.SwapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.SndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.FstSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.UncurrySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.UncurrySym0


-- | Defines functions and datatypes relating to the singleton for '[]',
--   including a singletons version of a few of the definitions in
--   <tt>Data.List</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.List</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Singletons.Prelude.List

-- | The singleton kind-indexed data family.
type SList = (Sing :: [a_12] -> Type)
(%:++) :: forall (t_a2gCi :: [a_a2gyG]) (t_a2gCj :: [a_a2gyG]). Sing t_a2gCi -> Sing t_a2gCj -> Sing (Apply (Apply (:++$) t_a2gCi) t_a2gCj :: [a_a2gyG])
infixr 5 %:++
sHead :: forall (t_a3jTE :: [a_a3iDt]). Sing t_a3jTE -> Sing (Apply HeadSym0 t_a3jTE :: a_a3iDt)
sLast :: forall (t_a3jTD :: [a_a3iDs]). Sing t_a3jTD -> Sing (Apply LastSym0 t_a3jTD :: a_a3iDs)
sTail :: forall (t_a3jTC :: [a_a3iDr]). Sing t_a3jTC -> Sing (Apply TailSym0 t_a3jTC :: [a_a3iDr])
sInit :: forall (t_a3jTB :: [a_a3iDq]). Sing t_a3jTB -> Sing (Apply InitSym0 t_a3jTB :: [a_a3iDq])
sNull :: forall (t_a3jTy :: [a_a3iDp]). Sing t_a3jTy -> Sing (Apply NullSym0 t_a3jTy :: Bool)
sLength :: forall (t_a3jRa :: [a_a3iBA]). Sing t_a3jRa -> Sing (Apply LengthSym0 t_a3jRa :: Nat)
sMap :: forall (t_a2gCk :: TyFun a_a2gyH b_a2gyI -> Type) (t_a2gCl :: [a_a2gyH]). Sing t_a2gCk -> Sing t_a2gCl -> Sing (Apply (Apply MapSym0 t_a2gCk) t_a2gCl :: [b_a2gyI])
sReverse :: forall (t_a3jTv :: [a_a3iDo]). Sing t_a3jTv -> Sing (Apply ReverseSym0 t_a3jTv :: [a_a3iDo])
sIntersperse :: forall (t_a3jTr :: a_a3iDn) (t_a3jTs :: [a_a3iDn]). Sing t_a3jTr -> Sing t_a3jTs -> Sing (Apply (Apply IntersperseSym0 t_a3jTr) t_a3jTs :: [a_a3iDn])
sIntercalate :: forall (t_a3jTt :: [a_a3iDm]) (t_a3jTu :: [[a_a3iDm]]). Sing t_a3jTt -> Sing t_a3jTu -> Sing (Apply (Apply IntercalateSym0 t_a3jTt) t_a3jTu :: [a_a3iDm])
sTranspose :: forall (t_a3jTF :: [[a_a3iBy]]). Sing t_a3jTF -> Sing (Apply TransposeSym0 t_a3jTF :: [[a_a3iBy]])
sSubsequences :: forall (t_a3jTq :: [a_a3iDl]). Sing t_a3jTq -> Sing (Apply SubsequencesSym0 t_a3jTq :: [[a_a3iDl]])
sPermutations :: forall (t_a3jTm :: [a_a3iDi]). Sing t_a3jTm -> Sing (Apply PermutationsSym0 t_a3jTm :: [[a_a3iDi]])
sFoldl :: forall (t_a25UU :: TyFun b_a25TW (TyFun a_a25TV b_a25TW -> Type) -> Type) (t_a25UV :: b_a25TW) (t_a25UW :: [a_a25TV]). Sing t_a25UU -> Sing t_a25UV -> Sing t_a25UW -> Sing (Apply (Apply (Apply FoldlSym0 t_a25UU) t_a25UV) t_a25UW :: b_a25TW)
sFoldl' :: forall (t_a3jTh :: TyFun b_a3iDh (TyFun a_a3iDg b_a3iDh -> Type) -> Type) (t_a3jTi :: b_a3iDh) (t_a3jTj :: [a_a3iDg]). Sing t_a3jTh -> Sing t_a3jTi -> Sing t_a3jTj -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a3jTh) t_a3jTi) t_a3jTj :: b_a3iDh)
sFoldl1 :: forall (t_a3jT9 :: TyFun a_a3iDf (TyFun a_a3iDf a_a3iDf -> Type) -> Type) (t_a3jTa :: [a_a3iDf]). Sing t_a3jT9 -> Sing t_a3jTa -> Sing (Apply (Apply Foldl1Sym0 t_a3jT9) t_a3jTa :: a_a3iDf)
sFoldl1' :: forall (t_a3jTk :: TyFun a_a3iDe (TyFun a_a3iDe a_a3iDe -> Type) -> Type) (t_a3jTl :: [a_a3iDe]). Sing t_a3jTk -> Sing t_a3jTl -> Sing (Apply (Apply Foldl1'Sym0 t_a3jTk) t_a3jTl :: a_a3iDe)
sFoldr :: forall (t_a2gCm :: TyFun a_a2gyJ (TyFun b_a2gyK b_a2gyK -> Type) -> Type) (t_a2gCn :: b_a2gyK) (t_a2gCo :: [a_a2gyJ]). Sing t_a2gCm -> Sing t_a2gCn -> Sing t_a2gCo -> Sing (Apply (Apply (Apply FoldrSym0 t_a2gCm) t_a2gCn) t_a2gCo :: b_a2gyK)
sFoldr1 :: forall (t_a3jT7 :: TyFun a_a3iDd (TyFun a_a3iDd a_a3iDd -> Type) -> Type) (t_a3jT8 :: [a_a3iDd]). Sing t_a3jT7 -> Sing t_a3jT8 -> Sing (Apply (Apply Foldr1Sym0 t_a3jT7) t_a3jT8 :: a_a3iDd)
sConcat :: forall (t_a3jT6 :: [[a_a3iDc]]). Sing t_a3jT6 -> Sing (Apply ConcatSym0 t_a3jT6 :: [a_a3iDc])
sConcatMap :: forall (t_a3jT4 :: TyFun a_a3iDa [b_a3iDb] -> Type) (t_a3jT5 :: [a_a3iDa]). Sing t_a3jT4 -> Sing t_a3jT5 -> Sing (Apply (Apply ConcatMapSym0 t_a3jT4) t_a3jT5 :: [b_a3iDb])
sAnd :: forall (t_a3jT3 :: [Bool]). Sing t_a3jT3 -> Sing (Apply AndSym0 t_a3jT3 :: Bool)
sOr :: forall (t_a3jT2 :: [Bool]). Sing t_a3jT2 -> Sing (Apply OrSym0 t_a3jT2 :: Bool)
sAny_ :: forall (t_a3fR9 :: TyFun a_a3fQP Bool -> Type) (t_a3fRa :: [a_a3fQP]). Sing t_a3fR9 -> Sing t_a3fRa -> Sing (Apply (Apply Any_Sym0 t_a3fR9) t_a3fRa :: Bool)
sAll :: forall (t_a3jT0 :: TyFun a_a3iD9 Bool -> Type) (t_a3jT1 :: [a_a3iD9]). Sing t_a3jT0 -> Sing t_a3jT1 -> Sing (Apply (Apply AllSym0 t_a3jT0) t_a3jT1 :: Bool)
sSum :: forall (t_a3jRc :: [a_a3iBC]). SNum a_a3iBC => Sing t_a3jRc -> Sing (Apply SumSym0 t_a3jRc :: a_a3iBC)
sProduct :: forall (t_a3jRb :: [a_a3iBB]). SNum a_a3iBB => Sing t_a3jRb -> Sing (Apply ProductSym0 t_a3jRb :: a_a3iBB)
sMaximum :: forall (t_a3jTf :: [a_a3iBL]). SOrd a_a3iBL => Sing t_a3jTf -> Sing (Apply MaximumSym0 t_a3jTf :: a_a3iBL)
sMinimum :: forall (t_a3jTg :: [a_a3iBK]). SOrd a_a3iBK => Sing t_a3jTg -> Sing (Apply MinimumSym0 t_a3jTg :: a_a3iBK)
any_ :: forall a_a3fQP. (a_a3fQP -> Bool) -> [a_a3fQP] -> Bool
sScanl :: forall (t_a3jSV :: TyFun b_a3iD7 (TyFun a_a3iD8 b_a3iD7 -> Type) -> Type) (t_a3jSW :: b_a3iD7) (t_a3jSX :: [a_a3iD8]). Sing t_a3jSV -> Sing t_a3jSW -> Sing t_a3jSX -> Sing (Apply (Apply (Apply ScanlSym0 t_a3jSV) t_a3jSW) t_a3jSX :: [b_a3iD7])
sScanl1 :: forall (t_a3jSY :: TyFun a_a3iD6 (TyFun a_a3iD6 a_a3iD6 -> Type) -> Type) (t_a3jSZ :: [a_a3iD6]). Sing t_a3jSY -> Sing t_a3jSZ -> Sing (Apply (Apply Scanl1Sym0 t_a3jSY) t_a3jSZ :: [a_a3iD6])
sScanr :: forall (t_a3jSS :: TyFun a_a3iD4 (TyFun b_a3iD5 b_a3iD5 -> Type) -> Type) (t_a3jST :: b_a3iD5) (t_a3jSU :: [a_a3iD4]). Sing t_a3jSS -> Sing t_a3jST -> Sing t_a3jSU -> Sing (Apply (Apply (Apply ScanrSym0 t_a3jSS) t_a3jST) t_a3jSU :: [b_a3iD5])
sScanr1 :: forall (t_a3jSQ :: TyFun a_a3iD3 (TyFun a_a3iD3 a_a3iD3 -> Type) -> Type) (t_a3jSR :: [a_a3iD3]). Sing t_a3jSQ -> Sing t_a3jSR -> Sing (Apply (Apply Scanr1Sym0 t_a3jSQ) t_a3jSR :: [a_a3iD3])
sMapAccumL :: forall (t_a3jSN :: TyFun acc_a3iD0 (TyFun x_a3iD1 (acc_a3iD0, y_a3iD2) -> Type) -> Type) (t_a3jSO :: acc_a3iD0) (t_a3jSP :: [x_a3iD1]). Sing t_a3jSN -> Sing t_a3jSO -> Sing t_a3jSP -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a3jSN) t_a3jSO) t_a3jSP :: (acc_a3iD0, [y_a3iD2]))
sMapAccumR :: forall (t_a3jSK :: TyFun acc_a3iCX (TyFun x_a3iCY (acc_a3iCX, y_a3iCZ) -> Type) -> Type) (t_a3jSL :: acc_a3iCX) (t_a3jSM :: [x_a3iCY]). Sing t_a3jSK -> Sing t_a3jSL -> Sing t_a3jSM -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a3jSK) t_a3jSL) t_a3jSM :: (acc_a3iCX, [y_a3iCZ]))
sReplicate :: forall (t_a3jR8 :: Nat) (t_a3jR9 :: a_a3iBz). Sing t_a3jR8 -> Sing t_a3jR9 -> Sing (Apply (Apply ReplicateSym0 t_a3jR8) t_a3jR9 :: [a_a3iBz])
sUnfoldr :: forall (t_a3jSI :: TyFun b_a3iCV (Maybe (a_a3iCW, b_a3iCV)) -> Type) (t_a3jSJ :: b_a3iCV). Sing t_a3jSI -> Sing t_a3jSJ -> Sing (Apply (Apply UnfoldrSym0 t_a3jSI) t_a3jSJ :: [a_a3iCW])
sTake :: forall (t_a3jRm :: Nat) (t_a3jRn :: [a_a3iBP]). Sing t_a3jRm -> Sing t_a3jRn -> Sing (Apply (Apply TakeSym0 t_a3jRm) t_a3jRn :: [a_a3iBP])
sDrop :: forall (t_a3jRk :: Nat) (t_a3jRl :: [a_a3iBO]). Sing t_a3jRk -> Sing t_a3jRl -> Sing (Apply (Apply DropSym0 t_a3jRk) t_a3jRl :: [a_a3iBO])
sSplitAt :: forall (t_a3jRo :: Nat) (t_a3jRp :: [a_a3iBN]). Sing t_a3jRo -> Sing t_a3jRp -> Sing (Apply (Apply SplitAtSym0 t_a3jRo) t_a3jRp :: ([a_a3iBN], [a_a3iBN]))
sTakeWhile :: forall (t_a3jRz :: TyFun a_a3iBU Bool -> Type) (t_a3jRA :: [a_a3iBU]). Sing t_a3jRz -> Sing t_a3jRA -> Sing (Apply (Apply TakeWhileSym0 t_a3jRz) t_a3jRA :: [a_a3iBU])
sDropWhile :: forall (t_a3jRx :: TyFun a_a3iBT Bool -> Type) (t_a3jRy :: [a_a3iBT]). Sing t_a3jRx -> Sing t_a3jRy -> Sing (Apply (Apply DropWhileSym0 t_a3jRx) t_a3jRy :: [a_a3iBT])
sDropWhileEnd :: forall (t_a3jTz :: TyFun a_a3iBS Bool -> Type) (t_a3jTA :: [a_a3iBS]). Sing t_a3jTz -> Sing t_a3jTA -> Sing (Apply (Apply DropWhileEndSym0 t_a3jTz) t_a3jTA :: [a_a3iBS])
sSpan :: forall (t_a3jRs :: TyFun a_a3iBR Bool -> Type) (t_a3jRt :: [a_a3iBR]). Sing t_a3jRs -> Sing t_a3jRt -> Sing (Apply (Apply SpanSym0 t_a3jRs) t_a3jRt :: ([a_a3iBR], [a_a3iBR]))
sBreak :: forall (t_a3jRq :: TyFun a_a3iBQ Bool -> Type) (t_a3jRr :: [a_a3iBQ]). Sing t_a3jRq -> Sing t_a3jRr -> Sing (Apply (Apply BreakSym0 t_a3jRq) t_a3jRr :: ([a_a3iBQ], [a_a3iBQ]))
sGroup :: forall (t_a3jRw :: [a_a3iBM]). SEq a_a3iBM => Sing t_a3jRw -> Sing (Apply GroupSym0 t_a3jRw :: [[a_a3iBM]])
sInits :: forall (t_a3jSH :: [a_a3iCU]). Sing t_a3jSH -> Sing (Apply InitsSym0 t_a3jSH :: [[a_a3iCU]])
sTails :: forall (t_a3jSE :: [a_a3iCT]). Sing t_a3jSE -> Sing (Apply TailsSym0 t_a3jSE :: [[a_a3iCT]])
sIsPrefixOf :: forall (t_a3jSC :: [a_a3iCS]) (t_a3jSD :: [a_a3iCS]). SEq a_a3iCS => Sing t_a3jSC -> Sing t_a3jSD -> Sing (Apply (Apply IsPrefixOfSym0 t_a3jSC) t_a3jSD :: Bool)
sIsSuffixOf :: forall (t_a3jTw :: [a_a3iCR]) (t_a3jTx :: [a_a3iCR]). SEq a_a3iCR => Sing t_a3jTw -> Sing t_a3jTx -> Sing (Apply (Apply IsSuffixOfSym0 t_a3jTw) t_a3jTx :: Bool)
sIsInfixOf :: forall (t_a3jSF :: [a_a3iCQ]) (t_a3jSG :: [a_a3iCQ]). SEq a_a3iCQ => Sing t_a3jSF -> Sing t_a3jSG -> Sing (Apply (Apply IsInfixOfSym0 t_a3jSF) t_a3jSG :: Bool)
sElem :: forall (t_a3jSz :: a_a3iCP) (t_a3jSA :: [a_a3iCP]). SEq a_a3iCP => Sing t_a3jSz -> Sing t_a3jSA -> Sing (Apply (Apply ElemSym0 t_a3jSz) t_a3jSA :: Bool)
sNotElem :: forall (t_a3jSx :: a_a3iCO) (t_a3jSy :: [a_a3iCO]). SEq a_a3iCO => Sing t_a3jSx -> Sing t_a3jSy -> Sing (Apply (Apply NotElemSym0 t_a3jSx) t_a3jSy :: Bool)
sLookup :: forall (t_a3jRi :: a_a3iBF) (t_a3jRj :: [(a_a3iBF, b_a3iBG)]). SEq a_a3iBF => Sing t_a3jRi -> Sing t_a3jRj -> Sing (Apply (Apply LookupSym0 t_a3jRi) t_a3jRj :: Maybe b_a3iBG)
sFind :: forall (t_a3jRD :: TyFun a_a3iC1 Bool -> Type) (t_a3jRE :: [a_a3iC1]). Sing t_a3jRD -> Sing t_a3jRE -> Sing (Apply (Apply FindSym0 t_a3jRD) t_a3jRE :: Maybe a_a3iC1)
sFilter :: forall (t_a3jRB :: TyFun a_a3iC2 Bool -> Type) (t_a3jRC :: [a_a3iC2]). Sing t_a3jRB -> Sing t_a3jRC -> Sing (Apply (Apply FilterSym0 t_a3jRB) t_a3jRC :: [a_a3iC2])
sPartition :: forall (t_a3jRg :: TyFun a_a3iBE Bool -> Type) (t_a3jRh :: [a_a3iBE]). Sing t_a3jRg -> Sing t_a3jRh -> Sing (Apply (Apply PartitionSym0 t_a3jRg) t_a3jRh :: ([a_a3iBE], [a_a3iBE]))
(%:!!) :: forall (t_a3jR6 :: [a_a3iBx]) (t_a3jR7 :: Nat). Sing t_a3jR6 -> Sing t_a3jR7 -> Sing (Apply (Apply (:!!$) t_a3jR6) t_a3jR7 :: a_a3iBx)
sElemIndex :: forall (t_a3jSv :: a_a3iC0) (t_a3jSw :: [a_a3iC0]). SEq a_a3iC0 => Sing t_a3jSv -> Sing t_a3jSw -> Sing (Apply (Apply ElemIndexSym0 t_a3jSv) t_a3jSw :: Maybe Nat)
sElemIndices :: forall (t_a3jSr :: a_a3iBZ) (t_a3jSs :: [a_a3iBZ]). SEq a_a3iBZ => Sing t_a3jSr -> Sing t_a3jSs -> Sing (Apply (Apply ElemIndicesSym0 t_a3jSr) t_a3jSs :: [Nat])
sFindIndex :: forall (t_a3jSt :: TyFun a_a3iBY Bool -> Type) (t_a3jSu :: [a_a3iBY]). Sing t_a3jSt -> Sing t_a3jSu -> Sing (Apply (Apply FindIndexSym0 t_a3jSt) t_a3jSu :: Maybe Nat)
sFindIndices :: forall (t_a3jSp :: TyFun a_a3iBX Bool -> Type) (t_a3jSq :: [a_a3iBX]). Sing t_a3jSp -> Sing t_a3jSq -> Sing (Apply (Apply FindIndicesSym0 t_a3jSp) t_a3jSq :: [Nat])
sZip :: forall (t_a3jSn :: [a_a3iCM]) (t_a3jSo :: [b_a3iCN]). Sing t_a3jSn -> Sing t_a3jSo -> Sing (Apply (Apply ZipSym0 t_a3jSn) t_a3jSo :: [(a_a3iCM, b_a3iCN)])
sZip3 :: forall (t_a3jSk :: [a_a3iCJ]) (t_a3jSl :: [b_a3iCK]) (t_a3jSm :: [c_a3iCL]). Sing t_a3jSk -> Sing t_a3jSl -> Sing t_a3jSm -> Sing (Apply (Apply (Apply Zip3Sym0 t_a3jSk) t_a3jSl) t_a3jSm :: [(a_a3iCJ, b_a3iCK, c_a3iCL)])
sZipWith :: forall (t_a3jSh :: TyFun a_a3iCG (TyFun b_a3iCH c_a3iCI -> Type) -> Type) (t_a3jSi :: [a_a3iCG]) (t_a3jSj :: [b_a3iCH]). Sing t_a3jSh -> Sing t_a3jSi -> Sing t_a3jSj -> Sing (Apply (Apply (Apply ZipWithSym0 t_a3jSh) t_a3jSi) t_a3jSj :: [c_a3iCI])
sZipWith3 :: forall (t_a3jSd :: TyFun a_a3iCC (TyFun b_a3iCD (TyFun c_a3iCE d_a3iCF -> Type) -> Type) -> Type) (t_a3jSe :: [a_a3iCC]) (t_a3jSf :: [b_a3iCD]) (t_a3jSg :: [c_a3iCE]). Sing t_a3jSd -> Sing t_a3jSe -> Sing t_a3jSf -> Sing t_a3jSg -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a3jSd) t_a3jSe) t_a3jSf) t_a3jSg :: [d_a3iCF])
sUnzip :: forall (t_a3jSc :: [(a_a3iCA, b_a3iCB)]). Sing t_a3jSc -> Sing (Apply UnzipSym0 t_a3jSc :: ([a_a3iCA], [b_a3iCB]))
sUnzip3 :: forall (t_a3jSb :: [(a_a3iCx, b_a3iCy, c_a3iCz)]). Sing t_a3jSb -> Sing (Apply Unzip3Sym0 t_a3jSb :: ([a_a3iCx], [b_a3iCy], [c_a3iCz]))
sUnzip4 :: forall (t_a3jSa :: [(a_a3iCt, b_a3iCu, c_a3iCv, d_a3iCw)]). Sing t_a3jSa -> Sing (Apply Unzip4Sym0 t_a3jSa :: ([a_a3iCt], [b_a3iCu], [c_a3iCv], [d_a3iCw]))
sUnzip5 :: forall (t_a3jS9 :: [(a_a3iCo, b_a3iCp, c_a3iCq, d_a3iCr, e_a3iCs)]). Sing t_a3jS9 -> Sing (Apply Unzip5Sym0 t_a3jS9 :: ([a_a3iCo], [b_a3iCp], [c_a3iCq], [d_a3iCr], [e_a3iCs]))
sUnzip6 :: forall (t_a3jS8 :: [(a_a3iCi, b_a3iCj, c_a3iCk, d_a3iCl, e_a3iCm, f_a3iCn)]). Sing t_a3jS8 -> Sing (Apply Unzip6Sym0 t_a3jS8 :: ([a_a3iCi], [b_a3iCj], [c_a3iCk], [d_a3iCl], [e_a3iCm], [f_a3iCn]))
sUnzip7 :: forall (t_a3jS7 :: [(a_a3iCb, b_a3iCc, c_a3iCd, d_a3iCe, e_a3iCf, f_a3iCg, g_a3iCh)]). Sing t_a3jS7 -> Sing (Apply Unzip7Sym0 t_a3jS7 :: ([a_a3iCb], [b_a3iCc], [c_a3iCd], [d_a3iCe], [e_a3iCf], [f_a3iCg], [g_a3iCh]))
sNub :: forall (t_a3jSB :: [a_a3iBw]). SEq a_a3iBw => Sing t_a3jSB -> Sing (Apply NubSym0 t_a3jSB :: [a_a3iBw])
sDelete :: forall (t_a3jS3 :: a_a3iCa) (t_a3jS4 :: [a_a3iCa]). SEq a_a3iCa => Sing t_a3jS3 -> Sing t_a3jS4 -> Sing (Apply (Apply DeleteSym0 t_a3jS3) t_a3jS4 :: [a_a3iCa])
(%:\\) :: forall (t_a3jS5 :: [a_a3iC9]) (t_a3jS6 :: [a_a3iC9]). SEq a_a3iC9 => Sing t_a3jS5 -> Sing t_a3jS6 -> Sing (Apply (Apply (:\\$) t_a3jS5) t_a3jS6 :: [a_a3iC9])
infix 5 %:\\
sUnion :: forall (t_a3jS1 :: [a_a3iBs]) (t_a3jS2 :: [a_a3iBs]). SEq a_a3iBs => Sing t_a3jS1 -> Sing t_a3jS2 -> Sing (Apply (Apply UnionSym0 t_a3jS1) t_a3jS2 :: [a_a3iBs])
sIntersect :: forall (t_a3jRI :: [a_a3iBW]) (t_a3jRJ :: [a_a3iBW]). SEq a_a3iBW => Sing t_a3jRI -> Sing t_a3jRJ -> Sing (Apply (Apply IntersectSym0 t_a3jRI) t_a3jRJ :: [a_a3iBW])
sInsert :: forall (t_a3jRN :: a_a3iBJ) (t_a3jRO :: [a_a3iBJ]). SOrd a_a3iBJ => Sing t_a3jRN -> Sing t_a3jRO -> Sing (Apply (Apply InsertSym0 t_a3jRN) t_a3jRO :: [a_a3iBJ])
sSort :: forall (t_a3jRR :: [a_a3iBI]). SOrd a_a3iBI => Sing t_a3jRR -> Sing (Apply SortSym0 t_a3jRR :: [a_a3iBI])
sNubBy :: forall (t_a3jR4 :: TyFun a_a3iBv (TyFun a_a3iBv Bool -> Type) -> Type) (t_a3jR5 :: [a_a3iBv]). Sing t_a3jR4 -> Sing t_a3jR5 -> Sing (Apply (Apply NubBySym0 t_a3jR4) t_a3jR5 :: [a_a3iBv])
sDeleteBy :: forall (t_a3jRS :: TyFun a_a3iC8 (TyFun a_a3iC8 Bool -> Type) -> Type) (t_a3jRT :: a_a3iC8) (t_a3jRU :: [a_a3iC8]). Sing t_a3jRS -> Sing t_a3jRT -> Sing t_a3jRU -> Sing (Apply (Apply (Apply DeleteBySym0 t_a3jRS) t_a3jRT) t_a3jRU :: [a_a3iC8])
sDeleteFirstsBy :: forall (t_a3jRV :: TyFun a_a3iC7 (TyFun a_a3iC7 Bool -> Type) -> Type) (t_a3jRW :: [a_a3iC7]) (t_a3jRX :: [a_a3iC7]). Sing t_a3jRV -> Sing t_a3jRW -> Sing t_a3jRX -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a3jRV) t_a3jRW) t_a3jRX :: [a_a3iC7])
sUnionBy :: forall (t_a3jRY :: TyFun a_a3iBt (TyFun a_a3iBt Bool -> Type) -> Type) (t_a3jRZ :: [a_a3iBt]) (t_a3jS0 :: [a_a3iBt]). Sing t_a3jRY -> Sing t_a3jRZ -> Sing t_a3jS0 -> Sing (Apply (Apply (Apply UnionBySym0 t_a3jRY) t_a3jRZ) t_a3jS0 :: [a_a3iBt])
sIntersectBy :: forall (t_a3jRF :: TyFun a_a3iBV (TyFun a_a3iBV Bool -> Type) -> Type) (t_a3jRG :: [a_a3iBV]) (t_a3jRH :: [a_a3iBV]). Sing t_a3jRF -> Sing t_a3jRG -> Sing t_a3jRH -> Sing (Apply (Apply (Apply IntersectBySym0 t_a3jRF) t_a3jRG) t_a3jRH :: [a_a3iBV])
sGroupBy :: forall (t_a3jRu :: TyFun a_a3iBH (TyFun a_a3iBH Bool -> Type) -> Type) (t_a3jRv :: [a_a3iBH]). Sing t_a3jRu -> Sing t_a3jRv -> Sing (Apply (Apply GroupBySym0 t_a3jRu) t_a3jRv :: [[a_a3iBH]])
sSortBy :: forall (t_a3jRP :: TyFun a_a3iC6 (TyFun a_a3iC6 Ordering -> Type) -> Type) (t_a3jRQ :: [a_a3iC6]). Sing t_a3jRP -> Sing t_a3jRQ -> Sing (Apply (Apply SortBySym0 t_a3jRP) t_a3jRQ :: [a_a3iC6])
sInsertBy :: forall (t_a3jRK :: TyFun a_a3iC5 (TyFun a_a3iC5 Ordering -> Type) -> Type) (t_a3jRL :: a_a3iC5) (t_a3jRM :: [a_a3iC5]). Sing t_a3jRK -> Sing t_a3jRL -> Sing t_a3jRM -> Sing (Apply (Apply (Apply InsertBySym0 t_a3jRK) t_a3jRL) t_a3jRM :: [a_a3iC5])
sMaximumBy :: forall (t_a3jTb :: TyFun a_a3iC4 (TyFun a_a3iC4 Ordering -> Type) -> Type) (t_a3jTc :: [a_a3iC4]). Sing t_a3jTb -> Sing t_a3jTc -> Sing (Apply (Apply MaximumBySym0 t_a3jTb) t_a3jTc :: a_a3iC4)
sMinimumBy :: forall (t_a3jTd :: TyFun a_a3iC3 (TyFun a_a3iC3 Ordering -> Type) -> Type) (t_a3jTe :: [a_a3iC3]). Sing t_a3jTd -> Sing t_a3jTe -> Sing (Apply (Apply MinimumBySym0 t_a3jTd) t_a3jTe :: a_a3iC3)
sGenericLength :: forall (t_a3jR0 :: [a_a3iBr]). SNum i_a3iBq => Sing t_a3jR0 -> Sing (Apply GenericLengthSym0 t_a3jR0 :: i_a3iBq)
type NilSym0 = '[]
data (:$) (l_a22Wr :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a22Wu :: a3530822107858468866) (l_a22Wt :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a22Wp :: a3530822107858468866) (t_a22Wq :: [a3530822107858468866]) = (:) t_a22Wp t_a22Wq
type (:++$$$) (t_a2gAX :: [a6989586621679550102]) (t_a2gAY :: [a6989586621679550102]) = (:++) t_a2gAX t_a2gAY
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data HeadSym0 (l_a3jQL :: TyFun [a6989586621679796415] a6989586621679796415)
type HeadSym1 (t_a3jQK :: [a6989586621679796415]) = Head t_a3jQK
data LastSym0 (l_a3jQB :: TyFun [a6989586621679796414] a6989586621679796414)
type LastSym1 (t_a3jQA :: [a6989586621679796414]) = Last t_a3jQA
data TailSym0 (l_a3jQt :: TyFun [a6989586621679796413] [a6989586621679796413])
type TailSym1 (t_a3jQs :: [a6989586621679796413]) = Tail t_a3jQs
data InitSym0 (l_a3jPW :: TyFun [a6989586621679796412] [a6989586621679796412])
type InitSym1 (t_a3jPV :: [a6989586621679796412]) = Init t_a3jPV
data NullSym0 (l_a3jOP :: TyFun [a6989586621679796411] Bool)
type NullSym1 (t_a3jOO :: [a6989586621679796411]) = Null t_a3jOO
data LengthSym0 (l_a3j14 :: TyFun [a6989586621679796298] Nat)
type LengthSym1 (t_a3j13 :: [a6989586621679796298]) = Length t_a3j13
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data ReverseSym0 (l_a3jOg :: TyFun [a6989586621679796410] [a6989586621679796410])
type ReverseSym1 (t_a3jOf :: [a6989586621679796410]) = Reverse t_a3jOf
data IntersperseSym0 (l_a3jNR :: TyFun a6989586621679796409 (TyFun [a6989586621679796409] [a6989586621679796409] -> Type))
data IntersperseSym1 (l_a3jNU :: a6989586621679796409) (l_a3jNT :: TyFun [a6989586621679796409] [a6989586621679796409])
type IntersperseSym2 (t_a3jNP :: a6989586621679796409) (t_a3jNQ :: [a6989586621679796409]) = Intersperse t_a3jNP t_a3jNQ
data IntercalateSym0 (l_a3jO6 :: TyFun [a6989586621679796408] (TyFun [[a6989586621679796408]] [a6989586621679796408] -> Type))
data IntercalateSym1 (l_a3jO9 :: [a6989586621679796408]) (l_a3jO8 :: TyFun [[a6989586621679796408]] [a6989586621679796408])
type IntercalateSym2 (t_a3jO4 :: [a6989586621679796408]) (t_a3jO5 :: [[a6989586621679796408]]) = Intercalate t_a3jO4 t_a3jO5
data TransposeSym0 (l_a3jQT :: TyFun [[a6989586621679796296]] [[a6989586621679796296]])
type TransposeSym1 (t_a3jQS :: [[a6989586621679796296]]) = Transpose t_a3jQS
data SubsequencesSym0 (l_a3jNL :: TyFun [a6989586621679796407] [[a6989586621679796407]])
type SubsequencesSym1 (t_a3jNK :: [a6989586621679796407]) = Subsequences t_a3jNK
data PermutationsSym0 (l_a3jH3 :: TyFun [a6989586621679796404] [[a6989586621679796404]])
type PermutationsSym1 (t_a3jH2 :: [a6989586621679796404]) = Permutations t_a3jH2
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))
data FoldlSym1 (l_a25Uc :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ub :: TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type))
data FoldlSym2 (l_a25Uf :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ug :: b6989586621679509136) (l_a25Ue :: TyFun [a6989586621679509135] b6989586621679509136)
type FoldlSym3 (t_a25U6 :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (t_a25U7 :: b6989586621679509136) (t_a25U8 :: [a6989586621679509135]) = Foldl t_a25U6 t_a25U7 t_a25U8
data Foldl'Sym0 (l_a3jFu :: TyFun (TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (TyFun b6989586621679796403 (TyFun [a6989586621679796402] b6989586621679796403 -> Type) -> Type))
data Foldl'Sym1 (l_a3jFx :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (l_a3jFw :: TyFun b6989586621679796403 (TyFun [a6989586621679796402] b6989586621679796403 -> Type))
data Foldl'Sym2 (l_a3jFA :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (l_a3jFB :: b6989586621679796403) (l_a3jFz :: TyFun [a6989586621679796402] b6989586621679796403)
type Foldl'Sym3 (t_a3jFr :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (t_a3jFs :: b6989586621679796403) (t_a3jFt :: [a6989586621679796402]) = Foldl' t_a3jFr t_a3jFs t_a3jFt
data Foldl1Sym0 (l_a3jBY :: TyFun (TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (TyFun [a6989586621679796401] a6989586621679796401 -> Type))
data Foldl1Sym1 (l_a3jC1 :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (l_a3jC0 :: TyFun [a6989586621679796401] a6989586621679796401)
type Foldl1Sym2 (t_a3jBW :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (t_a3jBX :: [a6989586621679796401]) = Foldl1 t_a3jBW t_a3jBX
data Foldl1'Sym0 (l_a3jGP :: TyFun (TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (TyFun [a6989586621679796400] a6989586621679796400 -> Type))
data Foldl1'Sym1 (l_a3jGS :: TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (l_a3jGR :: TyFun [a6989586621679796400] a6989586621679796400)
type Foldl1'Sym2 (t_a3jGN :: TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (t_a3jGO :: [a6989586621679796400]) = Foldl1' t_a3jGN t_a3jGO
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data Foldr1Sym0 (l_a3jBl :: TyFun (TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (TyFun [a6989586621679796399] a6989586621679796399 -> Type))
data Foldr1Sym1 (l_a3jBo :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (l_a3jBn :: TyFun [a6989586621679796399] a6989586621679796399)
type Foldr1Sym2 (t_a3jBj :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (t_a3jBk :: [a6989586621679796399]) = Foldr1 t_a3jBj t_a3jBk
data ConcatSym0 (l_a3jBf :: TyFun [[a6989586621679796398]] [a6989586621679796398])
type ConcatSym1 (t_a3jBe :: [[a6989586621679796398]]) = Concat t_a3jBe
data ConcatMapSym0 (l_a3jB1 :: TyFun (TyFun a6989586621679796396 [b6989586621679796397] -> Type) (TyFun [a6989586621679796396] [b6989586621679796397] -> Type))
data ConcatMapSym1 (l_a3jB4 :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (l_a3jB3 :: TyFun [a6989586621679796396] [b6989586621679796397])
type ConcatMapSym2 (t_a3jAZ :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (t_a3jB0 :: [a6989586621679796396]) = ConcatMap t_a3jAZ t_a3jB0
data AndSym0 (l_a3jAU :: TyFun [Bool] Bool)
type AndSym1 (t_a3jAT :: [Bool]) = And t_a3jAT
data OrSym0 (l_a3jAO :: TyFun [Bool] Bool)
type OrSym1 (t_a3jAN :: [Bool]) = Or t_a3jAN
data Any_Sym0 (l_a3fQW :: TyFun (TyFun a6989586621679785711 Bool -> Type) (TyFun [a6989586621679785711] Bool -> Type))
data Any_Sym1 (l_a3fQZ :: TyFun a6989586621679785711 Bool -> Type) (l_a3fQY :: TyFun [a6989586621679785711] Bool)
type Any_Sym2 (t_a3fQU :: TyFun a6989586621679785711 Bool -> Type) (t_a3fQV :: [a6989586621679785711]) = Any_ t_a3fQU t_a3fQV
data AllSym0 (l_a3jAA :: TyFun (TyFun a6989586621679796395 Bool -> Type) (TyFun [a6989586621679796395] Bool -> Type))
data AllSym1 (l_a3jAD :: TyFun a6989586621679796395 Bool -> Type) (l_a3jAC :: TyFun [a6989586621679796395] Bool)
type AllSym2 (t_a3jAy :: TyFun a6989586621679796395 Bool -> Type) (t_a3jAz :: [a6989586621679796395]) = All t_a3jAy t_a3jAz
data SumSym0 (l_a3j1A :: TyFun [a6989586621679796300] a6989586621679796300)
type SumSym1 (t_a3j1z :: [a6989586621679796300]) = Sum t_a3j1z
data ProductSym0 (l_a3j1c :: TyFun [a6989586621679796299] a6989586621679796299)
type ProductSym1 (t_a3j1b :: [a6989586621679796299]) = Product t_a3j1b
data MaximumSym0 (l_a3jF0 :: TyFun [a6989586621679796309] a6989586621679796309)
type MaximumSym1 (t_a3jEZ :: [a6989586621679796309]) = Maximum t_a3jEZ
data MinimumSym0 (l_a3jFe :: TyFun [a6989586621679796308] a6989586621679796308)
type MinimumSym1 (t_a3jFd :: [a6989586621679796308]) = Minimum t_a3jFd
data ScanlSym0 (l_a3jzZ :: TyFun (TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type) -> Type))
data ScanlSym1 (l_a3jA2 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA1 :: TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type))
data ScanlSym2 (l_a3jA5 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA6 :: b6989586621679796393) (l_a3jA4 :: TyFun [a6989586621679796394] [b6989586621679796393])
type ScanlSym3 (t_a3jzW :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (t_a3jzX :: b6989586621679796393) (t_a3jzY :: [a6989586621679796394]) = Scanl t_a3jzW t_a3jzX t_a3jzY
data Scanl1Sym0 (l_a3jAl :: TyFun (TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (TyFun [a6989586621679796392] [a6989586621679796392] -> Type))
data Scanl1Sym1 (l_a3jAo :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (l_a3jAn :: TyFun [a6989586621679796392] [a6989586621679796392])
type Scanl1Sym2 (t_a3jAj :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (t_a3jAk :: [a6989586621679796392]) = Scanl1 t_a3jAj t_a3jAk
data ScanrSym0 (l_a3jze :: TyFun (TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type) -> Type))
data ScanrSym1 (l_a3jzh :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzg :: TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type))
data ScanrSym2 (l_a3jzk :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzl :: b6989586621679796391) (l_a3jzj :: TyFun [a6989586621679796390] [b6989586621679796391])
type ScanrSym3 (t_a3jzb :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (t_a3jzc :: b6989586621679796391) (t_a3jzd :: [a6989586621679796390]) = Scanr t_a3jzb t_a3jzc t_a3jzd
data Scanr1Sym0 (l_a3jyc :: TyFun (TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (TyFun [a6989586621679796389] [a6989586621679796389] -> Type))
data Scanr1Sym1 (l_a3jyf :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (l_a3jye :: TyFun [a6989586621679796389] [a6989586621679796389])
type Scanr1Sym2 (t_a3jya :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (t_a3jyb :: [a6989586621679796389]) = Scanr1 t_a3jya t_a3jyb
data MapAccumLSym0 (l_a3jvr :: TyFun (TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (TyFun acc6989586621679796386 (TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]) -> Type) -> Type))
data MapAccumLSym1 (l_a3jvu :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (l_a3jvt :: TyFun acc6989586621679796386 (TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]) -> Type))
data MapAccumLSym2 (l_a3jvx :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (l_a3jvy :: acc6989586621679796386) (l_a3jvw :: TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]))
type MapAccumLSym3 (t_a3jvo :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (t_a3jvp :: acc6989586621679796386) (t_a3jvq :: [x6989586621679796387]) = MapAccumL t_a3jvo t_a3jvp t_a3jvq
data MapAccumRSym0 (l_a3jsF :: TyFun (TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (TyFun acc6989586621679796383 (TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]) -> Type) -> Type))
data MapAccumRSym1 (l_a3jsI :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (l_a3jsH :: TyFun acc6989586621679796383 (TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]) -> Type))
data MapAccumRSym2 (l_a3jsL :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (l_a3jsM :: acc6989586621679796383) (l_a3jsK :: TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]))
type MapAccumRSym3 (t_a3jsC :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (t_a3jsD :: acc6989586621679796383) (t_a3jsE :: [x6989586621679796384]) = MapAccumR t_a3jsC t_a3jsD t_a3jsE
data ReplicateSym0 (l_a3j0J :: TyFun Nat (TyFun a6989586621679796297 [a6989586621679796297] -> Type))
data ReplicateSym1 (l_a3j0M :: Nat) (l_a3j0L :: TyFun a6989586621679796297 [a6989586621679796297])
type ReplicateSym2 (t_a3j0H :: Nat) (t_a3j0I :: a6989586621679796297) = Replicate t_a3j0H t_a3j0I
data UnfoldrSym0 (l_a3jsg :: TyFun (TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (TyFun b6989586621679796381 [a6989586621679796382] -> Type))
data UnfoldrSym1 (l_a3jsj :: TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (l_a3jsi :: TyFun b6989586621679796381 [a6989586621679796382])
type UnfoldrSym2 (t_a3jse :: TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (t_a3jsf :: b6989586621679796381) = Unfoldr t_a3jse t_a3jsf
data TakeSym0 (l_a3j3U :: TyFun Nat (TyFun [a6989586621679796313] [a6989586621679796313] -> Type))
data TakeSym1 (l_a3j3X :: Nat) (l_a3j3W :: TyFun [a6989586621679796313] [a6989586621679796313])
type TakeSym2 (t_a3j3S :: Nat) (t_a3j3T :: [a6989586621679796313]) = Take t_a3j3S t_a3j3T
data DropSym0 (l_a3j3p :: TyFun Nat (TyFun [a6989586621679796312] [a6989586621679796312] -> Type))
data DropSym1 (l_a3j3s :: Nat) (l_a3j3r :: TyFun [a6989586621679796312] [a6989586621679796312])
type DropSym2 (t_a3j3n :: Nat) (t_a3j3o :: [a6989586621679796312]) = Drop t_a3j3n t_a3j3o
data SplitAtSym0 (l_a3j4p :: TyFun Nat (TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]) -> Type))
data SplitAtSym1 (l_a3j4s :: Nat) (l_a3j4r :: TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]))
type SplitAtSym2 (t_a3j4n :: Nat) (t_a3j4o :: [a6989586621679796311]) = SplitAt t_a3j4n t_a3j4o
data TakeWhileSym0 (l_a3j9V :: TyFun (TyFun a6989586621679796318 Bool -> Type) (TyFun [a6989586621679796318] [a6989586621679796318] -> Type))
data TakeWhileSym1 (l_a3j9Y :: TyFun a6989586621679796318 Bool -> Type) (l_a3j9X :: TyFun [a6989586621679796318] [a6989586621679796318])
type TakeWhileSym2 (t_a3j9T :: TyFun a6989586621679796318 Bool -> Type) (t_a3j9U :: [a6989586621679796318]) = TakeWhile t_a3j9T t_a3j9U
data DropWhileSym0 (l_a3j9d :: TyFun (TyFun a6989586621679796317 Bool -> Type) (TyFun [a6989586621679796317] [a6989586621679796317] -> Type))
data DropWhileSym1 (l_a3j9g :: TyFun a6989586621679796317 Bool -> Type) (l_a3j9f :: TyFun [a6989586621679796317] [a6989586621679796317])
type DropWhileSym2 (t_a3j9b :: TyFun a6989586621679796317 Bool -> Type) (t_a3j9c :: [a6989586621679796317]) = DropWhile t_a3j9b t_a3j9c
data DropWhileEndSym0 (l_a3jP0 :: TyFun (TyFun a6989586621679796316 Bool -> Type) (TyFun [a6989586621679796316] [a6989586621679796316] -> Type))
data DropWhileEndSym1 (l_a3jP3 :: TyFun a6989586621679796316 Bool -> Type) (l_a3jP2 :: TyFun [a6989586621679796316] [a6989586621679796316])
type DropWhileEndSym2 (t_a3jOY :: TyFun a6989586621679796316 Bool -> Type) (t_a3jOZ :: [a6989586621679796316]) = DropWhileEnd t_a3jOY t_a3jOZ
data SpanSym0 (l_a3j6h :: TyFun (TyFun a6989586621679796315 Bool -> Type) (TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]) -> Type))
data SpanSym1 (l_a3j6k :: TyFun a6989586621679796315 Bool -> Type) (l_a3j6j :: TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]))
type SpanSym2 (t_a3j6f :: TyFun a6989586621679796315 Bool -> Type) (t_a3j6g :: [a6989586621679796315]) = Span t_a3j6f t_a3j6g
data BreakSym0 (l_a3j4A :: TyFun (TyFun a6989586621679796314 Bool -> Type) (TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]) -> Type))
data BreakSym1 (l_a3j4D :: TyFun a6989586621679796314 Bool -> Type) (l_a3j4C :: TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]))
type BreakSym2 (t_a3j4y :: TyFun a6989586621679796314 Bool -> Type) (t_a3j4z :: [a6989586621679796314]) = Break t_a3j4y t_a3j4z
data GroupSym0 (l_a3j97 :: TyFun [a6989586621679796310] [[a6989586621679796310]])
type GroupSym1 (t_a3j96 :: [a6989586621679796310]) = Group t_a3j96
data InitsSym0 (l_a3js5 :: TyFun [a6989586621679796380] [[a6989586621679796380]])
type InitsSym1 (t_a3js4 :: [a6989586621679796380]) = Inits t_a3js4
data TailsSym0 (l_a3jrI :: TyFun [a6989586621679796379] [[a6989586621679796379]])
type TailsSym1 (t_a3jrH :: [a6989586621679796379]) = Tails t_a3jrH
data IsPrefixOfSym0 (l_a3jrk :: TyFun [a6989586621679796378] (TyFun [a6989586621679796378] Bool -> Type))
data IsPrefixOfSym1 (l_a3jrn :: [a6989586621679796378]) (l_a3jrm :: TyFun [a6989586621679796378] Bool)
type IsPrefixOfSym2 (t_a3jri :: [a6989586621679796378]) (t_a3jrj :: [a6989586621679796378]) = IsPrefixOf t_a3jri t_a3jrj
data IsSuffixOfSym0 (l_a3jOF :: TyFun [a6989586621679796377] (TyFun [a6989586621679796377] Bool -> Type))
data IsSuffixOfSym1 (l_a3jOI :: [a6989586621679796377]) (l_a3jOH :: TyFun [a6989586621679796377] Bool)
type IsSuffixOfSym2 (t_a3jOD :: [a6989586621679796377]) (t_a3jOE :: [a6989586621679796377]) = IsSuffixOf t_a3jOD t_a3jOE
data IsInfixOfSym0 (l_a3jrV :: TyFun [a6989586621679796376] (TyFun [a6989586621679796376] Bool -> Type))
data IsInfixOfSym1 (l_a3jrY :: [a6989586621679796376]) (l_a3jrX :: TyFun [a6989586621679796376] Bool)
type IsInfixOfSym2 (t_a3jrT :: [a6989586621679796376]) (t_a3jrU :: [a6989586621679796376]) = IsInfixOf t_a3jrT t_a3jrU
data ElemSym0 (l_a3jqj :: TyFun a6989586621679796375 (TyFun [a6989586621679796375] Bool -> Type))
data ElemSym1 (l_a3jqm :: a6989586621679796375) (l_a3jql :: TyFun [a6989586621679796375] Bool)
type ElemSym2 (t_a3jqh :: a6989586621679796375) (t_a3jqi :: [a6989586621679796375]) = Elem t_a3jqh t_a3jqi
data NotElemSym0 (l_a3jq4 :: TyFun a6989586621679796374 (TyFun [a6989586621679796374] Bool -> Type))
data NotElemSym1 (l_a3jq7 :: a6989586621679796374) (l_a3jq6 :: TyFun [a6989586621679796374] Bool)
type NotElemSym2 (t_a3jq2 :: a6989586621679796374) (t_a3jq3 :: [a6989586621679796374]) = NotElem t_a3jq2 t_a3jq3
data LookupSym0 (l_a3j2P :: TyFun a6989586621679796303 (TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304) -> Type))
data LookupSym1 (l_a3j2S :: a6989586621679796303) (l_a3j2R :: TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304))
type LookupSym2 (t_a3j2N :: a6989586621679796303) (t_a3j2O :: [(a6989586621679796303, b6989586621679796304)]) = Lookup t_a3j2N t_a3j2O
data FindSym0 (l_a3jaT :: TyFun (TyFun a6989586621679796325 Bool -> Type) (TyFun [a6989586621679796325] (Maybe a6989586621679796325) -> Type))
data FindSym1 (l_a3jaW :: TyFun a6989586621679796325 Bool -> Type) (l_a3jaV :: TyFun [a6989586621679796325] (Maybe a6989586621679796325))
type FindSym2 (t_a3jaR :: TyFun a6989586621679796325 Bool -> Type) (t_a3jaS :: [a6989586621679796325]) = Find t_a3jaR t_a3jaS
data FilterSym0 (l_a3jaq :: TyFun (TyFun a6989586621679796326 Bool -> Type) (TyFun [a6989586621679796326] [a6989586621679796326] -> Type))
data FilterSym1 (l_a3jat :: TyFun a6989586621679796326 Bool -> Type) (l_a3jas :: TyFun [a6989586621679796326] [a6989586621679796326])
type FilterSym2 (t_a3jao :: TyFun a6989586621679796326 Bool -> Type) (t_a3jap :: [a6989586621679796326]) = Filter t_a3jao t_a3jap
data PartitionSym0 (l_a3j2E :: TyFun (TyFun a6989586621679796302 Bool -> Type) (TyFun [a6989586621679796302] ([a6989586621679796302], [a6989586621679796302]) -> Type))
data PartitionSym1 (l_a3j2H :: TyFun a6989586621679796302 Bool -> Type) (l_a3j2G :: TyFun [a6989586621679796302] ([a6989586621679796302], [a6989586621679796302]))
type PartitionSym2 (t_a3j2C :: TyFun a6989586621679796302 Bool -> Type) (t_a3j2D :: [a6989586621679796302]) = Partition t_a3j2C t_a3j2D
data (:!!$) (l_a3j0e :: TyFun [a6989586621679796295] (TyFun Nat a6989586621679796295 -> Type))
data (:!!$$) (l_a3j0h :: [a6989586621679796295]) (l_a3j0g :: TyFun Nat a6989586621679796295)
type (:!!$$$) (t_a3j0c :: [a6989586621679796295]) (t_a3j0d :: Nat) = (:!!) t_a3j0c t_a3j0d
data ElemIndexSym0 (l_a3jpR :: TyFun a6989586621679796324 (TyFun [a6989586621679796324] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a3jpU :: a6989586621679796324) (l_a3jpT :: TyFun [a6989586621679796324] (Maybe Nat))
type ElemIndexSym2 (t_a3jpP :: a6989586621679796324) (t_a3jpQ :: [a6989586621679796324]) = ElemIndex t_a3jpP t_a3jpQ
data ElemIndicesSym0 (l_a3jpr :: TyFun a6989586621679796323 (TyFun [a6989586621679796323] [Nat] -> Type))
data ElemIndicesSym1 (l_a3jpu :: a6989586621679796323) (l_a3jpt :: TyFun [a6989586621679796323] [Nat])
type ElemIndicesSym2 (t_a3jpp :: a6989586621679796323) (t_a3jpq :: [a6989586621679796323]) = ElemIndices t_a3jpp t_a3jpq
data FindIndexSym0 (l_a3jpE :: TyFun (TyFun a6989586621679796322 Bool -> Type) (TyFun [a6989586621679796322] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a3jpH :: TyFun a6989586621679796322 Bool -> Type) (l_a3jpG :: TyFun [a6989586621679796322] (Maybe Nat))
type FindIndexSym2 (t_a3jpC :: TyFun a6989586621679796322 Bool -> Type) (t_a3jpD :: [a6989586621679796322]) = FindIndex t_a3jpC t_a3jpD
data FindIndicesSym0 (l_a3joq :: TyFun (TyFun a6989586621679796321 Bool -> Type) (TyFun [a6989586621679796321] [Nat] -> Type))
data FindIndicesSym1 (l_a3jot :: TyFun a6989586621679796321 Bool -> Type) (l_a3jos :: TyFun [a6989586621679796321] [Nat])
type FindIndicesSym2 (t_a3joo :: TyFun a6989586621679796321 Bool -> Type) (t_a3jop :: [a6989586621679796321]) = FindIndices t_a3joo t_a3jop
data ZipSym0 (l_a3jo1 :: TyFun [a6989586621679796372] (TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)] -> Type))
data ZipSym1 (l_a3jo4 :: [a6989586621679796372]) (l_a3jo3 :: TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)])
type ZipSym2 (t_a3jnZ :: [a6989586621679796372]) (t_a3jo0 :: [b6989586621679796373]) = Zip t_a3jnZ t_a3jo0
data Zip3Sym0 (l_a3jmP :: TyFun [a6989586621679796369] (TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type) -> Type))
data Zip3Sym1 (l_a3jmS :: [a6989586621679796369]) (l_a3jmR :: TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type))
data Zip3Sym2 (l_a3jmV :: [a6989586621679796369]) (l_a3jmW :: [b6989586621679796370]) (l_a3jmU :: TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)])
type Zip3Sym3 (t_a3jmM :: [a6989586621679796369]) (t_a3jmN :: [b6989586621679796370]) (t_a3jmO :: [c6989586621679796371]) = Zip3 t_a3jmM t_a3jmN t_a3jmO
data ZipWithSym0 (l_a3jma :: TyFun (TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type) -> Type))
data ZipWithSym1 (l_a3jmd :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmc :: TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type))
data ZipWithSym2 (l_a3jmg :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmh :: [a6989586621679796366]) (l_a3jmf :: TyFun [b6989586621679796367] [c6989586621679796368])
type ZipWithSym3 (t_a3jm7 :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (t_a3jm8 :: [a6989586621679796366]) (t_a3jm9 :: [b6989586621679796367]) = ZipWith t_a3jm7 t_a3jm8 t_a3jm9
data ZipWith3Sym0 (l_a3jkv :: TyFun (TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a3jky :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkx :: TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type))
data ZipWith3Sym2 (l_a3jkB :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkC :: [a6989586621679796362]) (l_a3jkA :: TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type))
data ZipWith3Sym3 (l_a3jkF :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkG :: [a6989586621679796362]) (l_a3jkH :: [b6989586621679796363]) (l_a3jkE :: TyFun [c6989586621679796364] [d6989586621679796365])
type ZipWith3Sym4 (t_a3jkr :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (t_a3jks :: [a6989586621679796362]) (t_a3jkt :: [b6989586621679796363]) (t_a3jku :: [c6989586621679796364]) = ZipWith3 t_a3jkr t_a3jks t_a3jkt t_a3jku
data UnzipSym0 (l_a3jjY :: TyFun [(a6989586621679796360, b6989586621679796361)] ([a6989586621679796360], [b6989586621679796361]))
type UnzipSym1 (t_a3jjX :: [(a6989586621679796360, b6989586621679796361)]) = Unzip t_a3jjX
data Unzip3Sym0 (l_a3jjs :: TyFun [(a6989586621679796357, b6989586621679796358, c6989586621679796359)] ([a6989586621679796357], [b6989586621679796358], [c6989586621679796359]))
type Unzip3Sym1 (t_a3jjr :: [(a6989586621679796357, b6989586621679796358, c6989586621679796359)]) = Unzip3 t_a3jjr
data Unzip4Sym0 (l_a3jiU :: TyFun [(a6989586621679796353, b6989586621679796354, c6989586621679796355, d6989586621679796356)] ([a6989586621679796353], [b6989586621679796354], [c6989586621679796355], [d6989586621679796356]))
type Unzip4Sym1 (t_a3jiT :: [(a6989586621679796353, b6989586621679796354, c6989586621679796355, d6989586621679796356)]) = Unzip4 t_a3jiT
data Unzip5Sym0 (l_a3jik :: TyFun [(a6989586621679796348, b6989586621679796349, c6989586621679796350, d6989586621679796351, e6989586621679796352)] ([a6989586621679796348], [b6989586621679796349], [c6989586621679796350], [d6989586621679796351], [e6989586621679796352]))
type Unzip5Sym1 (t_a3jij :: [(a6989586621679796348, b6989586621679796349, c6989586621679796350, d6989586621679796351, e6989586621679796352)]) = Unzip5 t_a3jij
data Unzip6Sym0 (l_a3jhI :: TyFun [(a6989586621679796342, b6989586621679796343, c6989586621679796344, d6989586621679796345, e6989586621679796346, f6989586621679796347)] ([a6989586621679796342], [b6989586621679796343], [c6989586621679796344], [d6989586621679796345], [e6989586621679796346], [f6989586621679796347]))
type Unzip6Sym1 (t_a3jhH :: [(a6989586621679796342, b6989586621679796343, c6989586621679796344, d6989586621679796345, e6989586621679796346, f6989586621679796347)]) = Unzip6 t_a3jhH
data Unzip7Sym0 (l_a3jh4 :: TyFun [(a6989586621679796335, b6989586621679796336, c6989586621679796337, d6989586621679796338, e6989586621679796339, f6989586621679796340, g6989586621679796341)] ([a6989586621679796335], [b6989586621679796336], [c6989586621679796337], [d6989586621679796338], [e6989586621679796339], [f6989586621679796340], [g6989586621679796341]))
type Unzip7Sym1 (t_a3jh3 :: [(a6989586621679796335, b6989586621679796336, c6989586621679796337, d6989586621679796338, e6989586621679796339, f6989586621679796340, g6989586621679796341)]) = Unzip7 t_a3jh3
data NubSym0 (l_a3jqx :: TyFun [a6989586621679796294] [a6989586621679796294])
type NubSym1 (t_a3jqw :: [a6989586621679796294]) = Nub t_a3jqw
data DeleteSym0 (l_a3jgF :: TyFun a6989586621679796334 (TyFun [a6989586621679796334] [a6989586621679796334] -> Type))
data DeleteSym1 (l_a3jgI :: a6989586621679796334) (l_a3jgH :: TyFun [a6989586621679796334] [a6989586621679796334])
type DeleteSym2 (t_a3jgD :: a6989586621679796334) (t_a3jgE :: [a6989586621679796334]) = Delete t_a3jgD t_a3jgE
data (:\\$) (l_a3jgU :: TyFun [a6989586621679796333] (TyFun [a6989586621679796333] [a6989586621679796333] -> Type))
data (:\\$$) (l_a3jgX :: [a6989586621679796333]) (l_a3jgW :: TyFun [a6989586621679796333] [a6989586621679796333])
type (:\\$$$) (t_a3jgS :: [a6989586621679796333]) (t_a3jgT :: [a6989586621679796333]) = (:\\) t_a3jgS t_a3jgT
data UnionSym0 (l_a3jgq :: TyFun [a6989586621679796290] (TyFun [a6989586621679796290] [a6989586621679796290] -> Type))
data UnionSym1 (l_a3jgt :: [a6989586621679796290]) (l_a3jgs :: TyFun [a6989586621679796290] [a6989586621679796290])
type UnionSym2 (t_a3jgo :: [a6989586621679796290]) (t_a3jgp :: [a6989586621679796290]) = Union t_a3jgo t_a3jgp
data IntersectSym0 (l_a3jdf :: TyFun [a6989586621679796320] (TyFun [a6989586621679796320] [a6989586621679796320] -> Type))
data IntersectSym1 (l_a3jdi :: [a6989586621679796320]) (l_a3jdh :: TyFun [a6989586621679796320] [a6989586621679796320])
type IntersectSym2 (t_a3jdd :: [a6989586621679796320]) (t_a3jde :: [a6989586621679796320]) = Intersect t_a3jdd t_a3jde
data InsertSym0 (l_a3jes :: TyFun a6989586621679796307 (TyFun [a6989586621679796307] [a6989586621679796307] -> Type))
data InsertSym1 (l_a3jev :: a6989586621679796307) (l_a3jeu :: TyFun [a6989586621679796307] [a6989586621679796307])
type InsertSym2 (t_a3jeq :: a6989586621679796307) (t_a3jer :: [a6989586621679796307]) = Insert t_a3jeq t_a3jer
data SortSym0 (l_a3jeR :: TyFun [a6989586621679796306] [a6989586621679796306])
type SortSym1 (t_a3jeQ :: [a6989586621679796306]) = Sort t_a3jeQ
data NubBySym0 (l_a3iZ9 :: TyFun (TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (TyFun [a6989586621679796293] [a6989586621679796293] -> Type))
data NubBySym1 (l_a3iZc :: TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (l_a3iZb :: TyFun [a6989586621679796293] [a6989586621679796293])
type NubBySym2 (t_a3iZ7 :: TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (t_a3iZ8 :: [a6989586621679796293]) = NubBy t_a3iZ7 t_a3iZ8
data DeleteBySym0 (l_a3jeY :: TyFun (TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (TyFun a6989586621679796332 (TyFun [a6989586621679796332] [a6989586621679796332] -> Type) -> Type))
data DeleteBySym1 (l_a3jf1 :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (l_a3jf0 :: TyFun a6989586621679796332 (TyFun [a6989586621679796332] [a6989586621679796332] -> Type))
data DeleteBySym2 (l_a3jf4 :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (l_a3jf5 :: a6989586621679796332) (l_a3jf3 :: TyFun [a6989586621679796332] [a6989586621679796332])
type DeleteBySym3 (t_a3jeV :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (t_a3jeW :: a6989586621679796332) (t_a3jeX :: [a6989586621679796332]) = DeleteBy t_a3jeV t_a3jeW t_a3jeX
data DeleteFirstsBySym0 (l_a3jfJ :: TyFun (TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (TyFun [a6989586621679796331] (TyFun [a6989586621679796331] [a6989586621679796331] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a3jfM :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (l_a3jfL :: TyFun [a6989586621679796331] (TyFun [a6989586621679796331] [a6989586621679796331] -> Type))
data DeleteFirstsBySym2 (l_a3jfP :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (l_a3jfQ :: [a6989586621679796331]) (l_a3jfO :: TyFun [a6989586621679796331] [a6989586621679796331])
type DeleteFirstsBySym3 (t_a3jfG :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (t_a3jfH :: [a6989586621679796331]) (t_a3jfI :: [a6989586621679796331]) = DeleteFirstsBy t_a3jfG t_a3jfH t_a3jfI
data UnionBySym0 (l_a3jg5 :: TyFun (TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (TyFun [a6989586621679796291] (TyFun [a6989586621679796291] [a6989586621679796291] -> Type) -> Type))
data UnionBySym1 (l_a3jg8 :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (l_a3jg7 :: TyFun [a6989586621679796291] (TyFun [a6989586621679796291] [a6989586621679796291] -> Type))
data UnionBySym2 (l_a3jgb :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (l_a3jgc :: [a6989586621679796291]) (l_a3jga :: TyFun [a6989586621679796291] [a6989586621679796291])
type UnionBySym3 (t_a3jg2 :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (t_a3jg3 :: [a6989586621679796291]) (t_a3jg4 :: [a6989586621679796291]) = UnionBy t_a3jg2 t_a3jg3 t_a3jg4
data IntersectBySym0 (l_a3jb7 :: TyFun (TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (TyFun [a6989586621679796319] (TyFun [a6989586621679796319] [a6989586621679796319] -> Type) -> Type))
data IntersectBySym1 (l_a3jba :: TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (l_a3jb9 :: TyFun [a6989586621679796319] (TyFun [a6989586621679796319] [a6989586621679796319] -> Type))
data IntersectBySym2 (l_a3jbd :: TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (l_a3jbe :: [a6989586621679796319]) (l_a3jbc :: TyFun [a6989586621679796319] [a6989586621679796319])
type IntersectBySym3 (t_a3jb4 :: TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (t_a3jb5 :: [a6989586621679796319]) (t_a3jb6 :: [a6989586621679796319]) = IntersectBy t_a3jb4 t_a3jb5 t_a3jb6
data GroupBySym0 (l_a3j7Y :: TyFun (TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (TyFun [a6989586621679796305] [[a6989586621679796305]] -> Type))
data GroupBySym1 (l_a3j81 :: TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (l_a3j80 :: TyFun [a6989586621679796305] [[a6989586621679796305]])
type GroupBySym2 (t_a3j7W :: TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (t_a3j7X :: [a6989586621679796305]) = GroupBy t_a3j7W t_a3j7X
data SortBySym0 (l_a3jeD :: TyFun (TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (TyFun [a6989586621679796330] [a6989586621679796330] -> Type))
data SortBySym1 (l_a3jeG :: TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (l_a3jeF :: TyFun [a6989586621679796330] [a6989586621679796330])
type SortBySym2 (t_a3jeB :: TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (t_a3jeC :: [a6989586621679796330]) = SortBy t_a3jeB t_a3jeC
data InsertBySym0 (l_a3jdr :: TyFun (TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (TyFun a6989586621679796329 (TyFun [a6989586621679796329] [a6989586621679796329] -> Type) -> Type))
data InsertBySym1 (l_a3jdu :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (l_a3jdt :: TyFun a6989586621679796329 (TyFun [a6989586621679796329] [a6989586621679796329] -> Type))
data InsertBySym2 (l_a3jdx :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (l_a3jdy :: a6989586621679796329) (l_a3jdw :: TyFun [a6989586621679796329] [a6989586621679796329])
type InsertBySym3 (t_a3jdo :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (t_a3jdp :: a6989586621679796329) (t_a3jdq :: [a6989586621679796329]) = InsertBy t_a3jdo t_a3jdp t_a3jdq
data MaximumBySym0 (l_a3jCd :: TyFun (TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (TyFun [a6989586621679796328] a6989586621679796328 -> Type))
data MaximumBySym1 (l_a3jCg :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (l_a3jCf :: TyFun [a6989586621679796328] a6989586621679796328)
type MaximumBySym2 (t_a3jCb :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (t_a3jCc :: [a6989586621679796328]) = MaximumBy t_a3jCb t_a3jCc
data MinimumBySym0 (l_a3jDC :: TyFun (TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (TyFun [a6989586621679796327] a6989586621679796327 -> Type))
data MinimumBySym1 (l_a3jDF :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (l_a3jDE :: TyFun [a6989586621679796327] a6989586621679796327)
type MinimumBySym2 (t_a3jDA :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (t_a3jDB :: [a6989586621679796327]) = MinimumBy t_a3jDA t_a3jDB
data GenericLengthSym0 (l_a3iYB :: TyFun [a6989586621679796289] i6989586621679796288)
type GenericLengthSym1 (t_a3iYA :: [a6989586621679796289]) = GenericLength t_a3iYA
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797795Scrutinee_6989586621679796960Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797795Scrutinee_6989586621679796960Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797795Scrutinee_6989586621679796960Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797795Scrutinee_6989586621679796960Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797795Scrutinee_6989586621679796960Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797768NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797768NubBy'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797768NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797768NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797839Scrutinee_6989586621679796956Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797839Scrutinee_6989586621679796956Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797839Scrutinee_6989586621679796956Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797866Scrutinee_6989586621679796954Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797866Scrutinee_6989586621679796954Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797890ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797890ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797890ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797914Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797914Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797914Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797952Scrutinee_6989586621679796952Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797952Scrutinee_6989586621679796952Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797952Scrutinee_6989586621679796952Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797952Scrutinee_6989586621679796952Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797999Scrutinee_6989586621679796950Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797999Scrutinee_6989586621679796950Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797999Scrutinee_6989586621679796950Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679797999Scrutinee_6989586621679796950Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798036Scrutinee_6989586621679796940Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798036Scrutinee_6989586621679796940Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798036Scrutinee_6989586621679796940Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798067Scrutinee_6989586621679796938Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798067Scrutinee_6989586621679796938Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798067Scrutinee_6989586621679796938Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798106XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798113XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798113XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798113XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798126Scrutinee_6989586621679796936Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798126Scrutinee_6989586621679796936Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798126Scrutinee_6989586621679796936Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141X_6989586621679798142Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141X_6989586621679798142Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798141X_6989586621679798142Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798211XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798218XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798218XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798218XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798231Scrutinee_6989586621679796934Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798231Scrutinee_6989586621679796934Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798231Scrutinee_6989586621679796934Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246X_6989586621679798247Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246X_6989586621679798247Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798246X_6989586621679798247Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319X_6989586621679798320Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319X_6989586621679798320Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798319X_6989586621679798320Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798396XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798396XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798396XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798409Scrutinee_6989586621679796930Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798409Scrutinee_6989586621679796930Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798409Scrutinee_6989586621679796930Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798440Scrutinee_6989586621679796928Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798440Scrutinee_6989586621679796928Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798440Scrutinee_6989586621679796928Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798469Scrutinee_6989586621679796916Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798469Scrutinee_6989586621679796916Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798469Scrutinee_6989586621679796916Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798539YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798590Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798665YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798665YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798665YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798665YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798684Scrutinee_6989586621679796902Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798684Scrutinee_6989586621679796902Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798684Scrutinee_6989586621679796902Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798684Scrutinee_6989586621679796902Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798762Scrutinee_6989586621679796900Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798762Scrutinee_6989586621679796900Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798762Scrutinee_6989586621679796900Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679798762Scrutinee_6989586621679796900Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798874Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798874Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798874Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798914Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798914Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798914Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798952Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798952Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798952Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798988Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798988Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679798988Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799022Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799022Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799022Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799054Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799054Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799054Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799335BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799335BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799335BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799335BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799364Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799364Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679799364Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799482Scrutinee_6989586621679796958Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799482Scrutinee_6989586621679796958Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799482Scrutinee_6989586621679796958Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799482Scrutinee_6989586621679796958Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799461Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799461Nub'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799461Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799573Scrutinee_6989586621679796874Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799573Scrutinee_6989586621679796874Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799610Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799610Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799610Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799610Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799616Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799616Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799616Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799609X_6989586621679799616Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799782Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799782Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799782Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799782Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799788Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799788Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799788Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799781X_6989586621679799788Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799950XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799950XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799950XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799950XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799969Scrutinee_6989586621679796868Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799969Scrutinee_6989586621679796868Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799969Scrutinee_6989586621679796868Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679799969Scrutinee_6989586621679796868Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800016Scrutinee_6989586621679796866Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800016Scrutinee_6989586621679796866Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800016Scrutinee_6989586621679796866Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800016Scrutinee_6989586621679796866Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800142XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800142XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800142XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800142XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800194XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800194XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800194XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800237Scrutinee_6989586621679796904Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800237Scrutinee_6989586621679796904Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800237Scrutinee_6989586621679796904Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800237Scrutinee_6989586621679796904Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800237Scrutinee_6989586621679796904Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800207MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800207MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800207MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800207MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800207MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800281XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800281XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800281XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800324Scrutinee_6989586621679796910Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800324Scrutinee_6989586621679796910Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800324Scrutinee_6989586621679796910Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800324Scrutinee_6989586621679796910Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800324Scrutinee_6989586621679796910Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800294MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800294MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800294MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800294MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800294MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800359XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800359XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800373XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800373XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800431Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800399LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800399LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800399LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800399LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800399LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800560X_6989586621679800561Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800774X_6989586621679800775Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800506InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800485PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800485PermsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800485PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800873FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800873FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800873FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800873FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800932RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800932RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800932RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800989Scrutinee_6989586621679796932Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800989Scrutinee_6989586621679796932Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800989Scrutinee_6989586621679796932Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679800989Scrutinee_6989586621679796932Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679800985Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679800985Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679800985Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679800985Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679801037Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679801037Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679801037Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679801037Init'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GenericLengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:!!$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:!!$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReplicateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReplicateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ProductSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PartitionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PartitionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LookupSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LookupSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SplitAtSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.BreakSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.BreakSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SpanSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SpanSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FilterSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FilterSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:\\$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:\\$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip7Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnzipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NotElemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NotElemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsPrefixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsPrefixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnfoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnfoldrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanr1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanr1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanl1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AllSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AllSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.OrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldr1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldr1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PermutationsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PrependToAllSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PrependToAllSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmptySubsequencesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SubsequencesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReverseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NullSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LastSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.HeadSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TransposeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym0


-- | Mimics the Haskell Prelude, but with singleton types. Includes the
--   basic singleton definitions. Note: This is currently very incomplete!
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude

-- | The singleton kind-indexed data family.
type SBool = (Sing :: Bool -> Type)
type SList = (Sing :: [a_12] -> Type)
type SMaybe = (Sing :: Maybe a_12 -> Type)
type SEither = (Sing :: Either a_abwx b_abwy -> Type)
type SOrdering = (Sing :: Ordering -> Type)
type STuple0 = (Sing :: () -> Type)
type STuple2 = (Sing :: (a_12, b_13) -> Type)
type STuple3 = (Sing :: (a_12, b_13, c_14) -> Type)
type STuple4 = (Sing :: (a_12, b_13, c_14, d_15) -> Type)
type STuple5 = (Sing :: (a_12, b_13, c_14, d_15, e_16) -> Type)
type STuple6 = (Sing :: (a_12, b_13, c_14, d_15, e_16, f_17) -> Type)
type STuple7 = (Sing :: (a_12, b_13, c_14, d_15, e_16, f_17, g_18) -> Type)

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>

-- | Conditional over singletons
sIf :: Sing a -> Sing b -> Sing c -> Sing (If a b c)
sNot :: forall (t_a2fCQ :: Bool). Sing t_a2fCQ -> Sing (Apply NotSym0 t_a2fCQ :: Bool)
(%:&&) :: forall (t_a2fCT :: Bool) (t_a2fCU :: Bool). Sing t_a2fCT -> Sing t_a2fCU -> Sing (Apply (Apply (:&&$) t_a2fCT) t_a2fCU :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a2fCR :: Bool) (t_a2fCS :: Bool). Sing t_a2fCR -> Sing t_a2fCS -> Sing (Apply (Apply (:||$) t_a2fCR) t_a2fCS :: Bool)
infixr 2 %:||
sOtherwise :: Sing (OtherwiseSym0 :: Bool)

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a2NiF :: TyFun k06989586621679675033 k6989586621679675035)

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a
sId :: forall (t_a2gCh :: a_a2gyF). Sing t_a2gCh -> Sing (Apply IdSym0 t_a2gCh :: a_a2gyF)
sConst :: forall (t_a2gCd :: a_a2gyD) (t_a2gCe :: b_a2gyE). Sing t_a2gCd -> Sing t_a2gCe -> Sing (Apply (Apply ConstSym0 t_a2gCd) t_a2gCe :: a_a2gyD)
(%:.) :: forall (t_a2gCa :: TyFun b_a2gyA c_a2gyB -> Type) (t_a2gCb :: TyFun a_a2gyC b_a2gyA -> Type) (t_a2gCc :: a_a2gyC). Sing t_a2gCa -> Sing t_a2gCb -> Sing t_a2gCc -> Sing (Apply (Apply (Apply (:.$) t_a2gCa) t_a2gCb) t_a2gCc :: c_a2gyB)
infixr 9 %:.
(%$) :: forall (f :: TyFun a b -> *) (x :: a). Sing f -> Sing x -> Sing ((($$) @@ f) @@ x)
infixr 0 %$
(%$!) :: forall (f :: TyFun a b -> *) (x :: a). Sing f -> Sing x -> Sing ((($!$) @@ f) @@ x)
infixr 0 %$!
sFlip :: forall (t_a2gC7 :: TyFun a_a2gyx (TyFun b_a2gyy c_a2gyz -> Type) -> Type) (t_a2gC8 :: b_a2gyy) (t_a2gC9 :: a_a2gyx). Sing t_a2gC7 -> Sing t_a2gC8 -> Sing t_a2gC9 -> Sing (Apply (Apply (Apply FlipSym0 t_a2gC7) t_a2gC8) t_a2gC9 :: c_a2gyz)
sAsTypeOf :: forall (t_a2gCf :: a_a2gyw) (t_a2gCg :: a_a2gyw). Sing t_a2gCf -> Sing t_a2gCg -> Sing (Apply (Apply AsTypeOfSym0 t_a2gCf) t_a2gCg :: a_a2gyw)
sSeq :: forall (t_a2gC5 :: a_a2gyu) (t_a2gC6 :: b_a2gyv). Sing t_a2gC5 -> Sing t_a2gC6 -> Sing (Apply (Apply SeqSym0 t_a2gC5) t_a2gC6 :: b_a2gyv)
infixr 0 `sSeq`
sMap :: forall (t_a2gCk :: TyFun a_a2gyH b_a2gyI -> Type) (t_a2gCl :: [a_a2gyH]). Sing t_a2gCk -> Sing t_a2gCl -> Sing (Apply (Apply MapSym0 t_a2gCk) t_a2gCl :: [b_a2gyI])
(%:++) :: forall (t_a2gCi :: [a_a2gyG]) (t_a2gCj :: [a_a2gyG]). Sing t_a2gCi -> Sing t_a2gCj -> Sing (Apply (Apply (:++$) t_a2gCi) t_a2gCj :: [a_a2gyG])
infixr 5 %:++
sHead :: forall (t_a3jTE :: [a_a3iDt]). Sing t_a3jTE -> Sing (Apply HeadSym0 t_a3jTE :: a_a3iDt)
sLast :: forall (t_a3jTD :: [a_a3iDs]). Sing t_a3jTD -> Sing (Apply LastSym0 t_a3jTD :: a_a3iDs)
sTail :: forall (t_a3jTC :: [a_a3iDr]). Sing t_a3jTC -> Sing (Apply TailSym0 t_a3jTC :: [a_a3iDr])
sInit :: forall (t_a3jTB :: [a_a3iDq]). Sing t_a3jTB -> Sing (Apply InitSym0 t_a3jTB :: [a_a3iDq])
sNull :: forall (t_a3jTy :: [a_a3iDp]). Sing t_a3jTy -> Sing (Apply NullSym0 t_a3jTy :: Bool)
sReverse :: forall (t_a3jTv :: [a_a3iDo]). Sing t_a3jTv -> Sing (Apply ReverseSym0 t_a3jTv :: [a_a3iDo])
sFoldl :: forall (t_a25UU :: TyFun b_a25TW (TyFun a_a25TV b_a25TW -> Type) -> Type) (t_a25UV :: b_a25TW) (t_a25UW :: [a_a25TV]). Sing t_a25UU -> Sing t_a25UV -> Sing t_a25UW -> Sing (Apply (Apply (Apply FoldlSym0 t_a25UU) t_a25UV) t_a25UW :: b_a25TW)
sFoldl1 :: forall (t_a3jT9 :: TyFun a_a3iDf (TyFun a_a3iDf a_a3iDf -> Type) -> Type) (t_a3jTa :: [a_a3iDf]). Sing t_a3jT9 -> Sing t_a3jTa -> Sing (Apply (Apply Foldl1Sym0 t_a3jT9) t_a3jTa :: a_a3iDf)
sFoldr :: forall (t_a2gCm :: TyFun a_a2gyJ (TyFun b_a2gyK b_a2gyK -> Type) -> Type) (t_a2gCn :: b_a2gyK) (t_a2gCo :: [a_a2gyJ]). Sing t_a2gCm -> Sing t_a2gCn -> Sing t_a2gCo -> Sing (Apply (Apply (Apply FoldrSym0 t_a2gCm) t_a2gCn) t_a2gCo :: b_a2gyK)
sFoldr1 :: forall (t_a3jT7 :: TyFun a_a3iDd (TyFun a_a3iDd a_a3iDd -> Type) -> Type) (t_a3jT8 :: [a_a3iDd]). Sing t_a3jT7 -> Sing t_a3jT8 -> Sing (Apply (Apply Foldr1Sym0 t_a3jT7) t_a3jT8 :: a_a3iDd)
sAnd :: forall (t_a3jT3 :: [Bool]). Sing t_a3jT3 -> Sing (Apply AndSym0 t_a3jT3 :: Bool)
sOr :: forall (t_a3jT2 :: [Bool]). Sing t_a3jT2 -> Sing (Apply OrSym0 t_a3jT2 :: Bool)
sAny_ :: forall (t_a3fR9 :: TyFun a_a3fQP Bool -> Type) (t_a3fRa :: [a_a3fQP]). Sing t_a3fR9 -> Sing t_a3fRa -> Sing (Apply (Apply Any_Sym0 t_a3fR9) t_a3fRa :: Bool)
sAll :: forall (t_a3jT0 :: TyFun a_a3iD9 Bool -> Type) (t_a3jT1 :: [a_a3iD9]). Sing t_a3jT0 -> Sing t_a3jT1 -> Sing (Apply (Apply AllSym0 t_a3jT0) t_a3jT1 :: Bool)
sConcat :: forall (t_a3jT6 :: [[a_a3iDc]]). Sing t_a3jT6 -> Sing (Apply ConcatSym0 t_a3jT6 :: [a_a3iDc])
sConcatMap :: forall (t_a3jT4 :: TyFun a_a3iDa [b_a3iDb] -> Type) (t_a3jT5 :: [a_a3iDa]). Sing t_a3jT4 -> Sing t_a3jT5 -> Sing (Apply (Apply ConcatMapSym0 t_a3jT4) t_a3jT5 :: [b_a3iDb])
sScanl :: forall (t_a3jSV :: TyFun b_a3iD7 (TyFun a_a3iD8 b_a3iD7 -> Type) -> Type) (t_a3jSW :: b_a3iD7) (t_a3jSX :: [a_a3iD8]). Sing t_a3jSV -> Sing t_a3jSW -> Sing t_a3jSX -> Sing (Apply (Apply (Apply ScanlSym0 t_a3jSV) t_a3jSW) t_a3jSX :: [b_a3iD7])
sScanl1 :: forall (t_a3jSY :: TyFun a_a3iD6 (TyFun a_a3iD6 a_a3iD6 -> Type) -> Type) (t_a3jSZ :: [a_a3iD6]). Sing t_a3jSY -> Sing t_a3jSZ -> Sing (Apply (Apply Scanl1Sym0 t_a3jSY) t_a3jSZ :: [a_a3iD6])
sScanr :: forall (t_a3jSS :: TyFun a_a3iD4 (TyFun b_a3iD5 b_a3iD5 -> Type) -> Type) (t_a3jST :: b_a3iD5) (t_a3jSU :: [a_a3iD4]). Sing t_a3jSS -> Sing t_a3jST -> Sing t_a3jSU -> Sing (Apply (Apply (Apply ScanrSym0 t_a3jSS) t_a3jST) t_a3jSU :: [b_a3iD5])
sScanr1 :: forall (t_a3jSQ :: TyFun a_a3iD3 (TyFun a_a3iD3 a_a3iD3 -> Type) -> Type) (t_a3jSR :: [a_a3iD3]). Sing t_a3jSQ -> Sing t_a3jSR -> Sing (Apply (Apply Scanr1Sym0 t_a3jSQ) t_a3jSR :: [a_a3iD3])
sElem :: forall (t_a3jSz :: a_a3iCP) (t_a3jSA :: [a_a3iCP]). SEq a_a3iCP => Sing t_a3jSz -> Sing t_a3jSA -> Sing (Apply (Apply ElemSym0 t_a3jSz) t_a3jSA :: Bool)
sNotElem :: forall (t_a3jSx :: a_a3iCO) (t_a3jSy :: [a_a3iCO]). SEq a_a3iCO => Sing t_a3jSx -> Sing t_a3jSy -> Sing (Apply (Apply NotElemSym0 t_a3jSx) t_a3jSy :: Bool)
sLookup :: forall (t_a3jRi :: a_a3iBF) (t_a3jRj :: [(a_a3iBF, b_a3iBG)]). SEq a_a3iBF => Sing t_a3jRi -> Sing t_a3jRj -> Sing (Apply (Apply LookupSym0 t_a3jRi) t_a3jRj :: Maybe b_a3iBG)
sZip :: forall (t_a3jSn :: [a_a3iCM]) (t_a3jSo :: [b_a3iCN]). Sing t_a3jSn -> Sing t_a3jSo -> Sing (Apply (Apply ZipSym0 t_a3jSn) t_a3jSo :: [(a_a3iCM, b_a3iCN)])
sZip3 :: forall (t_a3jSk :: [a_a3iCJ]) (t_a3jSl :: [b_a3iCK]) (t_a3jSm :: [c_a3iCL]). Sing t_a3jSk -> Sing t_a3jSl -> Sing t_a3jSm -> Sing (Apply (Apply (Apply Zip3Sym0 t_a3jSk) t_a3jSl) t_a3jSm :: [(a_a3iCJ, b_a3iCK, c_a3iCL)])
sZipWith :: forall (t_a3jSh :: TyFun a_a3iCG (TyFun b_a3iCH c_a3iCI -> Type) -> Type) (t_a3jSi :: [a_a3iCG]) (t_a3jSj :: [b_a3iCH]). Sing t_a3jSh -> Sing t_a3jSi -> Sing t_a3jSj -> Sing (Apply (Apply (Apply ZipWithSym0 t_a3jSh) t_a3jSi) t_a3jSj :: [c_a3iCI])
sZipWith3 :: forall (t_a3jSd :: TyFun a_a3iCC (TyFun b_a3iCD (TyFun c_a3iCE d_a3iCF -> Type) -> Type) -> Type) (t_a3jSe :: [a_a3iCC]) (t_a3jSf :: [b_a3iCD]) (t_a3jSg :: [c_a3iCE]). Sing t_a3jSd -> Sing t_a3jSe -> Sing t_a3jSf -> Sing t_a3jSg -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a3jSd) t_a3jSe) t_a3jSf) t_a3jSg :: [d_a3iCF])
sUnzip :: forall (t_a3jSc :: [(a_a3iCA, b_a3iCB)]). Sing t_a3jSc -> Sing (Apply UnzipSym0 t_a3jSc :: ([a_a3iCA], [b_a3iCB]))
sUnzip3 :: forall (t_a3jSb :: [(a_a3iCx, b_a3iCy, c_a3iCz)]). Sing t_a3jSb -> Sing (Apply Unzip3Sym0 t_a3jSb :: ([a_a3iCx], [b_a3iCy], [c_a3iCz]))
sMaybe_ :: forall (t_a3bX8 :: b_a3bWE) (t_a3bX9 :: TyFun a_a3bWF b_a3bWE -> Type) (t_a3bXa :: Maybe a_a3bWF). Sing t_a3bX8 -> Sing t_a3bX9 -> Sing t_a3bXa -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a3bX8) t_a3bX9) t_a3bXa :: b_a3bWE)
sEither_ :: forall (t_a39uF :: TyFun a_a39u8 c_a39u9 -> Type) (t_a39uG :: TyFun b_a39ua c_a39u9 -> Type) (t_a39uH :: Either a_a39u8 b_a39ua). Sing t_a39uF -> Sing t_a39uG -> Sing t_a39uH -> Sing (Apply (Apply (Apply Either_Sym0 t_a39uF) t_a39uG) t_a39uH :: c_a39u9)
sFst :: forall (t_a3eRa :: (a_a3eQ0, b_a3eQ1)). Sing t_a3eRa -> Sing (Apply FstSym0 t_a3eRa :: a_a3eQ0)
sSnd :: forall (t_a3eR9 :: (a_a3ePY, b_a3ePZ)). Sing t_a3eR9 -> Sing (Apply SndSym0 t_a3eR9 :: b_a3ePZ)
sCurry :: forall (t_a3eR6 :: TyFun (a_a3ePV, b_a3ePW) c_a3ePX -> Type) (t_a3eR7 :: a_a3ePV) (t_a3eR8 :: b_a3ePW). Sing t_a3eR6 -> Sing t_a3eR7 -> Sing t_a3eR8 -> Sing (Apply (Apply (Apply CurrySym0 t_a3eR6) t_a3eR7) t_a3eR8 :: c_a3ePX)
sUncurry :: forall (t_a3eRb :: TyFun a_a3ePS (TyFun b_a3ePT c_a3ePU -> Type) -> Type) (t_a3eRc :: (a_a3ePS, b_a3ePT)). Sing t_a3eRb -> Sing t_a3eRc -> Sing (Apply (Apply UncurrySym0 t_a3eRb) t_a3eRc :: c_a3ePU)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *
either_ :: forall a_a39u8 c_a39u9 b_a39ua. (a_a39u8 -> c_a39u9) -> (b_a39ua -> c_a39u9) -> Either a_a39u8 b_a39ua -> c_a39u9
maybe_ :: forall b_a3bWE a_a3bWF. b_a3bWE -> (a_a3bWF -> b_a3bWE) -> Maybe a_a3bWF -> b_a3bWE
bool_ :: forall a_a2fqU. a_a2fqU -> a_a2fqU -> Bool -> a_a2fqU
any_ :: forall a_a3fQP. (a_a3fQP -> Bool) -> [a_a3fQP] -> Bool
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a2fCn :: TyFun Bool Bool)
type NotSym1 (t_a2fCm :: Bool) = Not t_a2fCm
data (:&&$) (l_a2fCF :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2fCI :: Bool) (l_a2fCH :: TyFun Bool Bool)
type (:&&$$$) (t_a2fCD :: Bool) (t_a2fCE :: Bool) = (:&&) t_a2fCD t_a2fCE
data (:||$) (l_a2fCs :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2fCv :: Bool) (l_a2fCu :: TyFun Bool Bool)
type (:||$$$) (t_a2fCq :: Bool) (t_a2fCr :: Bool) = (:||) t_a2fCq t_a2fCr
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a22Wh :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a22Wg :: a3530822107858468866) = Just t_a22Wg
data Maybe_Sym0 (l_a3bWN :: TyFun b6989586621679770696 (TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type) -> Type))
data Maybe_Sym1 (l_a3bWQ :: b6989586621679770696) (l_a3bWP :: TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type))
data Maybe_Sym2 (l_a3bWT :: b6989586621679770696) (l_a3bWU :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (l_a3bWS :: TyFun (Maybe a6989586621679770697) b6989586621679770696)
type Maybe_Sym3 (t_a3bWK :: b6989586621679770696) (t_a3bWL :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (t_a3bWM :: Maybe a6989586621679770697) = Maybe_ t_a3bWK t_a3bWL t_a3bWM
data LeftSym0 (l_a22WI :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a22WH :: a6989586621679054093) = Left t_a22WH
data RightSym0 (l_a22WL :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a22WK :: b6989586621679054094) = Right t_a22WK
data Either_Sym0 (l_a39uj :: TyFun (TyFun a6989586621679761240 c6989586621679761241 -> Type) (TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type) -> Type))
data Either_Sym1 (l_a39um :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39ul :: TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type))
data Either_Sym2 (l_a39up :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39uq :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (l_a39uo :: TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241)
type Either_Sym3 (t_a39ug :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (t_a39uh :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (t_a39ui :: Either a6989586621679761240 b6989586621679761242) = Either_ t_a39ug t_a39uh t_a39ui
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data FstSym0 (l_a3eQN :: TyFun (a6989586621679781816, b6989586621679781817) a6989586621679781816)
type FstSym1 (t_a3eQM :: (a6989586621679781816, b6989586621679781817)) = Fst t_a3eQM
data SndSym0 (l_a3eQF :: TyFun (a6989586621679781814, b6989586621679781815) b6989586621679781815)
type SndSym1 (t_a3eQE :: (a6989586621679781814, b6989586621679781815)) = Snd t_a3eQE
data CurrySym0 (l_a3eQp :: TyFun (TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type) -> Type))
data CurrySym1 (l_a3eQs :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQr :: TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type))
data CurrySym2 (l_a3eQv :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQw :: a6989586621679781811) (l_a3eQu :: TyFun b6989586621679781812 c6989586621679781813)
type CurrySym3 (t_a3eQm :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (t_a3eQn :: a6989586621679781811) (t_a3eQo :: b6989586621679781812) = Curry t_a3eQm t_a3eQn t_a3eQo
data UncurrySym0 (l_a3eQW :: TyFun (TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810 -> Type))
data UncurrySym1 (l_a3eQZ :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (l_a3eQY :: TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810)
type UncurrySym2 (t_a3eQU :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (t_a3eQV :: (a6989586621679781808, b6989586621679781809)) = Uncurry t_a3eQU t_a3eQV
data IdSym0 (l_a2gAT :: TyFun a6989586621679550101 a6989586621679550101)
type IdSym1 (t_a2gAS :: a6989586621679550101) = Id t_a2gAS
data ConstSym0 (l_a2gAs :: TyFun a6989586621679550099 (TyFun b6989586621679550100 a6989586621679550099 -> Type))
data ConstSym1 (l_a2gAv :: a6989586621679550099) (l_a2gAu :: TyFun b6989586621679550100 a6989586621679550099)
type ConstSym2 (t_a2gAq :: a6989586621679550099) (t_a2gAr :: b6989586621679550100) = Const t_a2gAq t_a2gAr
data (:.$) (l_a2gzN :: TyFun (TyFun b6989586621679550096 c6989586621679550097 -> Type) (TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type) -> Type))
data (:.$$) (l_a2gzQ :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzP :: TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type))
data (:.$$$) (l_a2gzT :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzU :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (l_a2gzS :: TyFun a6989586621679550098 c6989586621679550097)
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data ($!$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($!$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($!$$$) a b = ($!) a b
data FlipSym0 (l_a2gzv :: TyFun (TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type) -> Type))
data FlipSym1 (l_a2gzy :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzx :: TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type))
data FlipSym2 (l_a2gzB :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzC :: b6989586621679550094) (l_a2gzA :: TyFun a6989586621679550093 c6989586621679550095)
data AsTypeOfSym0 (l_a2gAJ :: TyFun a6989586621679550092 (TyFun a6989586621679550092 a6989586621679550092 -> Type))
data AsTypeOfSym1 (l_a2gAM :: a6989586621679550092) (l_a2gAL :: TyFun a6989586621679550092 a6989586621679550092)
type AsTypeOfSym2 (t_a2gAH :: a6989586621679550092) (t_a2gAI :: a6989586621679550092) = AsTypeOf t_a2gAH t_a2gAI
data SeqSym0 (l_a2gzh :: TyFun a6989586621679550090 (TyFun b6989586621679550091 b6989586621679550091 -> Type))
data SeqSym1 (l_a2gzk :: a6989586621679550090) (l_a2gzj :: TyFun b6989586621679550091 b6989586621679550091)
type SeqSym2 (t_a2gzf :: a6989586621679550090) (t_a2gzg :: b6989586621679550091) = Seq t_a2gzf t_a2gzg
data (:$) (l_a22Wr :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a22Wu :: a3530822107858468866) (l_a22Wt :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a22Wp :: a3530822107858468866) (t_a22Wq :: [a3530822107858468866]) = (:) t_a22Wp t_a22Wq
type NilSym0 = '[]
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data ReverseSym0 (l_a3jOg :: TyFun [a6989586621679796410] [a6989586621679796410])
type ReverseSym1 (t_a3jOf :: [a6989586621679796410]) = Reverse t_a3jOf
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data HeadSym0 (l_a3jQL :: TyFun [a6989586621679796415] a6989586621679796415)
type HeadSym1 (t_a3jQK :: [a6989586621679796415]) = Head t_a3jQK
data LastSym0 (l_a3jQB :: TyFun [a6989586621679796414] a6989586621679796414)
type LastSym1 (t_a3jQA :: [a6989586621679796414]) = Last t_a3jQA
data TailSym0 (l_a3jQt :: TyFun [a6989586621679796413] [a6989586621679796413])
type TailSym1 (t_a3jQs :: [a6989586621679796413]) = Tail t_a3jQs
data InitSym0 (l_a3jPW :: TyFun [a6989586621679796412] [a6989586621679796412])
type InitSym1 (t_a3jPV :: [a6989586621679796412]) = Init t_a3jPV
data NullSym0 (l_a3jOP :: TyFun [a6989586621679796411] Bool)
type NullSym1 (t_a3jOO :: [a6989586621679796411]) = Null t_a3jOO
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))
data FoldlSym1 (l_a25Uc :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ub :: TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type))
data FoldlSym2 (l_a25Uf :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ug :: b6989586621679509136) (l_a25Ue :: TyFun [a6989586621679509135] b6989586621679509136)
type FoldlSym3 (t_a25U6 :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (t_a25U7 :: b6989586621679509136) (t_a25U8 :: [a6989586621679509135]) = Foldl t_a25U6 t_a25U7 t_a25U8
data Foldl1Sym0 (l_a3jBY :: TyFun (TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (TyFun [a6989586621679796401] a6989586621679796401 -> Type))
data Foldl1Sym1 (l_a3jC1 :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (l_a3jC0 :: TyFun [a6989586621679796401] a6989586621679796401)
type Foldl1Sym2 (t_a3jBW :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (t_a3jBX :: [a6989586621679796401]) = Foldl1 t_a3jBW t_a3jBX
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data Foldr1Sym0 (l_a3jBl :: TyFun (TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (TyFun [a6989586621679796399] a6989586621679796399 -> Type))
data Foldr1Sym1 (l_a3jBo :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (l_a3jBn :: TyFun [a6989586621679796399] a6989586621679796399)
type Foldr1Sym2 (t_a3jBj :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (t_a3jBk :: [a6989586621679796399]) = Foldr1 t_a3jBj t_a3jBk
data ConcatSym0 (l_a3jBf :: TyFun [[a6989586621679796398]] [a6989586621679796398])
type ConcatSym1 (t_a3jBe :: [[a6989586621679796398]]) = Concat t_a3jBe
data ConcatMapSym0 (l_a3jB1 :: TyFun (TyFun a6989586621679796396 [b6989586621679796397] -> Type) (TyFun [a6989586621679796396] [b6989586621679796397] -> Type))
data ConcatMapSym1 (l_a3jB4 :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (l_a3jB3 :: TyFun [a6989586621679796396] [b6989586621679796397])
type ConcatMapSym2 (t_a3jAZ :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (t_a3jB0 :: [a6989586621679796396]) = ConcatMap t_a3jAZ t_a3jB0
data AndSym0 (l_a3jAU :: TyFun [Bool] Bool)
type AndSym1 (t_a3jAT :: [Bool]) = And t_a3jAT
data OrSym0 (l_a3jAO :: TyFun [Bool] Bool)
type OrSym1 (t_a3jAN :: [Bool]) = Or t_a3jAN
data Any_Sym0 (l_a3fQW :: TyFun (TyFun a6989586621679785711 Bool -> Type) (TyFun [a6989586621679785711] Bool -> Type))
data Any_Sym1 (l_a3fQZ :: TyFun a6989586621679785711 Bool -> Type) (l_a3fQY :: TyFun [a6989586621679785711] Bool)
type Any_Sym2 (t_a3fQU :: TyFun a6989586621679785711 Bool -> Type) (t_a3fQV :: [a6989586621679785711]) = Any_ t_a3fQU t_a3fQV
data AllSym0 (l_a3jAA :: TyFun (TyFun a6989586621679796395 Bool -> Type) (TyFun [a6989586621679796395] Bool -> Type))
data AllSym1 (l_a3jAD :: TyFun a6989586621679796395 Bool -> Type) (l_a3jAC :: TyFun [a6989586621679796395] Bool)
type AllSym2 (t_a3jAy :: TyFun a6989586621679796395 Bool -> Type) (t_a3jAz :: [a6989586621679796395]) = All t_a3jAy t_a3jAz
data ScanlSym0 (l_a3jzZ :: TyFun (TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type) -> Type))
data ScanlSym1 (l_a3jA2 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA1 :: TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type))
data ScanlSym2 (l_a3jA5 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA6 :: b6989586621679796393) (l_a3jA4 :: TyFun [a6989586621679796394] [b6989586621679796393])
type ScanlSym3 (t_a3jzW :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (t_a3jzX :: b6989586621679796393) (t_a3jzY :: [a6989586621679796394]) = Scanl t_a3jzW t_a3jzX t_a3jzY
data Scanl1Sym0 (l_a3jAl :: TyFun (TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (TyFun [a6989586621679796392] [a6989586621679796392] -> Type))
data Scanl1Sym1 (l_a3jAo :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (l_a3jAn :: TyFun [a6989586621679796392] [a6989586621679796392])
type Scanl1Sym2 (t_a3jAj :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (t_a3jAk :: [a6989586621679796392]) = Scanl1 t_a3jAj t_a3jAk
data ScanrSym0 (l_a3jze :: TyFun (TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type) -> Type))
data ScanrSym1 (l_a3jzh :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzg :: TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type))
data ScanrSym2 (l_a3jzk :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzl :: b6989586621679796391) (l_a3jzj :: TyFun [a6989586621679796390] [b6989586621679796391])
type ScanrSym3 (t_a3jzb :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (t_a3jzc :: b6989586621679796391) (t_a3jzd :: [a6989586621679796390]) = Scanr t_a3jzb t_a3jzc t_a3jzd
data Scanr1Sym0 (l_a3jyc :: TyFun (TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (TyFun [a6989586621679796389] [a6989586621679796389] -> Type))
data Scanr1Sym1 (l_a3jyf :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (l_a3jye :: TyFun [a6989586621679796389] [a6989586621679796389])
type Scanr1Sym2 (t_a3jya :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (t_a3jyb :: [a6989586621679796389]) = Scanr1 t_a3jya t_a3jyb
data ElemSym0 (l_a3jqj :: TyFun a6989586621679796375 (TyFun [a6989586621679796375] Bool -> Type))
data ElemSym1 (l_a3jqm :: a6989586621679796375) (l_a3jql :: TyFun [a6989586621679796375] Bool)
type ElemSym2 (t_a3jqh :: a6989586621679796375) (t_a3jqi :: [a6989586621679796375]) = Elem t_a3jqh t_a3jqi
data NotElemSym0 (l_a3jq4 :: TyFun a6989586621679796374 (TyFun [a6989586621679796374] Bool -> Type))
data NotElemSym1 (l_a3jq7 :: a6989586621679796374) (l_a3jq6 :: TyFun [a6989586621679796374] Bool)
type NotElemSym2 (t_a3jq2 :: a6989586621679796374) (t_a3jq3 :: [a6989586621679796374]) = NotElem t_a3jq2 t_a3jq3
data ZipSym0 (l_a3jo1 :: TyFun [a6989586621679796372] (TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)] -> Type))
data ZipSym1 (l_a3jo4 :: [a6989586621679796372]) (l_a3jo3 :: TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)])
type ZipSym2 (t_a3jnZ :: [a6989586621679796372]) (t_a3jo0 :: [b6989586621679796373]) = Zip t_a3jnZ t_a3jo0
data Zip3Sym0 (l_a3jmP :: TyFun [a6989586621679796369] (TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type) -> Type))
data Zip3Sym1 (l_a3jmS :: [a6989586621679796369]) (l_a3jmR :: TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type))
data Zip3Sym2 (l_a3jmV :: [a6989586621679796369]) (l_a3jmW :: [b6989586621679796370]) (l_a3jmU :: TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)])
type Zip3Sym3 (t_a3jmM :: [a6989586621679796369]) (t_a3jmN :: [b6989586621679796370]) (t_a3jmO :: [c6989586621679796371]) = Zip3 t_a3jmM t_a3jmN t_a3jmO
data ZipWithSym0 (l_a3jma :: TyFun (TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type) -> Type))
data ZipWithSym1 (l_a3jmd :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmc :: TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type))
data ZipWithSym2 (l_a3jmg :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmh :: [a6989586621679796366]) (l_a3jmf :: TyFun [b6989586621679796367] [c6989586621679796368])
type ZipWithSym3 (t_a3jm7 :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (t_a3jm8 :: [a6989586621679796366]) (t_a3jm9 :: [b6989586621679796367]) = ZipWith t_a3jm7 t_a3jm8 t_a3jm9
data ZipWith3Sym0 (l_a3jkv :: TyFun (TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a3jky :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkx :: TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type))
data ZipWith3Sym2 (l_a3jkB :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkC :: [a6989586621679796362]) (l_a3jkA :: TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type))
data ZipWith3Sym3 (l_a3jkF :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkG :: [a6989586621679796362]) (l_a3jkH :: [b6989586621679796363]) (l_a3jkE :: TyFun [c6989586621679796364] [d6989586621679796365])
data UnzipSym0 (l_a3jjY :: TyFun [(a6989586621679796360, b6989586621679796361)] ([a6989586621679796360], [b6989586621679796361]))
type UnzipSym1 (t_a3jjX :: [(a6989586621679796360, b6989586621679796361)]) = Unzip t_a3jjX


-- | This module defines singleton instances making <a>Typeable</a> the
--   singleton for the kind <tt>*</tt>. The definitions don't fully line up
--   with what is expected within the singletons library, so expect unusual
--   results!
module Data.Singletons.TypeRepStar

-- | The singleton kind-indexed data family.
instance Data.Typeable.Internal.Typeable a => Data.Singletons.SingI a
instance Data.Singletons.SingKind GHC.Types.Type
instance Data.Singletons.Prelude.Eq.PEq 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Eq.SEq GHC.Types.Type
instance Data.Singletons.Decide.SDecide GHC.Types.Type
instance Data.Type.Coercion.TestCoercion Data.Singletons.Sing


-- | This module contains everything you need to promote your own functions
--   via Template Haskell.
module Data.Promotion.TH

-- | Promote every declaration given to the type level, retaining the
--   originals.
promote :: DsMonad q => q [Dec] -> q [Dec]

-- | Promote each declaration, discarding the originals. Note that a
--   promoted datatype uses the same definition as an original datatype, so
--   this will not work with datatypes. Classes, instances, and functions
--   are all fine.
promoteOnly :: DsMonad q => q [Dec] -> q [Dec]

-- | Generate defunctionalization symbols for existing type family
genDefunSymbols :: DsMonad q => [Name] -> q [Dec]

-- | Generate promoted definitions from a type that is already defined.
--   This is generally only useful with classes.
genPromotions :: DsMonad q => [Name] -> q [Dec]

-- | Produce instances for '(:==)' (type-level equality) from the given
--   types
promoteEqInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for '(:==)' (type-level equality) from the given
--   type
promoteEqInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>POrd</tt> from the given types
promoteOrdInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>POrd</tt> from the given type
promoteOrdInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>PBounded</tt> from the given types
promoteBoundedInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>PBounded</tt> from the given type
promoteBoundedInstance :: DsMonad q => Name -> q [Dec]

-- | Produce instances for <tt>PEnum</tt> from the given types
promoteEnumInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>PEnum</tt> from the given type
promoteEnumInstance :: DsMonad q => Name -> q [Dec]

-- | Representation of the kind of a type-level function. The difference
--   between term-level arrows and this type-level arrow is that at the
--   term level applications can be unsaturated, whereas at the type level
--   all applications have to be fully saturated.
data TyFun :: * -> * -> *

-- | Type level function application

-- | An infix synonym for <a>Apply</a>
type (@@) a b = Apply a b

-- | The promoted analogue of <a>Eq</a>. If you supply no definition for
--   '(:==)', then it defaults to a use of '(==)', from
--   <tt>Data.Type.Equality</tt>.
class kproxy ~ Proxy => PEq (kproxy :: Proxy a) where type (:==) (x :: a) (y :: a) :: Bool type (:/=) (x :: a) (y :: a) :: Bool type (:==) (x :: a) (y :: a) = x == y type (:/=) (x :: a) (y :: a) = Not (x :== y) where {
    type family (:==) (x :: a) (y :: a) :: Bool;
    type family (:/=) (x :: a) (y :: a) :: Bool;
    type (:==) (x :: a) (y :: a) = x == y;
    type (:/=) (x :: a) (y :: a) = Not (x :== y);
}

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>
class (PEq (Proxy :: Proxy a_a2q0s), kproxy_a2qBy ~ Proxy) => POrd (kproxy_a2qBy :: Proxy a_a2q0s) where type Compare (arg_a2qBz :: a_a2q0s) (arg_a2qBA :: a_a2q0s) :: Ordering type (:<) (arg_a2qBI :: a_a2q0s) (arg_a2qBJ :: a_a2q0s) :: Bool type (:<=) (arg_a2qBR :: a_a2q0s) (arg_a2qBS :: a_a2q0s) :: Bool type (:>) (arg_a2qC0 :: a_a2q0s) (arg_a2qC1 :: a_a2q0s) :: Bool type (:>=) (arg_a2qC9 :: a_a2q0s) (arg_a2qCa :: a_a2q0s) :: Bool type Max (arg_a2qCi :: a_a2q0s) (arg_a2qCj :: a_a2q0s) :: a_a2q0s type Min (arg_a2qCr :: a_a2q0s) (arg_a2qCs :: a_a2q0s) :: a_a2q0s type Compare a_a2qD7 a_a2qD8 = Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8 type (:<) a_a2qDE a_a2qDF = Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF type (:<=) a_a2qEb a_a2qEc = Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc type (:>) a_a2qEI a_a2qEJ = Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ type (:>=) a_a2qFf a_a2qFg = Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg type Max a_a2qFM a_a2qFN = Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN type Min a_a2qGj a_a2qGk = Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk where {
    type family Compare (arg_a2qBz :: a_a2q0s)
                        (arg_a2qBA :: a_a2q0s) :: Ordering;
    type family (:<) (arg_a2qBI :: a_a2q0s)
                     (arg_a2qBJ :: a_a2q0s) :: Bool;
    type family (:<=) (arg_a2qBR :: a_a2q0s)
                      (arg_a2qBS :: a_a2q0s) :: Bool;
    type family (:>) (arg_a2qC0 :: a_a2q0s)
                     (arg_a2qC1 :: a_a2q0s) :: Bool;
    type family (:>=) (arg_a2qC9 :: a_a2q0s)
                      (arg_a2qCa :: a_a2q0s) :: Bool;
    type family Max (arg_a2qCi :: a_a2q0s)
                    (arg_a2qCj :: a_a2q0s) :: a_a2q0s;
    type family Min (arg_a2qCr :: a_a2q0s)
                    (arg_a2qCs :: a_a2q0s) :: a_a2q0s;
    type Compare a_a2qD7 a_a2qD8 =
        Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8;
    type (:<) a_a2qDE a_a2qDF =
        Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF;
    type (:<=) a_a2qEb a_a2qEc =
        Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc;
    type (:>) a_a2qEI a_a2qEJ =
        Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ;
    type (:>=) a_a2qFf a_a2qFg =
        Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg;
    type Max a_a2qFM a_a2qFN =
        Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN;
    type Min a_a2qGj a_a2qGk =
        Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk;
}

-- | The type constructor <tt>Any</tt> is type to which you can unsafely
--   coerce any lifted type, and back.
--   
--   <ul>
--   <li>It is lifted, and hence represented by a pointer</li>
--   <li>It does not claim to be a <i>data</i> type, and that's important
--   for the code generator, because the code gen may <i>enter</i> a data
--   value but never enters a function value.</li>
--   </ul>
--   
--   It's also used to instantiate un-constrained type variables after type
--   checking. For example, <tt>length</tt> has type
--   
--   <pre>
--   length :: forall a. [a] -&gt; Int
--   </pre>
--   
--   and the list datacon for the empty list has type
--   
--   <pre>
--   [] :: forall a. [a]
--   </pre>
--   
--   In order to compose these two terms as <tt>length []</tt> a type
--   application is required, but there is no constraint on the choice. In
--   this situation GHC uses <tt>Any</tt>:
--   
--   <pre>
--   length (Any *) ([] (Any *))
--   </pre>
--   
--   Above, we print kinds explicitly, as if with
--   <tt>-fprint-explicit-kinds</tt>.
--   
--   Note that <tt>Any</tt> is kind polymorphic; its kind is thus
--   <tt>forall k. k</tt>.

-- | A concrete, poly-kinded proxy type
data Proxy k (t :: k) :: forall k. k -> *
Proxy :: Proxy k

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a2NiF :: TyFun k06989586621679675033 k6989586621679675035)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data ThenCmpSym0 (l_a2st5 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))

-- | This class (which users should never see) is to be instantiated in
--   order to use an otherwise-unused data constructor, such as the
--   "kind-inference" data constructor for defunctionalization symbols.
class SuppressUnusedWarnings (t :: k)
suppressUnusedWarnings :: SuppressUnusedWarnings t => Proxy t -> ()


-- | Defines promoted functions and datatypes relating to tuples, including
--   a promoted version of all the definitions in <tt>Data.Tuple</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Tuple</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Promotion.Prelude.Tuple
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data FstSym0 (l_a3eQN :: TyFun (a6989586621679781816, b6989586621679781817) a6989586621679781816)
type FstSym1 (t_a3eQM :: (a6989586621679781816, b6989586621679781817)) = Fst t_a3eQM
data SndSym0 (l_a3eQF :: TyFun (a6989586621679781814, b6989586621679781815) b6989586621679781815)
type SndSym1 (t_a3eQE :: (a6989586621679781814, b6989586621679781815)) = Snd t_a3eQE
data CurrySym0 (l_a3eQp :: TyFun (TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type) -> Type))
data CurrySym1 (l_a3eQs :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQr :: TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type))
data CurrySym2 (l_a3eQv :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQw :: a6989586621679781811) (l_a3eQu :: TyFun b6989586621679781812 c6989586621679781813)
type CurrySym3 (t_a3eQm :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (t_a3eQn :: a6989586621679781811) (t_a3eQo :: b6989586621679781812) = Curry t_a3eQm t_a3eQn t_a3eQo
data UncurrySym0 (l_a3eQW :: TyFun (TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810 -> Type))
data UncurrySym1 (l_a3eQZ :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (l_a3eQY :: TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810)
type UncurrySym2 (t_a3eQU :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (t_a3eQV :: (a6989586621679781808, b6989586621679781809)) = Uncurry t_a3eQU t_a3eQV
data SwapSym0 (l_a3eQh :: TyFun (a6989586621679781806, b6989586621679781807) (b6989586621679781807, a6989586621679781806))
type SwapSym1 (t_a3eQg :: (a6989586621679781806, b6989586621679781807)) = Swap t_a3eQg


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class (PEq (Proxy :: Proxy a_a2q0s), kproxy_a2qBy ~ Proxy) => POrd (kproxy_a2qBy :: Proxy a_a2q0s) where type Compare (arg_a2qBz :: a_a2q0s) (arg_a2qBA :: a_a2q0s) :: Ordering type (:<) (arg_a2qBI :: a_a2q0s) (arg_a2qBJ :: a_a2q0s) :: Bool type (:<=) (arg_a2qBR :: a_a2q0s) (arg_a2qBS :: a_a2q0s) :: Bool type (:>) (arg_a2qC0 :: a_a2q0s) (arg_a2qC1 :: a_a2q0s) :: Bool type (:>=) (arg_a2qC9 :: a_a2q0s) (arg_a2qCa :: a_a2q0s) :: Bool type Max (arg_a2qCi :: a_a2q0s) (arg_a2qCj :: a_a2q0s) :: a_a2q0s type Min (arg_a2qCr :: a_a2q0s) (arg_a2qCs :: a_a2q0s) :: a_a2q0s type Compare a_a2qD7 a_a2qD8 = Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8 type (:<) a_a2qDE a_a2qDF = Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF type (:<=) a_a2qEb a_a2qEc = Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc type (:>) a_a2qEI a_a2qEJ = Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ type (:>=) a_a2qFf a_a2qFg = Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg type Max a_a2qFM a_a2qFN = Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN type Min a_a2qGj a_a2qGk = Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk where {
    type family Compare (arg_a2qBz :: a_a2q0s)
                        (arg_a2qBA :: a_a2q0s) :: Ordering;
    type family (:<) (arg_a2qBI :: a_a2q0s)
                     (arg_a2qBJ :: a_a2q0s) :: Bool;
    type family (:<=) (arg_a2qBR :: a_a2q0s)
                      (arg_a2qBS :: a_a2q0s) :: Bool;
    type family (:>) (arg_a2qC0 :: a_a2q0s)
                     (arg_a2qC1 :: a_a2q0s) :: Bool;
    type family (:>=) (arg_a2qC9 :: a_a2q0s)
                      (arg_a2qCa :: a_a2q0s) :: Bool;
    type family Max (arg_a2qCi :: a_a2q0s)
                    (arg_a2qCj :: a_a2q0s) :: a_a2q0s;
    type family Min (arg_a2qCr :: a_a2q0s)
                    (arg_a2qCs :: a_a2q0s) :: a_a2q0s;
    type Compare a_a2qD7 a_a2qD8 =
        Apply (Apply Compare_6989586621679588819Sym0 a_a2qD7) a_a2qD8;
    type (:<) a_a2qDE a_a2qDF =
        Apply (Apply TFHelper_6989586621679588852Sym0 a_a2qDE) a_a2qDF;
    type (:<=) a_a2qEb a_a2qEc =
        Apply (Apply TFHelper_6989586621679588885Sym0 a_a2qEb) a_a2qEc;
    type (:>) a_a2qEI a_a2qEJ =
        Apply (Apply TFHelper_6989586621679588918Sym0 a_a2qEI) a_a2qEJ;
    type (:>=) a_a2qFf a_a2qFg =
        Apply (Apply TFHelper_6989586621679588951Sym0 a_a2qFf) a_a2qFg;
    type Max a_a2qFM a_a2qFN =
        Apply (Apply Max_6989586621679588984Sym0 a_a2qFM) a_a2qFN;
    type Min a_a2qGj a_a2qGk =
        Apply (Apply Min_6989586621679589017Sym0 a_a2qGj) a_a2qGk;
}
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a2qBD :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Ordering -> Type))
data CompareSym1 (l_a2qBG :: a6989586621679586420) (l_a2qBF :: TyFun a6989586621679586420 Ordering)
type CompareSym2 (t_a2qBB :: a6989586621679586420) (t_a2qBC :: a6989586621679586420) = Compare t_a2qBB t_a2qBC
data (:<$) (l_a2qBM :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:<$$) (l_a2qBP :: a6989586621679586420) (l_a2qBO :: TyFun a6989586621679586420 Bool)
type (:<$$$) (t_a2qBK :: a6989586621679586420) (t_a2qBL :: a6989586621679586420) = (:<) t_a2qBK t_a2qBL
data (:<=$) (l_a2qBV :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:<=$$) (l_a2qBY :: a6989586621679586420) (l_a2qBX :: TyFun a6989586621679586420 Bool)
type (:<=$$$) (t_a2qBT :: a6989586621679586420) (t_a2qBU :: a6989586621679586420) = (:<=) t_a2qBT t_a2qBU
data (:>$) (l_a2qC4 :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:>$$) (l_a2qC7 :: a6989586621679586420) (l_a2qC6 :: TyFun a6989586621679586420 Bool)
type (:>$$$) (t_a2qC2 :: a6989586621679586420) (t_a2qC3 :: a6989586621679586420) = (:>) t_a2qC2 t_a2qC3
data (:>=$) (l_a2qCd :: TyFun a6989586621679586420 (TyFun a6989586621679586420 Bool -> Type))
data (:>=$$) (l_a2qCg :: a6989586621679586420) (l_a2qCf :: TyFun a6989586621679586420 Bool)
type (:>=$$$) (t_a2qCb :: a6989586621679586420) (t_a2qCc :: a6989586621679586420) = (:>=) t_a2qCb t_a2qCc
data MaxSym0 (l_a2qCm :: TyFun a6989586621679586420 (TyFun a6989586621679586420 a6989586621679586420 -> Type))
data MaxSym1 (l_a2qCp :: a6989586621679586420) (l_a2qCo :: TyFun a6989586621679586420 a6989586621679586420)
type MaxSym2 (t_a2qCk :: a6989586621679586420) (t_a2qCl :: a6989586621679586420) = Max t_a2qCk t_a2qCl
data MinSym0 (l_a2qCv :: TyFun a6989586621679586420 (TyFun a6989586621679586420 a6989586621679586420 -> Type))
data MinSym1 (l_a2qCy :: a6989586621679586420) (l_a2qCx :: TyFun a6989586621679586420 a6989586621679586420)
type MinSym2 (t_a2qCt :: a6989586621679586420) (t_a2qCu :: a6989586621679586420) = Min t_a2qCt t_a2qCu


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class kproxy_a2PIk ~ Proxy => PNum (kproxy_a2PIk :: Proxy a_a2PIg) where type (:+) (arg_a2PIl :: a_a2PIg) (arg_a2PIm :: a_a2PIg) :: a_a2PIg type (:-) (arg_a2PIu :: a_a2PIg) (arg_a2PIv :: a_a2PIg) :: a_a2PIg type (:*) (arg_a2PID :: a_a2PIg) (arg_a2PIE :: a_a2PIg) :: a_a2PIg type Negate (arg_a2PIM :: a_a2PIg) :: a_a2PIg type Abs (arg_a2PIQ :: a_a2PIg) :: a_a2PIg type Signum (arg_a2PIU :: a_a2PIg) :: a_a2PIg type FromInteger (arg_a2PIY :: Nat) :: a_a2PIg type (:-) a_a2PJd a_a2PJe = Apply (Apply TFHelper_6989586621679685297Sym0 a_a2PJd) a_a2PJe type Negate a_a2PJt = Apply Negate_6989586621679685312Sym0 a_a2PJt where {
    type family (:+) (arg_a2PIl :: a_a2PIg)
                     (arg_a2PIm :: a_a2PIg) :: a_a2PIg;
    type family (:-) (arg_a2PIu :: a_a2PIg)
                     (arg_a2PIv :: a_a2PIg) :: a_a2PIg;
    type family (:*) (arg_a2PID :: a_a2PIg)
                     (arg_a2PIE :: a_a2PIg) :: a_a2PIg;
    type family Negate (arg_a2PIM :: a_a2PIg) :: a_a2PIg;
    type family Abs (arg_a2PIQ :: a_a2PIg) :: a_a2PIg;
    type family Signum (arg_a2PIU :: a_a2PIg) :: a_a2PIg;
    type family FromInteger (arg_a2PIY :: Nat) :: a_a2PIg;
    type (:-) a_a2PJd a_a2PJe =
        Apply (Apply TFHelper_6989586621679685297Sym0 a_a2PJd) a_a2PJe;
    type Negate a_a2PJt = Apply Negate_6989586621679685312Sym0 a_a2PJt;
}
data (:+$) (l_a2PIp :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:+$$) (l_a2PIs :: a6989586621679685236) (l_a2PIr :: TyFun a6989586621679685236 a6989586621679685236)
type (:+$$$) (t_a2PIn :: a6989586621679685236) (t_a2PIo :: a6989586621679685236) = (:+) t_a2PIn t_a2PIo
data (:-$) (l_a2PIy :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:-$$) (l_a2PIB :: a6989586621679685236) (l_a2PIA :: TyFun a6989586621679685236 a6989586621679685236)
type (:-$$$) (t_a2PIw :: a6989586621679685236) (t_a2PIx :: a6989586621679685236) = (:-) t_a2PIw t_a2PIx
data (:*$) (l_a2PIH :: TyFun a6989586621679685236 (TyFun a6989586621679685236 a6989586621679685236 -> Type))
data (:*$$) (l_a2PIK :: a6989586621679685236) (l_a2PIJ :: TyFun a6989586621679685236 a6989586621679685236)
type (:*$$$) (t_a2PIF :: a6989586621679685236) (t_a2PIG :: a6989586621679685236) = (:*) t_a2PIF t_a2PIG
data NegateSym0 (l_a2PIO :: TyFun a6989586621679685236 a6989586621679685236)
type NegateSym1 (t_a2PIN :: a6989586621679685236) = Negate t_a2PIN
data AbsSym0 (l_a2PIS :: TyFun a6989586621679685236 a6989586621679685236)
type AbsSym1 (t_a2PIR :: a6989586621679685236) = Abs t_a2PIR
data SignumSym0 (l_a2PIW :: TyFun a6989586621679685236 a6989586621679685236)
type SignumSym1 (t_a2PIV :: a6989586621679685236) = Signum t_a2PIV
data FromIntegerSym0 (l_a2PJ0 :: TyFun Nat a6989586621679685236)
type FromIntegerSym1 (t_a2PIZ :: Nat) = FromInteger t_a2PIZ
data SubtractSym0 (l_a2Ql2 :: TyFun a6989586621679687552 (TyFun a6989586621679687552 a6989586621679687552 -> Type))
data SubtractSym1 (l_a2Ql5 :: a6989586621679687552) (l_a2Ql4 :: TyFun a6989586621679687552 a6989586621679687552)
type SubtractSym2 (t_a2Ql0 :: a6989586621679687552) (t_a2Ql1 :: a6989586621679687552) = Subtract t_a2Ql0 t_a2Ql1


-- | Defines promoted functions and datatypes relating to <a>Maybe</a>,
--   including a promoted version of all the definitions in
--   <tt>Data.Maybe</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Maybe</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Promotion.Prelude.Maybe
maybe_ :: forall b_a3bWE a_a3bWF. b_a3bWE -> (a_a3bWF -> b_a3bWE) -> Maybe a_a3bWF -> b_a3bWE
type NothingSym0 = Nothing
data JustSym0 (l_a22Wh :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a22Wg :: a3530822107858468866) = Just t_a22Wg
data Maybe_Sym0 (l_a3bWN :: TyFun b6989586621679770696 (TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type) -> Type))
data Maybe_Sym1 (l_a3bWQ :: b6989586621679770696) (l_a3bWP :: TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type))
data Maybe_Sym2 (l_a3bWT :: b6989586621679770696) (l_a3bWU :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (l_a3bWS :: TyFun (Maybe a6989586621679770697) b6989586621679770696)
type Maybe_Sym3 (t_a3bWK :: b6989586621679770696) (t_a3bWL :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (t_a3bWM :: Maybe a6989586621679770697) = Maybe_ t_a3bWK t_a3bWL t_a3bWM
data IsJustSym0 (l_a3ciM :: TyFun (Maybe a6989586621679771950) Bool)
type IsJustSym1 (t_a3ciL :: Maybe a6989586621679771950) = IsJust t_a3ciL
data IsNothingSym0 (l_a3ciF :: TyFun (Maybe a6989586621679771949) Bool)
type IsNothingSym1 (t_a3ciE :: Maybe a6989586621679771949) = IsNothing t_a3ciE
data FromJustSym0 (l_a3ciA :: TyFun (Maybe a6989586621679771948) a6989586621679771948)
type FromJustSym1 (t_a3ciz :: Maybe a6989586621679771948) = FromJust t_a3ciz
data FromMaybeSym0 (l_a3cim :: TyFun a6989586621679771947 (TyFun (Maybe a6989586621679771947) a6989586621679771947 -> Type))
data FromMaybeSym1 (l_a3cip :: a6989586621679771947) (l_a3cio :: TyFun (Maybe a6989586621679771947) a6989586621679771947)
type FromMaybeSym2 (t_a3cik :: a6989586621679771947) (t_a3cil :: Maybe a6989586621679771947) = FromMaybe t_a3cik t_a3cil
data MaybeToListSym0 (l_a3cig :: TyFun (Maybe a6989586621679771946) [a6989586621679771946])
type MaybeToListSym1 (t_a3cif :: Maybe a6989586621679771946) = MaybeToList t_a3cif
data ListToMaybeSym0 (l_a3ci8 :: TyFun [a6989586621679771945] (Maybe a6989586621679771945))
type ListToMaybeSym1 (t_a3ci7 :: [a6989586621679771945]) = ListToMaybe t_a3ci7
data CatMaybesSym0 (l_a3ci1 :: TyFun [Maybe a6989586621679771944] [a6989586621679771944])
type CatMaybesSym1 (t_a3ci0 :: [Maybe a6989586621679771944]) = CatMaybes t_a3ci0
data MapMaybeSym0 (l_a3chj :: TyFun (TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (TyFun [a6989586621679771942] [b6989586621679771943] -> Type))
data MapMaybeSym1 (l_a3chm :: TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (l_a3chl :: TyFun [a6989586621679771942] [b6989586621679771943])
type MapMaybeSym2 (t_a3chh :: TyFun a6989586621679771942 (Maybe b6989586621679771943) -> Type) (t_a3chi :: [a6989586621679771942]) = MapMaybe t_a3chh t_a3chi


-- | Defines promoted functions and datatypes relating to <tt>List</tt>,
--   including a promoted version of all the definitions in
--   <tt>Data.List</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.List</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Promotion.Prelude.List
any_ :: forall a_a3fQP. (a_a3fQP -> Bool) -> [a_a3fQP] -> Bool
type NilSym0 = '[]
data (:$) (l_a22Wr :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a22Wu :: a3530822107858468866) (l_a22Wt :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a22Wp :: a3530822107858468866) (t_a22Wq :: [a3530822107858468866]) = (:) t_a22Wp t_a22Wq
type (:++$$$) (t_a2gAX :: [a6989586621679550102]) (t_a2gAY :: [a6989586621679550102]) = (:++) t_a2gAX t_a2gAY
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data HeadSym0 (l_a3jQL :: TyFun [a6989586621679796415] a6989586621679796415)
type HeadSym1 (t_a3jQK :: [a6989586621679796415]) = Head t_a3jQK
data LastSym0 (l_a3jQB :: TyFun [a6989586621679796414] a6989586621679796414)
type LastSym1 (t_a3jQA :: [a6989586621679796414]) = Last t_a3jQA
data TailSym0 (l_a3jQt :: TyFun [a6989586621679796413] [a6989586621679796413])
type TailSym1 (t_a3jQs :: [a6989586621679796413]) = Tail t_a3jQs
data InitSym0 (l_a3jPW :: TyFun [a6989586621679796412] [a6989586621679796412])
type InitSym1 (t_a3jPV :: [a6989586621679796412]) = Init t_a3jPV
data NullSym0 (l_a3jOP :: TyFun [a6989586621679796411] Bool)
type NullSym1 (t_a3jOO :: [a6989586621679796411]) = Null t_a3jOO
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data ReverseSym0 (l_a3jOg :: TyFun [a6989586621679796410] [a6989586621679796410])
type ReverseSym1 (t_a3jOf :: [a6989586621679796410]) = Reverse t_a3jOf
data IntersperseSym0 (l_a3jNR :: TyFun a6989586621679796409 (TyFun [a6989586621679796409] [a6989586621679796409] -> Type))
data IntersperseSym1 (l_a3jNU :: a6989586621679796409) (l_a3jNT :: TyFun [a6989586621679796409] [a6989586621679796409])
type IntersperseSym2 (t_a3jNP :: a6989586621679796409) (t_a3jNQ :: [a6989586621679796409]) = Intersperse t_a3jNP t_a3jNQ
data IntercalateSym0 (l_a3jO6 :: TyFun [a6989586621679796408] (TyFun [[a6989586621679796408]] [a6989586621679796408] -> Type))
data IntercalateSym1 (l_a3jO9 :: [a6989586621679796408]) (l_a3jO8 :: TyFun [[a6989586621679796408]] [a6989586621679796408])
type IntercalateSym2 (t_a3jO4 :: [a6989586621679796408]) (t_a3jO5 :: [[a6989586621679796408]]) = Intercalate t_a3jO4 t_a3jO5
data SubsequencesSym0 (l_a3jNL :: TyFun [a6989586621679796407] [[a6989586621679796407]])
type SubsequencesSym1 (t_a3jNK :: [a6989586621679796407]) = Subsequences t_a3jNK
data PermutationsSym0 (l_a3jH3 :: TyFun [a6989586621679796404] [[a6989586621679796404]])
type PermutationsSym1 (t_a3jH2 :: [a6989586621679796404]) = Permutations t_a3jH2
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))
data FoldlSym1 (l_a25Uc :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ub :: TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type))
data FoldlSym2 (l_a25Uf :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ug :: b6989586621679509136) (l_a25Ue :: TyFun [a6989586621679509135] b6989586621679509136)
type FoldlSym3 (t_a25U6 :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (t_a25U7 :: b6989586621679509136) (t_a25U8 :: [a6989586621679509135]) = Foldl t_a25U6 t_a25U7 t_a25U8
data Foldl'Sym0 (l_a3jFu :: TyFun (TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (TyFun b6989586621679796403 (TyFun [a6989586621679796402] b6989586621679796403 -> Type) -> Type))
data Foldl'Sym1 (l_a3jFx :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (l_a3jFw :: TyFun b6989586621679796403 (TyFun [a6989586621679796402] b6989586621679796403 -> Type))
data Foldl'Sym2 (l_a3jFA :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (l_a3jFB :: b6989586621679796403) (l_a3jFz :: TyFun [a6989586621679796402] b6989586621679796403)
type Foldl'Sym3 (t_a3jFr :: TyFun b6989586621679796403 (TyFun a6989586621679796402 b6989586621679796403 -> Type) -> Type) (t_a3jFs :: b6989586621679796403) (t_a3jFt :: [a6989586621679796402]) = Foldl' t_a3jFr t_a3jFs t_a3jFt
data Foldl1Sym0 (l_a3jBY :: TyFun (TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (TyFun [a6989586621679796401] a6989586621679796401 -> Type))
data Foldl1Sym1 (l_a3jC1 :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (l_a3jC0 :: TyFun [a6989586621679796401] a6989586621679796401)
type Foldl1Sym2 (t_a3jBW :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (t_a3jBX :: [a6989586621679796401]) = Foldl1 t_a3jBW t_a3jBX
data Foldl1'Sym0 (l_a3jGP :: TyFun (TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (TyFun [a6989586621679796400] a6989586621679796400 -> Type))
data Foldl1'Sym1 (l_a3jGS :: TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (l_a3jGR :: TyFun [a6989586621679796400] a6989586621679796400)
type Foldl1'Sym2 (t_a3jGN :: TyFun a6989586621679796400 (TyFun a6989586621679796400 a6989586621679796400 -> Type) -> Type) (t_a3jGO :: [a6989586621679796400]) = Foldl1' t_a3jGN t_a3jGO
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data Foldr1Sym0 (l_a3jBl :: TyFun (TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (TyFun [a6989586621679796399] a6989586621679796399 -> Type))
data Foldr1Sym1 (l_a3jBo :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (l_a3jBn :: TyFun [a6989586621679796399] a6989586621679796399)
type Foldr1Sym2 (t_a3jBj :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (t_a3jBk :: [a6989586621679796399]) = Foldr1 t_a3jBj t_a3jBk
data ConcatSym0 (l_a3jBf :: TyFun [[a6989586621679796398]] [a6989586621679796398])
type ConcatSym1 (t_a3jBe :: [[a6989586621679796398]]) = Concat t_a3jBe
data ConcatMapSym0 (l_a3jB1 :: TyFun (TyFun a6989586621679796396 [b6989586621679796397] -> Type) (TyFun [a6989586621679796396] [b6989586621679796397] -> Type))
data ConcatMapSym1 (l_a3jB4 :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (l_a3jB3 :: TyFun [a6989586621679796396] [b6989586621679796397])
type ConcatMapSym2 (t_a3jAZ :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (t_a3jB0 :: [a6989586621679796396]) = ConcatMap t_a3jAZ t_a3jB0
data AndSym0 (l_a3jAU :: TyFun [Bool] Bool)
type AndSym1 (t_a3jAT :: [Bool]) = And t_a3jAT
data OrSym0 (l_a3jAO :: TyFun [Bool] Bool)
type OrSym1 (t_a3jAN :: [Bool]) = Or t_a3jAN
data Any_Sym0 (l_a3fQW :: TyFun (TyFun a6989586621679785711 Bool -> Type) (TyFun [a6989586621679785711] Bool -> Type))
data Any_Sym1 (l_a3fQZ :: TyFun a6989586621679785711 Bool -> Type) (l_a3fQY :: TyFun [a6989586621679785711] Bool)
type Any_Sym2 (t_a3fQU :: TyFun a6989586621679785711 Bool -> Type) (t_a3fQV :: [a6989586621679785711]) = Any_ t_a3fQU t_a3fQV
data AllSym0 (l_a3jAA :: TyFun (TyFun a6989586621679796395 Bool -> Type) (TyFun [a6989586621679796395] Bool -> Type))
data AllSym1 (l_a3jAD :: TyFun a6989586621679796395 Bool -> Type) (l_a3jAC :: TyFun [a6989586621679796395] Bool)
type AllSym2 (t_a3jAy :: TyFun a6989586621679796395 Bool -> Type) (t_a3jAz :: [a6989586621679796395]) = All t_a3jAy t_a3jAz
data ScanlSym0 (l_a3jzZ :: TyFun (TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type) -> Type))
data ScanlSym1 (l_a3jA2 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA1 :: TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type))
data ScanlSym2 (l_a3jA5 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA6 :: b6989586621679796393) (l_a3jA4 :: TyFun [a6989586621679796394] [b6989586621679796393])
type ScanlSym3 (t_a3jzW :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (t_a3jzX :: b6989586621679796393) (t_a3jzY :: [a6989586621679796394]) = Scanl t_a3jzW t_a3jzX t_a3jzY
data Scanl1Sym0 (l_a3jAl :: TyFun (TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (TyFun [a6989586621679796392] [a6989586621679796392] -> Type))
data Scanl1Sym1 (l_a3jAo :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (l_a3jAn :: TyFun [a6989586621679796392] [a6989586621679796392])
type Scanl1Sym2 (t_a3jAj :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (t_a3jAk :: [a6989586621679796392]) = Scanl1 t_a3jAj t_a3jAk
data ScanrSym0 (l_a3jze :: TyFun (TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type) -> Type))
data ScanrSym1 (l_a3jzh :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzg :: TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type))
data ScanrSym2 (l_a3jzk :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzl :: b6989586621679796391) (l_a3jzj :: TyFun [a6989586621679796390] [b6989586621679796391])
type ScanrSym3 (t_a3jzb :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (t_a3jzc :: b6989586621679796391) (t_a3jzd :: [a6989586621679796390]) = Scanr t_a3jzb t_a3jzc t_a3jzd
data Scanr1Sym0 (l_a3jyc :: TyFun (TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (TyFun [a6989586621679796389] [a6989586621679796389] -> Type))
data Scanr1Sym1 (l_a3jyf :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (l_a3jye :: TyFun [a6989586621679796389] [a6989586621679796389])
type Scanr1Sym2 (t_a3jya :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (t_a3jyb :: [a6989586621679796389]) = Scanr1 t_a3jya t_a3jyb
data MapAccumLSym0 (l_a3jvr :: TyFun (TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (TyFun acc6989586621679796386 (TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]) -> Type) -> Type))
data MapAccumLSym1 (l_a3jvu :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (l_a3jvt :: TyFun acc6989586621679796386 (TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]) -> Type))
data MapAccumLSym2 (l_a3jvx :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (l_a3jvy :: acc6989586621679796386) (l_a3jvw :: TyFun [x6989586621679796387] (acc6989586621679796386, [y6989586621679796388]))
type MapAccumLSym3 (t_a3jvo :: TyFun acc6989586621679796386 (TyFun x6989586621679796387 (acc6989586621679796386, y6989586621679796388) -> Type) -> Type) (t_a3jvp :: acc6989586621679796386) (t_a3jvq :: [x6989586621679796387]) = MapAccumL t_a3jvo t_a3jvp t_a3jvq
data MapAccumRSym0 (l_a3jsF :: TyFun (TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (TyFun acc6989586621679796383 (TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]) -> Type) -> Type))
data MapAccumRSym1 (l_a3jsI :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (l_a3jsH :: TyFun acc6989586621679796383 (TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]) -> Type))
data MapAccumRSym2 (l_a3jsL :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (l_a3jsM :: acc6989586621679796383) (l_a3jsK :: TyFun [x6989586621679796384] (acc6989586621679796383, [y6989586621679796385]))
type MapAccumRSym3 (t_a3jsC :: TyFun acc6989586621679796383 (TyFun x6989586621679796384 (acc6989586621679796383, y6989586621679796385) -> Type) -> Type) (t_a3jsD :: acc6989586621679796383) (t_a3jsE :: [x6989586621679796384]) = MapAccumR t_a3jsC t_a3jsD t_a3jsE
data UnfoldrSym0 (l_a3jsg :: TyFun (TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (TyFun b6989586621679796381 [a6989586621679796382] -> Type))
data UnfoldrSym1 (l_a3jsj :: TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (l_a3jsi :: TyFun b6989586621679796381 [a6989586621679796382])
type UnfoldrSym2 (t_a3jse :: TyFun b6989586621679796381 (Maybe (a6989586621679796382, b6989586621679796381)) -> Type) (t_a3jsf :: b6989586621679796381) = Unfoldr t_a3jse t_a3jsf
data InitsSym0 (l_a3js5 :: TyFun [a6989586621679796380] [[a6989586621679796380]])
type InitsSym1 (t_a3js4 :: [a6989586621679796380]) = Inits t_a3js4
data TailsSym0 (l_a3jrI :: TyFun [a6989586621679796379] [[a6989586621679796379]])
type TailsSym1 (t_a3jrH :: [a6989586621679796379]) = Tails t_a3jrH
data IsPrefixOfSym0 (l_a3jrk :: TyFun [a6989586621679796378] (TyFun [a6989586621679796378] Bool -> Type))
data IsPrefixOfSym1 (l_a3jrn :: [a6989586621679796378]) (l_a3jrm :: TyFun [a6989586621679796378] Bool)
type IsPrefixOfSym2 (t_a3jri :: [a6989586621679796378]) (t_a3jrj :: [a6989586621679796378]) = IsPrefixOf t_a3jri t_a3jrj
data IsSuffixOfSym0 (l_a3jOF :: TyFun [a6989586621679796377] (TyFun [a6989586621679796377] Bool -> Type))
data IsSuffixOfSym1 (l_a3jOI :: [a6989586621679796377]) (l_a3jOH :: TyFun [a6989586621679796377] Bool)
type IsSuffixOfSym2 (t_a3jOD :: [a6989586621679796377]) (t_a3jOE :: [a6989586621679796377]) = IsSuffixOf t_a3jOD t_a3jOE
data IsInfixOfSym0 (l_a3jrV :: TyFun [a6989586621679796376] (TyFun [a6989586621679796376] Bool -> Type))
data IsInfixOfSym1 (l_a3jrY :: [a6989586621679796376]) (l_a3jrX :: TyFun [a6989586621679796376] Bool)
type IsInfixOfSym2 (t_a3jrT :: [a6989586621679796376]) (t_a3jrU :: [a6989586621679796376]) = IsInfixOf t_a3jrT t_a3jrU
data ElemSym0 (l_a3jqj :: TyFun a6989586621679796375 (TyFun [a6989586621679796375] Bool -> Type))
data ElemSym1 (l_a3jqm :: a6989586621679796375) (l_a3jql :: TyFun [a6989586621679796375] Bool)
type ElemSym2 (t_a3jqh :: a6989586621679796375) (t_a3jqi :: [a6989586621679796375]) = Elem t_a3jqh t_a3jqi
data NotElemSym0 (l_a3jq4 :: TyFun a6989586621679796374 (TyFun [a6989586621679796374] Bool -> Type))
data NotElemSym1 (l_a3jq7 :: a6989586621679796374) (l_a3jq6 :: TyFun [a6989586621679796374] Bool)
type NotElemSym2 (t_a3jq2 :: a6989586621679796374) (t_a3jq3 :: [a6989586621679796374]) = NotElem t_a3jq2 t_a3jq3
data ZipSym0 (l_a3jo1 :: TyFun [a6989586621679796372] (TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)] -> Type))
data ZipSym1 (l_a3jo4 :: [a6989586621679796372]) (l_a3jo3 :: TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)])
type ZipSym2 (t_a3jnZ :: [a6989586621679796372]) (t_a3jo0 :: [b6989586621679796373]) = Zip t_a3jnZ t_a3jo0
data Zip3Sym0 (l_a3jmP :: TyFun [a6989586621679796369] (TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type) -> Type))
data Zip3Sym1 (l_a3jmS :: [a6989586621679796369]) (l_a3jmR :: TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type))
data Zip3Sym2 (l_a3jmV :: [a6989586621679796369]) (l_a3jmW :: [b6989586621679796370]) (l_a3jmU :: TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)])
type Zip3Sym3 (t_a3jmM :: [a6989586621679796369]) (t_a3jmN :: [b6989586621679796370]) (t_a3jmO :: [c6989586621679796371]) = Zip3 t_a3jmM t_a3jmN t_a3jmO
data ZipWithSym0 (l_a3jma :: TyFun (TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type) -> Type))
data ZipWithSym1 (l_a3jmd :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmc :: TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type))
data ZipWithSym2 (l_a3jmg :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmh :: [a6989586621679796366]) (l_a3jmf :: TyFun [b6989586621679796367] [c6989586621679796368])
type ZipWithSym3 (t_a3jm7 :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (t_a3jm8 :: [a6989586621679796366]) (t_a3jm9 :: [b6989586621679796367]) = ZipWith t_a3jm7 t_a3jm8 t_a3jm9
data ZipWith3Sym0 (l_a3jkv :: TyFun (TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a3jky :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkx :: TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type))
data ZipWith3Sym2 (l_a3jkB :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkC :: [a6989586621679796362]) (l_a3jkA :: TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type))
data ZipWith3Sym3 (l_a3jkF :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkG :: [a6989586621679796362]) (l_a3jkH :: [b6989586621679796363]) (l_a3jkE :: TyFun [c6989586621679796364] [d6989586621679796365])
type ZipWith3Sym4 (t_a3jkr :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (t_a3jks :: [a6989586621679796362]) (t_a3jkt :: [b6989586621679796363]) (t_a3jku :: [c6989586621679796364]) = ZipWith3 t_a3jkr t_a3jks t_a3jkt t_a3jku
data UnzipSym0 (l_a3jjY :: TyFun [(a6989586621679796360, b6989586621679796361)] ([a6989586621679796360], [b6989586621679796361]))
type UnzipSym1 (t_a3jjX :: [(a6989586621679796360, b6989586621679796361)]) = Unzip t_a3jjX
data Unzip3Sym0 (l_a3jjs :: TyFun [(a6989586621679796357, b6989586621679796358, c6989586621679796359)] ([a6989586621679796357], [b6989586621679796358], [c6989586621679796359]))
type Unzip3Sym1 (t_a3jjr :: [(a6989586621679796357, b6989586621679796358, c6989586621679796359)]) = Unzip3 t_a3jjr
data Unzip4Sym0 (l_a3jiU :: TyFun [(a6989586621679796353, b6989586621679796354, c6989586621679796355, d6989586621679796356)] ([a6989586621679796353], [b6989586621679796354], [c6989586621679796355], [d6989586621679796356]))
type Unzip4Sym1 (t_a3jiT :: [(a6989586621679796353, b6989586621679796354, c6989586621679796355, d6989586621679796356)]) = Unzip4 t_a3jiT
data Unzip5Sym0 (l_a3jik :: TyFun [(a6989586621679796348, b6989586621679796349, c6989586621679796350, d6989586621679796351, e6989586621679796352)] ([a6989586621679796348], [b6989586621679796349], [c6989586621679796350], [d6989586621679796351], [e6989586621679796352]))
type Unzip5Sym1 (t_a3jij :: [(a6989586621679796348, b6989586621679796349, c6989586621679796350, d6989586621679796351, e6989586621679796352)]) = Unzip5 t_a3jij
data Unzip6Sym0 (l_a3jhI :: TyFun [(a6989586621679796342, b6989586621679796343, c6989586621679796344, d6989586621679796345, e6989586621679796346, f6989586621679796347)] ([a6989586621679796342], [b6989586621679796343], [c6989586621679796344], [d6989586621679796345], [e6989586621679796346], [f6989586621679796347]))
type Unzip6Sym1 (t_a3jhH :: [(a6989586621679796342, b6989586621679796343, c6989586621679796344, d6989586621679796345, e6989586621679796346, f6989586621679796347)]) = Unzip6 t_a3jhH
data Unzip7Sym0 (l_a3jh4 :: TyFun [(a6989586621679796335, b6989586621679796336, c6989586621679796337, d6989586621679796338, e6989586621679796339, f6989586621679796340, g6989586621679796341)] ([a6989586621679796335], [b6989586621679796336], [c6989586621679796337], [d6989586621679796338], [e6989586621679796339], [f6989586621679796340], [g6989586621679796341]))
type Unzip7Sym1 (t_a3jh3 :: [(a6989586621679796335, b6989586621679796336, c6989586621679796337, d6989586621679796338, e6989586621679796339, f6989586621679796340, g6989586621679796341)]) = Unzip7 t_a3jh3
data DeleteSym0 (l_a3jgF :: TyFun a6989586621679796334 (TyFun [a6989586621679796334] [a6989586621679796334] -> Type))
data DeleteSym1 (l_a3jgI :: a6989586621679796334) (l_a3jgH :: TyFun [a6989586621679796334] [a6989586621679796334])
type DeleteSym2 (t_a3jgD :: a6989586621679796334) (t_a3jgE :: [a6989586621679796334]) = Delete t_a3jgD t_a3jgE
data (:\\$) (l_a3jgU :: TyFun [a6989586621679796333] (TyFun [a6989586621679796333] [a6989586621679796333] -> Type))
data (:\\$$) (l_a3jgX :: [a6989586621679796333]) (l_a3jgW :: TyFun [a6989586621679796333] [a6989586621679796333])
type (:\\$$$) (t_a3jgS :: [a6989586621679796333]) (t_a3jgT :: [a6989586621679796333]) = (:\\) t_a3jgS t_a3jgT
data IntersectSym0 (l_a3jdf :: TyFun [a6989586621679796320] (TyFun [a6989586621679796320] [a6989586621679796320] -> Type))
data IntersectSym1 (l_a3jdi :: [a6989586621679796320]) (l_a3jdh :: TyFun [a6989586621679796320] [a6989586621679796320])
type IntersectSym2 (t_a3jdd :: [a6989586621679796320]) (t_a3jde :: [a6989586621679796320]) = Intersect t_a3jdd t_a3jde
data InsertSym0 (l_a3jes :: TyFun a6989586621679796307 (TyFun [a6989586621679796307] [a6989586621679796307] -> Type))
data InsertSym1 (l_a3jev :: a6989586621679796307) (l_a3jeu :: TyFun [a6989586621679796307] [a6989586621679796307])
type InsertSym2 (t_a3jeq :: a6989586621679796307) (t_a3jer :: [a6989586621679796307]) = Insert t_a3jeq t_a3jer
data SortSym0 (l_a3jeR :: TyFun [a6989586621679796306] [a6989586621679796306])
type SortSym1 (t_a3jeQ :: [a6989586621679796306]) = Sort t_a3jeQ
data DeleteBySym0 (l_a3jeY :: TyFun (TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (TyFun a6989586621679796332 (TyFun [a6989586621679796332] [a6989586621679796332] -> Type) -> Type))
data DeleteBySym1 (l_a3jf1 :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (l_a3jf0 :: TyFun a6989586621679796332 (TyFun [a6989586621679796332] [a6989586621679796332] -> Type))
data DeleteBySym2 (l_a3jf4 :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (l_a3jf5 :: a6989586621679796332) (l_a3jf3 :: TyFun [a6989586621679796332] [a6989586621679796332])
type DeleteBySym3 (t_a3jeV :: TyFun a6989586621679796332 (TyFun a6989586621679796332 Bool -> Type) -> Type) (t_a3jeW :: a6989586621679796332) (t_a3jeX :: [a6989586621679796332]) = DeleteBy t_a3jeV t_a3jeW t_a3jeX
data DeleteFirstsBySym0 (l_a3jfJ :: TyFun (TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (TyFun [a6989586621679796331] (TyFun [a6989586621679796331] [a6989586621679796331] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a3jfM :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (l_a3jfL :: TyFun [a6989586621679796331] (TyFun [a6989586621679796331] [a6989586621679796331] -> Type))
data DeleteFirstsBySym2 (l_a3jfP :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (l_a3jfQ :: [a6989586621679796331]) (l_a3jfO :: TyFun [a6989586621679796331] [a6989586621679796331])
type DeleteFirstsBySym3 (t_a3jfG :: TyFun a6989586621679796331 (TyFun a6989586621679796331 Bool -> Type) -> Type) (t_a3jfH :: [a6989586621679796331]) (t_a3jfI :: [a6989586621679796331]) = DeleteFirstsBy t_a3jfG t_a3jfH t_a3jfI
data IntersectBySym0 (l_a3jb7 :: TyFun (TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (TyFun [a6989586621679796319] (TyFun [a6989586621679796319] [a6989586621679796319] -> Type) -> Type))
data IntersectBySym1 (l_a3jba :: TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (l_a3jb9 :: TyFun [a6989586621679796319] (TyFun [a6989586621679796319] [a6989586621679796319] -> Type))
data IntersectBySym2 (l_a3jbd :: TyFun a6989586621679796319 (TyFun a6989586621679796319 Bool -> Type) -> Type) (l_a3jbe :: [a6989586621679796319]) (l_a3jbc :: TyFun [a6989586621679796319] [a6989586621679796319])
data SortBySym0 (l_a3jeD :: TyFun (TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (TyFun [a6989586621679796330] [a6989586621679796330] -> Type))
data SortBySym1 (l_a3jeG :: TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (l_a3jeF :: TyFun [a6989586621679796330] [a6989586621679796330])
type SortBySym2 (t_a3jeB :: TyFun a6989586621679796330 (TyFun a6989586621679796330 Ordering -> Type) -> Type) (t_a3jeC :: [a6989586621679796330]) = SortBy t_a3jeB t_a3jeC
data InsertBySym0 (l_a3jdr :: TyFun (TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (TyFun a6989586621679796329 (TyFun [a6989586621679796329] [a6989586621679796329] -> Type) -> Type))
data InsertBySym1 (l_a3jdu :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (l_a3jdt :: TyFun a6989586621679796329 (TyFun [a6989586621679796329] [a6989586621679796329] -> Type))
data InsertBySym2 (l_a3jdx :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (l_a3jdy :: a6989586621679796329) (l_a3jdw :: TyFun [a6989586621679796329] [a6989586621679796329])
type InsertBySym3 (t_a3jdo :: TyFun a6989586621679796329 (TyFun a6989586621679796329 Ordering -> Type) -> Type) (t_a3jdp :: a6989586621679796329) (t_a3jdq :: [a6989586621679796329]) = InsertBy t_a3jdo t_a3jdp t_a3jdq
data MaximumBySym0 (l_a3jCd :: TyFun (TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (TyFun [a6989586621679796328] a6989586621679796328 -> Type))
data MaximumBySym1 (l_a3jCg :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (l_a3jCf :: TyFun [a6989586621679796328] a6989586621679796328)
type MaximumBySym2 (t_a3jCb :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (t_a3jCc :: [a6989586621679796328]) = MaximumBy t_a3jCb t_a3jCc
data MinimumBySym0 (l_a3jDC :: TyFun (TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (TyFun [a6989586621679796327] a6989586621679796327 -> Type))
data MinimumBySym1 (l_a3jDF :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (l_a3jDE :: TyFun [a6989586621679796327] a6989586621679796327)
type MinimumBySym2 (t_a3jDA :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (t_a3jDB :: [a6989586621679796327]) = MinimumBy t_a3jDA t_a3jDB
data LengthSym0 (l_a3j14 :: TyFun [a6989586621679796298] Nat)
type LengthSym1 (t_a3j13 :: [a6989586621679796298]) = Length t_a3j13
data SumSym0 (l_a3j1A :: TyFun [a6989586621679796300] a6989586621679796300)
type SumSym1 (t_a3j1z :: [a6989586621679796300]) = Sum t_a3j1z
data ProductSym0 (l_a3j1c :: TyFun [a6989586621679796299] a6989586621679796299)
type ProductSym1 (t_a3j1b :: [a6989586621679796299]) = Product t_a3j1b
data ReplicateSym0 (l_a3j0J :: TyFun Nat (TyFun a6989586621679796297 [a6989586621679796297] -> Type))
data ReplicateSym1 (l_a3j0M :: Nat) (l_a3j0L :: TyFun a6989586621679796297 [a6989586621679796297])
type ReplicateSym2 (t_a3j0H :: Nat) (t_a3j0I :: a6989586621679796297) = Replicate t_a3j0H t_a3j0I
data TransposeSym0 (l_a3jQT :: TyFun [[a6989586621679796296]] [[a6989586621679796296]])
type TransposeSym1 (t_a3jQS :: [[a6989586621679796296]]) = Transpose t_a3jQS
data TakeSym0 (l_a3j3U :: TyFun Nat (TyFun [a6989586621679796313] [a6989586621679796313] -> Type))
data TakeSym1 (l_a3j3X :: Nat) (l_a3j3W :: TyFun [a6989586621679796313] [a6989586621679796313])
type TakeSym2 (t_a3j3S :: Nat) (t_a3j3T :: [a6989586621679796313]) = Take t_a3j3S t_a3j3T
data DropSym0 (l_a3j3p :: TyFun Nat (TyFun [a6989586621679796312] [a6989586621679796312] -> Type))
data DropSym1 (l_a3j3s :: Nat) (l_a3j3r :: TyFun [a6989586621679796312] [a6989586621679796312])
type DropSym2 (t_a3j3n :: Nat) (t_a3j3o :: [a6989586621679796312]) = Drop t_a3j3n t_a3j3o
data SplitAtSym0 (l_a3j4p :: TyFun Nat (TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]) -> Type))
data SplitAtSym1 (l_a3j4s :: Nat) (l_a3j4r :: TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]))
type SplitAtSym2 (t_a3j4n :: Nat) (t_a3j4o :: [a6989586621679796311]) = SplitAt t_a3j4n t_a3j4o
data TakeWhileSym0 (l_a3j9V :: TyFun (TyFun a6989586621679796318 Bool -> Type) (TyFun [a6989586621679796318] [a6989586621679796318] -> Type))
data TakeWhileSym1 (l_a3j9Y :: TyFun a6989586621679796318 Bool -> Type) (l_a3j9X :: TyFun [a6989586621679796318] [a6989586621679796318])
type TakeWhileSym2 (t_a3j9T :: TyFun a6989586621679796318 Bool -> Type) (t_a3j9U :: [a6989586621679796318]) = TakeWhile t_a3j9T t_a3j9U
data DropWhileSym0 (l_a3j9d :: TyFun (TyFun a6989586621679796317 Bool -> Type) (TyFun [a6989586621679796317] [a6989586621679796317] -> Type))
data DropWhileSym1 (l_a3j9g :: TyFun a6989586621679796317 Bool -> Type) (l_a3j9f :: TyFun [a6989586621679796317] [a6989586621679796317])
type DropWhileSym2 (t_a3j9b :: TyFun a6989586621679796317 Bool -> Type) (t_a3j9c :: [a6989586621679796317]) = DropWhile t_a3j9b t_a3j9c
data DropWhileEndSym0 (l_a3jP0 :: TyFun (TyFun a6989586621679796316 Bool -> Type) (TyFun [a6989586621679796316] [a6989586621679796316] -> Type))
data DropWhileEndSym1 (l_a3jP3 :: TyFun a6989586621679796316 Bool -> Type) (l_a3jP2 :: TyFun [a6989586621679796316] [a6989586621679796316])
type DropWhileEndSym2 (t_a3jOY :: TyFun a6989586621679796316 Bool -> Type) (t_a3jOZ :: [a6989586621679796316]) = DropWhileEnd t_a3jOY t_a3jOZ
data SpanSym0 (l_a3j6h :: TyFun (TyFun a6989586621679796315 Bool -> Type) (TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]) -> Type))
data SpanSym1 (l_a3j6k :: TyFun a6989586621679796315 Bool -> Type) (l_a3j6j :: TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]))
type SpanSym2 (t_a3j6f :: TyFun a6989586621679796315 Bool -> Type) (t_a3j6g :: [a6989586621679796315]) = Span t_a3j6f t_a3j6g
data BreakSym0 (l_a3j4A :: TyFun (TyFun a6989586621679796314 Bool -> Type) (TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]) -> Type))
data BreakSym1 (l_a3j4D :: TyFun a6989586621679796314 Bool -> Type) (l_a3j4C :: TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]))
type BreakSym2 (t_a3j4y :: TyFun a6989586621679796314 Bool -> Type) (t_a3j4z :: [a6989586621679796314]) = Break t_a3j4y t_a3j4z
data StripPrefixSym0 (l_a4nbS :: TyFun [a6989586621680051561] (TyFun [a6989586621680051561] (Maybe [a6989586621680051561]) -> Type))
data StripPrefixSym1 (l_a4nbV :: [a6989586621680051561]) (l_a4nbU :: TyFun [a6989586621680051561] (Maybe [a6989586621680051561]))
type StripPrefixSym2 (t_a4nbQ :: [a6989586621680051561]) (t_a4nbR :: [a6989586621680051561]) = StripPrefix t_a4nbQ t_a4nbR
data MaximumSym0 (l_a3jF0 :: TyFun [a6989586621679796309] a6989586621679796309)
type MaximumSym1 (t_a3jEZ :: [a6989586621679796309]) = Maximum t_a3jEZ
data MinimumSym0 (l_a3jFe :: TyFun [a6989586621679796308] a6989586621679796308)
type MinimumSym1 (t_a3jFd :: [a6989586621679796308]) = Minimum t_a3jFd
data GroupSym0 (l_a3j97 :: TyFun [a6989586621679796310] [[a6989586621679796310]])
type GroupSym1 (t_a3j96 :: [a6989586621679796310]) = Group t_a3j96
data GroupBySym0 (l_a3j7Y :: TyFun (TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (TyFun [a6989586621679796305] [[a6989586621679796305]] -> Type))
data GroupBySym1 (l_a3j81 :: TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (l_a3j80 :: TyFun [a6989586621679796305] [[a6989586621679796305]])
type GroupBySym2 (t_a3j7W :: TyFun a6989586621679796305 (TyFun a6989586621679796305 Bool -> Type) -> Type) (t_a3j7X :: [a6989586621679796305]) = GroupBy t_a3j7W t_a3j7X
data LookupSym0 (l_a3j2P :: TyFun a6989586621679796303 (TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304) -> Type))
data LookupSym1 (l_a3j2S :: a6989586621679796303) (l_a3j2R :: TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304))
type LookupSym2 (t_a3j2N :: a6989586621679796303) (t_a3j2O :: [(a6989586621679796303, b6989586621679796304)]) = Lookup t_a3j2N t_a3j2O
data FindSym0 (l_a3jaT :: TyFun (TyFun a6989586621679796325 Bool -> Type) (TyFun [a6989586621679796325] (Maybe a6989586621679796325) -> Type))
data FindSym1 (l_a3jaW :: TyFun a6989586621679796325 Bool -> Type) (l_a3jaV :: TyFun [a6989586621679796325] (Maybe a6989586621679796325))
type FindSym2 (t_a3jaR :: TyFun a6989586621679796325 Bool -> Type) (t_a3jaS :: [a6989586621679796325]) = Find t_a3jaR t_a3jaS
data FilterSym0 (l_a3jaq :: TyFun (TyFun a6989586621679796326 Bool -> Type) (TyFun [a6989586621679796326] [a6989586621679796326] -> Type))
data FilterSym1 (l_a3jat :: TyFun a6989586621679796326 Bool -> Type) (l_a3jas :: TyFun [a6989586621679796326] [a6989586621679796326])
type FilterSym2 (t_a3jao :: TyFun a6989586621679796326 Bool -> Type) (t_a3jap :: [a6989586621679796326]) = Filter t_a3jao t_a3jap
data PartitionSym0 (l_a3j2E :: TyFun (TyFun a6989586621679796302 Bool -> Type) (TyFun [a6989586621679796302] ([a6989586621679796302], [a6989586621679796302]) -> Type))
data PartitionSym1 (l_a3j2H :: TyFun a6989586621679796302 Bool -> Type) (l_a3j2G :: TyFun [a6989586621679796302] ([a6989586621679796302], [a6989586621679796302]))
type PartitionSym2 (t_a3j2C :: TyFun a6989586621679796302 Bool -> Type) (t_a3j2D :: [a6989586621679796302]) = Partition t_a3j2C t_a3j2D
data (:!!$) (l_a3j0e :: TyFun [a6989586621679796295] (TyFun Nat a6989586621679796295 -> Type))
data (:!!$$) (l_a3j0h :: [a6989586621679796295]) (l_a3j0g :: TyFun Nat a6989586621679796295)
type (:!!$$$) (t_a3j0c :: [a6989586621679796295]) (t_a3j0d :: Nat) = (:!!) t_a3j0c t_a3j0d
data ElemIndexSym0 (l_a3jpR :: TyFun a6989586621679796324 (TyFun [a6989586621679796324] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a3jpU :: a6989586621679796324) (l_a3jpT :: TyFun [a6989586621679796324] (Maybe Nat))
type ElemIndexSym2 (t_a3jpP :: a6989586621679796324) (t_a3jpQ :: [a6989586621679796324]) = ElemIndex t_a3jpP t_a3jpQ
data ElemIndicesSym0 (l_a3jpr :: TyFun a6989586621679796323 (TyFun [a6989586621679796323] [Nat] -> Type))
data ElemIndicesSym1 (l_a3jpu :: a6989586621679796323) (l_a3jpt :: TyFun [a6989586621679796323] [Nat])
type ElemIndicesSym2 (t_a3jpp :: a6989586621679796323) (t_a3jpq :: [a6989586621679796323]) = ElemIndices t_a3jpp t_a3jpq
data FindIndexSym0 (l_a3jpE :: TyFun (TyFun a6989586621679796322 Bool -> Type) (TyFun [a6989586621679796322] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a3jpH :: TyFun a6989586621679796322 Bool -> Type) (l_a3jpG :: TyFun [a6989586621679796322] (Maybe Nat))
type FindIndexSym2 (t_a3jpC :: TyFun a6989586621679796322 Bool -> Type) (t_a3jpD :: [a6989586621679796322]) = FindIndex t_a3jpC t_a3jpD
data FindIndicesSym0 (l_a3joq :: TyFun (TyFun a6989586621679796321 Bool -> Type) (TyFun [a6989586621679796321] [Nat] -> Type))
data FindIndicesSym1 (l_a3jot :: TyFun a6989586621679796321 Bool -> Type) (l_a3jos :: TyFun [a6989586621679796321] [Nat])
type FindIndicesSym2 (t_a3joo :: TyFun a6989586621679796321 Bool -> Type) (t_a3jop :: [a6989586621679796321]) = FindIndices t_a3joo t_a3jop
data Zip4Sym0 (l_a4nbu :: TyFun [a6989586621680051557] (TyFun [b6989586621680051558] (TyFun [c6989586621680051559] (TyFun [d6989586621680051560] [(a6989586621680051557, b6989586621680051558, c6989586621680051559, d6989586621680051560)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a4nbx :: [a6989586621680051557]) (l_a4nbw :: TyFun [b6989586621680051558] (TyFun [c6989586621680051559] (TyFun [d6989586621680051560] [(a6989586621680051557, b6989586621680051558, c6989586621680051559, d6989586621680051560)] -> Type) -> Type))
data Zip4Sym2 (l_a4nbA :: [a6989586621680051557]) (l_a4nbB :: [b6989586621680051558]) (l_a4nbz :: TyFun [c6989586621680051559] (TyFun [d6989586621680051560] [(a6989586621680051557, b6989586621680051558, c6989586621680051559, d6989586621680051560)] -> Type))
data Zip4Sym3 (l_a4nbE :: [a6989586621680051557]) (l_a4nbF :: [b6989586621680051558]) (l_a4nbG :: [c6989586621680051559]) (l_a4nbD :: TyFun [d6989586621680051560] [(a6989586621680051557, b6989586621680051558, c6989586621680051559, d6989586621680051560)])
type Zip4Sym4 (t_a4nbq :: [a6989586621680051557]) (t_a4nbr :: [b6989586621680051558]) (t_a4nbs :: [c6989586621680051559]) (t_a4nbt :: [d6989586621680051560]) = Zip4 t_a4nbq t_a4nbr t_a4nbs t_a4nbt
data Zip5Sym0 (l_a4naO :: TyFun [a6989586621680051552] (TyFun [b6989586621680051553] (TyFun [c6989586621680051554] (TyFun [d6989586621680051555] (TyFun [e6989586621680051556] [(a6989586621680051552, b6989586621680051553, c6989586621680051554, d6989586621680051555, e6989586621680051556)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a4naR :: [a6989586621680051552]) (l_a4naQ :: TyFun [b6989586621680051553] (TyFun [c6989586621680051554] (TyFun [d6989586621680051555] (TyFun [e6989586621680051556] [(a6989586621680051552, b6989586621680051553, c6989586621680051554, d6989586621680051555, e6989586621680051556)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a4naU :: [a6989586621680051552]) (l_a4naV :: [b6989586621680051553]) (l_a4naT :: TyFun [c6989586621680051554] (TyFun [d6989586621680051555] (TyFun [e6989586621680051556] [(a6989586621680051552, b6989586621680051553, c6989586621680051554, d6989586621680051555, e6989586621680051556)] -> Type) -> Type))
data Zip5Sym3 (l_a4naY :: [a6989586621680051552]) (l_a4naZ :: [b6989586621680051553]) (l_a4nb0 :: [c6989586621680051554]) (l_a4naX :: TyFun [d6989586621680051555] (TyFun [e6989586621680051556] [(a6989586621680051552, b6989586621680051553, c6989586621680051554, d6989586621680051555, e6989586621680051556)] -> Type))
data Zip5Sym4 (l_a4nb3 :: [a6989586621680051552]) (l_a4nb4 :: [b6989586621680051553]) (l_a4nb5 :: [c6989586621680051554]) (l_a4nb6 :: [d6989586621680051555]) (l_a4nb2 :: TyFun [e6989586621680051556] [(a6989586621680051552, b6989586621680051553, c6989586621680051554, d6989586621680051555, e6989586621680051556)])
type Zip5Sym5 (t_a4naJ :: [a6989586621680051552]) (t_a4naK :: [b6989586621680051553]) (t_a4naL :: [c6989586621680051554]) (t_a4naM :: [d6989586621680051555]) (t_a4naN :: [e6989586621680051556]) = Zip5 t_a4naJ t_a4naK t_a4naL t_a4naM t_a4naN
data Zip6Sym0 (l_a4n9W :: TyFun [a6989586621680051546] (TyFun [b6989586621680051547] (TyFun [c6989586621680051548] (TyFun [d6989586621680051549] (TyFun [e6989586621680051550] (TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a4n9Z :: [a6989586621680051546]) (l_a4n9Y :: TyFun [b6989586621680051547] (TyFun [c6989586621680051548] (TyFun [d6989586621680051549] (TyFun [e6989586621680051550] (TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a4na2 :: [a6989586621680051546]) (l_a4na3 :: [b6989586621680051547]) (l_a4na1 :: TyFun [c6989586621680051548] (TyFun [d6989586621680051549] (TyFun [e6989586621680051550] (TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a4na6 :: [a6989586621680051546]) (l_a4na7 :: [b6989586621680051547]) (l_a4na8 :: [c6989586621680051548]) (l_a4na5 :: TyFun [d6989586621680051549] (TyFun [e6989586621680051550] (TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)] -> Type) -> Type))
data Zip6Sym4 (l_a4nab :: [a6989586621680051546]) (l_a4nac :: [b6989586621680051547]) (l_a4nad :: [c6989586621680051548]) (l_a4nae :: [d6989586621680051549]) (l_a4naa :: TyFun [e6989586621680051550] (TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)] -> Type))
data Zip6Sym5 (l_a4nah :: [a6989586621680051546]) (l_a4nai :: [b6989586621680051547]) (l_a4naj :: [c6989586621680051548]) (l_a4nak :: [d6989586621680051549]) (l_a4nal :: [e6989586621680051550]) (l_a4nag :: TyFun [f6989586621680051551] [(a6989586621680051546, b6989586621680051547, c6989586621680051548, d6989586621680051549, e6989586621680051550, f6989586621680051551)])
type Zip6Sym6 (t_a4n9Q :: [a6989586621680051546]) (t_a4n9R :: [b6989586621680051547]) (t_a4n9S :: [c6989586621680051548]) (t_a4n9T :: [d6989586621680051549]) (t_a4n9U :: [e6989586621680051550]) (t_a4n9V :: [f6989586621680051551]) = Zip6 t_a4n9Q t_a4n9R t_a4n9S t_a4n9T t_a4n9U t_a4n9V
data Zip7Sym0 (l_a4n8R :: TyFun [a6989586621680051539] (TyFun [b6989586621680051540] (TyFun [c6989586621680051541] (TyFun [d6989586621680051542] (TyFun [e6989586621680051543] (TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a4n8U :: [a6989586621680051539]) (l_a4n8T :: TyFun [b6989586621680051540] (TyFun [c6989586621680051541] (TyFun [d6989586621680051542] (TyFun [e6989586621680051543] (TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a4n8X :: [a6989586621680051539]) (l_a4n8Y :: [b6989586621680051540]) (l_a4n8W :: TyFun [c6989586621680051541] (TyFun [d6989586621680051542] (TyFun [e6989586621680051543] (TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a4n91 :: [a6989586621680051539]) (l_a4n92 :: [b6989586621680051540]) (l_a4n93 :: [c6989586621680051541]) (l_a4n90 :: TyFun [d6989586621680051542] (TyFun [e6989586621680051543] (TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a4n96 :: [a6989586621680051539]) (l_a4n97 :: [b6989586621680051540]) (l_a4n98 :: [c6989586621680051541]) (l_a4n99 :: [d6989586621680051542]) (l_a4n95 :: TyFun [e6989586621680051543] (TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type) -> Type))
data Zip7Sym5 (l_a4n9c :: [a6989586621680051539]) (l_a4n9d :: [b6989586621680051540]) (l_a4n9e :: [c6989586621680051541]) (l_a4n9f :: [d6989586621680051542]) (l_a4n9g :: [e6989586621680051543]) (l_a4n9b :: TyFun [f6989586621680051544] (TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)] -> Type))
data Zip7Sym6 (l_a4n9j :: [a6989586621680051539]) (l_a4n9k :: [b6989586621680051540]) (l_a4n9l :: [c6989586621680051541]) (l_a4n9m :: [d6989586621680051542]) (l_a4n9n :: [e6989586621680051543]) (l_a4n9o :: [f6989586621680051544]) (l_a4n9i :: TyFun [g6989586621680051545] [(a6989586621680051539, b6989586621680051540, c6989586621680051541, d6989586621680051542, e6989586621680051543, f6989586621680051544, g6989586621680051545)])
type Zip7Sym7 (t_a4n8K :: [a6989586621680051539]) (t_a4n8L :: [b6989586621680051540]) (t_a4n8M :: [c6989586621680051541]) (t_a4n8N :: [d6989586621680051542]) (t_a4n8O :: [e6989586621680051543]) (t_a4n8P :: [f6989586621680051544]) (t_a4n8Q :: [g6989586621680051545]) = Zip7 t_a4n8K t_a4n8L t_a4n8M t_a4n8N t_a4n8O t_a4n8P t_a4n8Q
data ZipWith4Sym0 (l_a4n7J :: TyFun (TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680051534] (TyFun [b6989586621680051535] (TyFun [c6989586621680051536] (TyFun [d6989586621680051537] [e6989586621680051538] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a4n7M :: TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (l_a4n7L :: TyFun [a6989586621680051534] (TyFun [b6989586621680051535] (TyFun [c6989586621680051536] (TyFun [d6989586621680051537] [e6989586621680051538] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a4n7P :: TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (l_a4n7Q :: [a6989586621680051534]) (l_a4n7O :: TyFun [b6989586621680051535] (TyFun [c6989586621680051536] (TyFun [d6989586621680051537] [e6989586621680051538] -> Type) -> Type))
data ZipWith4Sym3 (l_a4n7T :: TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (l_a4n7U :: [a6989586621680051534]) (l_a4n7V :: [b6989586621680051535]) (l_a4n7S :: TyFun [c6989586621680051536] (TyFun [d6989586621680051537] [e6989586621680051538] -> Type))
data ZipWith4Sym4 (l_a4n7Y :: TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (l_a4n7Z :: [a6989586621680051534]) (l_a4n80 :: [b6989586621680051535]) (l_a4n81 :: [c6989586621680051536]) (l_a4n7X :: TyFun [d6989586621680051537] [e6989586621680051538])
type ZipWith4Sym5 (t_a4n7E :: TyFun a6989586621680051534 (TyFun b6989586621680051535 (TyFun c6989586621680051536 (TyFun d6989586621680051537 e6989586621680051538 -> Type) -> Type) -> Type) -> Type) (t_a4n7F :: [a6989586621680051534]) (t_a4n7G :: [b6989586621680051535]) (t_a4n7H :: [c6989586621680051536]) (t_a4n7I :: [d6989586621680051537]) = ZipWith4 t_a4n7E t_a4n7F t_a4n7G t_a4n7H t_a4n7I
data ZipWith5Sym0 (l_a4n6E :: TyFun (TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680051528] (TyFun [b6989586621680051529] (TyFun [c6989586621680051530] (TyFun [d6989586621680051531] (TyFun [e6989586621680051532] [f6989586621680051533] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a4n6H :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n6G :: TyFun [a6989586621680051528] (TyFun [b6989586621680051529] (TyFun [c6989586621680051530] (TyFun [d6989586621680051531] (TyFun [e6989586621680051532] [f6989586621680051533] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a4n6K :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n6L :: [a6989586621680051528]) (l_a4n6J :: TyFun [b6989586621680051529] (TyFun [c6989586621680051530] (TyFun [d6989586621680051531] (TyFun [e6989586621680051532] [f6989586621680051533] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a4n6O :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n6P :: [a6989586621680051528]) (l_a4n6Q :: [b6989586621680051529]) (l_a4n6N :: TyFun [c6989586621680051530] (TyFun [d6989586621680051531] (TyFun [e6989586621680051532] [f6989586621680051533] -> Type) -> Type))
data ZipWith5Sym4 (l_a4n6T :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n6U :: [a6989586621680051528]) (l_a4n6V :: [b6989586621680051529]) (l_a4n6W :: [c6989586621680051530]) (l_a4n6S :: TyFun [d6989586621680051531] (TyFun [e6989586621680051532] [f6989586621680051533] -> Type))
data ZipWith5Sym5 (l_a4n6Z :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n70 :: [a6989586621680051528]) (l_a4n71 :: [b6989586621680051529]) (l_a4n72 :: [c6989586621680051530]) (l_a4n73 :: [d6989586621680051531]) (l_a4n6Y :: TyFun [e6989586621680051532] [f6989586621680051533])
type ZipWith5Sym6 (t_a4n6y :: TyFun a6989586621680051528 (TyFun b6989586621680051529 (TyFun c6989586621680051530 (TyFun d6989586621680051531 (TyFun e6989586621680051532 f6989586621680051533 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a4n6z :: [a6989586621680051528]) (t_a4n6A :: [b6989586621680051529]) (t_a4n6B :: [c6989586621680051530]) (t_a4n6C :: [d6989586621680051531]) (t_a4n6D :: [e6989586621680051532]) = ZipWith5 t_a4n6y t_a4n6z t_a4n6A t_a4n6B t_a4n6C t_a4n6D
data ZipWith6Sym0 (l_a4n5k :: TyFun (TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680051521] (TyFun [b6989586621680051522] (TyFun [c6989586621680051523] (TyFun [d6989586621680051524] (TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a4n5n :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5m :: TyFun [a6989586621680051521] (TyFun [b6989586621680051522] (TyFun [c6989586621680051523] (TyFun [d6989586621680051524] (TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a4n5q :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5r :: [a6989586621680051521]) (l_a4n5p :: TyFun [b6989586621680051522] (TyFun [c6989586621680051523] (TyFun [d6989586621680051524] (TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a4n5u :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5v :: [a6989586621680051521]) (l_a4n5w :: [b6989586621680051522]) (l_a4n5t :: TyFun [c6989586621680051523] (TyFun [d6989586621680051524] (TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a4n5z :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5A :: [a6989586621680051521]) (l_a4n5B :: [b6989586621680051522]) (l_a4n5C :: [c6989586621680051523]) (l_a4n5y :: TyFun [d6989586621680051524] (TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type) -> Type))
data ZipWith6Sym5 (l_a4n5F :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5G :: [a6989586621680051521]) (l_a4n5H :: [b6989586621680051522]) (l_a4n5I :: [c6989586621680051523]) (l_a4n5J :: [d6989586621680051524]) (l_a4n5E :: TyFun [e6989586621680051525] (TyFun [f6989586621680051526] [g6989586621680051527] -> Type))
data ZipWith6Sym6 (l_a4n5M :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n5N :: [a6989586621680051521]) (l_a4n5O :: [b6989586621680051522]) (l_a4n5P :: [c6989586621680051523]) (l_a4n5Q :: [d6989586621680051524]) (l_a4n5R :: [e6989586621680051525]) (l_a4n5L :: TyFun [f6989586621680051526] [g6989586621680051527])
type ZipWith6Sym7 (t_a4n5d :: TyFun a6989586621680051521 (TyFun b6989586621680051522 (TyFun c6989586621680051523 (TyFun d6989586621680051524 (TyFun e6989586621680051525 (TyFun f6989586621680051526 g6989586621680051527 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a4n5e :: [a6989586621680051521]) (t_a4n5f :: [b6989586621680051522]) (t_a4n5g :: [c6989586621680051523]) (t_a4n5h :: [d6989586621680051524]) (t_a4n5i :: [e6989586621680051525]) (t_a4n5j :: [f6989586621680051526]) = ZipWith6 t_a4n5d t_a4n5e t_a4n5f t_a4n5g t_a4n5h t_a4n5i t_a4n5j
data ZipWith7Sym0 (l_a4n3K :: TyFun (TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680051513] (TyFun [b6989586621680051514] (TyFun [c6989586621680051515] (TyFun [d6989586621680051516] (TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a4n3N :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n3M :: TyFun [a6989586621680051513] (TyFun [b6989586621680051514] (TyFun [c6989586621680051515] (TyFun [d6989586621680051516] (TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a4n3Q :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n3R :: [a6989586621680051513]) (l_a4n3P :: TyFun [b6989586621680051514] (TyFun [c6989586621680051515] (TyFun [d6989586621680051516] (TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a4n3U :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n3V :: [a6989586621680051513]) (l_a4n3W :: [b6989586621680051514]) (l_a4n3T :: TyFun [c6989586621680051515] (TyFun [d6989586621680051516] (TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a4n3Z :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n40 :: [a6989586621680051513]) (l_a4n41 :: [b6989586621680051514]) (l_a4n42 :: [c6989586621680051515]) (l_a4n3Y :: TyFun [d6989586621680051516] (TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a4n45 :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n46 :: [a6989586621680051513]) (l_a4n47 :: [b6989586621680051514]) (l_a4n48 :: [c6989586621680051515]) (l_a4n49 :: [d6989586621680051516]) (l_a4n44 :: TyFun [e6989586621680051517] (TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type) -> Type))
data ZipWith7Sym6 (l_a4n4c :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n4d :: [a6989586621680051513]) (l_a4n4e :: [b6989586621680051514]) (l_a4n4f :: [c6989586621680051515]) (l_a4n4g :: [d6989586621680051516]) (l_a4n4h :: [e6989586621680051517]) (l_a4n4b :: TyFun [f6989586621680051518] (TyFun [g6989586621680051519] [h6989586621680051520] -> Type))
data ZipWith7Sym7 (l_a4n4k :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4n4l :: [a6989586621680051513]) (l_a4n4m :: [b6989586621680051514]) (l_a4n4n :: [c6989586621680051515]) (l_a4n4o :: [d6989586621680051516]) (l_a4n4p :: [e6989586621680051517]) (l_a4n4q :: [f6989586621680051518]) (l_a4n4j :: TyFun [g6989586621680051519] [h6989586621680051520])
type ZipWith7Sym8 (t_a4n3C :: TyFun a6989586621680051513 (TyFun b6989586621680051514 (TyFun c6989586621680051515 (TyFun d6989586621680051516 (TyFun e6989586621680051517 (TyFun f6989586621680051518 (TyFun g6989586621680051519 h6989586621680051520 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a4n3D :: [a6989586621680051513]) (t_a4n3E :: [b6989586621680051514]) (t_a4n3F :: [c6989586621680051515]) (t_a4n3G :: [d6989586621680051516]) (t_a4n3H :: [e6989586621680051517]) (t_a4n3I :: [f6989586621680051518]) (t_a4n3J :: [g6989586621680051519]) = ZipWith7 t_a4n3C t_a4n3D t_a4n3E t_a4n3F t_a4n3G t_a4n3H t_a4n3I t_a4n3J
data NubSym0 (l_a3jqx :: TyFun [a6989586621679796294] [a6989586621679796294])
type NubSym1 (t_a3jqw :: [a6989586621679796294]) = Nub t_a3jqw
data NubBySym0 (l_a3iZ9 :: TyFun (TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (TyFun [a6989586621679796293] [a6989586621679796293] -> Type))
data NubBySym1 (l_a3iZc :: TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (l_a3iZb :: TyFun [a6989586621679796293] [a6989586621679796293])
type NubBySym2 (t_a3iZ7 :: TyFun a6989586621679796293 (TyFun a6989586621679796293 Bool -> Type) -> Type) (t_a3iZ8 :: [a6989586621679796293]) = NubBy t_a3iZ7 t_a3iZ8
data UnionSym0 (l_a3jgq :: TyFun [a6989586621679796290] (TyFun [a6989586621679796290] [a6989586621679796290] -> Type))
data UnionSym1 (l_a3jgt :: [a6989586621679796290]) (l_a3jgs :: TyFun [a6989586621679796290] [a6989586621679796290])
type UnionSym2 (t_a3jgo :: [a6989586621679796290]) (t_a3jgp :: [a6989586621679796290]) = Union t_a3jgo t_a3jgp
data UnionBySym0 (l_a3jg5 :: TyFun (TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (TyFun [a6989586621679796291] (TyFun [a6989586621679796291] [a6989586621679796291] -> Type) -> Type))
data UnionBySym1 (l_a3jg8 :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (l_a3jg7 :: TyFun [a6989586621679796291] (TyFun [a6989586621679796291] [a6989586621679796291] -> Type))
data UnionBySym2 (l_a3jgb :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (l_a3jgc :: [a6989586621679796291]) (l_a3jga :: TyFun [a6989586621679796291] [a6989586621679796291])
type UnionBySym3 (t_a3jg2 :: TyFun a6989586621679796291 (TyFun a6989586621679796291 Bool -> Type) -> Type) (t_a3jg3 :: [a6989586621679796291]) (t_a3jg4 :: [a6989586621679796291]) = UnionBy t_a3jg2 t_a3jg3 t_a3jg4
data GenericLengthSym0 (l_a3iYB :: TyFun [a6989586621679796289] i6989586621679796288)
type GenericLengthSym1 (t_a3iYA :: [a6989586621679796289]) = GenericLength t_a3iYA
data GenericTakeSym0 (l_a4n3t :: TyFun i6989586621680051511 (TyFun [a6989586621680051512] [a6989586621680051512] -> Type))
data GenericTakeSym1 (l_a4n3w :: i6989586621680051511) (l_a4n3v :: TyFun [a6989586621680051512] [a6989586621680051512])
type GenericTakeSym2 (t_a4n3r :: i6989586621680051511) (t_a4n3s :: [a6989586621680051512]) = GenericTake t_a4n3r t_a4n3s
data GenericDropSym0 (l_a4n3e :: TyFun i6989586621680051509 (TyFun [a6989586621680051510] [a6989586621680051510] -> Type))
data GenericDropSym1 (l_a4n3h :: i6989586621680051509) (l_a4n3g :: TyFun [a6989586621680051510] [a6989586621680051510])
type GenericDropSym2 (t_a4n3c :: i6989586621680051509) (t_a4n3d :: [a6989586621680051510]) = GenericDrop t_a4n3c t_a4n3d
data GenericSplitAtSym0 (l_a4n2Z :: TyFun i6989586621680051507 (TyFun [a6989586621680051508] ([a6989586621680051508], [a6989586621680051508]) -> Type))
data GenericSplitAtSym1 (l_a4n32 :: i6989586621680051507) (l_a4n31 :: TyFun [a6989586621680051508] ([a6989586621680051508], [a6989586621680051508]))
type GenericSplitAtSym2 (t_a4n2X :: i6989586621680051507) (t_a4n2Y :: [a6989586621680051508]) = GenericSplitAt t_a4n2X t_a4n2Y
data GenericIndexSym0 (l_a4n2K :: TyFun [a6989586621680051506] (TyFun i6989586621680051505 a6989586621680051506 -> Type))
data GenericIndexSym1 (l_a4n2N :: [a6989586621680051506]) (l_a4n2M :: TyFun i6989586621680051505 a6989586621680051506)
type GenericIndexSym2 (t_a4n2I :: [a6989586621680051506]) (t_a4n2J :: i6989586621680051505) = GenericIndex t_a4n2I t_a4n2J
data GenericReplicateSym0 (l_a4n2v :: TyFun i6989586621680051503 (TyFun a6989586621680051504 [a6989586621680051504] -> Type))
data GenericReplicateSym1 (l_a4n2y :: i6989586621680051503) (l_a4n2x :: TyFun a6989586621680051504 [a6989586621680051504])
type GenericReplicateSym2 (t_a4n2t :: i6989586621680051503) (t_a4n2u :: a6989586621680051504) = GenericReplicate t_a4n2t t_a4n2u
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericReplicateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericReplicateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericSplitAtSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericSplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericDropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericDropSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericTakeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericTakeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith7Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith4Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith4Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith4Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith4Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.ZipWith4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.StripPrefixSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.StripPrefixSym0


-- | Provided promoted definitions related to type-level equality.
module Data.Promotion.Prelude.Eq

-- | The promoted analogue of <a>Eq</a>. If you supply no definition for
--   '(:==)', then it defaults to a use of '(==)', from
--   <tt>Data.Type.Equality</tt>.
class kproxy ~ Proxy => PEq (kproxy :: Proxy a) where type (:==) (x :: a) (y :: a) :: Bool type (:/=) (x :: a) (y :: a) :: Bool type (:==) (x :: a) (y :: a) = x == y type (:/=) (x :: a) (y :: a) = Not (x :== y) where {
    type family (:==) (x :: a) (y :: a) :: Bool;
    type family (:/=) (x :: a) (y :: a) :: Bool;
    type (:==) (x :: a) (y :: a) = x == y;
    type (:/=) (x :: a) (y :: a) = Not (x :== y);
}
data (:==$) (l_a2jsM :: TyFun a6989586621679561203 (TyFun a6989586621679561203 Bool -> Type))
data (:==$$) (l_a2jsP :: a6989586621679561203) (l_a2jsO :: TyFun a6989586621679561203 Bool)
type (:==$$$) (t_a2jsK :: a6989586621679561203) (t_a2jsL :: a6989586621679561203) = (:==) t_a2jsK t_a2jsL
data (:/=$) (l_a2jsT :: TyFun a6989586621679561203 (TyFun a6989586621679561203 Bool -> Type))
data (:/=$$) (l_a2jsW :: a6989586621679561203) (l_a2jsV :: TyFun a6989586621679561203 Bool)
type (:/=$$$) (t_a2jsR :: a6989586621679561203) (t_a2jsS :: a6989586621679561203) = (:/=) t_a2jsR t_a2jsS


-- | Exports promoted versions of <a>Enum</a> and <a>Bounded</a>
module Data.Promotion.Prelude.Enum
class kproxy_a2RQB ~ Proxy => PBounded (kproxy_a2RQB :: Proxy a_a2RQA) where type MinBound :: a_a2RQA type MaxBound :: a_a2RQA where {
    type family MinBound :: a_a2RQA;
    type family MaxBound :: a_a2RQA;
}
class kproxy_a2T2y ~ Proxy => PEnum (kproxy_a2T2y :: Proxy a_a2SU0) where type Succ (arg_a2T2z :: a_a2SU0) :: a_a2SU0 type Pred (arg_a2T2D :: a_a2SU0) :: a_a2SU0 type ToEnum (arg_a2T2H :: Nat) :: a_a2SU0 type FromEnum (arg_a2T2L :: a_a2SU0) :: Nat type EnumFromTo (arg_a2T2P :: a_a2SU0) (arg_a2T2Q :: a_a2SU0) :: [a_a2SU0] type EnumFromThenTo (arg_a2T2Y :: a_a2SU0) (arg_a2T2Z :: a_a2SU0) (arg_a2T30 :: a_a2SU0) :: [a_a2SU0] type Succ a_a2T3k = Apply Succ_6989586621679698075Sym0 a_a2T3k type Pred a_a2T3x = Apply Pred_6989586621679698088Sym0 a_a2T3x type EnumFromTo a_a2T3O a_a2T3P = Apply (Apply EnumFromTo_6989586621679698106Sym0 a_a2T3O) a_a2T3P type EnumFromThenTo a_a2T4h a_a2T4i a_a2T4j = Apply (Apply (Apply EnumFromThenTo_6989586621679698136Sym0 a_a2T4h) a_a2T4i) a_a2T4j where {
    type family Succ (arg_a2T2z :: a_a2SU0) :: a_a2SU0;
    type family Pred (arg_a2T2D :: a_a2SU0) :: a_a2SU0;
    type family ToEnum (arg_a2T2H :: Nat) :: a_a2SU0;
    type family FromEnum (arg_a2T2L :: a_a2SU0) :: Nat;
    type family EnumFromTo (arg_a2T2P :: a_a2SU0)
                           (arg_a2T2Q :: a_a2SU0) :: [a_a2SU0];
    type family EnumFromThenTo (arg_a2T2Y :: a_a2SU0)
                               (arg_a2T2Z :: a_a2SU0)
                               (arg_a2T30 :: a_a2SU0) :: [a_a2SU0];
    type Succ a_a2T3k = Apply Succ_6989586621679698075Sym0 a_a2T3k;
    type Pred a_a2T3x = Apply Pred_6989586621679698088Sym0 a_a2T3x;
    type EnumFromTo a_a2T3O a_a2T3P =
        Apply (Apply EnumFromTo_6989586621679698106Sym0 a_a2T3O) a_a2T3P;
    type EnumFromThenTo a_a2T4h a_a2T4i a_a2T4j =
        Apply (Apply (Apply EnumFromThenTo_6989586621679698136Sym0 a_a2T4h) a_a2T4i) a_a2T4j;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a2T2B :: TyFun a6989586621679697496 a6989586621679697496)
type SuccSym1 (t_a2T2A :: a6989586621679697496) = Succ t_a2T2A
data PredSym0 (l_a2T2F :: TyFun a6989586621679697496 a6989586621679697496)
type PredSym1 (t_a2T2E :: a6989586621679697496) = Pred t_a2T2E
data ToEnumSym0 (l_a2T2J :: TyFun Nat a6989586621679697496)
type ToEnumSym1 (t_a2T2I :: Nat) = ToEnum t_a2T2I
data FromEnumSym0 (l_a2T2N :: TyFun a6989586621679697496 Nat)
type FromEnumSym1 (t_a2T2M :: a6989586621679697496) = FromEnum t_a2T2M
data EnumFromToSym0 (l_a2T2T :: TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type))
data EnumFromToSym1 (l_a2T2W :: a6989586621679697496) (l_a2T2V :: TyFun a6989586621679697496 [a6989586621679697496])
type EnumFromToSym2 (t_a2T2R :: a6989586621679697496) (t_a2T2S :: a6989586621679697496) = EnumFromTo t_a2T2R t_a2T2S
data EnumFromThenToSym0 (l_a2T34 :: TyFun a6989586621679697496 (TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type) -> Type))
data EnumFromThenToSym1 (l_a2T37 :: a6989586621679697496) (l_a2T36 :: TyFun a6989586621679697496 (TyFun a6989586621679697496 [a6989586621679697496] -> Type))
data EnumFromThenToSym2 (l_a2T3a :: a6989586621679697496) (l_a2T3b :: a6989586621679697496) (l_a2T39 :: TyFun a6989586621679697496 [a6989586621679697496])
type EnumFromThenToSym3 (t_a2T31 :: a6989586621679697496) (t_a2T32 :: a6989586621679697496) (t_a2T33 :: a6989586621679697496) = EnumFromThenTo t_a2T31 t_a2T32 t_a2T33


-- | Defines promoted functions and datatypes relating to <a>Either</a>,
--   including a promoted version of all the definitions in
--   <tt>Data.Either</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Either</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Promotion.Prelude.Either
either_ :: forall a_a39u8 c_a39u9 b_a39ua. (a_a39u8 -> c_a39u9) -> (b_a39ua -> c_a39u9) -> Either a_a39u8 b_a39ua -> c_a39u9
data LeftSym0 (l_a22WI :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a22WH :: a6989586621679054093) = Left t_a22WH
data RightSym0 (l_a22WL :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a22WK :: b6989586621679054094) = Right t_a22WK
data Either_Sym0 (l_a39uj :: TyFun (TyFun a6989586621679761240 c6989586621679761241 -> Type) (TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type) -> Type))
data Either_Sym1 (l_a39um :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39ul :: TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type))
data Either_Sym2 (l_a39up :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39uq :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (l_a39uo :: TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241)
type Either_Sym3 (t_a39ug :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (t_a39uh :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (t_a39ui :: Either a6989586621679761240 b6989586621679761242) = Either_ t_a39ug t_a39uh t_a39ui
data LeftsSym0 (l_a39Q8 :: TyFun [Either a6989586621679762510 b6989586621679762511] [a6989586621679762510])
type LeftsSym1 (t_a39Q7 :: [Either a6989586621679762510 b6989586621679762511]) = Lefts t_a39Q7
data RightsSym0 (l_a39PY :: TyFun [Either a6989586621679762508 b6989586621679762509] [b6989586621679762509])
type RightsSym1 (t_a39PX :: [Either a6989586621679762508 b6989586621679762509]) = Rights t_a39PX
data IsLeftSym0 (l_a39P8 :: TyFun (Either a6989586621679762504 b6989586621679762505) Bool)
type IsLeftSym1 (t_a39P7 :: Either a6989586621679762504 b6989586621679762505) = IsLeft t_a39P7
data IsRightSym0 (l_a39OY :: TyFun (Either a6989586621679762502 b6989586621679762503) Bool)
type IsRightSym1 (t_a39OX :: Either a6989586621679762502 b6989586621679762503) = IsRight t_a39OX


-- | Defines promoted functions and datatypes relating to <a>Bool</a>,
--   including a promoted version of all the definitions in
--   <tt>Data.Bool</tt>.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Data.Bool</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Promotion.Prelude.Bool

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>
bool_ :: forall a_a2fqU. a_a2fqU -> a_a2fqU -> Bool -> a_a2fqU
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a2fCn :: TyFun Bool Bool)
type NotSym1 (t_a2fCm :: Bool) = Not t_a2fCm
data (:&&$) (l_a2fCF :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2fCI :: Bool) (l_a2fCH :: TyFun Bool Bool)
type (:&&$$$) (t_a2fCD :: Bool) (t_a2fCE :: Bool) = (:&&) t_a2fCD t_a2fCE
data (:||$) (l_a2fCs :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2fCv :: Bool) (l_a2fCu :: TyFun Bool Bool)
type (:||$$$) (t_a2fCq :: Bool) (t_a2fCr :: Bool) = (:||) t_a2fCq t_a2fCr
data Bool_Sym0 (l_a2fr3 :: TyFun a6989586621679545776 (TyFun a6989586621679545776 (TyFun Bool a6989586621679545776 -> Type) -> Type))
data Bool_Sym1 (l_a2fr6 :: a6989586621679545776) (l_a2fr5 :: TyFun a6989586621679545776 (TyFun Bool a6989586621679545776 -> Type))
data Bool_Sym2 (l_a2fr9 :: a6989586621679545776) (l_a2fra :: a6989586621679545776) (l_a2fr8 :: TyFun Bool a6989586621679545776)
type Bool_Sym3 (t_a2fr0 :: a6989586621679545776) (t_a2fr1 :: a6989586621679545776) (t_a2fr2 :: Bool) = Bool_ t_a2fr0 t_a2fr1 t_a2fr2
type OtherwiseSym0 = Otherwise


-- | Implements promoted functions from GHC.Base module.
--   
--   Because many of these definitions are produced by Template Haskell, it
--   is not possible to create proper Haddock documentation. Please look up
--   the corresponding operation in <tt>Prelude</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Promotion.Prelude.Base
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
type (:++$$$) (t_a2gAX :: [a6989586621679550102]) (t_a2gAY :: [a6989586621679550102]) = (:++) t_a2gAX t_a2gAY
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a2gAT :: TyFun a6989586621679550101 a6989586621679550101)
type IdSym1 (t_a2gAS :: a6989586621679550101) = Id t_a2gAS
data ConstSym0 (l_a2gAs :: TyFun a6989586621679550099 (TyFun b6989586621679550100 a6989586621679550099 -> Type))
data ConstSym1 (l_a2gAv :: a6989586621679550099) (l_a2gAu :: TyFun b6989586621679550100 a6989586621679550099)
type ConstSym2 (t_a2gAq :: a6989586621679550099) (t_a2gAr :: b6989586621679550100) = Const t_a2gAq t_a2gAr
data (:.$) (l_a2gzN :: TyFun (TyFun b6989586621679550096 c6989586621679550097 -> Type) (TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type) -> Type))
data (:.$$) (l_a2gzQ :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzP :: TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type))
data (:.$$$) (l_a2gzT :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzU :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (l_a2gzS :: TyFun a6989586621679550098 c6989586621679550097)
type (:.$$$$) (t_a2gzK :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (t_a2gzL :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (t_a2gzM :: a6989586621679550098) = (:.) t_a2gzK t_a2gzL t_a2gzM
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data ($!$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($!$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($!$$$) a b = ($!) a b
data FlipSym0 (l_a2gzv :: TyFun (TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type) -> Type))
data FlipSym1 (l_a2gzy :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzx :: TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type))
data FlipSym2 (l_a2gzB :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzC :: b6989586621679550094) (l_a2gzA :: TyFun a6989586621679550093 c6989586621679550095)
type FlipSym3 (t_a2gzs :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (t_a2gzt :: b6989586621679550094) (t_a2gzu :: a6989586621679550093) = Flip t_a2gzs t_a2gzt t_a2gzu
data UntilSym0 (l_a4sE6 :: TyFun (TyFun a6989586621680073211 Bool -> Type) (TyFun (TyFun a6989586621680073211 a6989586621680073211 -> Type) (TyFun a6989586621680073211 a6989586621680073211 -> Type) -> Type))
data UntilSym1 (l_a4sE9 :: TyFun a6989586621680073211 Bool -> Type) (l_a4sE8 :: TyFun (TyFun a6989586621680073211 a6989586621680073211 -> Type) (TyFun a6989586621680073211 a6989586621680073211 -> Type))
data UntilSym2 (l_a4sEc :: TyFun a6989586621680073211 Bool -> Type) (l_a4sEd :: TyFun a6989586621680073211 a6989586621680073211 -> Type) (l_a4sEb :: TyFun a6989586621680073211 a6989586621680073211)
type UntilSym3 (t_a4sE3 :: TyFun a6989586621680073211 Bool -> Type) (t_a4sE4 :: TyFun a6989586621680073211 a6989586621680073211 -> Type) (t_a4sE5 :: a6989586621680073211) = Until t_a4sE3 t_a4sE4 t_a4sE5
data AsTypeOfSym0 (l_a2gAJ :: TyFun a6989586621679550092 (TyFun a6989586621679550092 a6989586621679550092 -> Type))
data AsTypeOfSym1 (l_a2gAM :: a6989586621679550092) (l_a2gAL :: TyFun a6989586621679550092 a6989586621679550092)
type AsTypeOfSym2 (t_a2gAH :: a6989586621679550092) (t_a2gAI :: a6989586621679550092) = AsTypeOf t_a2gAH t_a2gAI
data SeqSym0 (l_a2gzh :: TyFun a6989586621679550090 (TyFun b6989586621679550091 b6989586621679550091 -> Type))
data SeqSym1 (l_a2gzk :: a6989586621679550090) (l_a2gzj :: TyFun b6989586621679550091 b6989586621679550091)
type SeqSym2 (t_a2gzf :: a6989586621679550090) (t_a2gzg :: b6989586621679550091) = Seq t_a2gzf t_a2gzg
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680073239GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680073239GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680073239GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680073239GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym0


-- | Mimics the Haskell Prelude, but with promoted types.
module Data.Promotion.Prelude

-- | Type-level <a>If</a>. <tt>If True a b</tt> ==&gt; <tt>a</tt>; <tt>If
--   False a b</tt> ==&gt; <tt>b</tt>
maybe_ :: forall b_a3bWE a_a3bWF. b_a3bWE -> (a_a3bWF -> b_a3bWE) -> Maybe a_a3bWF -> b_a3bWE
either_ :: forall a_a39u8 c_a39u9 b_a39ua. (a_a39u8 -> c_a39u9) -> (b_a39ua -> c_a39u9) -> Either a_a39u8 b_a39ua -> c_a39u9

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a2NiF :: TyFun k06989586621679675033 k6989586621679675035)
any_ :: forall a_a3fQP. (a_a3fQP -> Bool) -> [a_a3fQP] -> Bool

-- | A concrete, poly-kinded proxy type
data Proxy k (t :: k) :: forall k. k -> *
Proxy :: Proxy k
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a2fCn :: TyFun Bool Bool)
type NotSym1 (t_a2fCm :: Bool) = Not t_a2fCm
data (:&&$) (l_a2fCF :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2fCI :: Bool) (l_a2fCH :: TyFun Bool Bool)
type (:&&$$$) (t_a2fCD :: Bool) (t_a2fCE :: Bool) = (:&&) t_a2fCD t_a2fCE
data (:||$) (l_a2fCs :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2fCv :: Bool) (l_a2fCu :: TyFun Bool Bool)
type (:||$$$) (t_a2fCq :: Bool) (t_a2fCr :: Bool) = (:||) t_a2fCq t_a2fCr
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a22Wh :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a22Wg :: a3530822107858468866) = Just t_a22Wg
data Maybe_Sym0 (l_a3bWN :: TyFun b6989586621679770696 (TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type) -> Type))
data Maybe_Sym1 (l_a3bWQ :: b6989586621679770696) (l_a3bWP :: TyFun (TyFun a6989586621679770697 b6989586621679770696 -> Type) (TyFun (Maybe a6989586621679770697) b6989586621679770696 -> Type))
data Maybe_Sym2 (l_a3bWT :: b6989586621679770696) (l_a3bWU :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (l_a3bWS :: TyFun (Maybe a6989586621679770697) b6989586621679770696)
type Maybe_Sym3 (t_a3bWK :: b6989586621679770696) (t_a3bWL :: TyFun a6989586621679770697 b6989586621679770696 -> Type) (t_a3bWM :: Maybe a6989586621679770697) = Maybe_ t_a3bWK t_a3bWL t_a3bWM
data LeftSym0 (l_a22WI :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a22WH :: a6989586621679054093) = Left t_a22WH
data RightSym0 (l_a22WL :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a22WK :: b6989586621679054094) = Right t_a22WK
data Either_Sym0 (l_a39uj :: TyFun (TyFun a6989586621679761240 c6989586621679761241 -> Type) (TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type) -> Type))
data Either_Sym1 (l_a39um :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39ul :: TyFun (TyFun b6989586621679761242 c6989586621679761241 -> Type) (TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241 -> Type))
data Either_Sym2 (l_a39up :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (l_a39uq :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (l_a39uo :: TyFun (Either a6989586621679761240 b6989586621679761242) c6989586621679761241)
type Either_Sym3 (t_a39ug :: TyFun a6989586621679761240 c6989586621679761241 -> Type) (t_a39uh :: TyFun b6989586621679761242 c6989586621679761241 -> Type) (t_a39ui :: Either a6989586621679761240 b6989586621679761242) = Either_ t_a39ug t_a39uh t_a39ui
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a22Xh :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a22Xk :: a3530822107858468866) (l_a22Xj :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a22Xf :: a3530822107858468866) (t_a22Xg :: b3530822107858468867) = '(t_a22Xf, t_a22Xg)
data Tuple3Sym0 (l_a22XB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a22XE :: a3530822107858468866) (l_a22XD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a22XH :: a3530822107858468866) (l_a22XI :: b3530822107858468867) (l_a22XG :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a22Xy :: a3530822107858468866) (t_a22Xz :: b3530822107858468867) (t_a22XA :: c3530822107858468868) = '(t_a22Xy, t_a22Xz, t_a22XA)
data Tuple4Sym0 (l_a22Y5 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a22Y8 :: a3530822107858468866) (l_a22Y7 :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a22Yb :: a3530822107858468866) (l_a22Yc :: b3530822107858468867) (l_a22Ya :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a22Yf :: a3530822107858468866) (l_a22Yg :: b3530822107858468867) (l_a22Yh :: c3530822107858468868) (l_a22Ye :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a22Y1 :: a3530822107858468866) (t_a22Y2 :: b3530822107858468867) (t_a22Y3 :: c3530822107858468868) (t_a22Y4 :: d3530822107858468869) = '(t_a22Y1, t_a22Y2, t_a22Y3, t_a22Y4)
data Tuple5Sym0 (l_a22YK :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a22YN :: a3530822107858468866) (l_a22YM :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a22YQ :: a3530822107858468866) (l_a22YR :: b3530822107858468867) (l_a22YP :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a22YU :: a3530822107858468866) (l_a22YV :: b3530822107858468867) (l_a22YW :: c3530822107858468868) (l_a22YT :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a22YZ :: a3530822107858468866) (l_a22Z0 :: b3530822107858468867) (l_a22Z1 :: c3530822107858468868) (l_a22Z2 :: d3530822107858468869) (l_a22YY :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a22YF :: a3530822107858468866) (t_a22YG :: b3530822107858468867) (t_a22YH :: c3530822107858468868) (t_a22YI :: d3530822107858468869) (t_a22YJ :: e3530822107858468870) = '(t_a22YF, t_a22YG, t_a22YH, t_a22YI, t_a22YJ)
data Tuple6Sym0 (l_a22ZB :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a22ZE :: a3530822107858468866) (l_a22ZD :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a22ZH :: a3530822107858468866) (l_a22ZI :: b3530822107858468867) (l_a22ZG :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a22ZL :: a3530822107858468866) (l_a22ZM :: b3530822107858468867) (l_a22ZN :: c3530822107858468868) (l_a22ZK :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a22ZQ :: a3530822107858468866) (l_a22ZR :: b3530822107858468867) (l_a22ZS :: c3530822107858468868) (l_a22ZT :: d3530822107858468869) (l_a22ZP :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a22ZW :: a3530822107858468866) (l_a22ZX :: b3530822107858468867) (l_a22ZY :: c3530822107858468868) (l_a22ZZ :: d3530822107858468869) (l_a2300 :: e3530822107858468870) (l_a22ZV :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a22Zv :: a3530822107858468866) (t_a22Zw :: b3530822107858468867) (t_a22Zx :: c3530822107858468868) (t_a22Zy :: d3530822107858468869) (t_a22Zz :: e3530822107858468870) (t_a22ZA :: f3530822107858468871) = '(t_a22Zv, t_a22Zw, t_a22Zx, t_a22Zy, t_a22Zz, t_a22ZA)
data Tuple7Sym0 (l_a230F :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a230I :: a3530822107858468866) (l_a230H :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a230L :: a3530822107858468866) (l_a230M :: b3530822107858468867) (l_a230K :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a230P :: a3530822107858468866) (l_a230Q :: b3530822107858468867) (l_a230R :: c3530822107858468868) (l_a230O :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a230U :: a3530822107858468866) (l_a230V :: b3530822107858468867) (l_a230W :: c3530822107858468868) (l_a230X :: d3530822107858468869) (l_a230T :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2310 :: a3530822107858468866) (l_a2311 :: b3530822107858468867) (l_a2312 :: c3530822107858468868) (l_a2313 :: d3530822107858468869) (l_a2314 :: e3530822107858468870) (l_a230Z :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2317 :: a3530822107858468866) (l_a2318 :: b3530822107858468867) (l_a2319 :: c3530822107858468868) (l_a231a :: d3530822107858468869) (l_a231b :: e3530822107858468870) (l_a231c :: f3530822107858468871) (l_a2316 :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a230y :: a3530822107858468866) (t_a230z :: b3530822107858468867) (t_a230A :: c3530822107858468868) (t_a230B :: d3530822107858468869) (t_a230C :: e3530822107858468870) (t_a230D :: f3530822107858468871) (t_a230E :: g3530822107858468872) = '(t_a230y, t_a230z, t_a230A, t_a230B, t_a230C, t_a230D, t_a230E)
data FstSym0 (l_a3eQN :: TyFun (a6989586621679781816, b6989586621679781817) a6989586621679781816)
type FstSym1 (t_a3eQM :: (a6989586621679781816, b6989586621679781817)) = Fst t_a3eQM
data SndSym0 (l_a3eQF :: TyFun (a6989586621679781814, b6989586621679781815) b6989586621679781815)
type SndSym1 (t_a3eQE :: (a6989586621679781814, b6989586621679781815)) = Snd t_a3eQE
data CurrySym0 (l_a3eQp :: TyFun (TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type) -> Type))
data CurrySym1 (l_a3eQs :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQr :: TyFun a6989586621679781811 (TyFun b6989586621679781812 c6989586621679781813 -> Type))
data CurrySym2 (l_a3eQv :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (l_a3eQw :: a6989586621679781811) (l_a3eQu :: TyFun b6989586621679781812 c6989586621679781813)
type CurrySym3 (t_a3eQm :: TyFun (a6989586621679781811, b6989586621679781812) c6989586621679781813 -> Type) (t_a3eQn :: a6989586621679781811) (t_a3eQo :: b6989586621679781812) = Curry t_a3eQm t_a3eQn t_a3eQo
data UncurrySym0 (l_a3eQW :: TyFun (TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810 -> Type))
data UncurrySym1 (l_a3eQZ :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (l_a3eQY :: TyFun (a6989586621679781808, b6989586621679781809) c6989586621679781810)
type UncurrySym2 (t_a3eQU :: TyFun a6989586621679781808 (TyFun b6989586621679781809 c6989586621679781810 -> Type) -> Type) (t_a3eQV :: (a6989586621679781808, b6989586621679781809)) = Uncurry t_a3eQU t_a3eQV
data (:^$) l_a2Nln
data (:^$$) (l_a2Nlq :: Nat) l_a2Nlp
data IdSym0 (l_a2gAT :: TyFun a6989586621679550101 a6989586621679550101)
type IdSym1 (t_a2gAS :: a6989586621679550101) = Id t_a2gAS
data ConstSym0 (l_a2gAs :: TyFun a6989586621679550099 (TyFun b6989586621679550100 a6989586621679550099 -> Type))
data ConstSym1 (l_a2gAv :: a6989586621679550099) (l_a2gAu :: TyFun b6989586621679550100 a6989586621679550099)
type ConstSym2 (t_a2gAq :: a6989586621679550099) (t_a2gAr :: b6989586621679550100) = Const t_a2gAq t_a2gAr
data (:.$) (l_a2gzN :: TyFun (TyFun b6989586621679550096 c6989586621679550097 -> Type) (TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type) -> Type))
data (:.$$) (l_a2gzQ :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzP :: TyFun (TyFun a6989586621679550098 b6989586621679550096 -> Type) (TyFun a6989586621679550098 c6989586621679550097 -> Type))
data (:.$$$) (l_a2gzT :: TyFun b6989586621679550096 c6989586621679550097 -> Type) (l_a2gzU :: TyFun a6989586621679550098 b6989586621679550096 -> Type) (l_a2gzS :: TyFun a6989586621679550098 c6989586621679550097)
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data ($!$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($!$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($!$$$) a b = ($!) a b
data FlipSym0 (l_a2gzv :: TyFun (TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type) -> Type))
data FlipSym1 (l_a2gzy :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzx :: TyFun b6989586621679550094 (TyFun a6989586621679550093 c6989586621679550095 -> Type))
data FlipSym2 (l_a2gzB :: TyFun a6989586621679550093 (TyFun b6989586621679550094 c6989586621679550095 -> Type) -> Type) (l_a2gzC :: b6989586621679550094) (l_a2gzA :: TyFun a6989586621679550093 c6989586621679550095)
data AsTypeOfSym0 (l_a2gAJ :: TyFun a6989586621679550092 (TyFun a6989586621679550092 a6989586621679550092 -> Type))
data AsTypeOfSym1 (l_a2gAM :: a6989586621679550092) (l_a2gAL :: TyFun a6989586621679550092 a6989586621679550092)
type AsTypeOfSym2 (t_a2gAH :: a6989586621679550092) (t_a2gAI :: a6989586621679550092) = AsTypeOf t_a2gAH t_a2gAI
data SeqSym0 (l_a2gzh :: TyFun a6989586621679550090 (TyFun b6989586621679550091 b6989586621679550091 -> Type))
data SeqSym1 (l_a2gzk :: a6989586621679550090) (l_a2gzj :: TyFun b6989586621679550091 b6989586621679550091)
type SeqSym2 (t_a2gzf :: a6989586621679550090) (t_a2gzg :: b6989586621679550091) = Seq t_a2gzf t_a2gzg
data (:$) (l_a22Wr :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a22Wu :: a3530822107858468866) (l_a22Wt :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a22Wp :: a3530822107858468866) (t_a22Wq :: [a3530822107858468866]) = (:) t_a22Wp t_a22Wq
type NilSym0 = '[]
data MapSym0 (l_a2gBc :: TyFun (TyFun a6989586621679550103 b6989586621679550104 -> Type) (TyFun [a6989586621679550103] [b6989586621679550104] -> Type))
data MapSym1 (l_a2gBf :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (l_a2gBe :: TyFun [a6989586621679550103] [b6989586621679550104])
type MapSym2 (t_a2gBa :: TyFun a6989586621679550103 b6989586621679550104 -> Type) (t_a2gBb :: [a6989586621679550103]) = Map t_a2gBa t_a2gBb
data ReverseSym0 (l_a3jOg :: TyFun [a6989586621679796410] [a6989586621679796410])
type ReverseSym1 (t_a3jOf :: [a6989586621679796410]) = Reverse t_a3jOf
data (:++$$) (l_a2gB2 :: [a6989586621679550102]) (l_a2gB1 :: TyFun [a6989586621679550102] [a6989586621679550102])
data (:++$) (l_a2gAZ :: TyFun [a6989586621679550102] (TyFun [a6989586621679550102] [a6989586621679550102] -> Type))
data HeadSym0 (l_a3jQL :: TyFun [a6989586621679796415] a6989586621679796415)
type HeadSym1 (t_a3jQK :: [a6989586621679796415]) = Head t_a3jQK
data LastSym0 (l_a3jQB :: TyFun [a6989586621679796414] a6989586621679796414)
type LastSym1 (t_a3jQA :: [a6989586621679796414]) = Last t_a3jQA
data TailSym0 (l_a3jQt :: TyFun [a6989586621679796413] [a6989586621679796413])
type TailSym1 (t_a3jQs :: [a6989586621679796413]) = Tail t_a3jQs
data InitSym0 (l_a3jPW :: TyFun [a6989586621679796412] [a6989586621679796412])
type InitSym1 (t_a3jPV :: [a6989586621679796412]) = Init t_a3jPV
data NullSym0 (l_a3jOP :: TyFun [a6989586621679796411] Bool)
type NullSym1 (t_a3jOO :: [a6989586621679796411]) = Null t_a3jOO
data FoldlSym0 (l_a25U9 :: TyFun (TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type) -> Type))
data FoldlSym1 (l_a25Uc :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ub :: TyFun b6989586621679509136 (TyFun [a6989586621679509135] b6989586621679509136 -> Type))
data FoldlSym2 (l_a25Uf :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (l_a25Ug :: b6989586621679509136) (l_a25Ue :: TyFun [a6989586621679509135] b6989586621679509136)
type FoldlSym3 (t_a25U6 :: TyFun b6989586621679509136 (TyFun a6989586621679509135 b6989586621679509136 -> Type) -> Type) (t_a25U7 :: b6989586621679509136) (t_a25U8 :: [a6989586621679509135]) = Foldl t_a25U6 t_a25U7 t_a25U8
data Foldl1Sym0 (l_a3jBY :: TyFun (TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (TyFun [a6989586621679796401] a6989586621679796401 -> Type))
data Foldl1Sym1 (l_a3jC1 :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (l_a3jC0 :: TyFun [a6989586621679796401] a6989586621679796401)
type Foldl1Sym2 (t_a3jBW :: TyFun a6989586621679796401 (TyFun a6989586621679796401 a6989586621679796401 -> Type) -> Type) (t_a3jBX :: [a6989586621679796401]) = Foldl1 t_a3jBW t_a3jBX
data FoldrSym0 (l_a2gBs :: TyFun (TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type) -> Type))
data FoldrSym1 (l_a2gBv :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBu :: TyFun b6989586621679550106 (TyFun [a6989586621679550105] b6989586621679550106 -> Type))
data FoldrSym2 (l_a2gBy :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (l_a2gBz :: b6989586621679550106) (l_a2gBx :: TyFun [a6989586621679550105] b6989586621679550106)
type FoldrSym3 (t_a2gBp :: TyFun a6989586621679550105 (TyFun b6989586621679550106 b6989586621679550106 -> Type) -> Type) (t_a2gBq :: b6989586621679550106) (t_a2gBr :: [a6989586621679550105]) = Foldr t_a2gBp t_a2gBq t_a2gBr
data Foldr1Sym0 (l_a3jBl :: TyFun (TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (TyFun [a6989586621679796399] a6989586621679796399 -> Type))
data Foldr1Sym1 (l_a3jBo :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (l_a3jBn :: TyFun [a6989586621679796399] a6989586621679796399)
type Foldr1Sym2 (t_a3jBj :: TyFun a6989586621679796399 (TyFun a6989586621679796399 a6989586621679796399 -> Type) -> Type) (t_a3jBk :: [a6989586621679796399]) = Foldr1 t_a3jBj t_a3jBk
data ConcatSym0 (l_a3jBf :: TyFun [[a6989586621679796398]] [a6989586621679796398])
type ConcatSym1 (t_a3jBe :: [[a6989586621679796398]]) = Concat t_a3jBe
data ConcatMapSym0 (l_a3jB1 :: TyFun (TyFun a6989586621679796396 [b6989586621679796397] -> Type) (TyFun [a6989586621679796396] [b6989586621679796397] -> Type))
data ConcatMapSym1 (l_a3jB4 :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (l_a3jB3 :: TyFun [a6989586621679796396] [b6989586621679796397])
type ConcatMapSym2 (t_a3jAZ :: TyFun a6989586621679796396 [b6989586621679796397] -> Type) (t_a3jB0 :: [a6989586621679796396]) = ConcatMap t_a3jAZ t_a3jB0
data MaximumBySym0 (l_a3jCd :: TyFun (TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (TyFun [a6989586621679796328] a6989586621679796328 -> Type))
data MaximumBySym1 (l_a3jCg :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (l_a3jCf :: TyFun [a6989586621679796328] a6989586621679796328)
type MaximumBySym2 (t_a3jCb :: TyFun a6989586621679796328 (TyFun a6989586621679796328 Ordering -> Type) -> Type) (t_a3jCc :: [a6989586621679796328]) = MaximumBy t_a3jCb t_a3jCc
data MinimumBySym0 (l_a3jDC :: TyFun (TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (TyFun [a6989586621679796327] a6989586621679796327 -> Type))
data MinimumBySym1 (l_a3jDF :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (l_a3jDE :: TyFun [a6989586621679796327] a6989586621679796327)
type MinimumBySym2 (t_a3jDA :: TyFun a6989586621679796327 (TyFun a6989586621679796327 Ordering -> Type) -> Type) (t_a3jDB :: [a6989586621679796327]) = MinimumBy t_a3jDA t_a3jDB
data AndSym0 (l_a3jAU :: TyFun [Bool] Bool)
type AndSym1 (t_a3jAT :: [Bool]) = And t_a3jAT
data OrSym0 (l_a3jAO :: TyFun [Bool] Bool)
type OrSym1 (t_a3jAN :: [Bool]) = Or t_a3jAN
data Any_Sym0 (l_a3fQW :: TyFun (TyFun a6989586621679785711 Bool -> Type) (TyFun [a6989586621679785711] Bool -> Type))
data Any_Sym1 (l_a3fQZ :: TyFun a6989586621679785711 Bool -> Type) (l_a3fQY :: TyFun [a6989586621679785711] Bool)
type Any_Sym2 (t_a3fQU :: TyFun a6989586621679785711 Bool -> Type) (t_a3fQV :: [a6989586621679785711]) = Any_ t_a3fQU t_a3fQV
data AllSym0 (l_a3jAA :: TyFun (TyFun a6989586621679796395 Bool -> Type) (TyFun [a6989586621679796395] Bool -> Type))
data AllSym1 (l_a3jAD :: TyFun a6989586621679796395 Bool -> Type) (l_a3jAC :: TyFun [a6989586621679796395] Bool)
type AllSym2 (t_a3jAy :: TyFun a6989586621679796395 Bool -> Type) (t_a3jAz :: [a6989586621679796395]) = All t_a3jAy t_a3jAz
data ScanlSym0 (l_a3jzZ :: TyFun (TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type) -> Type))
data ScanlSym1 (l_a3jA2 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA1 :: TyFun b6989586621679796393 (TyFun [a6989586621679796394] [b6989586621679796393] -> Type))
data ScanlSym2 (l_a3jA5 :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (l_a3jA6 :: b6989586621679796393) (l_a3jA4 :: TyFun [a6989586621679796394] [b6989586621679796393])
type ScanlSym3 (t_a3jzW :: TyFun b6989586621679796393 (TyFun a6989586621679796394 b6989586621679796393 -> Type) -> Type) (t_a3jzX :: b6989586621679796393) (t_a3jzY :: [a6989586621679796394]) = Scanl t_a3jzW t_a3jzX t_a3jzY
data Scanl1Sym0 (l_a3jAl :: TyFun (TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (TyFun [a6989586621679796392] [a6989586621679796392] -> Type))
data Scanl1Sym1 (l_a3jAo :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (l_a3jAn :: TyFun [a6989586621679796392] [a6989586621679796392])
type Scanl1Sym2 (t_a3jAj :: TyFun a6989586621679796392 (TyFun a6989586621679796392 a6989586621679796392 -> Type) -> Type) (t_a3jAk :: [a6989586621679796392]) = Scanl1 t_a3jAj t_a3jAk
data ScanrSym0 (l_a3jze :: TyFun (TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type) -> Type))
data ScanrSym1 (l_a3jzh :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzg :: TyFun b6989586621679796391 (TyFun [a6989586621679796390] [b6989586621679796391] -> Type))
data ScanrSym2 (l_a3jzk :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (l_a3jzl :: b6989586621679796391) (l_a3jzj :: TyFun [a6989586621679796390] [b6989586621679796391])
type ScanrSym3 (t_a3jzb :: TyFun a6989586621679796390 (TyFun b6989586621679796391 b6989586621679796391 -> Type) -> Type) (t_a3jzc :: b6989586621679796391) (t_a3jzd :: [a6989586621679796390]) = Scanr t_a3jzb t_a3jzc t_a3jzd
data Scanr1Sym0 (l_a3jyc :: TyFun (TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (TyFun [a6989586621679796389] [a6989586621679796389] -> Type))
data Scanr1Sym1 (l_a3jyf :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (l_a3jye :: TyFun [a6989586621679796389] [a6989586621679796389])
type Scanr1Sym2 (t_a3jya :: TyFun a6989586621679796389 (TyFun a6989586621679796389 a6989586621679796389 -> Type) -> Type) (t_a3jyb :: [a6989586621679796389]) = Scanr1 t_a3jya t_a3jyb
data ElemSym0 (l_a3jqj :: TyFun a6989586621679796375 (TyFun [a6989586621679796375] Bool -> Type))
data ElemSym1 (l_a3jqm :: a6989586621679796375) (l_a3jql :: TyFun [a6989586621679796375] Bool)
type ElemSym2 (t_a3jqh :: a6989586621679796375) (t_a3jqi :: [a6989586621679796375]) = Elem t_a3jqh t_a3jqi
data NotElemSym0 (l_a3jq4 :: TyFun a6989586621679796374 (TyFun [a6989586621679796374] Bool -> Type))
data NotElemSym1 (l_a3jq7 :: a6989586621679796374) (l_a3jq6 :: TyFun [a6989586621679796374] Bool)
type NotElemSym2 (t_a3jq2 :: a6989586621679796374) (t_a3jq3 :: [a6989586621679796374]) = NotElem t_a3jq2 t_a3jq3
data ZipSym0 (l_a3jo1 :: TyFun [a6989586621679796372] (TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)] -> Type))
data ZipSym1 (l_a3jo4 :: [a6989586621679796372]) (l_a3jo3 :: TyFun [b6989586621679796373] [(a6989586621679796372, b6989586621679796373)])
type ZipSym2 (t_a3jnZ :: [a6989586621679796372]) (t_a3jo0 :: [b6989586621679796373]) = Zip t_a3jnZ t_a3jo0
data Zip3Sym0 (l_a3jmP :: TyFun [a6989586621679796369] (TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type) -> Type))
data Zip3Sym1 (l_a3jmS :: [a6989586621679796369]) (l_a3jmR :: TyFun [b6989586621679796370] (TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)] -> Type))
data Zip3Sym2 (l_a3jmV :: [a6989586621679796369]) (l_a3jmW :: [b6989586621679796370]) (l_a3jmU :: TyFun [c6989586621679796371] [(a6989586621679796369, b6989586621679796370, c6989586621679796371)])
type Zip3Sym3 (t_a3jmM :: [a6989586621679796369]) (t_a3jmN :: [b6989586621679796370]) (t_a3jmO :: [c6989586621679796371]) = Zip3 t_a3jmM t_a3jmN t_a3jmO
data ZipWithSym0 (l_a3jma :: TyFun (TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type) -> Type))
data ZipWithSym1 (l_a3jmd :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmc :: TyFun [a6989586621679796366] (TyFun [b6989586621679796367] [c6989586621679796368] -> Type))
data ZipWithSym2 (l_a3jmg :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (l_a3jmh :: [a6989586621679796366]) (l_a3jmf :: TyFun [b6989586621679796367] [c6989586621679796368])
type ZipWithSym3 (t_a3jm7 :: TyFun a6989586621679796366 (TyFun b6989586621679796367 c6989586621679796368 -> Type) -> Type) (t_a3jm8 :: [a6989586621679796366]) (t_a3jm9 :: [b6989586621679796367]) = ZipWith t_a3jm7 t_a3jm8 t_a3jm9
data ZipWith3Sym0 (l_a3jkv :: TyFun (TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a3jky :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkx :: TyFun [a6989586621679796362] (TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type) -> Type))
data ZipWith3Sym2 (l_a3jkB :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkC :: [a6989586621679796362]) (l_a3jkA :: TyFun [b6989586621679796363] (TyFun [c6989586621679796364] [d6989586621679796365] -> Type))
data ZipWith3Sym3 (l_a3jkF :: TyFun a6989586621679796362 (TyFun b6989586621679796363 (TyFun c6989586621679796364 d6989586621679796365 -> Type) -> Type) -> Type) (l_a3jkG :: [a6989586621679796362]) (l_a3jkH :: [b6989586621679796363]) (l_a3jkE :: TyFun [c6989586621679796364] [d6989586621679796365])
data UnzipSym0 (l_a3jjY :: TyFun [(a6989586621679796360, b6989586621679796361)] ([a6989586621679796360], [b6989586621679796361]))
type UnzipSym1 (t_a3jjX :: [(a6989586621679796360, b6989586621679796361)]) = Unzip t_a3jjX
data UntilSym0 (l_a4sE6 :: TyFun (TyFun a6989586621680073211 Bool -> Type) (TyFun (TyFun a6989586621680073211 a6989586621680073211 -> Type) (TyFun a6989586621680073211 a6989586621680073211 -> Type) -> Type))
data UntilSym1 (l_a4sE9 :: TyFun a6989586621680073211 Bool -> Type) (l_a4sE8 :: TyFun (TyFun a6989586621680073211 a6989586621680073211 -> Type) (TyFun a6989586621680073211 a6989586621680073211 -> Type))
data UntilSym2 (l_a4sEc :: TyFun a6989586621680073211 Bool -> Type) (l_a4sEd :: TyFun a6989586621680073211 a6989586621680073211 -> Type) (l_a4sEb :: TyFun a6989586621680073211 a6989586621680073211)
type UntilSym3 (t_a4sE3 :: TyFun a6989586621680073211 Bool -> Type) (t_a4sE4 :: TyFun a6989586621680073211 a6989586621680073211 -> Type) (t_a4sE5 :: a6989586621680073211) = Until t_a4sE3 t_a4sE4 t_a4sE5
data LengthSym0 (l_a3j14 :: TyFun [a6989586621679796298] Nat)
type LengthSym1 (t_a3j13 :: [a6989586621679796298]) = Length t_a3j13
data SumSym0 (l_a3j1A :: TyFun [a6989586621679796300] a6989586621679796300)
type SumSym1 (t_a3j1z :: [a6989586621679796300]) = Sum t_a3j1z
data ProductSym0 (l_a3j1c :: TyFun [a6989586621679796299] a6989586621679796299)
type ProductSym1 (t_a3j1b :: [a6989586621679796299]) = Product t_a3j1b
data ReplicateSym0 (l_a3j0J :: TyFun Nat (TyFun a6989586621679796297 [a6989586621679796297] -> Type))
data ReplicateSym1 (l_a3j0M :: Nat) (l_a3j0L :: TyFun a6989586621679796297 [a6989586621679796297])
type ReplicateSym2 (t_a3j0H :: Nat) (t_a3j0I :: a6989586621679796297) = Replicate t_a3j0H t_a3j0I
data TakeSym0 (l_a3j3U :: TyFun Nat (TyFun [a6989586621679796313] [a6989586621679796313] -> Type))
data TakeSym1 (l_a3j3X :: Nat) (l_a3j3W :: TyFun [a6989586621679796313] [a6989586621679796313])
type TakeSym2 (t_a3j3S :: Nat) (t_a3j3T :: [a6989586621679796313]) = Take t_a3j3S t_a3j3T
data DropSym0 (l_a3j3p :: TyFun Nat (TyFun [a6989586621679796312] [a6989586621679796312] -> Type))
data DropSym1 (l_a3j3s :: Nat) (l_a3j3r :: TyFun [a6989586621679796312] [a6989586621679796312])
type DropSym2 (t_a3j3n :: Nat) (t_a3j3o :: [a6989586621679796312]) = Drop t_a3j3n t_a3j3o
data SplitAtSym0 (l_a3j4p :: TyFun Nat (TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]) -> Type))
data SplitAtSym1 (l_a3j4s :: Nat) (l_a3j4r :: TyFun [a6989586621679796311] ([a6989586621679796311], [a6989586621679796311]))
type SplitAtSym2 (t_a3j4n :: Nat) (t_a3j4o :: [a6989586621679796311]) = SplitAt t_a3j4n t_a3j4o
data TakeWhileSym0 (l_a3j9V :: TyFun (TyFun a6989586621679796318 Bool -> Type) (TyFun [a6989586621679796318] [a6989586621679796318] -> Type))
data TakeWhileSym1 (l_a3j9Y :: TyFun a6989586621679796318 Bool -> Type) (l_a3j9X :: TyFun [a6989586621679796318] [a6989586621679796318])
type TakeWhileSym2 (t_a3j9T :: TyFun a6989586621679796318 Bool -> Type) (t_a3j9U :: [a6989586621679796318]) = TakeWhile t_a3j9T t_a3j9U
data DropWhileSym0 (l_a3j9d :: TyFun (TyFun a6989586621679796317 Bool -> Type) (TyFun [a6989586621679796317] [a6989586621679796317] -> Type))
data DropWhileSym1 (l_a3j9g :: TyFun a6989586621679796317 Bool -> Type) (l_a3j9f :: TyFun [a6989586621679796317] [a6989586621679796317])
type DropWhileSym2 (t_a3j9b :: TyFun a6989586621679796317 Bool -> Type) (t_a3j9c :: [a6989586621679796317]) = DropWhile t_a3j9b t_a3j9c
data SpanSym0 (l_a3j6h :: TyFun (TyFun a6989586621679796315 Bool -> Type) (TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]) -> Type))
data SpanSym1 (l_a3j6k :: TyFun a6989586621679796315 Bool -> Type) (l_a3j6j :: TyFun [a6989586621679796315] ([a6989586621679796315], [a6989586621679796315]))
type SpanSym2 (t_a3j6f :: TyFun a6989586621679796315 Bool -> Type) (t_a3j6g :: [a6989586621679796315]) = Span t_a3j6f t_a3j6g
data BreakSym0 (l_a3j4A :: TyFun (TyFun a6989586621679796314 Bool -> Type) (TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]) -> Type))
data BreakSym1 (l_a3j4D :: TyFun a6989586621679796314 Bool -> Type) (l_a3j4C :: TyFun [a6989586621679796314] ([a6989586621679796314], [a6989586621679796314]))
type BreakSym2 (t_a3j4y :: TyFun a6989586621679796314 Bool -> Type) (t_a3j4z :: [a6989586621679796314]) = Break t_a3j4y t_a3j4z
data LookupSym0 (l_a3j2P :: TyFun a6989586621679796303 (TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304) -> Type))
data LookupSym1 (l_a3j2S :: a6989586621679796303) (l_a3j2R :: TyFun [(a6989586621679796303, b6989586621679796304)] (Maybe b6989586621679796304))
type LookupSym2 (t_a3j2N :: a6989586621679796303) (t_a3j2O :: [(a6989586621679796303, b6989586621679796304)]) = Lookup t_a3j2N t_a3j2O
data FilterSym0 (l_a3jaq :: TyFun (TyFun a6989586621679796326 Bool -> Type) (TyFun [a6989586621679796326] [a6989586621679796326] -> Type))
data FilterSym1 (l_a3jat :: TyFun a6989586621679796326 Bool -> Type) (l_a3jas :: TyFun [a6989586621679796326] [a6989586621679796326])
type FilterSym2 (t_a3jao :: TyFun a6989586621679796326 Bool -> Type) (t_a3jap :: [a6989586621679796326]) = Filter t_a3jao t_a3jap
data (:!!$) (l_a3j0e :: TyFun [a6989586621679796295] (TyFun Nat a6989586621679796295 -> Type))
data (:!!$$) (l_a3j0h :: [a6989586621679796295]) (l_a3j0g :: TyFun Nat a6989586621679796295)
type (:!!$$$) (t_a3j0c :: [a6989586621679796295]) (t_a3j0d :: Nat) = (:!!) t_a3j0c t_a3j0d
