-- 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_a1YaU :: Bool). Sing t_a1YaU -> Sing (Apply NotSym0 t_a1YaU :: Bool)
(%:&&) :: forall (t_a1YaX :: Bool) (t_a1YaY :: Bool). Sing t_a1YaX -> Sing t_a1YaY -> Sing (Apply (Apply (:&&$) t_a1YaX) t_a1YaY :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a1YaV :: Bool) (t_a1YaW :: Bool). Sing t_a1YaV -> Sing t_a1YaW -> Sing (Apply (Apply (:||$) t_a1YaV) t_a1YaW :: Bool)
infixr 2 %:||
bool_ :: forall a_a1XYY. a_a1XYY -> a_a1XYY -> Bool -> a_a1XYY
sBool_ :: forall (t_a1XZn :: a_a1XYY) (t_a1XZo :: a_a1XYY) (t_a1XZp :: Bool). Sing t_a1XZn -> Sing t_a1XZo -> Sing t_a1XZp -> Sing (Apply (Apply (Apply Bool_Sym0 t_a1XZn) t_a1XZo) t_a1XZp :: a_a1XYY)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1Yar :: TyFun Bool Bool)
type NotSym1 (t_a1Yaq :: Bool) = Not t_a1Yaq
data (:&&$) (l_a1YaJ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1YaM :: Bool) (l_a1YaL :: TyFun Bool Bool)
type (:&&$$$) (t_a1YaH :: Bool) (t_a1YaI :: Bool) = (:&&) t_a1YaH t_a1YaI
data (:||$) (l_a1Yaw :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1Yaz :: Bool) (l_a1Yay :: TyFun Bool Bool)
type (:||$$$) (t_a1Yau :: Bool) (t_a1Yav :: Bool) = (:||) t_a1Yau t_a1Yav
data Bool_Sym0 (l_a1XZ7 :: TyFun a6989586621679478696 (TyFun a6989586621679478696 (TyFun Bool a6989586621679478696 -> Type) -> Type))
data Bool_Sym1 (l_a1XZa :: a6989586621679478696) (l_a1XZ9 :: TyFun a6989586621679478696 (TyFun Bool a6989586621679478696 -> Type))
data Bool_Sym2 (l_a1XZd :: a6989586621679478696) (l_a1XZe :: a6989586621679478696) (l_a1XZc :: TyFun Bool a6989586621679478696)
type Bool_Sym3 (t_a1XZ4 :: a6989586621679478696) (t_a1XZ5 :: a6989586621679478696) (t_a1XZ6 :: Bool) = Bool_ t_a1XZ4 t_a1XZ5 t_a1XZ6
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_a1Z2A :: TyFun a_a1YYX (TyFun b_a1YYY b_a1YYY -> Type) -> Type) (t_a1Z2B :: b_a1YYY) (t_a1Z2C :: [a_a1YYX]). Sing t_a1Z2A -> Sing t_a1Z2B -> Sing t_a1Z2C -> Sing (Apply (Apply (Apply FoldrSym0 t_a1Z2A) t_a1Z2B) t_a1Z2C :: b_a1YYY)
sMap :: forall (t_a1Z2y :: TyFun a_a1YYV b_a1YYW -> Type) (t_a1Z2z :: [a_a1YYV]). Sing t_a1Z2y -> Sing t_a1Z2z -> Sing (Apply (Apply MapSym0 t_a1Z2y) t_a1Z2z :: [b_a1YYW])
(%:++) :: forall (t_a1Z2w :: [a_a1YYU]) (t_a1Z2x :: [a_a1YYU]). Sing t_a1Z2w -> Sing t_a1Z2x -> Sing (Apply (Apply (:++$) t_a1Z2w) t_a1Z2x :: [a_a1YYU])
infixr 5 %:++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a1Z2v :: a_a1YYT). Sing t_a1Z2v -> Sing (Apply IdSym0 t_a1Z2v :: a_a1YYT)
sConst :: forall (t_a1Z2r :: a_a1YYR) (t_a1Z2s :: b_a1YYS). Sing t_a1Z2r -> Sing t_a1Z2s -> Sing (Apply (Apply ConstSym0 t_a1Z2r) t_a1Z2s :: a_a1YYR)
(%:.) :: forall (t_a1Z2o :: TyFun b_a1YYO c_a1YYP -> Type) (t_a1Z2p :: TyFun a_a1YYQ b_a1YYO -> Type) (t_a1Z2q :: a_a1YYQ). Sing t_a1Z2o -> Sing t_a1Z2p -> Sing t_a1Z2q -> Sing (Apply (Apply (Apply (:.$) t_a1Z2o) t_a1Z2p) t_a1Z2q :: c_a1YYP)
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_a1Z2l :: TyFun a_a1YYL (TyFun b_a1YYM c_a1YYN -> Type) -> Type) (t_a1Z2m :: b_a1YYM) (t_a1Z2n :: a_a1YYL). Sing t_a1Z2l -> Sing t_a1Z2m -> Sing t_a1Z2n -> Sing (Apply (Apply (Apply FlipSym0 t_a1Z2l) t_a1Z2m) t_a1Z2n :: c_a1YYN)
sAsTypeOf :: forall (t_a1Z2t :: a_a1YYK) (t_a1Z2u :: a_a1YYK). Sing t_a1Z2t -> Sing t_a1Z2u -> Sing (Apply (Apply AsTypeOfSym0 t_a1Z2t) t_a1Z2u :: a_a1YYK)
sSeq :: forall (t_a1Z2j :: a_a1YYI) (t_a1Z2k :: b_a1YYJ). Sing t_a1Z2j -> Sing t_a1Z2k -> Sing (Apply (Apply SeqSym0 t_a1Z2j) t_a1Z2k :: b_a1YYJ)
infixr 0 `sSeq`
data FoldrSym0 (l_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
type (:++$$$) (t_a1Z1b :: [a6989586621679482536]) (t_a1Z1c :: [a6989586621679482536]) = (:++) t_a1Z1b t_a1Z1c
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1Z17 :: TyFun a6989586621679482535 a6989586621679482535)
type IdSym1 (t_a1Z16 :: a6989586621679482535) = Id t_a1Z16
data ConstSym0 (l_a1Z0G :: TyFun a6989586621679482533 (TyFun b6989586621679482534 a6989586621679482533 -> Type))
data ConstSym1 (l_a1Z0J :: a6989586621679482533) (l_a1Z0I :: TyFun b6989586621679482534 a6989586621679482533)
type ConstSym2 (t_a1Z0E :: a6989586621679482533) (t_a1Z0F :: b6989586621679482534) = Const t_a1Z0E t_a1Z0F
data (:.$) (l_a1Z01 :: TyFun (TyFun b6989586621679482530 c6989586621679482531 -> Type) (TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type) -> Type))
data (:.$$) (l_a1Z04 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z03 :: TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type))
data (:.$$$) (l_a1Z07 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z08 :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (l_a1Z06 :: TyFun a6989586621679482532 c6989586621679482531)
type (:.$$$$) (t_a1YZY :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (t_a1YZZ :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (t_a1Z00 :: a6989586621679482532) = (:.) t_a1YZY t_a1YZZ t_a1Z00
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_a1YZJ :: TyFun (TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type) -> Type))
data FlipSym1 (l_a1YZM :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZL :: TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type))
data FlipSym2 (l_a1YZP :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZQ :: b6989586621679482528) (l_a1YZO :: TyFun a6989586621679482527 c6989586621679482529)
type FlipSym3 (t_a1YZG :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (t_a1YZH :: b6989586621679482528) (t_a1YZI :: a6989586621679482527) = Flip t_a1YZG t_a1YZH t_a1YZI
data AsTypeOfSym0 (l_a1Z0X :: TyFun a6989586621679482526 (TyFun a6989586621679482526 a6989586621679482526 -> Type))
data AsTypeOfSym1 (l_a1Z10 :: a6989586621679482526) (l_a1Z0Z :: TyFun a6989586621679482526 a6989586621679482526)
type AsTypeOfSym2 (t_a1Z0V :: a6989586621679482526) (t_a1Z0W :: a6989586621679482526) = AsTypeOf t_a1Z0V t_a1Z0W
data SeqSym0 (l_a1YZv :: TyFun a6989586621679482524 (TyFun b6989586621679482525 b6989586621679482525 -> Type))
data SeqSym1 (l_a1YZy :: a6989586621679482524) (l_a1YZx :: TyFun b6989586621679482525 b6989586621679482525)
type SeqSym2 (t_a1YZt :: a6989586621679482524) (t_a1YZu :: b6989586621679482525) = Seq t_a1YZt t_a1YZu
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679482622Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679482622Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679482622Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679482622Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679482725GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679482725GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679482725GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679482725GoSym0
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_a21um :: TyFun a6989586621679492109 (TyFun a6989586621679492109 Bool -> Type))
data (:==$$) (l_a21up :: a6989586621679492109) (l_a21uo :: TyFun a6989586621679492109 Bool)
type (:==$$$) (t_a21uk :: a6989586621679492109) (t_a21ul :: a6989586621679492109) = (:==) t_a21uk t_a21ul
data (:/=$) (l_a21ut :: TyFun a6989586621679492109 (TyFun a6989586621679492109 Bool -> Type))
data (:/=$$) (l_a21uw :: a6989586621679492109) (l_a21uv :: TyFun a6989586621679492109 Bool)
type (:/=$$$) (t_a21ur :: a6989586621679492109) (t_a21us :: a6989586621679492109) = (:/=) t_a21ur t_a21us
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_a272B), kproxy_a27DH ~ Proxy) => POrd (kproxy_a27DH :: Proxy a_a272B) where type Compare (arg_a27DI :: a_a272B) (arg_a27DJ :: a_a272B) :: Ordering type (:<) (arg_a27DR :: a_a272B) (arg_a27DS :: a_a272B) :: Bool type (:<=) (arg_a27E0 :: a_a272B) (arg_a27E1 :: a_a272B) :: Bool type (:>) (arg_a27E9 :: a_a272B) (arg_a27Ea :: a_a272B) :: Bool type (:>=) (arg_a27Ei :: a_a272B) (arg_a27Ej :: a_a272B) :: Bool type Max (arg_a27Er :: a_a272B) (arg_a27Es :: a_a272B) :: a_a272B type Min (arg_a27EA :: a_a272B) (arg_a27EB :: a_a272B) :: a_a272B type Compare a_a27Fg a_a27Fh = Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh type (:<) a_a27FN a_a27FO = Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO type (:<=) a_a27Gk a_a27Gl = Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl type (:>) a_a27GR a_a27GS = Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS type (:>=) a_a27Ho a_a27Hp = Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp type Max a_a27HV a_a27HW = Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW type Min a_a27Is a_a27It = Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It where {
    type family Compare (arg_a27DI :: a_a272B)
                        (arg_a27DJ :: a_a272B) :: Ordering;
    type family (:<) (arg_a27DR :: a_a272B)
                     (arg_a27DS :: a_a272B) :: Bool;
    type family (:<=) (arg_a27E0 :: a_a272B)
                      (arg_a27E1 :: a_a272B) :: Bool;
    type family (:>) (arg_a27E9 :: a_a272B)
                     (arg_a27Ea :: a_a272B) :: Bool;
    type family (:>=) (arg_a27Ei :: a_a272B)
                      (arg_a27Ej :: a_a272B) :: Bool;
    type family Max (arg_a27Er :: a_a272B)
                    (arg_a27Es :: a_a272B) :: a_a272B;
    type family Min (arg_a27EA :: a_a272B)
                    (arg_a27EB :: a_a272B) :: a_a272B;
    type Compare a_a27Fg a_a27Fh =
        Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh;
    type (:<) a_a27FN a_a27FO =
        Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO;
    type (:<=) a_a27Gk a_a27Gl =
        Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl;
    type (:>) a_a27GR a_a27GS =
        Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS;
    type (:>=) a_a27Ho a_a27Hp =
        Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp;
    type Max a_a27HV a_a27HW =
        Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW;
    type Min a_a27Is a_a27It =
        Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It;
}
class SEq a_a272B => SOrd a_a272B where sCompare sX sY = let lambda_a27IR :: forall x_a27ES y_a27ET. (t_a27ID ~ x_a27ES, t_a27IE ~ y_a27ET) => Sing x_a27ES -> Sing y_a27ET -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering) lambda_a27IR x_a27IS y_a27IT = let sScrutinee_6989586621679513532 :: Sing (Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET) sScrutinee_6989586621679513532 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a27IS) y_a27IT in  case sScrutinee_6989586621679513532 of { STrue -> let lambda_a27IU :: TrueSym0 ~ Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515900 x_a27ES y_a27ET TrueSym0 :: Ordering) lambda_a27IU = SEQ in lambda_a27IU SFalse -> let lambda_a27IV :: FalseSym0 ~ Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515900 x_a27ES y_a27ET FalseSym0 :: Ordering) lambda_a27IV = let sScrutinee_6989586621679513534 :: Sing (Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET) sScrutinee_6989586621679513534 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27IS) y_a27IT in  case sScrutinee_6989586621679513534 of { STrue -> let lambda_a27IW :: TrueSym0 ~ Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515910 x_a27ES y_a27ET TrueSym0 :: Ordering) lambda_a27IW = SLT in lambda_a27IW SFalse -> let lambda_a27IX :: FalseSym0 ~ Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515910 x_a27ES y_a27ET FalseSym0 :: Ordering) lambda_a27IX = SGT in lambda_a27IX } :: Sing (Case_6989586621679515910 x_a27ES y_a27ET (Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET) :: Ordering) in lambda_a27IV } :: Sing (Case_6989586621679515900 x_a27ES y_a27ET (Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET) :: Ordering) in lambda_a27IR sX sY (%:<) sX sY = let lambda_a27IY :: forall x_a27FA y_a27FB. (t_a27IF ~ x_a27FA, t_a27IG ~ y_a27FB) => Sing x_a27FA -> Sing y_a27FB -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool) lambda_a27IY x_a27IZ y_a27J0 = let sScrutinee_6989586621679513536 :: Sing (Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB) sScrutinee_6989586621679513536 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27IZ) y_a27J0 in  case sScrutinee_6989586621679513536 of { SLT -> let lambda_a27J1 :: LTSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB LTSym0 :: Bool) lambda_a27J1 = STrue in lambda_a27J1 SEQ -> let lambda_a27J2 :: EQSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB EQSym0 :: Bool) lambda_a27J2 = SFalse in lambda_a27J2 SGT -> let lambda_a27J3 :: GTSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB GTSym0 :: Bool) lambda_a27J3 = SFalse in lambda_a27J3 } :: Sing (Case_6989586621679515944 x_a27FA y_a27FB (Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB) :: Bool) in lambda_a27IY sX sY (%:<=) sX sY = let lambda_a27J4 :: forall x_a27G7 y_a27G8. (t_a27IH ~ x_a27G7, t_a27II ~ y_a27G8) => Sing x_a27G7 -> Sing y_a27G8 -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool) lambda_a27J4 x_a27J5 y_a27J6 = let sScrutinee_6989586621679513538 :: Sing (Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8) sScrutinee_6989586621679513538 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27J5) y_a27J6 in  case sScrutinee_6989586621679513538 of { SLT -> let lambda_a27J7 :: LTSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 LTSym0 :: Bool) lambda_a27J7 = STrue in lambda_a27J7 SEQ -> let lambda_a27J8 :: EQSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 EQSym0 :: Bool) lambda_a27J8 = STrue in lambda_a27J8 SGT -> let lambda_a27J9 :: GTSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 GTSym0 :: Bool) lambda_a27J9 = SFalse in lambda_a27J9 } :: Sing (Case_6989586621679515977 x_a27G7 y_a27G8 (Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8) :: Bool) in lambda_a27J4 sX sY (%:>) sX sY = let lambda_a27Ja :: forall x_a27GE y_a27GF. (t_a27IJ ~ x_a27GE, t_a27IK ~ y_a27GF) => Sing x_a27GE -> Sing y_a27GF -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool) lambda_a27Ja x_a27Jb y_a27Jc = let sScrutinee_6989586621679513540 :: Sing (Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF) sScrutinee_6989586621679513540 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27Jb) y_a27Jc in  case sScrutinee_6989586621679513540 of { SLT -> let lambda_a27Jd :: LTSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF LTSym0 :: Bool) lambda_a27Jd = SFalse in lambda_a27Jd SEQ -> let lambda_a27Je :: EQSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF EQSym0 :: Bool) lambda_a27Je = SFalse in lambda_a27Je SGT -> let lambda_a27Jf :: GTSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF GTSym0 :: Bool) lambda_a27Jf = STrue in lambda_a27Jf } :: Sing (Case_6989586621679516010 x_a27GE y_a27GF (Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF) :: Bool) in lambda_a27Ja sX sY (%:>=) sX sY = let lambda_a27Jg :: forall x_a27Hb y_a27Hc. (t_a27IL ~ x_a27Hb, t_a27IM ~ y_a27Hc) => Sing x_a27Hb -> Sing y_a27Hc -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool) lambda_a27Jg x_a27Jh y_a27Ji = let sScrutinee_6989586621679513542 :: Sing (Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc) sScrutinee_6989586621679513542 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27Jh) y_a27Ji in  case sScrutinee_6989586621679513542 of { SLT -> let lambda_a27Jj :: LTSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc LTSym0 :: Bool) lambda_a27Jj = SFalse in lambda_a27Jj SEQ -> let lambda_a27Jk :: EQSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc EQSym0 :: Bool) lambda_a27Jk = STrue in lambda_a27Jk SGT -> let lambda_a27Jl :: GTSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc GTSym0 :: Bool) lambda_a27Jl = STrue in lambda_a27Jl } :: Sing (Case_6989586621679516043 x_a27Hb y_a27Hc (Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc) :: Bool) in lambda_a27Jg sX sY sMax sX sY = let lambda_a27Jm :: forall x_a27HI y_a27HJ. (t_a27IN ~ x_a27HI, t_a27IO ~ y_a27HJ) => Sing x_a27HI -> Sing y_a27HJ -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B) lambda_a27Jm x_a27Jn y_a27Jo = let sScrutinee_6989586621679513544 :: Sing (Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ) sScrutinee_6989586621679513544 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27Jn) y_a27Jo in  case sScrutinee_6989586621679513544 of { STrue -> let lambda_a27Jp :: TrueSym0 ~ Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ => Sing (Case_6989586621679516076 x_a27HI y_a27HJ TrueSym0 :: a_a272B) lambda_a27Jp = y_a27Jo in lambda_a27Jp SFalse -> let lambda_a27Jq :: FalseSym0 ~ Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ => Sing (Case_6989586621679516076 x_a27HI y_a27HJ FalseSym0 :: a_a272B) lambda_a27Jq = x_a27Jn in lambda_a27Jq } :: Sing (Case_6989586621679516076 x_a27HI y_a27HJ (Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ) :: a_a272B) in lambda_a27Jm sX sY sMin sX sY = let lambda_a27Jr :: forall x_a27If y_a27Ig. (t_a27IP ~ x_a27If, t_a27IQ ~ y_a27Ig) => Sing x_a27If -> Sing y_a27Ig -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B) lambda_a27Jr x_a27Js y_a27Jt = let sScrutinee_6989586621679513546 :: Sing (Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig) sScrutinee_6989586621679513546 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27Js) y_a27Jt in  case sScrutinee_6989586621679513546 of { STrue -> let lambda_a27Ju :: TrueSym0 ~ Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig => Sing (Case_6989586621679516109 x_a27If y_a27Ig TrueSym0 :: a_a272B) lambda_a27Ju = x_a27Js in lambda_a27Ju SFalse -> let lambda_a27Jv :: FalseSym0 ~ Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig => Sing (Case_6989586621679516109 x_a27If y_a27Ig FalseSym0 :: a_a272B) lambda_a27Jv = y_a27Jt in lambda_a27Jv } :: Sing (Case_6989586621679516109 x_a27If y_a27Ig (Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig) :: a_a272B) in lambda_a27Jr sX sY
sCompare :: forall (t_a27ID :: a_a272B) (t_a27IE :: a_a272B). SOrd a_a272B => Sing t_a27ID -> Sing t_a27IE -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering)
(%:<) :: forall (t_a27IF :: a_a272B) (t_a27IG :: a_a272B). SOrd a_a272B => Sing t_a27IF -> Sing t_a27IG -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool)
(%:<=) :: forall (t_a27IH :: a_a272B) (t_a27II :: a_a272B). SOrd a_a272B => Sing t_a27IH -> Sing t_a27II -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool)
(%:>) :: forall (t_a27IJ :: a_a272B) (t_a27IK :: a_a272B). SOrd a_a272B => Sing t_a27IJ -> Sing t_a27IK -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool)
(%:>=) :: forall (t_a27IL :: a_a272B) (t_a27IM :: a_a272B). SOrd a_a272B => Sing t_a27IL -> Sing t_a27IM -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool)
sMax :: forall (t_a27IN :: a_a272B) (t_a27IO :: a_a272B). SOrd a_a272B => Sing t_a27IN -> Sing t_a27IO -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B)
sMin :: forall (t_a27IP :: a_a272B) (t_a27IQ :: a_a272B). SOrd a_a272B => Sing t_a27IP -> Sing t_a27IQ -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B)
sCompare :: forall (t_a27ID :: a_a272B) (t_a27IE :: a_a272B). (SOrd a_a272B, Apply (Apply CompareSym0 t_a27ID) t_a27IE ~ Apply (Apply Compare_6989586621679515916Sym0 t_a27ID) t_a27IE) => Sing t_a27ID -> Sing t_a27IE -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering)
(%:<) :: forall (t_a27IF :: a_a272B) (t_a27IG :: a_a272B). (SOrd a_a272B, Apply (Apply (:<$) t_a27IF) t_a27IG ~ Apply (Apply TFHelper_6989586621679515949Sym0 t_a27IF) t_a27IG) => Sing t_a27IF -> Sing t_a27IG -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool)
(%:<=) :: forall (t_a27IH :: a_a272B) (t_a27II :: a_a272B). (SOrd a_a272B, Apply (Apply (:<=$) t_a27IH) t_a27II ~ Apply (Apply TFHelper_6989586621679515982Sym0 t_a27IH) t_a27II) => Sing t_a27IH -> Sing t_a27II -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool)
(%:>) :: forall (t_a27IJ :: a_a272B) (t_a27IK :: a_a272B). (SOrd a_a272B, Apply (Apply (:>$) t_a27IJ) t_a27IK ~ Apply (Apply TFHelper_6989586621679516015Sym0 t_a27IJ) t_a27IK) => Sing t_a27IJ -> Sing t_a27IK -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool)
(%:>=) :: forall (t_a27IL :: a_a272B) (t_a27IM :: a_a272B). (SOrd a_a272B, Apply (Apply (:>=$) t_a27IL) t_a27IM ~ Apply (Apply TFHelper_6989586621679516048Sym0 t_a27IL) t_a27IM) => Sing t_a27IL -> Sing t_a27IM -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool)
sMax :: forall (t_a27IN :: a_a272B) (t_a27IO :: a_a272B). (SOrd a_a272B, Apply (Apply MaxSym0 t_a27IN) t_a27IO ~ Apply (Apply Max_6989586621679516081Sym0 t_a27IN) t_a27IO) => Sing t_a27IN -> Sing t_a27IO -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B)
sMin :: forall (t_a27IP :: a_a272B) (t_a27IQ :: a_a272B). (SOrd a_a272B, Apply (Apply MinSym0 t_a27IP) t_a27IQ ~ Apply (Apply Min_6989586621679516114Sym0 t_a27IP) t_a27IQ) => Sing t_a27IP -> Sing t_a27IQ -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a29vs :: Ordering) (t_a29vt :: Ordering). Sing t_a29vs -> Sing t_a29vt -> Sing (Apply (Apply ThenCmpSym0 t_a29vs) t_a29vt :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a29ve :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a29vh :: Ordering) (l_a29vg :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a29vc :: Ordering) (t_a29vd :: Ordering) = ThenCmp t_a29vc t_a29vd
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a27DM :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Ordering -> Type))
data CompareSym1 (l_a27DP :: a6989586621679513517) (l_a27DO :: TyFun a6989586621679513517 Ordering)
type CompareSym2 (t_a27DK :: a6989586621679513517) (t_a27DL :: a6989586621679513517) = Compare t_a27DK t_a27DL
data (:<$) (l_a27DV :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:<$$) (l_a27DY :: a6989586621679513517) (l_a27DX :: TyFun a6989586621679513517 Bool)
type (:<$$$) (t_a27DT :: a6989586621679513517) (t_a27DU :: a6989586621679513517) = (:<) t_a27DT t_a27DU
data (:<=$) (l_a27E4 :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:<=$$) (l_a27E7 :: a6989586621679513517) (l_a27E6 :: TyFun a6989586621679513517 Bool)
type (:<=$$$) (t_a27E2 :: a6989586621679513517) (t_a27E3 :: a6989586621679513517) = (:<=) t_a27E2 t_a27E3
data (:>$) (l_a27Ed :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:>$$) (l_a27Eg :: a6989586621679513517) (l_a27Ef :: TyFun a6989586621679513517 Bool)
type (:>$$$) (t_a27Eb :: a6989586621679513517) (t_a27Ec :: a6989586621679513517) = (:>) t_a27Eb t_a27Ec
data (:>=$) (l_a27Em :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:>=$$) (l_a27Ep :: a6989586621679513517) (l_a27Eo :: TyFun a6989586621679513517 Bool)
type (:>=$$$) (t_a27Ek :: a6989586621679513517) (t_a27El :: a6989586621679513517) = (:>=) t_a27Ek t_a27El
data MaxSym0 (l_a27Ev :: TyFun a6989586621679513517 (TyFun a6989586621679513517 a6989586621679513517 -> Type))
data MaxSym1 (l_a27Ey :: a6989586621679513517) (l_a27Ex :: TyFun a6989586621679513517 a6989586621679513517)
type MaxSym2 (t_a27Et :: a6989586621679513517) (t_a27Eu :: a6989586621679513517) = Max t_a27Et t_a27Eu
data MinSym0 (l_a27EE :: TyFun a6989586621679513517 (TyFun a6989586621679513517 a6989586621679513517 -> Type))
data MinSym1 (l_a27EH :: a6989586621679513517) (l_a27EG :: TyFun a6989586621679513517 a6989586621679513517)
type MinSym2 (t_a27EC :: a6989586621679513517) (t_a27ED :: a6989586621679513517) = Min t_a27EC t_a27ED
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523331Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523331Sym0
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_6989586621679523383Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523383Sym0
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_6989586621679523439Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523439Sym0
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_6989586621679523483Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523483Sym0
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_6989586621679523520Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523520Sym0
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_6989586621679523563Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523563Sym0
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_6989586621679523614Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523614Sym0
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_6989586621679523673Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523673Sym0
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_6989586621679523740Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523740Sym0
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_6989586621679523815Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523815Sym0
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_6989586621679523850Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523850Sym0
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_6989586621679523874Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523874Sym0
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_6989586621679523903Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679523903Sym0
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.Let6989586621679515892Scrutinee_6989586621679513532Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515892Scrutinee_6989586621679513532Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515902Scrutinee_6989586621679513534Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515902Scrutinee_6989586621679513534Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679515916Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679515916Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515936Scrutinee_6989586621679513536Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515936Scrutinee_6989586621679513536Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679515949Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679515949Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515969Scrutinee_6989586621679513538Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679515969Scrutinee_6989586621679513538Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679515982Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679515982Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516002Scrutinee_6989586621679513540Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516002Scrutinee_6989586621679513540Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679516015Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679516015Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516035Scrutinee_6989586621679513542Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516035Scrutinee_6989586621679513542Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679516048Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679516048Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516068Scrutinee_6989586621679513544Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516068Scrutinee_6989586621679513544Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679516081Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679516081Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516101Scrutinee_6989586621679513546Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679516101Scrutinee_6989586621679513546Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679516114Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679516114Sym0


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Singletons.Prelude.Num
class kproxy_a2tQ2 ~ Proxy => PNum (kproxy_a2tQ2 :: Proxy a_a2tPY) where type (:+) (arg_a2tQ3 :: a_a2tPY) (arg_a2tQ4 :: a_a2tPY) :: a_a2tPY type (:-) (arg_a2tQc :: a_a2tPY) (arg_a2tQd :: a_a2tPY) :: a_a2tPY type (:*) (arg_a2tQl :: a_a2tPY) (arg_a2tQm :: a_a2tPY) :: a_a2tPY type Negate (arg_a2tQu :: a_a2tPY) :: a_a2tPY type Abs (arg_a2tQy :: a_a2tPY) :: a_a2tPY type Signum (arg_a2tQC :: a_a2tPY) :: a_a2tPY type FromInteger (arg_a2tQG :: Nat) :: a_a2tPY type (:-) a_a2tQV a_a2tQW = Apply (Apply TFHelper_6989586621679601207Sym0 a_a2tQV) a_a2tQW type Negate a_a2tRb = Apply Negate_6989586621679601222Sym0 a_a2tRb where {
    type family (:+) (arg_a2tQ3 :: a_a2tPY)
                     (arg_a2tQ4 :: a_a2tPY) :: a_a2tPY;
    type family (:-) (arg_a2tQc :: a_a2tPY)
                     (arg_a2tQd :: a_a2tPY) :: a_a2tPY;
    type family (:*) (arg_a2tQl :: a_a2tPY)
                     (arg_a2tQm :: a_a2tPY) :: a_a2tPY;
    type family Negate (arg_a2tQu :: a_a2tPY) :: a_a2tPY;
    type family Abs (arg_a2tQy :: a_a2tPY) :: a_a2tPY;
    type family Signum (arg_a2tQC :: a_a2tPY) :: a_a2tPY;
    type family FromInteger (arg_a2tQG :: Nat) :: a_a2tPY;
    type (:-) a_a2tQV a_a2tQW =
        Apply (Apply TFHelper_6989586621679601207Sym0 a_a2tQV) a_a2tQW;
    type Negate a_a2tRb = Apply Negate_6989586621679601222Sym0 a_a2tRb;
}
class SNum a_a2tPY where (%:-) sX sY = let lambda_a2tRr :: forall x_a2tQT y_a2tQU. (t_a2tRj ~ x_a2tQT, t_a2tRk ~ y_a2tQU) => Sing x_a2tQT -> Sing y_a2tQU -> Sing (Apply (Apply (:-$) t_a2tRj) t_a2tRk :: a_a2tPY) lambda_a2tRr x_a2tRs y_a2tRt = applySing (applySing (singFun2 (Proxy :: Proxy (:+$)) (%:+)) x_a2tRs) (applySing (singFun1 (Proxy :: Proxy NegateSym0) sNegate) y_a2tRt) in lambda_a2tRr sX sY sNegate sX = let lambda_a2tRu :: forall x_a2tRa. t_a2tRn ~ x_a2tRa => Sing x_a2tRa -> Sing (Apply NegateSym0 t_a2tRn :: a_a2tPY) lambda_a2tRu x_a2tRv = applySing (applySing (singFun2 (Proxy :: Proxy (:-$)) (%:-)) (sFromInteger (sing :: Sing 0))) x_a2tRv in lambda_a2tRu sX
(%:+) :: forall (t_a2tRh :: a_a2tPY) (t_a2tRi :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRh -> Sing t_a2tRi -> Sing (Apply (Apply (:+$) t_a2tRh) t_a2tRi :: a_a2tPY)
(%:-) :: forall (t_a2tRj :: a_a2tPY) (t_a2tRk :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRj -> Sing t_a2tRk -> Sing (Apply (Apply (:-$) t_a2tRj) t_a2tRk :: a_a2tPY)
(%:*) :: forall (t_a2tRl :: a_a2tPY) (t_a2tRm :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRl -> Sing t_a2tRm -> Sing (Apply (Apply (:*$) t_a2tRl) t_a2tRm :: a_a2tPY)
sNegate :: forall (t_a2tRn :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRn -> Sing (Apply NegateSym0 t_a2tRn :: a_a2tPY)
sAbs :: forall (t_a2tRo :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRo -> Sing (Apply AbsSym0 t_a2tRo :: a_a2tPY)
sSignum :: forall (t_a2tRp :: a_a2tPY). SNum a_a2tPY => Sing t_a2tRp -> Sing (Apply SignumSym0 t_a2tRp :: a_a2tPY)
sFromInteger :: forall (t_a2tRq :: Nat). SNum a_a2tPY => Sing t_a2tRq -> Sing (Apply FromIntegerSym0 t_a2tRq :: a_a2tPY)
(%:-) :: forall (t_a2tRj :: a_a2tPY) (t_a2tRk :: a_a2tPY). (SNum a_a2tPY, Apply (Apply (:-$) t_a2tRj) t_a2tRk ~ Apply (Apply TFHelper_6989586621679601207Sym0 t_a2tRj) t_a2tRk) => Sing t_a2tRj -> Sing t_a2tRk -> Sing (Apply (Apply (:-$) t_a2tRj) t_a2tRk :: a_a2tPY)
sNegate :: forall (t_a2tRn :: a_a2tPY). (SNum a_a2tPY, Apply NegateSym0 t_a2tRn ~ Apply Negate_6989586621679601222Sym0 t_a2tRn) => Sing t_a2tRn -> Sing (Apply NegateSym0 t_a2tRn :: a_a2tPY)
sSubtract :: forall (t_a2usT :: a_a2urk) (t_a2usU :: a_a2urk). SNum a_a2urk => Sing t_a2usT -> Sing t_a2usU -> Sing (Apply (Apply SubtractSym0 t_a2usT) t_a2usU :: a_a2urk)
data (:+$) (l_a2tQ7 :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:+$$) (l_a2tQa :: a6989586621679601146) (l_a2tQ9 :: TyFun a6989586621679601146 a6989586621679601146)
type (:+$$$) (t_a2tQ5 :: a6989586621679601146) (t_a2tQ6 :: a6989586621679601146) = (:+) t_a2tQ5 t_a2tQ6
data (:-$) (l_a2tQg :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:-$$) (l_a2tQj :: a6989586621679601146) (l_a2tQi :: TyFun a6989586621679601146 a6989586621679601146)
type (:-$$$) (t_a2tQe :: a6989586621679601146) (t_a2tQf :: a6989586621679601146) = (:-) t_a2tQe t_a2tQf
data (:*$) (l_a2tQp :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:*$$) (l_a2tQs :: a6989586621679601146) (l_a2tQr :: TyFun a6989586621679601146 a6989586621679601146)
type (:*$$$) (t_a2tQn :: a6989586621679601146) (t_a2tQo :: a6989586621679601146) = (:*) t_a2tQn t_a2tQo
data NegateSym0 (l_a2tQw :: TyFun a6989586621679601146 a6989586621679601146)
type NegateSym1 (t_a2tQv :: a6989586621679601146) = Negate t_a2tQv
data AbsSym0 (l_a2tQA :: TyFun a6989586621679601146 a6989586621679601146)
type AbsSym1 (t_a2tQz :: a6989586621679601146) = Abs t_a2tQz
data SignumSym0 (l_a2tQE :: TyFun a6989586621679601146 a6989586621679601146)
type SignumSym1 (t_a2tQD :: a6989586621679601146) = Signum t_a2tQD
data FromIntegerSym0 (l_a2tQI :: TyFun Nat a6989586621679601146)
type FromIntegerSym1 (t_a2tQH :: Nat) = FromInteger t_a2tQH
data SubtractSym0 (l_a2usK :: TyFun a6989586621679603462 (TyFun a6989586621679603462 a6989586621679603462 -> Type))
data SubtractSym1 (l_a2usN :: a6989586621679603462) (l_a2usM :: TyFun a6989586621679603462 a6989586621679603462)
type SubtractSym2 (t_a2usI :: a6989586621679603462) (t_a2usJ :: a6989586621679603462) = Subtract t_a2usI t_a2usJ
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_6989586621679601207Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679601207Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_6989586621679601222Sym0
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_a2rGa :: TyFun k06989586621679591922 k6989586621679591924)
type ErrorSym1 (t_a2rG9 :: k06989586621679591922) = Error t_a2rG9

-- | 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_a2rIS
data (:^$$) (l_a2rIV :: Nat) l_a2rIU
type (:^$$$) (t_a2rIQ :: Nat) (t_a2rIR :: Nat) = (:^) t_a2rIQ t_a2rIR
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_a2vDc ~ Proxy => PBounded (kproxy_a2vDc :: Proxy a_a2vDb) where type MinBound :: a_a2vDb type MaxBound :: a_a2vDb where {
    type family MinBound :: a_a2vDb;
    type family MaxBound :: a_a2vDb;
}
class SBounded a_a2vDb
sMinBound :: SBounded a_a2vDb => Sing (MinBoundSym0 :: a_a2vDb)
sMaxBound :: SBounded a_a2vDb => Sing (MaxBoundSym0 :: a_a2vDb)
class kproxy_a2wP9 ~ Proxy => PEnum (kproxy_a2wP9 :: Proxy a_a2wGB) where type Succ (arg_a2wPa :: a_a2wGB) :: a_a2wGB type Pred (arg_a2wPe :: a_a2wGB) :: a_a2wGB type ToEnum (arg_a2wPi :: Nat) :: a_a2wGB type FromEnum (arg_a2wPm :: a_a2wGB) :: Nat type EnumFromTo (arg_a2wPq :: a_a2wGB) (arg_a2wPr :: a_a2wGB) :: [a_a2wGB] type EnumFromThenTo (arg_a2wPz :: a_a2wGB) (arg_a2wPA :: a_a2wGB) (arg_a2wPB :: a_a2wGB) :: [a_a2wGB] type Succ a_a2wPV = Apply Succ_6989586621679612676Sym0 a_a2wPV type Pred a_a2wQ8 = Apply Pred_6989586621679612689Sym0 a_a2wQ8 type EnumFromTo a_a2wQp a_a2wQq = Apply (Apply EnumFromTo_6989586621679612707Sym0 a_a2wQp) a_a2wQq type EnumFromThenTo a_a2wQS a_a2wQT a_a2wQU = Apply (Apply (Apply EnumFromThenTo_6989586621679612737Sym0 a_a2wQS) a_a2wQT) a_a2wQU where {
    type family Succ (arg_a2wPa :: a_a2wGB) :: a_a2wGB;
    type family Pred (arg_a2wPe :: a_a2wGB) :: a_a2wGB;
    type family ToEnum (arg_a2wPi :: Nat) :: a_a2wGB;
    type family FromEnum (arg_a2wPm :: a_a2wGB) :: Nat;
    type family EnumFromTo (arg_a2wPq :: a_a2wGB)
                           (arg_a2wPr :: a_a2wGB) :: [a_a2wGB];
    type family EnumFromThenTo (arg_a2wPz :: a_a2wGB)
                               (arg_a2wPA :: a_a2wGB)
                               (arg_a2wPB :: a_a2wGB) :: [a_a2wGB];
    type Succ a_a2wPV = Apply Succ_6989586621679612676Sym0 a_a2wPV;
    type Pred a_a2wQ8 = Apply Pred_6989586621679612689Sym0 a_a2wQ8;
    type EnumFromTo a_a2wQp a_a2wQq =
        Apply (Apply EnumFromTo_6989586621679612707Sym0 a_a2wQp) a_a2wQq;
    type EnumFromThenTo a_a2wQS a_a2wQT a_a2wQU =
        Apply (Apply (Apply EnumFromThenTo_6989586621679612737Sym0 a_a2wQS) a_a2wQT) a_a2wQU;
}
class SEnum a_a2wGB where sSucc sA_6989586621679612668 = let lambda_a2wUf :: forall a_6989586621679612668_a2wPU. t_a2wU6 ~ a_6989586621679612668_a2wPU => Sing a_6989586621679612668_a2wPU -> Sing (Apply SuccSym0 t_a2wU6 :: a_a2wGB) lambda_a2wUf a_6989586621679612668_a2wUg = 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_6989586621679612668_a2wUg in lambda_a2wUf sA_6989586621679612668 sPred sA_6989586621679612681 = let lambda_a2wUh :: forall a_6989586621679612681_a2wQ7. t_a2wU7 ~ a_6989586621679612681_a2wQ7 => Sing a_6989586621679612681_a2wQ7 -> Sing (Apply PredSym0 t_a2wU7 :: a_a2wGB) lambda_a2wUh a_6989586621679612681_a2wUi = 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_6989586621679612681_a2wUi in lambda_a2wUh sA_6989586621679612681 sEnumFromTo sX sY = let lambda_a2wUl :: forall x_a2wQn y_a2wQo. (t_a2wUa ~ x_a2wQn, t_a2wUb ~ y_a2wQo) => Sing x_a2wQn -> Sing y_a2wQo -> Sing (Apply (Apply EnumFromToSym0 t_a2wUa) t_a2wUb :: [a_a2wGB]) lambda_a2wUl x_a2wUm y_a2wUn = 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_a2wUm)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a2wUn)) in lambda_a2wUl sX sY sEnumFromThenTo sX1 sX2 sY = let lambda_a2wUp :: forall x1_a2wQP x2_a2wQQ y_a2wQR. (t_a2wUc ~ x1_a2wQP, t_a2wUd ~ x2_a2wQQ, t_a2wUe ~ y_a2wQR) => Sing x1_a2wQP -> Sing x2_a2wQQ -> Sing y_a2wQR -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2wUc) t_a2wUd) t_a2wUe :: [a_a2wGB]) lambda_a2wUp x1_a2wUq x2_a2wUr y_a2wUs = 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_a2wUq)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) x2_a2wUr)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a2wUs)) in lambda_a2wUp sX1 sX2 sY
sSucc :: forall (t_a2wU6 :: a_a2wGB). SEnum a_a2wGB => Sing t_a2wU6 -> Sing (Apply SuccSym0 t_a2wU6 :: a_a2wGB)
sPred :: forall (t_a2wU7 :: a_a2wGB). SEnum a_a2wGB => Sing t_a2wU7 -> Sing (Apply PredSym0 t_a2wU7 :: a_a2wGB)
sToEnum :: forall (t_a2wU8 :: Nat). SEnum a_a2wGB => Sing t_a2wU8 -> Sing (Apply ToEnumSym0 t_a2wU8 :: a_a2wGB)
sFromEnum :: forall (t_a2wU9 :: a_a2wGB). SEnum a_a2wGB => Sing t_a2wU9 -> Sing (Apply FromEnumSym0 t_a2wU9 :: Nat)
sEnumFromTo :: forall (t_a2wUa :: a_a2wGB) (t_a2wUb :: a_a2wGB). SEnum a_a2wGB => Sing t_a2wUa -> Sing t_a2wUb -> Sing (Apply (Apply EnumFromToSym0 t_a2wUa) t_a2wUb :: [a_a2wGB])
sEnumFromThenTo :: forall (t_a2wUc :: a_a2wGB) (t_a2wUd :: a_a2wGB) (t_a2wUe :: a_a2wGB). SEnum a_a2wGB => Sing t_a2wUc -> Sing t_a2wUd -> Sing t_a2wUe -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2wUc) t_a2wUd) t_a2wUe :: [a_a2wGB])
sSucc :: forall (t_a2wU6 :: a_a2wGB). (SEnum a_a2wGB, Apply SuccSym0 t_a2wU6 ~ Apply Succ_6989586621679612676Sym0 t_a2wU6) => Sing t_a2wU6 -> Sing (Apply SuccSym0 t_a2wU6 :: a_a2wGB)
sPred :: forall (t_a2wU7 :: a_a2wGB). (SEnum a_a2wGB, Apply PredSym0 t_a2wU7 ~ Apply Pred_6989586621679612689Sym0 t_a2wU7) => Sing t_a2wU7 -> Sing (Apply PredSym0 t_a2wU7 :: a_a2wGB)
sEnumFromTo :: forall (t_a2wUa :: a_a2wGB) (t_a2wUb :: a_a2wGB). (SEnum a_a2wGB, Apply (Apply EnumFromToSym0 t_a2wUa) t_a2wUb ~ Apply (Apply EnumFromTo_6989586621679612707Sym0 t_a2wUa) t_a2wUb) => Sing t_a2wUa -> Sing t_a2wUb -> Sing (Apply (Apply EnumFromToSym0 t_a2wUa) t_a2wUb :: [a_a2wGB])
sEnumFromThenTo :: forall (t_a2wUc :: a_a2wGB) (t_a2wUd :: a_a2wGB) (t_a2wUe :: a_a2wGB). (SEnum a_a2wGB, Apply (Apply (Apply EnumFromThenToSym0 t_a2wUc) t_a2wUd) t_a2wUe ~ Apply (Apply (Apply EnumFromThenTo_6989586621679612737Sym0 t_a2wUc) t_a2wUd) t_a2wUe) => Sing t_a2wUc -> Sing t_a2wUd -> Sing t_a2wUe -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a2wUc) t_a2wUd) t_a2wUe :: [a_a2wGB])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a2wPc :: TyFun a6989586621679612097 a6989586621679612097)
type SuccSym1 (t_a2wPb :: a6989586621679612097) = Succ t_a2wPb
data PredSym0 (l_a2wPg :: TyFun a6989586621679612097 a6989586621679612097)
type PredSym1 (t_a2wPf :: a6989586621679612097) = Pred t_a2wPf
data ToEnumSym0 (l_a2wPk :: TyFun Nat a6989586621679612097)
type ToEnumSym1 (t_a2wPj :: Nat) = ToEnum t_a2wPj
data FromEnumSym0 (l_a2wPo :: TyFun a6989586621679612097 Nat)
type FromEnumSym1 (t_a2wPn :: a6989586621679612097) = FromEnum t_a2wPn
data EnumFromToSym0 (l_a2wPu :: TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type))
data EnumFromToSym1 (l_a2wPx :: a6989586621679612097) (l_a2wPw :: TyFun a6989586621679612097 [a6989586621679612097])
type EnumFromToSym2 (t_a2wPs :: a6989586621679612097) (t_a2wPt :: a6989586621679612097) = EnumFromTo t_a2wPs t_a2wPt
data EnumFromThenToSym0 (l_a2wPF :: TyFun a6989586621679612097 (TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type) -> Type))
data EnumFromThenToSym1 (l_a2wPI :: a6989586621679612097) (l_a2wPH :: TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type))
data EnumFromThenToSym2 (l_a2wPL :: a6989586621679612097) (l_a2wPM :: a6989586621679612097) (l_a2wPK :: TyFun a6989586621679612097 [a6989586621679612097])
type EnumFromThenToSym3 (t_a2wPC :: a6989586621679612097) (t_a2wPD :: a6989586621679612097) (t_a2wPE :: a6989586621679612097) = EnumFromThenTo t_a2wPC t_a2wPD t_a2wPE
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679632561Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679632571Sym0
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_6989586621679632600Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679632610Sym0
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_6989586621679632636Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679632646Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612185Scrutinee_6989586621679612156Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612222Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612367Scrutinee_6989586621679612146Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612404Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612594Scrutinee_6989586621679612132Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612594Scrutinee_6989586621679612132Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612594Scrutinee_6989586621679612132Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612594Scrutinee_6989586621679612132Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612594Scrutinee_6989586621679612132Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612566GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612566GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612566GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612566GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679612566GoSym0
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_6989586621679612676Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679612689Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679612707Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679612707Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612737Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612737Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612737Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679612757Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679612768Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679612779Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679612790Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679612812Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679612812Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612848Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612848Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679612848Sym0
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_a272B), kproxy_a27DH ~ Proxy) => POrd (kproxy_a27DH :: Proxy a_a272B) where type Compare (arg_a27DI :: a_a272B) (arg_a27DJ :: a_a272B) :: Ordering type (:<) (arg_a27DR :: a_a272B) (arg_a27DS :: a_a272B) :: Bool type (:<=) (arg_a27E0 :: a_a272B) (arg_a27E1 :: a_a272B) :: Bool type (:>) (arg_a27E9 :: a_a272B) (arg_a27Ea :: a_a272B) :: Bool type (:>=) (arg_a27Ei :: a_a272B) (arg_a27Ej :: a_a272B) :: Bool type Max (arg_a27Er :: a_a272B) (arg_a27Es :: a_a272B) :: a_a272B type Min (arg_a27EA :: a_a272B) (arg_a27EB :: a_a272B) :: a_a272B type Compare a_a27Fg a_a27Fh = Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh type (:<) a_a27FN a_a27FO = Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO type (:<=) a_a27Gk a_a27Gl = Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl type (:>) a_a27GR a_a27GS = Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS type (:>=) a_a27Ho a_a27Hp = Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp type Max a_a27HV a_a27HW = Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW type Min a_a27Is a_a27It = Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It where {
    type family Compare (arg_a27DI :: a_a272B)
                        (arg_a27DJ :: a_a272B) :: Ordering;
    type family (:<) (arg_a27DR :: a_a272B)
                     (arg_a27DS :: a_a272B) :: Bool;
    type family (:<=) (arg_a27E0 :: a_a272B)
                      (arg_a27E1 :: a_a272B) :: Bool;
    type family (:>) (arg_a27E9 :: a_a272B)
                     (arg_a27Ea :: a_a272B) :: Bool;
    type family (:>=) (arg_a27Ei :: a_a272B)
                      (arg_a27Ej :: a_a272B) :: Bool;
    type family Max (arg_a27Er :: a_a272B)
                    (arg_a27Es :: a_a272B) :: a_a272B;
    type family Min (arg_a27EA :: a_a272B)
                    (arg_a27EB :: a_a272B) :: a_a272B;
    type Compare a_a27Fg a_a27Fh =
        Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh;
    type (:<) a_a27FN a_a27FO =
        Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO;
    type (:<=) a_a27Gk a_a27Gl =
        Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl;
    type (:>) a_a27GR a_a27GS =
        Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS;
    type (:>=) a_a27Ho a_a27Hp =
        Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp;
    type Max a_a27HV a_a27HW =
        Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW;
    type Min a_a27Is a_a27It =
        Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It;
}
class SEq a_a272B => SOrd a_a272B where sCompare sX sY = let lambda_a27IR :: forall x_a27ES y_a27ET. (t_a27ID ~ x_a27ES, t_a27IE ~ y_a27ET) => Sing x_a27ES -> Sing y_a27ET -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering) lambda_a27IR x_a27IS y_a27IT = let sScrutinee_6989586621679513532 :: Sing (Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET) sScrutinee_6989586621679513532 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a27IS) y_a27IT in  case sScrutinee_6989586621679513532 of { STrue -> let lambda_a27IU :: TrueSym0 ~ Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515900 x_a27ES y_a27ET TrueSym0 :: Ordering) lambda_a27IU = SEQ in lambda_a27IU SFalse -> let lambda_a27IV :: FalseSym0 ~ Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515900 x_a27ES y_a27ET FalseSym0 :: Ordering) lambda_a27IV = let sScrutinee_6989586621679513534 :: Sing (Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET) sScrutinee_6989586621679513534 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27IS) y_a27IT in  case sScrutinee_6989586621679513534 of { STrue -> let lambda_a27IW :: TrueSym0 ~ Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515910 x_a27ES y_a27ET TrueSym0 :: Ordering) lambda_a27IW = SLT in lambda_a27IW SFalse -> let lambda_a27IX :: FalseSym0 ~ Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET => Sing (Case_6989586621679515910 x_a27ES y_a27ET FalseSym0 :: Ordering) lambda_a27IX = SGT in lambda_a27IX } :: Sing (Case_6989586621679515910 x_a27ES y_a27ET (Let6989586621679515902Scrutinee_6989586621679513534Sym2 x_a27ES y_a27ET) :: Ordering) in lambda_a27IV } :: Sing (Case_6989586621679515900 x_a27ES y_a27ET (Let6989586621679515892Scrutinee_6989586621679513532Sym2 x_a27ES y_a27ET) :: Ordering) in lambda_a27IR sX sY (%:<) sX sY = let lambda_a27IY :: forall x_a27FA y_a27FB. (t_a27IF ~ x_a27FA, t_a27IG ~ y_a27FB) => Sing x_a27FA -> Sing y_a27FB -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool) lambda_a27IY x_a27IZ y_a27J0 = let sScrutinee_6989586621679513536 :: Sing (Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB) sScrutinee_6989586621679513536 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27IZ) y_a27J0 in  case sScrutinee_6989586621679513536 of { SLT -> let lambda_a27J1 :: LTSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB LTSym0 :: Bool) lambda_a27J1 = STrue in lambda_a27J1 SEQ -> let lambda_a27J2 :: EQSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB EQSym0 :: Bool) lambda_a27J2 = SFalse in lambda_a27J2 SGT -> let lambda_a27J3 :: GTSym0 ~ Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB => Sing (Case_6989586621679515944 x_a27FA y_a27FB GTSym0 :: Bool) lambda_a27J3 = SFalse in lambda_a27J3 } :: Sing (Case_6989586621679515944 x_a27FA y_a27FB (Let6989586621679515936Scrutinee_6989586621679513536Sym2 x_a27FA y_a27FB) :: Bool) in lambda_a27IY sX sY (%:<=) sX sY = let lambda_a27J4 :: forall x_a27G7 y_a27G8. (t_a27IH ~ x_a27G7, t_a27II ~ y_a27G8) => Sing x_a27G7 -> Sing y_a27G8 -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool) lambda_a27J4 x_a27J5 y_a27J6 = let sScrutinee_6989586621679513538 :: Sing (Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8) sScrutinee_6989586621679513538 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27J5) y_a27J6 in  case sScrutinee_6989586621679513538 of { SLT -> let lambda_a27J7 :: LTSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 LTSym0 :: Bool) lambda_a27J7 = STrue in lambda_a27J7 SEQ -> let lambda_a27J8 :: EQSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 EQSym0 :: Bool) lambda_a27J8 = STrue in lambda_a27J8 SGT -> let lambda_a27J9 :: GTSym0 ~ Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8 => Sing (Case_6989586621679515977 x_a27G7 y_a27G8 GTSym0 :: Bool) lambda_a27J9 = SFalse in lambda_a27J9 } :: Sing (Case_6989586621679515977 x_a27G7 y_a27G8 (Let6989586621679515969Scrutinee_6989586621679513538Sym2 x_a27G7 y_a27G8) :: Bool) in lambda_a27J4 sX sY (%:>) sX sY = let lambda_a27Ja :: forall x_a27GE y_a27GF. (t_a27IJ ~ x_a27GE, t_a27IK ~ y_a27GF) => Sing x_a27GE -> Sing y_a27GF -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool) lambda_a27Ja x_a27Jb y_a27Jc = let sScrutinee_6989586621679513540 :: Sing (Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF) sScrutinee_6989586621679513540 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27Jb) y_a27Jc in  case sScrutinee_6989586621679513540 of { SLT -> let lambda_a27Jd :: LTSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF LTSym0 :: Bool) lambda_a27Jd = SFalse in lambda_a27Jd SEQ -> let lambda_a27Je :: EQSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF EQSym0 :: Bool) lambda_a27Je = SFalse in lambda_a27Je SGT -> let lambda_a27Jf :: GTSym0 ~ Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF => Sing (Case_6989586621679516010 x_a27GE y_a27GF GTSym0 :: Bool) lambda_a27Jf = STrue in lambda_a27Jf } :: Sing (Case_6989586621679516010 x_a27GE y_a27GF (Let6989586621679516002Scrutinee_6989586621679513540Sym2 x_a27GE y_a27GF) :: Bool) in lambda_a27Ja sX sY (%:>=) sX sY = let lambda_a27Jg :: forall x_a27Hb y_a27Hc. (t_a27IL ~ x_a27Hb, t_a27IM ~ y_a27Hc) => Sing x_a27Hb -> Sing y_a27Hc -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool) lambda_a27Jg x_a27Jh y_a27Ji = let sScrutinee_6989586621679513542 :: Sing (Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc) sScrutinee_6989586621679513542 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a27Jh) y_a27Ji in  case sScrutinee_6989586621679513542 of { SLT -> let lambda_a27Jj :: LTSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc LTSym0 :: Bool) lambda_a27Jj = SFalse in lambda_a27Jj SEQ -> let lambda_a27Jk :: EQSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc EQSym0 :: Bool) lambda_a27Jk = STrue in lambda_a27Jk SGT -> let lambda_a27Jl :: GTSym0 ~ Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc => Sing (Case_6989586621679516043 x_a27Hb y_a27Hc GTSym0 :: Bool) lambda_a27Jl = STrue in lambda_a27Jl } :: Sing (Case_6989586621679516043 x_a27Hb y_a27Hc (Let6989586621679516035Scrutinee_6989586621679513542Sym2 x_a27Hb y_a27Hc) :: Bool) in lambda_a27Jg sX sY sMax sX sY = let lambda_a27Jm :: forall x_a27HI y_a27HJ. (t_a27IN ~ x_a27HI, t_a27IO ~ y_a27HJ) => Sing x_a27HI -> Sing y_a27HJ -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B) lambda_a27Jm x_a27Jn y_a27Jo = let sScrutinee_6989586621679513544 :: Sing (Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ) sScrutinee_6989586621679513544 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27Jn) y_a27Jo in  case sScrutinee_6989586621679513544 of { STrue -> let lambda_a27Jp :: TrueSym0 ~ Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ => Sing (Case_6989586621679516076 x_a27HI y_a27HJ TrueSym0 :: a_a272B) lambda_a27Jp = y_a27Jo in lambda_a27Jp SFalse -> let lambda_a27Jq :: FalseSym0 ~ Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ => Sing (Case_6989586621679516076 x_a27HI y_a27HJ FalseSym0 :: a_a272B) lambda_a27Jq = x_a27Jn in lambda_a27Jq } :: Sing (Case_6989586621679516076 x_a27HI y_a27HJ (Let6989586621679516068Scrutinee_6989586621679513544Sym2 x_a27HI y_a27HJ) :: a_a272B) in lambda_a27Jm sX sY sMin sX sY = let lambda_a27Jr :: forall x_a27If y_a27Ig. (t_a27IP ~ x_a27If, t_a27IQ ~ y_a27Ig) => Sing x_a27If -> Sing y_a27Ig -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B) lambda_a27Jr x_a27Js y_a27Jt = let sScrutinee_6989586621679513546 :: Sing (Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig) sScrutinee_6989586621679513546 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a27Js) y_a27Jt in  case sScrutinee_6989586621679513546 of { STrue -> let lambda_a27Ju :: TrueSym0 ~ Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig => Sing (Case_6989586621679516109 x_a27If y_a27Ig TrueSym0 :: a_a272B) lambda_a27Ju = x_a27Js in lambda_a27Ju SFalse -> let lambda_a27Jv :: FalseSym0 ~ Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig => Sing (Case_6989586621679516109 x_a27If y_a27Ig FalseSym0 :: a_a272B) lambda_a27Jv = y_a27Jt in lambda_a27Jv } :: Sing (Case_6989586621679516109 x_a27If y_a27Ig (Let6989586621679516101Scrutinee_6989586621679513546Sym2 x_a27If y_a27Ig) :: a_a272B) in lambda_a27Jr sX sY
sCompare :: forall (t_a27ID :: a_a272B) (t_a27IE :: a_a272B). SOrd a_a272B => Sing t_a27ID -> Sing t_a27IE -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering)
(%:<) :: forall (t_a27IF :: a_a272B) (t_a27IG :: a_a272B). SOrd a_a272B => Sing t_a27IF -> Sing t_a27IG -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool)
(%:<=) :: forall (t_a27IH :: a_a272B) (t_a27II :: a_a272B). SOrd a_a272B => Sing t_a27IH -> Sing t_a27II -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool)
(%:>) :: forall (t_a27IJ :: a_a272B) (t_a27IK :: a_a272B). SOrd a_a272B => Sing t_a27IJ -> Sing t_a27IK -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool)
(%:>=) :: forall (t_a27IL :: a_a272B) (t_a27IM :: a_a272B). SOrd a_a272B => Sing t_a27IL -> Sing t_a27IM -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool)
sMax :: forall (t_a27IN :: a_a272B) (t_a27IO :: a_a272B). SOrd a_a272B => Sing t_a27IN -> Sing t_a27IO -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B)
sMin :: forall (t_a27IP :: a_a272B) (t_a27IQ :: a_a272B). SOrd a_a272B => Sing t_a27IP -> Sing t_a27IQ -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B)
sCompare :: forall (t_a27ID :: a_a272B) (t_a27IE :: a_a272B). (SOrd a_a272B, Apply (Apply CompareSym0 t_a27ID) t_a27IE ~ Apply (Apply Compare_6989586621679515916Sym0 t_a27ID) t_a27IE) => Sing t_a27ID -> Sing t_a27IE -> Sing (Apply (Apply CompareSym0 t_a27ID) t_a27IE :: Ordering)
(%:<) :: forall (t_a27IF :: a_a272B) (t_a27IG :: a_a272B). (SOrd a_a272B, Apply (Apply (:<$) t_a27IF) t_a27IG ~ Apply (Apply TFHelper_6989586621679515949Sym0 t_a27IF) t_a27IG) => Sing t_a27IF -> Sing t_a27IG -> Sing (Apply (Apply (:<$) t_a27IF) t_a27IG :: Bool)
(%:<=) :: forall (t_a27IH :: a_a272B) (t_a27II :: a_a272B). (SOrd a_a272B, Apply (Apply (:<=$) t_a27IH) t_a27II ~ Apply (Apply TFHelper_6989586621679515982Sym0 t_a27IH) t_a27II) => Sing t_a27IH -> Sing t_a27II -> Sing (Apply (Apply (:<=$) t_a27IH) t_a27II :: Bool)
(%:>) :: forall (t_a27IJ :: a_a272B) (t_a27IK :: a_a272B). (SOrd a_a272B, Apply (Apply (:>$) t_a27IJ) t_a27IK ~ Apply (Apply TFHelper_6989586621679516015Sym0 t_a27IJ) t_a27IK) => Sing t_a27IJ -> Sing t_a27IK -> Sing (Apply (Apply (:>$) t_a27IJ) t_a27IK :: Bool)
(%:>=) :: forall (t_a27IL :: a_a272B) (t_a27IM :: a_a272B). (SOrd a_a272B, Apply (Apply (:>=$) t_a27IL) t_a27IM ~ Apply (Apply TFHelper_6989586621679516048Sym0 t_a27IL) t_a27IM) => Sing t_a27IL -> Sing t_a27IM -> Sing (Apply (Apply (:>=$) t_a27IL) t_a27IM :: Bool)
sMax :: forall (t_a27IN :: a_a272B) (t_a27IO :: a_a272B). (SOrd a_a272B, Apply (Apply MaxSym0 t_a27IN) t_a27IO ~ Apply (Apply Max_6989586621679516081Sym0 t_a27IN) t_a27IO) => Sing t_a27IN -> Sing t_a27IO -> Sing (Apply (Apply MaxSym0 t_a27IN) t_a27IO :: a_a272B)
sMin :: forall (t_a27IP :: a_a272B) (t_a27IQ :: a_a272B). (SOrd a_a272B, Apply (Apply MinSym0 t_a27IP) t_a27IQ ~ Apply (Apply Min_6989586621679516114Sym0 t_a27IP) t_a27IQ) => Sing t_a27IP -> Sing t_a27IQ -> Sing (Apply (Apply MinSym0 t_a27IP) t_a27IQ :: a_a272B)
sThenCmp :: forall (t_a29vs :: Ordering) (t_a29vt :: Ordering). Sing t_a29vs -> Sing t_a29vt -> Sing (Apply (Apply ThenCmpSym0 t_a29vs) t_a29vt :: Ordering)
sFoldl :: forall (t_a1Q6s :: TyFun b_a1Q5u (TyFun a_a1Q5t b_a1Q5u -> Type) -> Type) (t_a1Q6t :: b_a1Q5u) (t_a1Q6u :: [a_a1Q5t]). Sing t_a1Q6s -> Sing t_a1Q6t -> Sing t_a1Q6u -> Sing (Apply (Apply (Apply FoldlSym0 t_a1Q6s) t_a1Q6t) t_a1Q6u :: b_a1Q5u)

-- | 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_a2rGa :: TyFun k06989586621679591922 k6989586621679591924)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data CompareSym0 (l_a27DM :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Ordering -> Type))
data ThenCmpSym0 (l_a29ve :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> 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_abwE b_abwF -> Type)
either_ :: forall a_a2L8P c_a2L8Q b_a2L8R. (a_a2L8P -> c_a2L8Q) -> (b_a2L8R -> c_a2L8Q) -> Either a_a2L8P b_a2L8R -> c_a2L8Q
sEither_ :: forall (t_a2L9m :: TyFun a_a2L8P c_a2L8Q -> Type) (t_a2L9n :: TyFun b_a2L8R c_a2L8Q -> Type) (t_a2L9o :: Either a_a2L8P b_a2L8R). Sing t_a2L9m -> Sing t_a2L9n -> Sing t_a2L9o -> Sing (Apply (Apply (Apply Either_Sym0 t_a2L9m) t_a2L9n) t_a2L9o :: c_a2L8Q)
sLefts :: forall (t_a2Lv2 :: [Either a_a2Ltj b_a2Ltk]). Sing t_a2Lv2 -> Sing (Apply LeftsSym0 t_a2Lv2 :: [a_a2Ltj])
sRights :: forall (t_a2Lv1 :: [Either a_a2Lth b_a2Lti]). Sing t_a2Lv1 -> Sing (Apply RightsSym0 t_a2Lv1 :: [b_a2Lti])
sPartitionEithers :: forall (t_a2Lv0 :: [Either a_a2Ltf b_a2Ltg]). Sing t_a2Lv0 -> Sing (Apply PartitionEithersSym0 t_a2Lv0 :: ([a_a2Ltf], [b_a2Ltg]))
sIsLeft :: forall (t_a2LuZ :: Either a_a2Ltd b_a2Lte). Sing t_a2LuZ -> Sing (Apply IsLeftSym0 t_a2LuZ :: Bool)
sIsRight :: forall (t_a2LuY :: Either a_a2Ltb b_a2Ltc). Sing t_a2LuY -> Sing (Apply IsRightSym0 t_a2LuY :: Bool)
data LeftSym0 (l_a1N8g :: TyFun a6989586621679054100 (Either a6989586621679054100 b6989586621679054101))
type LeftSym1 (t_a1N8f :: a6989586621679054100) = Left t_a1N8f
data RightSym0 (l_a1N8j :: TyFun b6989586621679054101 (Either a6989586621679054100 b6989586621679054101))
type RightSym1 (t_a1N8i :: b6989586621679054101) = Right t_a1N8i
data Either_Sym0 (l_a2L90 :: TyFun (TyFun a6989586621679667663 c6989586621679667664 -> Type) (TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type) -> Type))
data Either_Sym1 (l_a2L93 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L92 :: TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type))
data Either_Sym2 (l_a2L96 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L97 :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (l_a2L95 :: TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664)
type Either_Sym3 (t_a2L8X :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (t_a2L8Y :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (t_a2L8Z :: Either a6989586621679667663 b6989586621679667665) = Either_ t_a2L8X t_a2L8Y t_a2L8Z
data LeftsSym0 (l_a2LuP :: TyFun [Either a6989586621679668933 b6989586621679668934] [a6989586621679668933])
type LeftsSym1 (t_a2LuO :: [Either a6989586621679668933 b6989586621679668934]) = Lefts t_a2LuO
data RightsSym0 (l_a2LuF :: TyFun [Either a6989586621679668931 b6989586621679668932] [b6989586621679668932])
type RightsSym1 (t_a2LuE :: [Either a6989586621679668931 b6989586621679668932]) = Rights t_a2LuE
data IsLeftSym0 (l_a2LtP :: TyFun (Either a6989586621679668927 b6989586621679668928) Bool)
type IsLeftSym1 (t_a2LtO :: Either a6989586621679668927 b6989586621679668928) = IsLeft t_a2LtO
data IsRightSym0 (l_a2LtF :: TyFun (Either a6989586621679668925 b6989586621679668926) Bool)
type IsRightSym1 (t_a2LtE :: Either a6989586621679668925 b6989586621679668926) = IsRight t_a2LtE
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981RightSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679668981LeftSym0
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_a2NlF a_a2NlG. b_a2NlF -> (a_a2NlG -> b_a2NlF) -> Maybe a_a2NlG -> b_a2NlF
sMaybe_ :: forall (t_a2Nm9 :: b_a2NlF) (t_a2Nma :: TyFun a_a2NlG b_a2NlF -> Type) (t_a2Nmb :: Maybe a_a2NlG). Sing t_a2Nm9 -> Sing t_a2Nma -> Sing t_a2Nmb -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a2Nm9) t_a2Nma) t_a2Nmb :: b_a2NlF)
sIsJust :: forall (t_a2NI2 :: Maybe a_a2NFT). Sing t_a2NI2 -> Sing (Apply IsJustSym0 t_a2NI2 :: Bool)
sIsNothing :: forall (t_a2NI1 :: Maybe a_a2NFS). Sing t_a2NI1 -> Sing (Apply IsNothingSym0 t_a2NI1 :: Bool)
sFromJust :: forall (t_a2NI0 :: Maybe a_a2NFR). Sing t_a2NI0 -> Sing (Apply FromJustSym0 t_a2NI0 :: a_a2NFR)
sFromMaybe :: forall (t_a2NHY :: a_a2NFQ) (t_a2NHZ :: Maybe a_a2NFQ). Sing t_a2NHY -> Sing t_a2NHZ -> Sing (Apply (Apply FromMaybeSym0 t_a2NHY) t_a2NHZ :: a_a2NFQ)
sListToMaybe :: forall (t_a2NHW :: [a_a2NFO]). Sing t_a2NHW -> Sing (Apply ListToMaybeSym0 t_a2NHW :: Maybe a_a2NFO)
sMaybeToList :: forall (t_a2NHX :: Maybe a_a2NFP). Sing t_a2NHX -> Sing (Apply MaybeToListSym0 t_a2NHX :: [a_a2NFP])
sCatMaybes :: forall (t_a2NHV :: [Maybe a_a2NFN]). Sing t_a2NHV -> Sing (Apply CatMaybesSym0 t_a2NHV :: [a_a2NFN])
sMapMaybe :: forall (t_a2NHT :: TyFun a_a2NFL (Maybe b_a2NFM) -> Type) (t_a2NHU :: [a_a2NFL]). Sing t_a2NHT -> Sing t_a2NHU -> Sing (Apply (Apply MapMaybeSym0 t_a2NHT) t_a2NHU :: [b_a2NFM])
type NothingSym0 = Nothing
data JustSym0 (l_a1N7P :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a1N7O :: a3530822107858468866) = Just t_a1N7O
data Maybe_Sym0 (l_a2NlO :: TyFun b6989586621679676147 (TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type) -> Type))
data Maybe_Sym1 (l_a2NlR :: b6989586621679676147) (l_a2NlQ :: TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type))
data Maybe_Sym2 (l_a2NlU :: b6989586621679676147) (l_a2NlV :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (l_a2NlT :: TyFun (Maybe a6989586621679676148) b6989586621679676147)
type Maybe_Sym3 (t_a2NlL :: b6989586621679676147) (t_a2NlM :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (t_a2NlN :: Maybe a6989586621679676148) = Maybe_ t_a2NlL t_a2NlM t_a2NlN
data IsJustSym0 (l_a2NHN :: TyFun (Maybe a6989586621679677401) Bool)
type IsJustSym1 (t_a2NHM :: Maybe a6989586621679677401) = IsJust t_a2NHM
data IsNothingSym0 (l_a2NHG :: TyFun (Maybe a6989586621679677400) Bool)
type IsNothingSym1 (t_a2NHF :: Maybe a6989586621679677400) = IsNothing t_a2NHF
data FromJustSym0 (l_a2NHB :: TyFun (Maybe a6989586621679677399) a6989586621679677399)
type FromJustSym1 (t_a2NHA :: Maybe a6989586621679677399) = FromJust t_a2NHA
data FromMaybeSym0 (l_a2NHn :: TyFun a6989586621679677398 (TyFun (Maybe a6989586621679677398) a6989586621679677398 -> Type))
data FromMaybeSym1 (l_a2NHq :: a6989586621679677398) (l_a2NHp :: TyFun (Maybe a6989586621679677398) a6989586621679677398)
type FromMaybeSym2 (t_a2NHl :: a6989586621679677398) (t_a2NHm :: Maybe a6989586621679677398) = FromMaybe t_a2NHl t_a2NHm
data ListToMaybeSym0 (l_a2NH9 :: TyFun [a6989586621679677396] (Maybe a6989586621679677396))
type ListToMaybeSym1 (t_a2NH8 :: [a6989586621679677396]) = ListToMaybe t_a2NH8
data MaybeToListSym0 (l_a2NHh :: TyFun (Maybe a6989586621679677397) [a6989586621679677397])
type MaybeToListSym1 (t_a2NHg :: Maybe a6989586621679677397) = MaybeToList t_a2NHg
data CatMaybesSym0 (l_a2NH2 :: TyFun [Maybe a6989586621679677395] [a6989586621679677395])
type CatMaybesSym1 (t_a2NH1 :: [Maybe a6989586621679677395]) = CatMaybes t_a2NH1
data MapMaybeSym0 (l_a2NGk :: TyFun (TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (TyFun [a6989586621679677393] [b6989586621679677394] -> Type))
data MapMaybeSym1 (l_a2NGn :: TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (l_a2NGm :: TyFun [a6989586621679677393] [b6989586621679677394])
type MapMaybeSym2 (t_a2NGi :: TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (t_a2NGj :: [a6989586621679677393]) = MapMaybe t_a2NGi t_a2NGj
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677441RsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677441RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677441RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677454Scrutinee_6989586621679677424Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677454Scrutinee_6989586621679677424Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679677454Scrutinee_6989586621679677424Sym0
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_a2PWE :: (a_a2PVu, b_a2PVv)). Sing t_a2PWE -> Sing (Apply FstSym0 t_a2PWE :: a_a2PVu)
sSnd :: forall (t_a2PWD :: (a_a2PVs, b_a2PVt)). Sing t_a2PWD -> Sing (Apply SndSym0 t_a2PWD :: b_a2PVt)
sCurry :: forall (t_a2PWA :: TyFun (a_a2PVp, b_a2PVq) c_a2PVr -> Type) (t_a2PWB :: a_a2PVp) (t_a2PWC :: b_a2PVq). Sing t_a2PWA -> Sing t_a2PWB -> Sing t_a2PWC -> Sing (Apply (Apply (Apply CurrySym0 t_a2PWA) t_a2PWB) t_a2PWC :: c_a2PVr)
sUncurry :: forall (t_a2PWF :: TyFun a_a2PVm (TyFun b_a2PVn c_a2PVo -> Type) -> Type) (t_a2PWG :: (a_a2PVm, b_a2PVn)). Sing t_a2PWF -> Sing t_a2PWG -> Sing (Apply (Apply UncurrySym0 t_a2PWF) t_a2PWG :: c_a2PVo)
sSwap :: forall (t_a2PWz :: (a_a2PVk, b_a2PVl)). Sing t_a2PWz -> Sing (Apply SwapSym0 t_a2PWz :: (b_a2PVl, a_a2PVk))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data FstSym0 (l_a2PWh :: TyFun (a6989586621679686056, b6989586621679686057) a6989586621679686056)
type FstSym1 (t_a2PWg :: (a6989586621679686056, b6989586621679686057)) = Fst t_a2PWg
data SndSym0 (l_a2PW9 :: TyFun (a6989586621679686054, b6989586621679686055) b6989586621679686055)
type SndSym1 (t_a2PW8 :: (a6989586621679686054, b6989586621679686055)) = Snd t_a2PW8
data CurrySym0 (l_a2PVT :: TyFun (TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type) -> Type))
data CurrySym1 (l_a2PVW :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PVV :: TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type))
data CurrySym2 (l_a2PVZ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PW0 :: a6989586621679686051) (l_a2PVY :: TyFun b6989586621679686052 c6989586621679686053)
type CurrySym3 (t_a2PVQ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (t_a2PVR :: a6989586621679686051) (t_a2PVS :: b6989586621679686052) = Curry t_a2PVQ t_a2PVR t_a2PVS
data UncurrySym0 (l_a2PWq :: TyFun (TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050 -> Type))
data UncurrySym1 (l_a2PWt :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (l_a2PWs :: TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050)
type UncurrySym2 (t_a2PWo :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (t_a2PWp :: (a6989586621679686048, b6989586621679686049)) = Uncurry t_a2PWo t_a2PWp
data SwapSym0 (l_a2PVL :: TyFun (a6989586621679686046, b6989586621679686047) (b6989586621679686047, a6989586621679686046))
type SwapSym1 (t_a2PVK :: (a6989586621679686046, b6989586621679686047)) = Swap t_a2PVK
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_a1Z2w :: [a_a1YYU]) (t_a1Z2x :: [a_a1YYU]). Sing t_a1Z2w -> Sing t_a1Z2x -> Sing (Apply (Apply (:++$) t_a1Z2w) t_a1Z2x :: [a_a1YYU])
infixr 5 %:++
sHead :: forall (t_a2URk :: [a_a2TB9]). Sing t_a2URk -> Sing (Apply HeadSym0 t_a2URk :: a_a2TB9)
sLast :: forall (t_a2URj :: [a_a2TB8]). Sing t_a2URj -> Sing (Apply LastSym0 t_a2URj :: a_a2TB8)
sTail :: forall (t_a2URi :: [a_a2TB7]). Sing t_a2URi -> Sing (Apply TailSym0 t_a2URi :: [a_a2TB7])
sInit :: forall (t_a2URh :: [a_a2TB6]). Sing t_a2URh -> Sing (Apply InitSym0 t_a2URh :: [a_a2TB6])
sNull :: forall (t_a2URe :: [a_a2TB5]). Sing t_a2URe -> Sing (Apply NullSym0 t_a2URe :: Bool)
sLength :: forall (t_a2UOQ :: [a_a2Tzg]). Sing t_a2UOQ -> Sing (Apply LengthSym0 t_a2UOQ :: Nat)
sMap :: forall (t_a1Z2y :: TyFun a_a1YYV b_a1YYW -> Type) (t_a1Z2z :: [a_a1YYV]). Sing t_a1Z2y -> Sing t_a1Z2z -> Sing (Apply (Apply MapSym0 t_a1Z2y) t_a1Z2z :: [b_a1YYW])
sReverse :: forall (t_a2URb :: [a_a2TB4]). Sing t_a2URb -> Sing (Apply ReverseSym0 t_a2URb :: [a_a2TB4])
sIntersperse :: forall (t_a2UR7 :: a_a2TB3) (t_a2UR8 :: [a_a2TB3]). Sing t_a2UR7 -> Sing t_a2UR8 -> Sing (Apply (Apply IntersperseSym0 t_a2UR7) t_a2UR8 :: [a_a2TB3])
sIntercalate :: forall (t_a2UR9 :: [a_a2TB2]) (t_a2URa :: [[a_a2TB2]]). Sing t_a2UR9 -> Sing t_a2URa -> Sing (Apply (Apply IntercalateSym0 t_a2UR9) t_a2URa :: [a_a2TB2])
sTranspose :: forall (t_a2URl :: [[a_a2Tze]]). Sing t_a2URl -> Sing (Apply TransposeSym0 t_a2URl :: [[a_a2Tze]])
sSubsequences :: forall (t_a2UR6 :: [a_a2TB1]). Sing t_a2UR6 -> Sing (Apply SubsequencesSym0 t_a2UR6 :: [[a_a2TB1]])
sPermutations :: forall (t_a2UR2 :: [a_a2TAY]). Sing t_a2UR2 -> Sing (Apply PermutationsSym0 t_a2UR2 :: [[a_a2TAY]])
sFoldl :: forall (t_a1Q6s :: TyFun b_a1Q5u (TyFun a_a1Q5t b_a1Q5u -> Type) -> Type) (t_a1Q6t :: b_a1Q5u) (t_a1Q6u :: [a_a1Q5t]). Sing t_a1Q6s -> Sing t_a1Q6t -> Sing t_a1Q6u -> Sing (Apply (Apply (Apply FoldlSym0 t_a1Q6s) t_a1Q6t) t_a1Q6u :: b_a1Q5u)
sFoldl' :: forall (t_a2UQX :: TyFun b_a2TAX (TyFun a_a2TAW b_a2TAX -> Type) -> Type) (t_a2UQY :: b_a2TAX) (t_a2UQZ :: [a_a2TAW]). Sing t_a2UQX -> Sing t_a2UQY -> Sing t_a2UQZ -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a2UQX) t_a2UQY) t_a2UQZ :: b_a2TAX)
sFoldl1 :: forall (t_a2UQP :: TyFun a_a2TAV (TyFun a_a2TAV a_a2TAV -> Type) -> Type) (t_a2UQQ :: [a_a2TAV]). Sing t_a2UQP -> Sing t_a2UQQ -> Sing (Apply (Apply Foldl1Sym0 t_a2UQP) t_a2UQQ :: a_a2TAV)
sFoldl1' :: forall (t_a2UR0 :: TyFun a_a2TAU (TyFun a_a2TAU a_a2TAU -> Type) -> Type) (t_a2UR1 :: [a_a2TAU]). Sing t_a2UR0 -> Sing t_a2UR1 -> Sing (Apply (Apply Foldl1'Sym0 t_a2UR0) t_a2UR1 :: a_a2TAU)
sFoldr :: forall (t_a1Z2A :: TyFun a_a1YYX (TyFun b_a1YYY b_a1YYY -> Type) -> Type) (t_a1Z2B :: b_a1YYY) (t_a1Z2C :: [a_a1YYX]). Sing t_a1Z2A -> Sing t_a1Z2B -> Sing t_a1Z2C -> Sing (Apply (Apply (Apply FoldrSym0 t_a1Z2A) t_a1Z2B) t_a1Z2C :: b_a1YYY)
sFoldr1 :: forall (t_a2UQN :: TyFun a_a2TAT (TyFun a_a2TAT a_a2TAT -> Type) -> Type) (t_a2UQO :: [a_a2TAT]). Sing t_a2UQN -> Sing t_a2UQO -> Sing (Apply (Apply Foldr1Sym0 t_a2UQN) t_a2UQO :: a_a2TAT)
sConcat :: forall (t_a2UQM :: [[a_a2TAS]]). Sing t_a2UQM -> Sing (Apply ConcatSym0 t_a2UQM :: [a_a2TAS])
sConcatMap :: forall (t_a2UQK :: TyFun a_a2TAQ [b_a2TAR] -> Type) (t_a2UQL :: [a_a2TAQ]). Sing t_a2UQK -> Sing t_a2UQL -> Sing (Apply (Apply ConcatMapSym0 t_a2UQK) t_a2UQL :: [b_a2TAR])
sAnd :: forall (t_a2UQJ :: [Bool]). Sing t_a2UQJ -> Sing (Apply AndSym0 t_a2UQJ :: Bool)
sOr :: forall (t_a2UQI :: [Bool]). Sing t_a2UQI -> Sing (Apply OrSym0 t_a2UQI :: Bool)
sAny_ :: forall (t_a2QOP :: TyFun a_a2QOv Bool -> Type) (t_a2QOQ :: [a_a2QOv]). Sing t_a2QOP -> Sing t_a2QOQ -> Sing (Apply (Apply Any_Sym0 t_a2QOP) t_a2QOQ :: Bool)
sAll :: forall (t_a2UQG :: TyFun a_a2TAP Bool -> Type) (t_a2UQH :: [a_a2TAP]). Sing t_a2UQG -> Sing t_a2UQH -> Sing (Apply (Apply AllSym0 t_a2UQG) t_a2UQH :: Bool)
sSum :: forall (t_a2UOS :: [a_a2Tzi]). SNum a_a2Tzi => Sing t_a2UOS -> Sing (Apply SumSym0 t_a2UOS :: a_a2Tzi)
sProduct :: forall (t_a2UOR :: [a_a2Tzh]). SNum a_a2Tzh => Sing t_a2UOR -> Sing (Apply ProductSym0 t_a2UOR :: a_a2Tzh)
sMaximum :: forall (t_a2UQV :: [a_a2Tzr]). SOrd a_a2Tzr => Sing t_a2UQV -> Sing (Apply MaximumSym0 t_a2UQV :: a_a2Tzr)
sMinimum :: forall (t_a2UQW :: [a_a2Tzq]). SOrd a_a2Tzq => Sing t_a2UQW -> Sing (Apply MinimumSym0 t_a2UQW :: a_a2Tzq)
any_ :: forall a_a2QOv. (a_a2QOv -> Bool) -> [a_a2QOv] -> Bool
sScanl :: forall (t_a2UQB :: TyFun b_a2TAN (TyFun a_a2TAO b_a2TAN -> Type) -> Type) (t_a2UQC :: b_a2TAN) (t_a2UQD :: [a_a2TAO]). Sing t_a2UQB -> Sing t_a2UQC -> Sing t_a2UQD -> Sing (Apply (Apply (Apply ScanlSym0 t_a2UQB) t_a2UQC) t_a2UQD :: [b_a2TAN])
sScanl1 :: forall (t_a2UQE :: TyFun a_a2TAM (TyFun a_a2TAM a_a2TAM -> Type) -> Type) (t_a2UQF :: [a_a2TAM]). Sing t_a2UQE -> Sing t_a2UQF -> Sing (Apply (Apply Scanl1Sym0 t_a2UQE) t_a2UQF :: [a_a2TAM])
sScanr :: forall (t_a2UQy :: TyFun a_a2TAK (TyFun b_a2TAL b_a2TAL -> Type) -> Type) (t_a2UQz :: b_a2TAL) (t_a2UQA :: [a_a2TAK]). Sing t_a2UQy -> Sing t_a2UQz -> Sing t_a2UQA -> Sing (Apply (Apply (Apply ScanrSym0 t_a2UQy) t_a2UQz) t_a2UQA :: [b_a2TAL])
sScanr1 :: forall (t_a2UQw :: TyFun a_a2TAJ (TyFun a_a2TAJ a_a2TAJ -> Type) -> Type) (t_a2UQx :: [a_a2TAJ]). Sing t_a2UQw -> Sing t_a2UQx -> Sing (Apply (Apply Scanr1Sym0 t_a2UQw) t_a2UQx :: [a_a2TAJ])
sMapAccumL :: forall (t_a2UQt :: TyFun acc_a2TAG (TyFun x_a2TAH (acc_a2TAG, y_a2TAI) -> Type) -> Type) (t_a2UQu :: acc_a2TAG) (t_a2UQv :: [x_a2TAH]). Sing t_a2UQt -> Sing t_a2UQu -> Sing t_a2UQv -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a2UQt) t_a2UQu) t_a2UQv :: (acc_a2TAG, [y_a2TAI]))
sMapAccumR :: forall (t_a2UQq :: TyFun acc_a2TAD (TyFun x_a2TAE (acc_a2TAD, y_a2TAF) -> Type) -> Type) (t_a2UQr :: acc_a2TAD) (t_a2UQs :: [x_a2TAE]). Sing t_a2UQq -> Sing t_a2UQr -> Sing t_a2UQs -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a2UQq) t_a2UQr) t_a2UQs :: (acc_a2TAD, [y_a2TAF]))
sReplicate :: forall (t_a2UOO :: Nat) (t_a2UOP :: a_a2Tzf). Sing t_a2UOO -> Sing t_a2UOP -> Sing (Apply (Apply ReplicateSym0 t_a2UOO) t_a2UOP :: [a_a2Tzf])
sUnfoldr :: forall (t_a2UQo :: TyFun b_a2TAB (Maybe (a_a2TAC, b_a2TAB)) -> Type) (t_a2UQp :: b_a2TAB). Sing t_a2UQo -> Sing t_a2UQp -> Sing (Apply (Apply UnfoldrSym0 t_a2UQo) t_a2UQp :: [a_a2TAC])
sTake :: forall (t_a2UP2 :: Nat) (t_a2UP3 :: [a_a2Tzv]). Sing t_a2UP2 -> Sing t_a2UP3 -> Sing (Apply (Apply TakeSym0 t_a2UP2) t_a2UP3 :: [a_a2Tzv])
sDrop :: forall (t_a2UP0 :: Nat) (t_a2UP1 :: [a_a2Tzu]). Sing t_a2UP0 -> Sing t_a2UP1 -> Sing (Apply (Apply DropSym0 t_a2UP0) t_a2UP1 :: [a_a2Tzu])
sSplitAt :: forall (t_a2UP4 :: Nat) (t_a2UP5 :: [a_a2Tzt]). Sing t_a2UP4 -> Sing t_a2UP5 -> Sing (Apply (Apply SplitAtSym0 t_a2UP4) t_a2UP5 :: ([a_a2Tzt], [a_a2Tzt]))
sTakeWhile :: forall (t_a2UPf :: TyFun a_a2TzA Bool -> Type) (t_a2UPg :: [a_a2TzA]). Sing t_a2UPf -> Sing t_a2UPg -> Sing (Apply (Apply TakeWhileSym0 t_a2UPf) t_a2UPg :: [a_a2TzA])
sDropWhile :: forall (t_a2UPd :: TyFun a_a2Tzz Bool -> Type) (t_a2UPe :: [a_a2Tzz]). Sing t_a2UPd -> Sing t_a2UPe -> Sing (Apply (Apply DropWhileSym0 t_a2UPd) t_a2UPe :: [a_a2Tzz])
sDropWhileEnd :: forall (t_a2URf :: TyFun a_a2Tzy Bool -> Type) (t_a2URg :: [a_a2Tzy]). Sing t_a2URf -> Sing t_a2URg -> Sing (Apply (Apply DropWhileEndSym0 t_a2URf) t_a2URg :: [a_a2Tzy])
sSpan :: forall (t_a2UP8 :: TyFun a_a2Tzx Bool -> Type) (t_a2UP9 :: [a_a2Tzx]). Sing t_a2UP8 -> Sing t_a2UP9 -> Sing (Apply (Apply SpanSym0 t_a2UP8) t_a2UP9 :: ([a_a2Tzx], [a_a2Tzx]))
sBreak :: forall (t_a2UP6 :: TyFun a_a2Tzw Bool -> Type) (t_a2UP7 :: [a_a2Tzw]). Sing t_a2UP6 -> Sing t_a2UP7 -> Sing (Apply (Apply BreakSym0 t_a2UP6) t_a2UP7 :: ([a_a2Tzw], [a_a2Tzw]))
sGroup :: forall (t_a2UPc :: [a_a2Tzs]). SEq a_a2Tzs => Sing t_a2UPc -> Sing (Apply GroupSym0 t_a2UPc :: [[a_a2Tzs]])
sInits :: forall (t_a2UQn :: [a_a2TAA]). Sing t_a2UQn -> Sing (Apply InitsSym0 t_a2UQn :: [[a_a2TAA]])
sTails :: forall (t_a2UQk :: [a_a2TAz]). Sing t_a2UQk -> Sing (Apply TailsSym0 t_a2UQk :: [[a_a2TAz]])
sIsPrefixOf :: forall (t_a2UQi :: [a_a2TAy]) (t_a2UQj :: [a_a2TAy]). SEq a_a2TAy => Sing t_a2UQi -> Sing t_a2UQj -> Sing (Apply (Apply IsPrefixOfSym0 t_a2UQi) t_a2UQj :: Bool)
sIsSuffixOf :: forall (t_a2URc :: [a_a2TAx]) (t_a2URd :: [a_a2TAx]). SEq a_a2TAx => Sing t_a2URc -> Sing t_a2URd -> Sing (Apply (Apply IsSuffixOfSym0 t_a2URc) t_a2URd :: Bool)
sIsInfixOf :: forall (t_a2UQl :: [a_a2TAw]) (t_a2UQm :: [a_a2TAw]). SEq a_a2TAw => Sing t_a2UQl -> Sing t_a2UQm -> Sing (Apply (Apply IsInfixOfSym0 t_a2UQl) t_a2UQm :: Bool)
sElem :: forall (t_a2UQf :: a_a2TAv) (t_a2UQg :: [a_a2TAv]). SEq a_a2TAv => Sing t_a2UQf -> Sing t_a2UQg -> Sing (Apply (Apply ElemSym0 t_a2UQf) t_a2UQg :: Bool)
sNotElem :: forall (t_a2UQd :: a_a2TAu) (t_a2UQe :: [a_a2TAu]). SEq a_a2TAu => Sing t_a2UQd -> Sing t_a2UQe -> Sing (Apply (Apply NotElemSym0 t_a2UQd) t_a2UQe :: Bool)
sLookup :: forall (t_a2UOY :: a_a2Tzl) (t_a2UOZ :: [(a_a2Tzl, b_a2Tzm)]). SEq a_a2Tzl => Sing t_a2UOY -> Sing t_a2UOZ -> Sing (Apply (Apply LookupSym0 t_a2UOY) t_a2UOZ :: Maybe b_a2Tzm)
sFind :: forall (t_a2UPj :: TyFun a_a2TzH Bool -> Type) (t_a2UPk :: [a_a2TzH]). Sing t_a2UPj -> Sing t_a2UPk -> Sing (Apply (Apply FindSym0 t_a2UPj) t_a2UPk :: Maybe a_a2TzH)
sFilter :: forall (t_a2UPh :: TyFun a_a2TzI Bool -> Type) (t_a2UPi :: [a_a2TzI]). Sing t_a2UPh -> Sing t_a2UPi -> Sing (Apply (Apply FilterSym0 t_a2UPh) t_a2UPi :: [a_a2TzI])
sPartition :: forall (t_a2UOW :: TyFun a_a2Tzk Bool -> Type) (t_a2UOX :: [a_a2Tzk]). Sing t_a2UOW -> Sing t_a2UOX -> Sing (Apply (Apply PartitionSym0 t_a2UOW) t_a2UOX :: ([a_a2Tzk], [a_a2Tzk]))
(%:!!) :: forall (t_a2UOM :: [a_a2Tzd]) (t_a2UON :: Nat). Sing t_a2UOM -> Sing t_a2UON -> Sing (Apply (Apply (:!!$) t_a2UOM) t_a2UON :: a_a2Tzd)
sElemIndex :: forall (t_a2UQb :: a_a2TzG) (t_a2UQc :: [a_a2TzG]). SEq a_a2TzG => Sing t_a2UQb -> Sing t_a2UQc -> Sing (Apply (Apply ElemIndexSym0 t_a2UQb) t_a2UQc :: Maybe Nat)
sElemIndices :: forall (t_a2UQ7 :: a_a2TzF) (t_a2UQ8 :: [a_a2TzF]). SEq a_a2TzF => Sing t_a2UQ7 -> Sing t_a2UQ8 -> Sing (Apply (Apply ElemIndicesSym0 t_a2UQ7) t_a2UQ8 :: [Nat])
sFindIndex :: forall (t_a2UQ9 :: TyFun a_a2TzE Bool -> Type) (t_a2UQa :: [a_a2TzE]). Sing t_a2UQ9 -> Sing t_a2UQa -> Sing (Apply (Apply FindIndexSym0 t_a2UQ9) t_a2UQa :: Maybe Nat)
sFindIndices :: forall (t_a2UQ5 :: TyFun a_a2TzD Bool -> Type) (t_a2UQ6 :: [a_a2TzD]). Sing t_a2UQ5 -> Sing t_a2UQ6 -> Sing (Apply (Apply FindIndicesSym0 t_a2UQ5) t_a2UQ6 :: [Nat])
sZip :: forall (t_a2UQ3 :: [a_a2TAs]) (t_a2UQ4 :: [b_a2TAt]). Sing t_a2UQ3 -> Sing t_a2UQ4 -> Sing (Apply (Apply ZipSym0 t_a2UQ3) t_a2UQ4 :: [(a_a2TAs, b_a2TAt)])
sZip3 :: forall (t_a2UQ0 :: [a_a2TAp]) (t_a2UQ1 :: [b_a2TAq]) (t_a2UQ2 :: [c_a2TAr]). Sing t_a2UQ0 -> Sing t_a2UQ1 -> Sing t_a2UQ2 -> Sing (Apply (Apply (Apply Zip3Sym0 t_a2UQ0) t_a2UQ1) t_a2UQ2 :: [(a_a2TAp, b_a2TAq, c_a2TAr)])
sZipWith :: forall (t_a2UPX :: TyFun a_a2TAm (TyFun b_a2TAn c_a2TAo -> Type) -> Type) (t_a2UPY :: [a_a2TAm]) (t_a2UPZ :: [b_a2TAn]). Sing t_a2UPX -> Sing t_a2UPY -> Sing t_a2UPZ -> Sing (Apply (Apply (Apply ZipWithSym0 t_a2UPX) t_a2UPY) t_a2UPZ :: [c_a2TAo])
sZipWith3 :: forall (t_a2UPT :: TyFun a_a2TAi (TyFun b_a2TAj (TyFun c_a2TAk d_a2TAl -> Type) -> Type) -> Type) (t_a2UPU :: [a_a2TAi]) (t_a2UPV :: [b_a2TAj]) (t_a2UPW :: [c_a2TAk]). Sing t_a2UPT -> Sing t_a2UPU -> Sing t_a2UPV -> Sing t_a2UPW -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a2UPT) t_a2UPU) t_a2UPV) t_a2UPW :: [d_a2TAl])
sUnzip :: forall (t_a2UPS :: [(a_a2TAg, b_a2TAh)]). Sing t_a2UPS -> Sing (Apply UnzipSym0 t_a2UPS :: ([a_a2TAg], [b_a2TAh]))
sUnzip3 :: forall (t_a2UPR :: [(a_a2TAd, b_a2TAe, c_a2TAf)]). Sing t_a2UPR -> Sing (Apply Unzip3Sym0 t_a2UPR :: ([a_a2TAd], [b_a2TAe], [c_a2TAf]))
sUnzip4 :: forall (t_a2UPQ :: [(a_a2TA9, b_a2TAa, c_a2TAb, d_a2TAc)]). Sing t_a2UPQ -> Sing (Apply Unzip4Sym0 t_a2UPQ :: ([a_a2TA9], [b_a2TAa], [c_a2TAb], [d_a2TAc]))
sUnzip5 :: forall (t_a2UPP :: [(a_a2TA4, b_a2TA5, c_a2TA6, d_a2TA7, e_a2TA8)]). Sing t_a2UPP -> Sing (Apply Unzip5Sym0 t_a2UPP :: ([a_a2TA4], [b_a2TA5], [c_a2TA6], [d_a2TA7], [e_a2TA8]))
sUnzip6 :: forall (t_a2UPO :: [(a_a2TzY, b_a2TzZ, c_a2TA0, d_a2TA1, e_a2TA2, f_a2TA3)]). Sing t_a2UPO -> Sing (Apply Unzip6Sym0 t_a2UPO :: ([a_a2TzY], [b_a2TzZ], [c_a2TA0], [d_a2TA1], [e_a2TA2], [f_a2TA3]))
sUnzip7 :: forall (t_a2UPN :: [(a_a2TzR, b_a2TzS, c_a2TzT, d_a2TzU, e_a2TzV, f_a2TzW, g_a2TzX)]). Sing t_a2UPN -> Sing (Apply Unzip7Sym0 t_a2UPN :: ([a_a2TzR], [b_a2TzS], [c_a2TzT], [d_a2TzU], [e_a2TzV], [f_a2TzW], [g_a2TzX]))
sNub :: forall (t_a2UQh :: [a_a2Tzc]). SEq a_a2Tzc => Sing t_a2UQh -> Sing (Apply NubSym0 t_a2UQh :: [a_a2Tzc])
sDelete :: forall (t_a2UPJ :: a_a2TzQ) (t_a2UPK :: [a_a2TzQ]). SEq a_a2TzQ => Sing t_a2UPJ -> Sing t_a2UPK -> Sing (Apply (Apply DeleteSym0 t_a2UPJ) t_a2UPK :: [a_a2TzQ])
(%:\\) :: forall (t_a2UPL :: [a_a2TzP]) (t_a2UPM :: [a_a2TzP]). SEq a_a2TzP => Sing t_a2UPL -> Sing t_a2UPM -> Sing (Apply (Apply (:\\$) t_a2UPL) t_a2UPM :: [a_a2TzP])
infix 5 %:\\
sUnion :: forall (t_a2UPH :: [a_a2Tz8]) (t_a2UPI :: [a_a2Tz8]). SEq a_a2Tz8 => Sing t_a2UPH -> Sing t_a2UPI -> Sing (Apply (Apply UnionSym0 t_a2UPH) t_a2UPI :: [a_a2Tz8])
sIntersect :: forall (t_a2UPo :: [a_a2TzC]) (t_a2UPp :: [a_a2TzC]). SEq a_a2TzC => Sing t_a2UPo -> Sing t_a2UPp -> Sing (Apply (Apply IntersectSym0 t_a2UPo) t_a2UPp :: [a_a2TzC])
sInsert :: forall (t_a2UPt :: a_a2Tzp) (t_a2UPu :: [a_a2Tzp]). SOrd a_a2Tzp => Sing t_a2UPt -> Sing t_a2UPu -> Sing (Apply (Apply InsertSym0 t_a2UPt) t_a2UPu :: [a_a2Tzp])
sSort :: forall (t_a2UPx :: [a_a2Tzo]). SOrd a_a2Tzo => Sing t_a2UPx -> Sing (Apply SortSym0 t_a2UPx :: [a_a2Tzo])
sNubBy :: forall (t_a2UOK :: TyFun a_a2Tzb (TyFun a_a2Tzb Bool -> Type) -> Type) (t_a2UOL :: [a_a2Tzb]). Sing t_a2UOK -> Sing t_a2UOL -> Sing (Apply (Apply NubBySym0 t_a2UOK) t_a2UOL :: [a_a2Tzb])
sDeleteBy :: forall (t_a2UPy :: TyFun a_a2TzO (TyFun a_a2TzO Bool -> Type) -> Type) (t_a2UPz :: a_a2TzO) (t_a2UPA :: [a_a2TzO]). Sing t_a2UPy -> Sing t_a2UPz -> Sing t_a2UPA -> Sing (Apply (Apply (Apply DeleteBySym0 t_a2UPy) t_a2UPz) t_a2UPA :: [a_a2TzO])
sDeleteFirstsBy :: forall (t_a2UPB :: TyFun a_a2TzN (TyFun a_a2TzN Bool -> Type) -> Type) (t_a2UPC :: [a_a2TzN]) (t_a2UPD :: [a_a2TzN]). Sing t_a2UPB -> Sing t_a2UPC -> Sing t_a2UPD -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a2UPB) t_a2UPC) t_a2UPD :: [a_a2TzN])
sUnionBy :: forall (t_a2UPE :: TyFun a_a2Tz9 (TyFun a_a2Tz9 Bool -> Type) -> Type) (t_a2UPF :: [a_a2Tz9]) (t_a2UPG :: [a_a2Tz9]). Sing t_a2UPE -> Sing t_a2UPF -> Sing t_a2UPG -> Sing (Apply (Apply (Apply UnionBySym0 t_a2UPE) t_a2UPF) t_a2UPG :: [a_a2Tz9])
sIntersectBy :: forall (t_a2UPl :: TyFun a_a2TzB (TyFun a_a2TzB Bool -> Type) -> Type) (t_a2UPm :: [a_a2TzB]) (t_a2UPn :: [a_a2TzB]). Sing t_a2UPl -> Sing t_a2UPm -> Sing t_a2UPn -> Sing (Apply (Apply (Apply IntersectBySym0 t_a2UPl) t_a2UPm) t_a2UPn :: [a_a2TzB])
sGroupBy :: forall (t_a2UPa :: TyFun a_a2Tzn (TyFun a_a2Tzn Bool -> Type) -> Type) (t_a2UPb :: [a_a2Tzn]). Sing t_a2UPa -> Sing t_a2UPb -> Sing (Apply (Apply GroupBySym0 t_a2UPa) t_a2UPb :: [[a_a2Tzn]])
sSortBy :: forall (t_a2UPv :: TyFun a_a2TzM (TyFun a_a2TzM Ordering -> Type) -> Type) (t_a2UPw :: [a_a2TzM]). Sing t_a2UPv -> Sing t_a2UPw -> Sing (Apply (Apply SortBySym0 t_a2UPv) t_a2UPw :: [a_a2TzM])
sInsertBy :: forall (t_a2UPq :: TyFun a_a2TzL (TyFun a_a2TzL Ordering -> Type) -> Type) (t_a2UPr :: a_a2TzL) (t_a2UPs :: [a_a2TzL]). Sing t_a2UPq -> Sing t_a2UPr -> Sing t_a2UPs -> Sing (Apply (Apply (Apply InsertBySym0 t_a2UPq) t_a2UPr) t_a2UPs :: [a_a2TzL])
sMaximumBy :: forall (t_a2UQR :: TyFun a_a2TzK (TyFun a_a2TzK Ordering -> Type) -> Type) (t_a2UQS :: [a_a2TzK]). Sing t_a2UQR -> Sing t_a2UQS -> Sing (Apply (Apply MaximumBySym0 t_a2UQR) t_a2UQS :: a_a2TzK)
sMinimumBy :: forall (t_a2UQT :: TyFun a_a2TzJ (TyFun a_a2TzJ Ordering -> Type) -> Type) (t_a2UQU :: [a_a2TzJ]). Sing t_a2UQT -> Sing t_a2UQU -> Sing (Apply (Apply MinimumBySym0 t_a2UQT) t_a2UQU :: a_a2TzJ)
sGenericLength :: forall (t_a2UOG :: [a_a2Tz7]). SNum i_a2Tz6 => Sing t_a2UOG -> Sing (Apply GenericLengthSym0 t_a2UOG :: i_a2Tz6)
type NilSym0 = '[]
data (:$) (l_a1N7Z :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a1N82 :: a3530822107858468866) (l_a1N81 :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a1N7X :: a3530822107858468866) (t_a1N7Y :: [a3530822107858468866]) = (:) t_a1N7X t_a1N7Y
type (:++$$$) (t_a1Z1b :: [a6989586621679482536]) (t_a1Z1c :: [a6989586621679482536]) = (:++) t_a1Z1b t_a1Z1c
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data HeadSym0 (l_a2UOr :: TyFun [a6989586621679700171] a6989586621679700171)
type HeadSym1 (t_a2UOq :: [a6989586621679700171]) = Head t_a2UOq
data LastSym0 (l_a2UOh :: TyFun [a6989586621679700170] a6989586621679700170)
type LastSym1 (t_a2UOg :: [a6989586621679700170]) = Last t_a2UOg
data TailSym0 (l_a2UO9 :: TyFun [a6989586621679700169] [a6989586621679700169])
type TailSym1 (t_a2UO8 :: [a6989586621679700169]) = Tail t_a2UO8
data InitSym0 (l_a2UNC :: TyFun [a6989586621679700168] [a6989586621679700168])
type InitSym1 (t_a2UNB :: [a6989586621679700168]) = Init t_a2UNB
data NullSym0 (l_a2UMv :: TyFun [a6989586621679700167] Bool)
type NullSym1 (t_a2UMu :: [a6989586621679700167]) = Null t_a2UMu
data LengthSym0 (l_a2TYK :: TyFun [a6989586621679700054] Nat)
type LengthSym1 (t_a2TYJ :: [a6989586621679700054]) = Length t_a2TYJ
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data ReverseSym0 (l_a2ULW :: TyFun [a6989586621679700166] [a6989586621679700166])
type ReverseSym1 (t_a2ULV :: [a6989586621679700166]) = Reverse t_a2ULV
data IntersperseSym0 (l_a2ULx :: TyFun a6989586621679700165 (TyFun [a6989586621679700165] [a6989586621679700165] -> Type))
data IntersperseSym1 (l_a2ULA :: a6989586621679700165) (l_a2ULz :: TyFun [a6989586621679700165] [a6989586621679700165])
type IntersperseSym2 (t_a2ULv :: a6989586621679700165) (t_a2ULw :: [a6989586621679700165]) = Intersperse t_a2ULv t_a2ULw
data IntercalateSym0 (l_a2ULM :: TyFun [a6989586621679700164] (TyFun [[a6989586621679700164]] [a6989586621679700164] -> Type))
data IntercalateSym1 (l_a2ULP :: [a6989586621679700164]) (l_a2ULO :: TyFun [[a6989586621679700164]] [a6989586621679700164])
type IntercalateSym2 (t_a2ULK :: [a6989586621679700164]) (t_a2ULL :: [[a6989586621679700164]]) = Intercalate t_a2ULK t_a2ULL
data TransposeSym0 (l_a2UOz :: TyFun [[a6989586621679700052]] [[a6989586621679700052]])
type TransposeSym1 (t_a2UOy :: [[a6989586621679700052]]) = Transpose t_a2UOy
data SubsequencesSym0 (l_a2ULr :: TyFun [a6989586621679700163] [[a6989586621679700163]])
type SubsequencesSym1 (t_a2ULq :: [a6989586621679700163]) = Subsequences t_a2ULq
data PermutationsSym0 (l_a2UEJ :: TyFun [a6989586621679700160] [[a6989586621679700160]])
type PermutationsSym1 (t_a2UEI :: [a6989586621679700160]) = Permutations t_a2UEI
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type) -> Type))
data FoldlSym1 (l_a1Q5K :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5J :: TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type))
data FoldlSym2 (l_a1Q5N :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5O :: b6989586621679448348) (l_a1Q5M :: TyFun [a6989586621679448347] b6989586621679448348)
type FoldlSym3 (t_a1Q5E :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (t_a1Q5F :: b6989586621679448348) (t_a1Q5G :: [a6989586621679448347]) = Foldl t_a1Q5E t_a1Q5F t_a1Q5G
data Foldl'Sym0 (l_a2UDa :: TyFun (TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (TyFun b6989586621679700159 (TyFun [a6989586621679700158] b6989586621679700159 -> Type) -> Type))
data Foldl'Sym1 (l_a2UDd :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (l_a2UDc :: TyFun b6989586621679700159 (TyFun [a6989586621679700158] b6989586621679700159 -> Type))
data Foldl'Sym2 (l_a2UDg :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (l_a2UDh :: b6989586621679700159) (l_a2UDf :: TyFun [a6989586621679700158] b6989586621679700159)
type Foldl'Sym3 (t_a2UD7 :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (t_a2UD8 :: b6989586621679700159) (t_a2UD9 :: [a6989586621679700158]) = Foldl' t_a2UD7 t_a2UD8 t_a2UD9
data Foldl1Sym0 (l_a2UzE :: TyFun (TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (TyFun [a6989586621679700157] a6989586621679700157 -> Type))
data Foldl1Sym1 (l_a2UzH :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (l_a2UzG :: TyFun [a6989586621679700157] a6989586621679700157)
type Foldl1Sym2 (t_a2UzC :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (t_a2UzD :: [a6989586621679700157]) = Foldl1 t_a2UzC t_a2UzD
data Foldl1'Sym0 (l_a2UEv :: TyFun (TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (TyFun [a6989586621679700156] a6989586621679700156 -> Type))
data Foldl1'Sym1 (l_a2UEy :: TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (l_a2UEx :: TyFun [a6989586621679700156] a6989586621679700156)
type Foldl1'Sym2 (t_a2UEt :: TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (t_a2UEu :: [a6989586621679700156]) = Foldl1' t_a2UEt t_a2UEu
data FoldrSym0 (l_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data Foldr1Sym0 (l_a2Uz1 :: TyFun (TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (TyFun [a6989586621679700155] a6989586621679700155 -> Type))
data Foldr1Sym1 (l_a2Uz4 :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (l_a2Uz3 :: TyFun [a6989586621679700155] a6989586621679700155)
type Foldr1Sym2 (t_a2UyZ :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (t_a2Uz0 :: [a6989586621679700155]) = Foldr1 t_a2UyZ t_a2Uz0
data ConcatSym0 (l_a2UyV :: TyFun [[a6989586621679700154]] [a6989586621679700154])
type ConcatSym1 (t_a2UyU :: [[a6989586621679700154]]) = Concat t_a2UyU
data ConcatMapSym0 (l_a2UyH :: TyFun (TyFun a6989586621679700152 [b6989586621679700153] -> Type) (TyFun [a6989586621679700152] [b6989586621679700153] -> Type))
data ConcatMapSym1 (l_a2UyK :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (l_a2UyJ :: TyFun [a6989586621679700152] [b6989586621679700153])
type ConcatMapSym2 (t_a2UyF :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (t_a2UyG :: [a6989586621679700152]) = ConcatMap t_a2UyF t_a2UyG
data AndSym0 (l_a2UyA :: TyFun [Bool] Bool)
type AndSym1 (t_a2Uyz :: [Bool]) = And t_a2Uyz
data OrSym0 (l_a2Uyu :: TyFun [Bool] Bool)
type OrSym1 (t_a2Uyt :: [Bool]) = Or t_a2Uyt
data Any_Sym0 (l_a2QOC :: TyFun (TyFun a6989586621679689467 Bool -> Type) (TyFun [a6989586621679689467] Bool -> Type))
data Any_Sym1 (l_a2QOF :: TyFun a6989586621679689467 Bool -> Type) (l_a2QOE :: TyFun [a6989586621679689467] Bool)
type Any_Sym2 (t_a2QOA :: TyFun a6989586621679689467 Bool -> Type) (t_a2QOB :: [a6989586621679689467]) = Any_ t_a2QOA t_a2QOB
data AllSym0 (l_a2Uyg :: TyFun (TyFun a6989586621679700151 Bool -> Type) (TyFun [a6989586621679700151] Bool -> Type))
data AllSym1 (l_a2Uyj :: TyFun a6989586621679700151 Bool -> Type) (l_a2Uyi :: TyFun [a6989586621679700151] Bool)
type AllSym2 (t_a2Uye :: TyFun a6989586621679700151 Bool -> Type) (t_a2Uyf :: [a6989586621679700151]) = All t_a2Uye t_a2Uyf
data SumSym0 (l_a2TZg :: TyFun [a6989586621679700056] a6989586621679700056)
type SumSym1 (t_a2TZf :: [a6989586621679700056]) = Sum t_a2TZf
data ProductSym0 (l_a2TYS :: TyFun [a6989586621679700055] a6989586621679700055)
type ProductSym1 (t_a2TYR :: [a6989586621679700055]) = Product t_a2TYR
data MaximumSym0 (l_a2UCG :: TyFun [a6989586621679700065] a6989586621679700065)
type MaximumSym1 (t_a2UCF :: [a6989586621679700065]) = Maximum t_a2UCF
data MinimumSym0 (l_a2UCU :: TyFun [a6989586621679700064] a6989586621679700064)
type MinimumSym1 (t_a2UCT :: [a6989586621679700064]) = Minimum t_a2UCT
data ScanlSym0 (l_a2UxF :: TyFun (TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type) -> Type))
data ScanlSym1 (l_a2UxI :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxH :: TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type))
data ScanlSym2 (l_a2UxL :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxM :: b6989586621679700149) (l_a2UxK :: TyFun [a6989586621679700150] [b6989586621679700149])
type ScanlSym3 (t_a2UxC :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (t_a2UxD :: b6989586621679700149) (t_a2UxE :: [a6989586621679700150]) = Scanl t_a2UxC t_a2UxD t_a2UxE
data Scanl1Sym0 (l_a2Uy1 :: TyFun (TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (TyFun [a6989586621679700148] [a6989586621679700148] -> Type))
data Scanl1Sym1 (l_a2Uy4 :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (l_a2Uy3 :: TyFun [a6989586621679700148] [a6989586621679700148])
type Scanl1Sym2 (t_a2UxZ :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (t_a2Uy0 :: [a6989586621679700148]) = Scanl1 t_a2UxZ t_a2Uy0
data ScanrSym0 (l_a2UwU :: TyFun (TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type) -> Type))
data ScanrSym1 (l_a2UwX :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2UwW :: TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type))
data ScanrSym2 (l_a2Ux0 :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2Ux1 :: b6989586621679700147) (l_a2UwZ :: TyFun [a6989586621679700146] [b6989586621679700147])
type ScanrSym3 (t_a2UwR :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (t_a2UwS :: b6989586621679700147) (t_a2UwT :: [a6989586621679700146]) = Scanr t_a2UwR t_a2UwS t_a2UwT
data Scanr1Sym0 (l_a2UvS :: TyFun (TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (TyFun [a6989586621679700145] [a6989586621679700145] -> Type))
data Scanr1Sym1 (l_a2UvV :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (l_a2UvU :: TyFun [a6989586621679700145] [a6989586621679700145])
type Scanr1Sym2 (t_a2UvQ :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (t_a2UvR :: [a6989586621679700145]) = Scanr1 t_a2UvQ t_a2UvR
data MapAccumLSym0 (l_a2Ut7 :: TyFun (TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (TyFun acc6989586621679700142 (TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]) -> Type) -> Type))
data MapAccumLSym1 (l_a2Uta :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (l_a2Ut9 :: TyFun acc6989586621679700142 (TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]) -> Type))
data MapAccumLSym2 (l_a2Utd :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (l_a2Ute :: acc6989586621679700142) (l_a2Utc :: TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]))
type MapAccumLSym3 (t_a2Ut4 :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (t_a2Ut5 :: acc6989586621679700142) (t_a2Ut6 :: [x6989586621679700143]) = MapAccumL t_a2Ut4 t_a2Ut5 t_a2Ut6
data MapAccumRSym0 (l_a2Uql :: TyFun (TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (TyFun acc6989586621679700139 (TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]) -> Type) -> Type))
data MapAccumRSym1 (l_a2Uqo :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (l_a2Uqn :: TyFun acc6989586621679700139 (TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]) -> Type))
data MapAccumRSym2 (l_a2Uqr :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (l_a2Uqs :: acc6989586621679700139) (l_a2Uqq :: TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]))
type MapAccumRSym3 (t_a2Uqi :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (t_a2Uqj :: acc6989586621679700139) (t_a2Uqk :: [x6989586621679700140]) = MapAccumR t_a2Uqi t_a2Uqj t_a2Uqk
data ReplicateSym0 (l_a2TYp :: TyFun Nat (TyFun a6989586621679700053 [a6989586621679700053] -> Type))
data ReplicateSym1 (l_a2TYs :: Nat) (l_a2TYr :: TyFun a6989586621679700053 [a6989586621679700053])
type ReplicateSym2 (t_a2TYn :: Nat) (t_a2TYo :: a6989586621679700053) = Replicate t_a2TYn t_a2TYo
data UnfoldrSym0 (l_a2UpW :: TyFun (TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (TyFun b6989586621679700137 [a6989586621679700138] -> Type))
data UnfoldrSym1 (l_a2UpZ :: TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (l_a2UpY :: TyFun b6989586621679700137 [a6989586621679700138])
type UnfoldrSym2 (t_a2UpU :: TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (t_a2UpV :: b6989586621679700137) = Unfoldr t_a2UpU t_a2UpV
data TakeSym0 (l_a2U1A :: TyFun Nat (TyFun [a6989586621679700069] [a6989586621679700069] -> Type))
data TakeSym1 (l_a2U1D :: Nat) (l_a2U1C :: TyFun [a6989586621679700069] [a6989586621679700069])
type TakeSym2 (t_a2U1y :: Nat) (t_a2U1z :: [a6989586621679700069]) = Take t_a2U1y t_a2U1z
data DropSym0 (l_a2U15 :: TyFun Nat (TyFun [a6989586621679700068] [a6989586621679700068] -> Type))
data DropSym1 (l_a2U18 :: Nat) (l_a2U17 :: TyFun [a6989586621679700068] [a6989586621679700068])
type DropSym2 (t_a2U13 :: Nat) (t_a2U14 :: [a6989586621679700068]) = Drop t_a2U13 t_a2U14
data SplitAtSym0 (l_a2U25 :: TyFun Nat (TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]) -> Type))
data SplitAtSym1 (l_a2U28 :: Nat) (l_a2U27 :: TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]))
type SplitAtSym2 (t_a2U23 :: Nat) (t_a2U24 :: [a6989586621679700067]) = SplitAt t_a2U23 t_a2U24
data TakeWhileSym0 (l_a2U7B :: TyFun (TyFun a6989586621679700074 Bool -> Type) (TyFun [a6989586621679700074] [a6989586621679700074] -> Type))
data TakeWhileSym1 (l_a2U7E :: TyFun a6989586621679700074 Bool -> Type) (l_a2U7D :: TyFun [a6989586621679700074] [a6989586621679700074])
type TakeWhileSym2 (t_a2U7z :: TyFun a6989586621679700074 Bool -> Type) (t_a2U7A :: [a6989586621679700074]) = TakeWhile t_a2U7z t_a2U7A
data DropWhileSym0 (l_a2U6T :: TyFun (TyFun a6989586621679700073 Bool -> Type) (TyFun [a6989586621679700073] [a6989586621679700073] -> Type))
data DropWhileSym1 (l_a2U6W :: TyFun a6989586621679700073 Bool -> Type) (l_a2U6V :: TyFun [a6989586621679700073] [a6989586621679700073])
type DropWhileSym2 (t_a2U6R :: TyFun a6989586621679700073 Bool -> Type) (t_a2U6S :: [a6989586621679700073]) = DropWhile t_a2U6R t_a2U6S
data DropWhileEndSym0 (l_a2UMG :: TyFun (TyFun a6989586621679700072 Bool -> Type) (TyFun [a6989586621679700072] [a6989586621679700072] -> Type))
data DropWhileEndSym1 (l_a2UMJ :: TyFun a6989586621679700072 Bool -> Type) (l_a2UMI :: TyFun [a6989586621679700072] [a6989586621679700072])
type DropWhileEndSym2 (t_a2UME :: TyFun a6989586621679700072 Bool -> Type) (t_a2UMF :: [a6989586621679700072]) = DropWhileEnd t_a2UME t_a2UMF
data SpanSym0 (l_a2U3X :: TyFun (TyFun a6989586621679700071 Bool -> Type) (TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]) -> Type))
data SpanSym1 (l_a2U40 :: TyFun a6989586621679700071 Bool -> Type) (l_a2U3Z :: TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]))
type SpanSym2 (t_a2U3V :: TyFun a6989586621679700071 Bool -> Type) (t_a2U3W :: [a6989586621679700071]) = Span t_a2U3V t_a2U3W
data BreakSym0 (l_a2U2g :: TyFun (TyFun a6989586621679700070 Bool -> Type) (TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]) -> Type))
data BreakSym1 (l_a2U2j :: TyFun a6989586621679700070 Bool -> Type) (l_a2U2i :: TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]))
type BreakSym2 (t_a2U2e :: TyFun a6989586621679700070 Bool -> Type) (t_a2U2f :: [a6989586621679700070]) = Break t_a2U2e t_a2U2f
data GroupSym0 (l_a2U6N :: TyFun [a6989586621679700066] [[a6989586621679700066]])
type GroupSym1 (t_a2U6M :: [a6989586621679700066]) = Group t_a2U6M
data InitsSym0 (l_a2UpL :: TyFun [a6989586621679700136] [[a6989586621679700136]])
type InitsSym1 (t_a2UpK :: [a6989586621679700136]) = Inits t_a2UpK
data TailsSym0 (l_a2Upo :: TyFun [a6989586621679700135] [[a6989586621679700135]])
type TailsSym1 (t_a2Upn :: [a6989586621679700135]) = Tails t_a2Upn
data IsPrefixOfSym0 (l_a2Up0 :: TyFun [a6989586621679700134] (TyFun [a6989586621679700134] Bool -> Type))
data IsPrefixOfSym1 (l_a2Up3 :: [a6989586621679700134]) (l_a2Up2 :: TyFun [a6989586621679700134] Bool)
type IsPrefixOfSym2 (t_a2UoY :: [a6989586621679700134]) (t_a2UoZ :: [a6989586621679700134]) = IsPrefixOf t_a2UoY t_a2UoZ
data IsSuffixOfSym0 (l_a2UMl :: TyFun [a6989586621679700133] (TyFun [a6989586621679700133] Bool -> Type))
data IsSuffixOfSym1 (l_a2UMo :: [a6989586621679700133]) (l_a2UMn :: TyFun [a6989586621679700133] Bool)
type IsSuffixOfSym2 (t_a2UMj :: [a6989586621679700133]) (t_a2UMk :: [a6989586621679700133]) = IsSuffixOf t_a2UMj t_a2UMk
data IsInfixOfSym0 (l_a2UpB :: TyFun [a6989586621679700132] (TyFun [a6989586621679700132] Bool -> Type))
data IsInfixOfSym1 (l_a2UpE :: [a6989586621679700132]) (l_a2UpD :: TyFun [a6989586621679700132] Bool)
type IsInfixOfSym2 (t_a2Upz :: [a6989586621679700132]) (t_a2UpA :: [a6989586621679700132]) = IsInfixOf t_a2Upz t_a2UpA
data ElemSym0 (l_a2UnZ :: TyFun a6989586621679700131 (TyFun [a6989586621679700131] Bool -> Type))
data ElemSym1 (l_a2Uo2 :: a6989586621679700131) (l_a2Uo1 :: TyFun [a6989586621679700131] Bool)
type ElemSym2 (t_a2UnX :: a6989586621679700131) (t_a2UnY :: [a6989586621679700131]) = Elem t_a2UnX t_a2UnY
data NotElemSym0 (l_a2UnK :: TyFun a6989586621679700130 (TyFun [a6989586621679700130] Bool -> Type))
data NotElemSym1 (l_a2UnN :: a6989586621679700130) (l_a2UnM :: TyFun [a6989586621679700130] Bool)
type NotElemSym2 (t_a2UnI :: a6989586621679700130) (t_a2UnJ :: [a6989586621679700130]) = NotElem t_a2UnI t_a2UnJ
data LookupSym0 (l_a2U0v :: TyFun a6989586621679700059 (TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060) -> Type))
data LookupSym1 (l_a2U0y :: a6989586621679700059) (l_a2U0x :: TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060))
type LookupSym2 (t_a2U0t :: a6989586621679700059) (t_a2U0u :: [(a6989586621679700059, b6989586621679700060)]) = Lookup t_a2U0t t_a2U0u
data FindSym0 (l_a2U8z :: TyFun (TyFun a6989586621679700081 Bool -> Type) (TyFun [a6989586621679700081] (Maybe a6989586621679700081) -> Type))
data FindSym1 (l_a2U8C :: TyFun a6989586621679700081 Bool -> Type) (l_a2U8B :: TyFun [a6989586621679700081] (Maybe a6989586621679700081))
type FindSym2 (t_a2U8x :: TyFun a6989586621679700081 Bool -> Type) (t_a2U8y :: [a6989586621679700081]) = Find t_a2U8x t_a2U8y
data FilterSym0 (l_a2U86 :: TyFun (TyFun a6989586621679700082 Bool -> Type) (TyFun [a6989586621679700082] [a6989586621679700082] -> Type))
data FilterSym1 (l_a2U89 :: TyFun a6989586621679700082 Bool -> Type) (l_a2U88 :: TyFun [a6989586621679700082] [a6989586621679700082])
type FilterSym2 (t_a2U84 :: TyFun a6989586621679700082 Bool -> Type) (t_a2U85 :: [a6989586621679700082]) = Filter t_a2U84 t_a2U85
data PartitionSym0 (l_a2U0k :: TyFun (TyFun a6989586621679700058 Bool -> Type) (TyFun [a6989586621679700058] ([a6989586621679700058], [a6989586621679700058]) -> Type))
data PartitionSym1 (l_a2U0n :: TyFun a6989586621679700058 Bool -> Type) (l_a2U0m :: TyFun [a6989586621679700058] ([a6989586621679700058], [a6989586621679700058]))
type PartitionSym2 (t_a2U0i :: TyFun a6989586621679700058 Bool -> Type) (t_a2U0j :: [a6989586621679700058]) = Partition t_a2U0i t_a2U0j
data (:!!$) (l_a2TXU :: TyFun [a6989586621679700051] (TyFun Nat a6989586621679700051 -> Type))
data (:!!$$) (l_a2TXX :: [a6989586621679700051]) (l_a2TXW :: TyFun Nat a6989586621679700051)
type (:!!$$$) (t_a2TXS :: [a6989586621679700051]) (t_a2TXT :: Nat) = (:!!) t_a2TXS t_a2TXT
data ElemIndexSym0 (l_a2Unx :: TyFun a6989586621679700080 (TyFun [a6989586621679700080] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a2UnA :: a6989586621679700080) (l_a2Unz :: TyFun [a6989586621679700080] (Maybe Nat))
type ElemIndexSym2 (t_a2Unv :: a6989586621679700080) (t_a2Unw :: [a6989586621679700080]) = ElemIndex t_a2Unv t_a2Unw
data ElemIndicesSym0 (l_a2Un7 :: TyFun a6989586621679700079 (TyFun [a6989586621679700079] [Nat] -> Type))
data ElemIndicesSym1 (l_a2Una :: a6989586621679700079) (l_a2Un9 :: TyFun [a6989586621679700079] [Nat])
type ElemIndicesSym2 (t_a2Un5 :: a6989586621679700079) (t_a2Un6 :: [a6989586621679700079]) = ElemIndices t_a2Un5 t_a2Un6
data FindIndexSym0 (l_a2Unk :: TyFun (TyFun a6989586621679700078 Bool -> Type) (TyFun [a6989586621679700078] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a2Unn :: TyFun a6989586621679700078 Bool -> Type) (l_a2Unm :: TyFun [a6989586621679700078] (Maybe Nat))
type FindIndexSym2 (t_a2Uni :: TyFun a6989586621679700078 Bool -> Type) (t_a2Unj :: [a6989586621679700078]) = FindIndex t_a2Uni t_a2Unj
data FindIndicesSym0 (l_a2Um6 :: TyFun (TyFun a6989586621679700077 Bool -> Type) (TyFun [a6989586621679700077] [Nat] -> Type))
data FindIndicesSym1 (l_a2Um9 :: TyFun a6989586621679700077 Bool -> Type) (l_a2Um8 :: TyFun [a6989586621679700077] [Nat])
type FindIndicesSym2 (t_a2Um4 :: TyFun a6989586621679700077 Bool -> Type) (t_a2Um5 :: [a6989586621679700077]) = FindIndices t_a2Um4 t_a2Um5
data ZipSym0 (l_a2UlH :: TyFun [a6989586621679700128] (TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)] -> Type))
data ZipSym1 (l_a2UlK :: [a6989586621679700128]) (l_a2UlJ :: TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)])
type ZipSym2 (t_a2UlF :: [a6989586621679700128]) (t_a2UlG :: [b6989586621679700129]) = Zip t_a2UlF t_a2UlG
data Zip3Sym0 (l_a2Ukv :: TyFun [a6989586621679700125] (TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type) -> Type))
data Zip3Sym1 (l_a2Uky :: [a6989586621679700125]) (l_a2Ukx :: TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type))
data Zip3Sym2 (l_a2UkB :: [a6989586621679700125]) (l_a2UkC :: [b6989586621679700126]) (l_a2UkA :: TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)])
type Zip3Sym3 (t_a2Uks :: [a6989586621679700125]) (t_a2Ukt :: [b6989586621679700126]) (t_a2Uku :: [c6989586621679700127]) = Zip3 t_a2Uks t_a2Ukt t_a2Uku
data ZipWithSym0 (l_a2UjQ :: TyFun (TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type) -> Type))
data ZipWithSym1 (l_a2UjT :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjS :: TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type))
data ZipWithSym2 (l_a2UjW :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjX :: [a6989586621679700122]) (l_a2UjV :: TyFun [b6989586621679700123] [c6989586621679700124])
type ZipWithSym3 (t_a2UjN :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (t_a2UjO :: [a6989586621679700122]) (t_a2UjP :: [b6989586621679700123]) = ZipWith t_a2UjN t_a2UjO t_a2UjP
data ZipWith3Sym0 (l_a2Uib :: TyFun (TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a2Uie :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uid :: TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type))
data ZipWith3Sym2 (l_a2Uih :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uii :: [a6989586621679700118]) (l_a2Uig :: TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type))
data ZipWith3Sym3 (l_a2Uil :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uim :: [a6989586621679700118]) (l_a2Uin :: [b6989586621679700119]) (l_a2Uik :: TyFun [c6989586621679700120] [d6989586621679700121])
type ZipWith3Sym4 (t_a2Ui7 :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (t_a2Ui8 :: [a6989586621679700118]) (t_a2Ui9 :: [b6989586621679700119]) (t_a2Uia :: [c6989586621679700120]) = ZipWith3 t_a2Ui7 t_a2Ui8 t_a2Ui9 t_a2Uia
data UnzipSym0 (l_a2UhE :: TyFun [(a6989586621679700116, b6989586621679700117)] ([a6989586621679700116], [b6989586621679700117]))
type UnzipSym1 (t_a2UhD :: [(a6989586621679700116, b6989586621679700117)]) = Unzip t_a2UhD
data Unzip3Sym0 (l_a2Uh8 :: TyFun [(a6989586621679700113, b6989586621679700114, c6989586621679700115)] ([a6989586621679700113], [b6989586621679700114], [c6989586621679700115]))
type Unzip3Sym1 (t_a2Uh7 :: [(a6989586621679700113, b6989586621679700114, c6989586621679700115)]) = Unzip3 t_a2Uh7
data Unzip4Sym0 (l_a2UgA :: TyFun [(a6989586621679700109, b6989586621679700110, c6989586621679700111, d6989586621679700112)] ([a6989586621679700109], [b6989586621679700110], [c6989586621679700111], [d6989586621679700112]))
type Unzip4Sym1 (t_a2Ugz :: [(a6989586621679700109, b6989586621679700110, c6989586621679700111, d6989586621679700112)]) = Unzip4 t_a2Ugz
data Unzip5Sym0 (l_a2Ug0 :: TyFun [(a6989586621679700104, b6989586621679700105, c6989586621679700106, d6989586621679700107, e6989586621679700108)] ([a6989586621679700104], [b6989586621679700105], [c6989586621679700106], [d6989586621679700107], [e6989586621679700108]))
type Unzip5Sym1 (t_a2UfZ :: [(a6989586621679700104, b6989586621679700105, c6989586621679700106, d6989586621679700107, e6989586621679700108)]) = Unzip5 t_a2UfZ
data Unzip6Sym0 (l_a2Ufo :: TyFun [(a6989586621679700098, b6989586621679700099, c6989586621679700100, d6989586621679700101, e6989586621679700102, f6989586621679700103)] ([a6989586621679700098], [b6989586621679700099], [c6989586621679700100], [d6989586621679700101], [e6989586621679700102], [f6989586621679700103]))
type Unzip6Sym1 (t_a2Ufn :: [(a6989586621679700098, b6989586621679700099, c6989586621679700100, d6989586621679700101, e6989586621679700102, f6989586621679700103)]) = Unzip6 t_a2Ufn
data Unzip7Sym0 (l_a2UeK :: TyFun [(a6989586621679700091, b6989586621679700092, c6989586621679700093, d6989586621679700094, e6989586621679700095, f6989586621679700096, g6989586621679700097)] ([a6989586621679700091], [b6989586621679700092], [c6989586621679700093], [d6989586621679700094], [e6989586621679700095], [f6989586621679700096], [g6989586621679700097]))
type Unzip7Sym1 (t_a2UeJ :: [(a6989586621679700091, b6989586621679700092, c6989586621679700093, d6989586621679700094, e6989586621679700095, f6989586621679700096, g6989586621679700097)]) = Unzip7 t_a2UeJ
data NubSym0 (l_a2Uod :: TyFun [a6989586621679700050] [a6989586621679700050])
type NubSym1 (t_a2Uoc :: [a6989586621679700050]) = Nub t_a2Uoc
data DeleteSym0 (l_a2Uel :: TyFun a6989586621679700090 (TyFun [a6989586621679700090] [a6989586621679700090] -> Type))
data DeleteSym1 (l_a2Ueo :: a6989586621679700090) (l_a2Uen :: TyFun [a6989586621679700090] [a6989586621679700090])
type DeleteSym2 (t_a2Uej :: a6989586621679700090) (t_a2Uek :: [a6989586621679700090]) = Delete t_a2Uej t_a2Uek
data (:\\$) (l_a2UeA :: TyFun [a6989586621679700089] (TyFun [a6989586621679700089] [a6989586621679700089] -> Type))
data (:\\$$) (l_a2UeD :: [a6989586621679700089]) (l_a2UeC :: TyFun [a6989586621679700089] [a6989586621679700089])
type (:\\$$$) (t_a2Uey :: [a6989586621679700089]) (t_a2Uez :: [a6989586621679700089]) = (:\\) t_a2Uey t_a2Uez
data UnionSym0 (l_a2Ue6 :: TyFun [a6989586621679700046] (TyFun [a6989586621679700046] [a6989586621679700046] -> Type))
data UnionSym1 (l_a2Ue9 :: [a6989586621679700046]) (l_a2Ue8 :: TyFun [a6989586621679700046] [a6989586621679700046])
type UnionSym2 (t_a2Ue4 :: [a6989586621679700046]) (t_a2Ue5 :: [a6989586621679700046]) = Union t_a2Ue4 t_a2Ue5
data IntersectSym0 (l_a2UaV :: TyFun [a6989586621679700076] (TyFun [a6989586621679700076] [a6989586621679700076] -> Type))
data IntersectSym1 (l_a2UaY :: [a6989586621679700076]) (l_a2UaX :: TyFun [a6989586621679700076] [a6989586621679700076])
type IntersectSym2 (t_a2UaT :: [a6989586621679700076]) (t_a2UaU :: [a6989586621679700076]) = Intersect t_a2UaT t_a2UaU
data InsertSym0 (l_a2Uc8 :: TyFun a6989586621679700063 (TyFun [a6989586621679700063] [a6989586621679700063] -> Type))
data InsertSym1 (l_a2Ucb :: a6989586621679700063) (l_a2Uca :: TyFun [a6989586621679700063] [a6989586621679700063])
type InsertSym2 (t_a2Uc6 :: a6989586621679700063) (t_a2Uc7 :: [a6989586621679700063]) = Insert t_a2Uc6 t_a2Uc7
data SortSym0 (l_a2Ucx :: TyFun [a6989586621679700062] [a6989586621679700062])
type SortSym1 (t_a2Ucw :: [a6989586621679700062]) = Sort t_a2Ucw
data NubBySym0 (l_a2TWP :: TyFun (TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (TyFun [a6989586621679700049] [a6989586621679700049] -> Type))
data NubBySym1 (l_a2TWS :: TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (l_a2TWR :: TyFun [a6989586621679700049] [a6989586621679700049])
type NubBySym2 (t_a2TWN :: TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (t_a2TWO :: [a6989586621679700049]) = NubBy t_a2TWN t_a2TWO
data DeleteBySym0 (l_a2UcE :: TyFun (TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (TyFun a6989586621679700088 (TyFun [a6989586621679700088] [a6989586621679700088] -> Type) -> Type))
data DeleteBySym1 (l_a2UcH :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (l_a2UcG :: TyFun a6989586621679700088 (TyFun [a6989586621679700088] [a6989586621679700088] -> Type))
data DeleteBySym2 (l_a2UcK :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (l_a2UcL :: a6989586621679700088) (l_a2UcJ :: TyFun [a6989586621679700088] [a6989586621679700088])
type DeleteBySym3 (t_a2UcB :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (t_a2UcC :: a6989586621679700088) (t_a2UcD :: [a6989586621679700088]) = DeleteBy t_a2UcB t_a2UcC t_a2UcD
data DeleteFirstsBySym0 (l_a2Udp :: TyFun (TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (TyFun [a6989586621679700087] (TyFun [a6989586621679700087] [a6989586621679700087] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a2Uds :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (l_a2Udr :: TyFun [a6989586621679700087] (TyFun [a6989586621679700087] [a6989586621679700087] -> Type))
data DeleteFirstsBySym2 (l_a2Udv :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (l_a2Udw :: [a6989586621679700087]) (l_a2Udu :: TyFun [a6989586621679700087] [a6989586621679700087])
type DeleteFirstsBySym3 (t_a2Udm :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (t_a2Udn :: [a6989586621679700087]) (t_a2Udo :: [a6989586621679700087]) = DeleteFirstsBy t_a2Udm t_a2Udn t_a2Udo
data UnionBySym0 (l_a2UdL :: TyFun (TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (TyFun [a6989586621679700047] (TyFun [a6989586621679700047] [a6989586621679700047] -> Type) -> Type))
data UnionBySym1 (l_a2UdO :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (l_a2UdN :: TyFun [a6989586621679700047] (TyFun [a6989586621679700047] [a6989586621679700047] -> Type))
data UnionBySym2 (l_a2UdR :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (l_a2UdS :: [a6989586621679700047]) (l_a2UdQ :: TyFun [a6989586621679700047] [a6989586621679700047])
type UnionBySym3 (t_a2UdI :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (t_a2UdJ :: [a6989586621679700047]) (t_a2UdK :: [a6989586621679700047]) = UnionBy t_a2UdI t_a2UdJ t_a2UdK
data IntersectBySym0 (l_a2U8N :: TyFun (TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (TyFun [a6989586621679700075] (TyFun [a6989586621679700075] [a6989586621679700075] -> Type) -> Type))
data IntersectBySym1 (l_a2U8Q :: TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (l_a2U8P :: TyFun [a6989586621679700075] (TyFun [a6989586621679700075] [a6989586621679700075] -> Type))
data IntersectBySym2 (l_a2U8T :: TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (l_a2U8U :: [a6989586621679700075]) (l_a2U8S :: TyFun [a6989586621679700075] [a6989586621679700075])
type IntersectBySym3 (t_a2U8K :: TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (t_a2U8L :: [a6989586621679700075]) (t_a2U8M :: [a6989586621679700075]) = IntersectBy t_a2U8K t_a2U8L t_a2U8M
data GroupBySym0 (l_a2U5E :: TyFun (TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (TyFun [a6989586621679700061] [[a6989586621679700061]] -> Type))
data GroupBySym1 (l_a2U5H :: TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (l_a2U5G :: TyFun [a6989586621679700061] [[a6989586621679700061]])
type GroupBySym2 (t_a2U5C :: TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (t_a2U5D :: [a6989586621679700061]) = GroupBy t_a2U5C t_a2U5D
data SortBySym0 (l_a2Ucj :: TyFun (TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (TyFun [a6989586621679700086] [a6989586621679700086] -> Type))
data SortBySym1 (l_a2Ucm :: TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (l_a2Ucl :: TyFun [a6989586621679700086] [a6989586621679700086])
type SortBySym2 (t_a2Uch :: TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (t_a2Uci :: [a6989586621679700086]) = SortBy t_a2Uch t_a2Uci
data InsertBySym0 (l_a2Ub7 :: TyFun (TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (TyFun a6989586621679700085 (TyFun [a6989586621679700085] [a6989586621679700085] -> Type) -> Type))
data InsertBySym1 (l_a2Uba :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (l_a2Ub9 :: TyFun a6989586621679700085 (TyFun [a6989586621679700085] [a6989586621679700085] -> Type))
data InsertBySym2 (l_a2Ubd :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (l_a2Ube :: a6989586621679700085) (l_a2Ubc :: TyFun [a6989586621679700085] [a6989586621679700085])
type InsertBySym3 (t_a2Ub4 :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (t_a2Ub5 :: a6989586621679700085) (t_a2Ub6 :: [a6989586621679700085]) = InsertBy t_a2Ub4 t_a2Ub5 t_a2Ub6
data MaximumBySym0 (l_a2UzT :: TyFun (TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (TyFun [a6989586621679700084] a6989586621679700084 -> Type))
data MaximumBySym1 (l_a2UzW :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (l_a2UzV :: TyFun [a6989586621679700084] a6989586621679700084)
type MaximumBySym2 (t_a2UzR :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (t_a2UzS :: [a6989586621679700084]) = MaximumBy t_a2UzR t_a2UzS
data MinimumBySym0 (l_a2UBi :: TyFun (TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (TyFun [a6989586621679700083] a6989586621679700083 -> Type))
data MinimumBySym1 (l_a2UBl :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (l_a2UBk :: TyFun [a6989586621679700083] a6989586621679700083)
type MinimumBySym2 (t_a2UBg :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (t_a2UBh :: [a6989586621679700083]) = MinimumBy t_a2UBg t_a2UBh
data GenericLengthSym0 (l_a2TWh :: TyFun [a6989586621679700045] i6989586621679700044)
type GenericLengthSym1 (t_a2TWg :: [a6989586621679700045]) = GenericLength t_a2TWg
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701551Scrutinee_6989586621679700716Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701551Scrutinee_6989586621679700716Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701551Scrutinee_6989586621679700716Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701551Scrutinee_6989586621679700716Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701551Scrutinee_6989586621679700716Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701524NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701524NubBy'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701524NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701524NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701595Scrutinee_6989586621679700712Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701595Scrutinee_6989586621679700712Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701595Scrutinee_6989586621679700712Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701622Scrutinee_6989586621679700710Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701622Scrutinee_6989586621679700710Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701646ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701646ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701646ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701670Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701670Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701670Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701708Scrutinee_6989586621679700708Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701708Scrutinee_6989586621679700708Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701708Scrutinee_6989586621679700708Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701708Scrutinee_6989586621679700708Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701755Scrutinee_6989586621679700706Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701755Scrutinee_6989586621679700706Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701755Scrutinee_6989586621679700706Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701755Scrutinee_6989586621679700706Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701792Scrutinee_6989586621679700696Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701792Scrutinee_6989586621679700696Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701792Scrutinee_6989586621679700696Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701823Scrutinee_6989586621679700694Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701823Scrutinee_6989586621679700694Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701823Scrutinee_6989586621679700694Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701862XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701869XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701869XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701869XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701882Scrutinee_6989586621679700692Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701882Scrutinee_6989586621679700692Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701882Scrutinee_6989586621679700692Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897X_6989586621679701898Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897X_6989586621679701898Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701897X_6989586621679701898Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701967XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701974XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701974XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701974XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701987Scrutinee_6989586621679700690Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701987Scrutinee_6989586621679700690Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679701987Scrutinee_6989586621679700690Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002X_6989586621679702003Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002X_6989586621679702003Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702002X_6989586621679702003Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075X_6989586621679702076Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075X_6989586621679702076Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702075X_6989586621679702076Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702152XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702152XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702152XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702165Scrutinee_6989586621679700686Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702165Scrutinee_6989586621679700686Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702165Scrutinee_6989586621679700686Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702196Scrutinee_6989586621679700684Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702196Scrutinee_6989586621679700684Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702196Scrutinee_6989586621679700684Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702225Scrutinee_6989586621679700672Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702225Scrutinee_6989586621679700672Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702225Scrutinee_6989586621679700672Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702295YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702346Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702421YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702421YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702421YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702421YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702440Scrutinee_6989586621679700658Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702440Scrutinee_6989586621679700658Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702440Scrutinee_6989586621679700658Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702440Scrutinee_6989586621679700658Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702518Scrutinee_6989586621679700656Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702518Scrutinee_6989586621679700656Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702518Scrutinee_6989586621679700656Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679702518Scrutinee_6989586621679700656Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702630Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702630Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702630Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702670Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702670Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702670Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702708Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702708Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702708Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702744Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702744Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702744Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702778Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702778Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702778Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702810Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702810Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679702810Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703091BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703091BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703091BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703091BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679703120Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679703120Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679703120Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703238Scrutinee_6989586621679700714Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703238Scrutinee_6989586621679700714Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703238Scrutinee_6989586621679700714Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703238Scrutinee_6989586621679700714Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703217Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703217Nub'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703217Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703329Scrutinee_6989586621679700630Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703329Scrutinee_6989586621679700630Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703366Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703366Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703366Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703366Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703372Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703372Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703372Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703365X_6989586621679703372Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703538Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703538Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703538Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703538Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703544Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703544Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703544Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703537X_6989586621679703544Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703706XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703706XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703706XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703706XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703725Scrutinee_6989586621679700624Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703725Scrutinee_6989586621679700624Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703725Scrutinee_6989586621679700624Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703725Scrutinee_6989586621679700624Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703772Scrutinee_6989586621679700622Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703772Scrutinee_6989586621679700622Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703772Scrutinee_6989586621679700622Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703772Scrutinee_6989586621679700622Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703898XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703898XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703898XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703898XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703950XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703950XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703950XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703993Scrutinee_6989586621679700660Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703993Scrutinee_6989586621679700660Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703993Scrutinee_6989586621679700660Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703993Scrutinee_6989586621679700660Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703993Scrutinee_6989586621679700660Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703963MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703963MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703963MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703963MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679703963MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704037XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704037XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704037XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704080Scrutinee_6989586621679700666Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704080Scrutinee_6989586621679700666Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704080Scrutinee_6989586621679700666Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704080Scrutinee_6989586621679700666Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704080Scrutinee_6989586621679700666Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704050MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704050MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704050MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704050MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704050MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704115XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704115XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704129XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704129XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704187Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704155LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704155LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704155LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704155LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704155LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704316X_6989586621679704317Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704530X_6989586621679704531Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704262InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704241PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704241PermsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704241PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704629FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704629FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704629FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704629FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704688RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704688RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704688RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704745Scrutinee_6989586621679700688Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704745Scrutinee_6989586621679700688Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704745Scrutinee_6989586621679700688Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704745Scrutinee_6989586621679700688Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679704741Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679704741Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679704741Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679704741Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704793Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704793Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704793Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679704793Init'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_abwE b_abwF -> 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_a1YaU :: Bool). Sing t_a1YaU -> Sing (Apply NotSym0 t_a1YaU :: Bool)
(%:&&) :: forall (t_a1YaX :: Bool) (t_a1YaY :: Bool). Sing t_a1YaX -> Sing t_a1YaY -> Sing (Apply (Apply (:&&$) t_a1YaX) t_a1YaY :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a1YaV :: Bool) (t_a1YaW :: Bool). Sing t_a1YaV -> Sing t_a1YaW -> Sing (Apply (Apply (:||$) t_a1YaV) t_a1YaW :: 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_a2rGa :: TyFun k06989586621679591922 k6989586621679591924)

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a
sId :: forall (t_a1Z2v :: a_a1YYT). Sing t_a1Z2v -> Sing (Apply IdSym0 t_a1Z2v :: a_a1YYT)
sConst :: forall (t_a1Z2r :: a_a1YYR) (t_a1Z2s :: b_a1YYS). Sing t_a1Z2r -> Sing t_a1Z2s -> Sing (Apply (Apply ConstSym0 t_a1Z2r) t_a1Z2s :: a_a1YYR)
(%:.) :: forall (t_a1Z2o :: TyFun b_a1YYO c_a1YYP -> Type) (t_a1Z2p :: TyFun a_a1YYQ b_a1YYO -> Type) (t_a1Z2q :: a_a1YYQ). Sing t_a1Z2o -> Sing t_a1Z2p -> Sing t_a1Z2q -> Sing (Apply (Apply (Apply (:.$) t_a1Z2o) t_a1Z2p) t_a1Z2q :: c_a1YYP)
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_a1Z2l :: TyFun a_a1YYL (TyFun b_a1YYM c_a1YYN -> Type) -> Type) (t_a1Z2m :: b_a1YYM) (t_a1Z2n :: a_a1YYL). Sing t_a1Z2l -> Sing t_a1Z2m -> Sing t_a1Z2n -> Sing (Apply (Apply (Apply FlipSym0 t_a1Z2l) t_a1Z2m) t_a1Z2n :: c_a1YYN)
sAsTypeOf :: forall (t_a1Z2t :: a_a1YYK) (t_a1Z2u :: a_a1YYK). Sing t_a1Z2t -> Sing t_a1Z2u -> Sing (Apply (Apply AsTypeOfSym0 t_a1Z2t) t_a1Z2u :: a_a1YYK)
sSeq :: forall (t_a1Z2j :: a_a1YYI) (t_a1Z2k :: b_a1YYJ). Sing t_a1Z2j -> Sing t_a1Z2k -> Sing (Apply (Apply SeqSym0 t_a1Z2j) t_a1Z2k :: b_a1YYJ)
infixr 0 `sSeq`
sMap :: forall (t_a1Z2y :: TyFun a_a1YYV b_a1YYW -> Type) (t_a1Z2z :: [a_a1YYV]). Sing t_a1Z2y -> Sing t_a1Z2z -> Sing (Apply (Apply MapSym0 t_a1Z2y) t_a1Z2z :: [b_a1YYW])
(%:++) :: forall (t_a1Z2w :: [a_a1YYU]) (t_a1Z2x :: [a_a1YYU]). Sing t_a1Z2w -> Sing t_a1Z2x -> Sing (Apply (Apply (:++$) t_a1Z2w) t_a1Z2x :: [a_a1YYU])
infixr 5 %:++
sHead :: forall (t_a2URk :: [a_a2TB9]). Sing t_a2URk -> Sing (Apply HeadSym0 t_a2URk :: a_a2TB9)
sLast :: forall (t_a2URj :: [a_a2TB8]). Sing t_a2URj -> Sing (Apply LastSym0 t_a2URj :: a_a2TB8)
sTail :: forall (t_a2URi :: [a_a2TB7]). Sing t_a2URi -> Sing (Apply TailSym0 t_a2URi :: [a_a2TB7])
sInit :: forall (t_a2URh :: [a_a2TB6]). Sing t_a2URh -> Sing (Apply InitSym0 t_a2URh :: [a_a2TB6])
sNull :: forall (t_a2URe :: [a_a2TB5]). Sing t_a2URe -> Sing (Apply NullSym0 t_a2URe :: Bool)
sReverse :: forall (t_a2URb :: [a_a2TB4]). Sing t_a2URb -> Sing (Apply ReverseSym0 t_a2URb :: [a_a2TB4])
sFoldl :: forall (t_a1Q6s :: TyFun b_a1Q5u (TyFun a_a1Q5t b_a1Q5u -> Type) -> Type) (t_a1Q6t :: b_a1Q5u) (t_a1Q6u :: [a_a1Q5t]). Sing t_a1Q6s -> Sing t_a1Q6t -> Sing t_a1Q6u -> Sing (Apply (Apply (Apply FoldlSym0 t_a1Q6s) t_a1Q6t) t_a1Q6u :: b_a1Q5u)
sFoldl1 :: forall (t_a2UQP :: TyFun a_a2TAV (TyFun a_a2TAV a_a2TAV -> Type) -> Type) (t_a2UQQ :: [a_a2TAV]). Sing t_a2UQP -> Sing t_a2UQQ -> Sing (Apply (Apply Foldl1Sym0 t_a2UQP) t_a2UQQ :: a_a2TAV)
sFoldr :: forall (t_a1Z2A :: TyFun a_a1YYX (TyFun b_a1YYY b_a1YYY -> Type) -> Type) (t_a1Z2B :: b_a1YYY) (t_a1Z2C :: [a_a1YYX]). Sing t_a1Z2A -> Sing t_a1Z2B -> Sing t_a1Z2C -> Sing (Apply (Apply (Apply FoldrSym0 t_a1Z2A) t_a1Z2B) t_a1Z2C :: b_a1YYY)
sFoldr1 :: forall (t_a2UQN :: TyFun a_a2TAT (TyFun a_a2TAT a_a2TAT -> Type) -> Type) (t_a2UQO :: [a_a2TAT]). Sing t_a2UQN -> Sing t_a2UQO -> Sing (Apply (Apply Foldr1Sym0 t_a2UQN) t_a2UQO :: a_a2TAT)
sAnd :: forall (t_a2UQJ :: [Bool]). Sing t_a2UQJ -> Sing (Apply AndSym0 t_a2UQJ :: Bool)
sOr :: forall (t_a2UQI :: [Bool]). Sing t_a2UQI -> Sing (Apply OrSym0 t_a2UQI :: Bool)
sAny_ :: forall (t_a2QOP :: TyFun a_a2QOv Bool -> Type) (t_a2QOQ :: [a_a2QOv]). Sing t_a2QOP -> Sing t_a2QOQ -> Sing (Apply (Apply Any_Sym0 t_a2QOP) t_a2QOQ :: Bool)
sAll :: forall (t_a2UQG :: TyFun a_a2TAP Bool -> Type) (t_a2UQH :: [a_a2TAP]). Sing t_a2UQG -> Sing t_a2UQH -> Sing (Apply (Apply AllSym0 t_a2UQG) t_a2UQH :: Bool)
sConcat :: forall (t_a2UQM :: [[a_a2TAS]]). Sing t_a2UQM -> Sing (Apply ConcatSym0 t_a2UQM :: [a_a2TAS])
sConcatMap :: forall (t_a2UQK :: TyFun a_a2TAQ [b_a2TAR] -> Type) (t_a2UQL :: [a_a2TAQ]). Sing t_a2UQK -> Sing t_a2UQL -> Sing (Apply (Apply ConcatMapSym0 t_a2UQK) t_a2UQL :: [b_a2TAR])
sScanl :: forall (t_a2UQB :: TyFun b_a2TAN (TyFun a_a2TAO b_a2TAN -> Type) -> Type) (t_a2UQC :: b_a2TAN) (t_a2UQD :: [a_a2TAO]). Sing t_a2UQB -> Sing t_a2UQC -> Sing t_a2UQD -> Sing (Apply (Apply (Apply ScanlSym0 t_a2UQB) t_a2UQC) t_a2UQD :: [b_a2TAN])
sScanl1 :: forall (t_a2UQE :: TyFun a_a2TAM (TyFun a_a2TAM a_a2TAM -> Type) -> Type) (t_a2UQF :: [a_a2TAM]). Sing t_a2UQE -> Sing t_a2UQF -> Sing (Apply (Apply Scanl1Sym0 t_a2UQE) t_a2UQF :: [a_a2TAM])
sScanr :: forall (t_a2UQy :: TyFun a_a2TAK (TyFun b_a2TAL b_a2TAL -> Type) -> Type) (t_a2UQz :: b_a2TAL) (t_a2UQA :: [a_a2TAK]). Sing t_a2UQy -> Sing t_a2UQz -> Sing t_a2UQA -> Sing (Apply (Apply (Apply ScanrSym0 t_a2UQy) t_a2UQz) t_a2UQA :: [b_a2TAL])
sScanr1 :: forall (t_a2UQw :: TyFun a_a2TAJ (TyFun a_a2TAJ a_a2TAJ -> Type) -> Type) (t_a2UQx :: [a_a2TAJ]). Sing t_a2UQw -> Sing t_a2UQx -> Sing (Apply (Apply Scanr1Sym0 t_a2UQw) t_a2UQx :: [a_a2TAJ])
sElem :: forall (t_a2UQf :: a_a2TAv) (t_a2UQg :: [a_a2TAv]). SEq a_a2TAv => Sing t_a2UQf -> Sing t_a2UQg -> Sing (Apply (Apply ElemSym0 t_a2UQf) t_a2UQg :: Bool)
sNotElem :: forall (t_a2UQd :: a_a2TAu) (t_a2UQe :: [a_a2TAu]). SEq a_a2TAu => Sing t_a2UQd -> Sing t_a2UQe -> Sing (Apply (Apply NotElemSym0 t_a2UQd) t_a2UQe :: Bool)
sLookup :: forall (t_a2UOY :: a_a2Tzl) (t_a2UOZ :: [(a_a2Tzl, b_a2Tzm)]). SEq a_a2Tzl => Sing t_a2UOY -> Sing t_a2UOZ -> Sing (Apply (Apply LookupSym0 t_a2UOY) t_a2UOZ :: Maybe b_a2Tzm)
sZip :: forall (t_a2UQ3 :: [a_a2TAs]) (t_a2UQ4 :: [b_a2TAt]). Sing t_a2UQ3 -> Sing t_a2UQ4 -> Sing (Apply (Apply ZipSym0 t_a2UQ3) t_a2UQ4 :: [(a_a2TAs, b_a2TAt)])
sZip3 :: forall (t_a2UQ0 :: [a_a2TAp]) (t_a2UQ1 :: [b_a2TAq]) (t_a2UQ2 :: [c_a2TAr]). Sing t_a2UQ0 -> Sing t_a2UQ1 -> Sing t_a2UQ2 -> Sing (Apply (Apply (Apply Zip3Sym0 t_a2UQ0) t_a2UQ1) t_a2UQ2 :: [(a_a2TAp, b_a2TAq, c_a2TAr)])
sZipWith :: forall (t_a2UPX :: TyFun a_a2TAm (TyFun b_a2TAn c_a2TAo -> Type) -> Type) (t_a2UPY :: [a_a2TAm]) (t_a2UPZ :: [b_a2TAn]). Sing t_a2UPX -> Sing t_a2UPY -> Sing t_a2UPZ -> Sing (Apply (Apply (Apply ZipWithSym0 t_a2UPX) t_a2UPY) t_a2UPZ :: [c_a2TAo])
sZipWith3 :: forall (t_a2UPT :: TyFun a_a2TAi (TyFun b_a2TAj (TyFun c_a2TAk d_a2TAl -> Type) -> Type) -> Type) (t_a2UPU :: [a_a2TAi]) (t_a2UPV :: [b_a2TAj]) (t_a2UPW :: [c_a2TAk]). Sing t_a2UPT -> Sing t_a2UPU -> Sing t_a2UPV -> Sing t_a2UPW -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a2UPT) t_a2UPU) t_a2UPV) t_a2UPW :: [d_a2TAl])
sUnzip :: forall (t_a2UPS :: [(a_a2TAg, b_a2TAh)]). Sing t_a2UPS -> Sing (Apply UnzipSym0 t_a2UPS :: ([a_a2TAg], [b_a2TAh]))
sUnzip3 :: forall (t_a2UPR :: [(a_a2TAd, b_a2TAe, c_a2TAf)]). Sing t_a2UPR -> Sing (Apply Unzip3Sym0 t_a2UPR :: ([a_a2TAd], [b_a2TAe], [c_a2TAf]))
sMaybe_ :: forall (t_a2Nm9 :: b_a2NlF) (t_a2Nma :: TyFun a_a2NlG b_a2NlF -> Type) (t_a2Nmb :: Maybe a_a2NlG). Sing t_a2Nm9 -> Sing t_a2Nma -> Sing t_a2Nmb -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a2Nm9) t_a2Nma) t_a2Nmb :: b_a2NlF)
sEither_ :: forall (t_a2L9m :: TyFun a_a2L8P c_a2L8Q -> Type) (t_a2L9n :: TyFun b_a2L8R c_a2L8Q -> Type) (t_a2L9o :: Either a_a2L8P b_a2L8R). Sing t_a2L9m -> Sing t_a2L9n -> Sing t_a2L9o -> Sing (Apply (Apply (Apply Either_Sym0 t_a2L9m) t_a2L9n) t_a2L9o :: c_a2L8Q)
sFst :: forall (t_a2PWE :: (a_a2PVu, b_a2PVv)). Sing t_a2PWE -> Sing (Apply FstSym0 t_a2PWE :: a_a2PVu)
sSnd :: forall (t_a2PWD :: (a_a2PVs, b_a2PVt)). Sing t_a2PWD -> Sing (Apply SndSym0 t_a2PWD :: b_a2PVt)
sCurry :: forall (t_a2PWA :: TyFun (a_a2PVp, b_a2PVq) c_a2PVr -> Type) (t_a2PWB :: a_a2PVp) (t_a2PWC :: b_a2PVq). Sing t_a2PWA -> Sing t_a2PWB -> Sing t_a2PWC -> Sing (Apply (Apply (Apply CurrySym0 t_a2PWA) t_a2PWB) t_a2PWC :: c_a2PVr)
sUncurry :: forall (t_a2PWF :: TyFun a_a2PVm (TyFun b_a2PVn c_a2PVo -> Type) -> Type) (t_a2PWG :: (a_a2PVm, b_a2PVn)). Sing t_a2PWF -> Sing t_a2PWG -> Sing (Apply (Apply UncurrySym0 t_a2PWF) t_a2PWG :: c_a2PVo)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *
either_ :: forall a_a2L8P c_a2L8Q b_a2L8R. (a_a2L8P -> c_a2L8Q) -> (b_a2L8R -> c_a2L8Q) -> Either a_a2L8P b_a2L8R -> c_a2L8Q
maybe_ :: forall b_a2NlF a_a2NlG. b_a2NlF -> (a_a2NlG -> b_a2NlF) -> Maybe a_a2NlG -> b_a2NlF
bool_ :: forall a_a1XYY. a_a1XYY -> a_a1XYY -> Bool -> a_a1XYY
any_ :: forall a_a2QOv. (a_a2QOv -> Bool) -> [a_a2QOv] -> Bool
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a1Yar :: TyFun Bool Bool)
type NotSym1 (t_a1Yaq :: Bool) = Not t_a1Yaq
data (:&&$) (l_a1YaJ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1YaM :: Bool) (l_a1YaL :: TyFun Bool Bool)
type (:&&$$$) (t_a1YaH :: Bool) (t_a1YaI :: Bool) = (:&&) t_a1YaH t_a1YaI
data (:||$) (l_a1Yaw :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1Yaz :: Bool) (l_a1Yay :: TyFun Bool Bool)
type (:||$$$) (t_a1Yau :: Bool) (t_a1Yav :: Bool) = (:||) t_a1Yau t_a1Yav
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a1N7P :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a1N7O :: a3530822107858468866) = Just t_a1N7O
data Maybe_Sym0 (l_a2NlO :: TyFun b6989586621679676147 (TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type) -> Type))
data Maybe_Sym1 (l_a2NlR :: b6989586621679676147) (l_a2NlQ :: TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type))
data Maybe_Sym2 (l_a2NlU :: b6989586621679676147) (l_a2NlV :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (l_a2NlT :: TyFun (Maybe a6989586621679676148) b6989586621679676147)
type Maybe_Sym3 (t_a2NlL :: b6989586621679676147) (t_a2NlM :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (t_a2NlN :: Maybe a6989586621679676148) = Maybe_ t_a2NlL t_a2NlM t_a2NlN
data LeftSym0 (l_a1N8g :: TyFun a6989586621679054100 (Either a6989586621679054100 b6989586621679054101))
type LeftSym1 (t_a1N8f :: a6989586621679054100) = Left t_a1N8f
data RightSym0 (l_a1N8j :: TyFun b6989586621679054101 (Either a6989586621679054100 b6989586621679054101))
type RightSym1 (t_a1N8i :: b6989586621679054101) = Right t_a1N8i
data Either_Sym0 (l_a2L90 :: TyFun (TyFun a6989586621679667663 c6989586621679667664 -> Type) (TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type) -> Type))
data Either_Sym1 (l_a2L93 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L92 :: TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type))
data Either_Sym2 (l_a2L96 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L97 :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (l_a2L95 :: TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664)
type Either_Sym3 (t_a2L8X :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (t_a2L8Y :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (t_a2L8Z :: Either a6989586621679667663 b6989586621679667665) = Either_ t_a2L8X t_a2L8Y t_a2L8Z
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data FstSym0 (l_a2PWh :: TyFun (a6989586621679686056, b6989586621679686057) a6989586621679686056)
type FstSym1 (t_a2PWg :: (a6989586621679686056, b6989586621679686057)) = Fst t_a2PWg
data SndSym0 (l_a2PW9 :: TyFun (a6989586621679686054, b6989586621679686055) b6989586621679686055)
type SndSym1 (t_a2PW8 :: (a6989586621679686054, b6989586621679686055)) = Snd t_a2PW8
data CurrySym0 (l_a2PVT :: TyFun (TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type) -> Type))
data CurrySym1 (l_a2PVW :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PVV :: TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type))
data CurrySym2 (l_a2PVZ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PW0 :: a6989586621679686051) (l_a2PVY :: TyFun b6989586621679686052 c6989586621679686053)
type CurrySym3 (t_a2PVQ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (t_a2PVR :: a6989586621679686051) (t_a2PVS :: b6989586621679686052) = Curry t_a2PVQ t_a2PVR t_a2PVS
data UncurrySym0 (l_a2PWq :: TyFun (TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050 -> Type))
data UncurrySym1 (l_a2PWt :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (l_a2PWs :: TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050)
type UncurrySym2 (t_a2PWo :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (t_a2PWp :: (a6989586621679686048, b6989586621679686049)) = Uncurry t_a2PWo t_a2PWp
data IdSym0 (l_a1Z17 :: TyFun a6989586621679482535 a6989586621679482535)
type IdSym1 (t_a1Z16 :: a6989586621679482535) = Id t_a1Z16
data ConstSym0 (l_a1Z0G :: TyFun a6989586621679482533 (TyFun b6989586621679482534 a6989586621679482533 -> Type))
data ConstSym1 (l_a1Z0J :: a6989586621679482533) (l_a1Z0I :: TyFun b6989586621679482534 a6989586621679482533)
type ConstSym2 (t_a1Z0E :: a6989586621679482533) (t_a1Z0F :: b6989586621679482534) = Const t_a1Z0E t_a1Z0F
data (:.$) (l_a1Z01 :: TyFun (TyFun b6989586621679482530 c6989586621679482531 -> Type) (TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type) -> Type))
data (:.$$) (l_a1Z04 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z03 :: TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type))
data (:.$$$) (l_a1Z07 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z08 :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (l_a1Z06 :: TyFun a6989586621679482532 c6989586621679482531)
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_a1YZJ :: TyFun (TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type) -> Type))
data FlipSym1 (l_a1YZM :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZL :: TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type))
data FlipSym2 (l_a1YZP :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZQ :: b6989586621679482528) (l_a1YZO :: TyFun a6989586621679482527 c6989586621679482529)
data AsTypeOfSym0 (l_a1Z0X :: TyFun a6989586621679482526 (TyFun a6989586621679482526 a6989586621679482526 -> Type))
data AsTypeOfSym1 (l_a1Z10 :: a6989586621679482526) (l_a1Z0Z :: TyFun a6989586621679482526 a6989586621679482526)
type AsTypeOfSym2 (t_a1Z0V :: a6989586621679482526) (t_a1Z0W :: a6989586621679482526) = AsTypeOf t_a1Z0V t_a1Z0W
data SeqSym0 (l_a1YZv :: TyFun a6989586621679482524 (TyFun b6989586621679482525 b6989586621679482525 -> Type))
data SeqSym1 (l_a1YZy :: a6989586621679482524) (l_a1YZx :: TyFun b6989586621679482525 b6989586621679482525)
type SeqSym2 (t_a1YZt :: a6989586621679482524) (t_a1YZu :: b6989586621679482525) = Seq t_a1YZt t_a1YZu
data (:$) (l_a1N7Z :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a1N82 :: a3530822107858468866) (l_a1N81 :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a1N7X :: a3530822107858468866) (t_a1N7Y :: [a3530822107858468866]) = (:) t_a1N7X t_a1N7Y
type NilSym0 = '[]
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data ReverseSym0 (l_a2ULW :: TyFun [a6989586621679700166] [a6989586621679700166])
type ReverseSym1 (t_a2ULV :: [a6989586621679700166]) = Reverse t_a2ULV
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data HeadSym0 (l_a2UOr :: TyFun [a6989586621679700171] a6989586621679700171)
type HeadSym1 (t_a2UOq :: [a6989586621679700171]) = Head t_a2UOq
data LastSym0 (l_a2UOh :: TyFun [a6989586621679700170] a6989586621679700170)
type LastSym1 (t_a2UOg :: [a6989586621679700170]) = Last t_a2UOg
data TailSym0 (l_a2UO9 :: TyFun [a6989586621679700169] [a6989586621679700169])
type TailSym1 (t_a2UO8 :: [a6989586621679700169]) = Tail t_a2UO8
data InitSym0 (l_a2UNC :: TyFun [a6989586621679700168] [a6989586621679700168])
type InitSym1 (t_a2UNB :: [a6989586621679700168]) = Init t_a2UNB
data NullSym0 (l_a2UMv :: TyFun [a6989586621679700167] Bool)
type NullSym1 (t_a2UMu :: [a6989586621679700167]) = Null t_a2UMu
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type) -> Type))
data FoldlSym1 (l_a1Q5K :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5J :: TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type))
data FoldlSym2 (l_a1Q5N :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5O :: b6989586621679448348) (l_a1Q5M :: TyFun [a6989586621679448347] b6989586621679448348)
type FoldlSym3 (t_a1Q5E :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (t_a1Q5F :: b6989586621679448348) (t_a1Q5G :: [a6989586621679448347]) = Foldl t_a1Q5E t_a1Q5F t_a1Q5G
data Foldl1Sym0 (l_a2UzE :: TyFun (TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (TyFun [a6989586621679700157] a6989586621679700157 -> Type))
data Foldl1Sym1 (l_a2UzH :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (l_a2UzG :: TyFun [a6989586621679700157] a6989586621679700157)
type Foldl1Sym2 (t_a2UzC :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (t_a2UzD :: [a6989586621679700157]) = Foldl1 t_a2UzC t_a2UzD
data FoldrSym0 (l_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data Foldr1Sym0 (l_a2Uz1 :: TyFun (TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (TyFun [a6989586621679700155] a6989586621679700155 -> Type))
data Foldr1Sym1 (l_a2Uz4 :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (l_a2Uz3 :: TyFun [a6989586621679700155] a6989586621679700155)
type Foldr1Sym2 (t_a2UyZ :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (t_a2Uz0 :: [a6989586621679700155]) = Foldr1 t_a2UyZ t_a2Uz0
data ConcatSym0 (l_a2UyV :: TyFun [[a6989586621679700154]] [a6989586621679700154])
type ConcatSym1 (t_a2UyU :: [[a6989586621679700154]]) = Concat t_a2UyU
data ConcatMapSym0 (l_a2UyH :: TyFun (TyFun a6989586621679700152 [b6989586621679700153] -> Type) (TyFun [a6989586621679700152] [b6989586621679700153] -> Type))
data ConcatMapSym1 (l_a2UyK :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (l_a2UyJ :: TyFun [a6989586621679700152] [b6989586621679700153])
type ConcatMapSym2 (t_a2UyF :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (t_a2UyG :: [a6989586621679700152]) = ConcatMap t_a2UyF t_a2UyG
data AndSym0 (l_a2UyA :: TyFun [Bool] Bool)
type AndSym1 (t_a2Uyz :: [Bool]) = And t_a2Uyz
data OrSym0 (l_a2Uyu :: TyFun [Bool] Bool)
type OrSym1 (t_a2Uyt :: [Bool]) = Or t_a2Uyt
data Any_Sym0 (l_a2QOC :: TyFun (TyFun a6989586621679689467 Bool -> Type) (TyFun [a6989586621679689467] Bool -> Type))
data Any_Sym1 (l_a2QOF :: TyFun a6989586621679689467 Bool -> Type) (l_a2QOE :: TyFun [a6989586621679689467] Bool)
type Any_Sym2 (t_a2QOA :: TyFun a6989586621679689467 Bool -> Type) (t_a2QOB :: [a6989586621679689467]) = Any_ t_a2QOA t_a2QOB
data AllSym0 (l_a2Uyg :: TyFun (TyFun a6989586621679700151 Bool -> Type) (TyFun [a6989586621679700151] Bool -> Type))
data AllSym1 (l_a2Uyj :: TyFun a6989586621679700151 Bool -> Type) (l_a2Uyi :: TyFun [a6989586621679700151] Bool)
type AllSym2 (t_a2Uye :: TyFun a6989586621679700151 Bool -> Type) (t_a2Uyf :: [a6989586621679700151]) = All t_a2Uye t_a2Uyf
data ScanlSym0 (l_a2UxF :: TyFun (TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type) -> Type))
data ScanlSym1 (l_a2UxI :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxH :: TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type))
data ScanlSym2 (l_a2UxL :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxM :: b6989586621679700149) (l_a2UxK :: TyFun [a6989586621679700150] [b6989586621679700149])
type ScanlSym3 (t_a2UxC :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (t_a2UxD :: b6989586621679700149) (t_a2UxE :: [a6989586621679700150]) = Scanl t_a2UxC t_a2UxD t_a2UxE
data Scanl1Sym0 (l_a2Uy1 :: TyFun (TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (TyFun [a6989586621679700148] [a6989586621679700148] -> Type))
data Scanl1Sym1 (l_a2Uy4 :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (l_a2Uy3 :: TyFun [a6989586621679700148] [a6989586621679700148])
type Scanl1Sym2 (t_a2UxZ :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (t_a2Uy0 :: [a6989586621679700148]) = Scanl1 t_a2UxZ t_a2Uy0
data ScanrSym0 (l_a2UwU :: TyFun (TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type) -> Type))
data ScanrSym1 (l_a2UwX :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2UwW :: TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type))
data ScanrSym2 (l_a2Ux0 :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2Ux1 :: b6989586621679700147) (l_a2UwZ :: TyFun [a6989586621679700146] [b6989586621679700147])
type ScanrSym3 (t_a2UwR :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (t_a2UwS :: b6989586621679700147) (t_a2UwT :: [a6989586621679700146]) = Scanr t_a2UwR t_a2UwS t_a2UwT
data Scanr1Sym0 (l_a2UvS :: TyFun (TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (TyFun [a6989586621679700145] [a6989586621679700145] -> Type))
data Scanr1Sym1 (l_a2UvV :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (l_a2UvU :: TyFun [a6989586621679700145] [a6989586621679700145])
type Scanr1Sym2 (t_a2UvQ :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (t_a2UvR :: [a6989586621679700145]) = Scanr1 t_a2UvQ t_a2UvR
data ElemSym0 (l_a2UnZ :: TyFun a6989586621679700131 (TyFun [a6989586621679700131] Bool -> Type))
data ElemSym1 (l_a2Uo2 :: a6989586621679700131) (l_a2Uo1 :: TyFun [a6989586621679700131] Bool)
type ElemSym2 (t_a2UnX :: a6989586621679700131) (t_a2UnY :: [a6989586621679700131]) = Elem t_a2UnX t_a2UnY
data NotElemSym0 (l_a2UnK :: TyFun a6989586621679700130 (TyFun [a6989586621679700130] Bool -> Type))
data NotElemSym1 (l_a2UnN :: a6989586621679700130) (l_a2UnM :: TyFun [a6989586621679700130] Bool)
type NotElemSym2 (t_a2UnI :: a6989586621679700130) (t_a2UnJ :: [a6989586621679700130]) = NotElem t_a2UnI t_a2UnJ
data ZipSym0 (l_a2UlH :: TyFun [a6989586621679700128] (TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)] -> Type))
data ZipSym1 (l_a2UlK :: [a6989586621679700128]) (l_a2UlJ :: TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)])
type ZipSym2 (t_a2UlF :: [a6989586621679700128]) (t_a2UlG :: [b6989586621679700129]) = Zip t_a2UlF t_a2UlG
data Zip3Sym0 (l_a2Ukv :: TyFun [a6989586621679700125] (TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type) -> Type))
data Zip3Sym1 (l_a2Uky :: [a6989586621679700125]) (l_a2Ukx :: TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type))
data Zip3Sym2 (l_a2UkB :: [a6989586621679700125]) (l_a2UkC :: [b6989586621679700126]) (l_a2UkA :: TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)])
type Zip3Sym3 (t_a2Uks :: [a6989586621679700125]) (t_a2Ukt :: [b6989586621679700126]) (t_a2Uku :: [c6989586621679700127]) = Zip3 t_a2Uks t_a2Ukt t_a2Uku
data ZipWithSym0 (l_a2UjQ :: TyFun (TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type) -> Type))
data ZipWithSym1 (l_a2UjT :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjS :: TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type))
data ZipWithSym2 (l_a2UjW :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjX :: [a6989586621679700122]) (l_a2UjV :: TyFun [b6989586621679700123] [c6989586621679700124])
type ZipWithSym3 (t_a2UjN :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (t_a2UjO :: [a6989586621679700122]) (t_a2UjP :: [b6989586621679700123]) = ZipWith t_a2UjN t_a2UjO t_a2UjP
data ZipWith3Sym0 (l_a2Uib :: TyFun (TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a2Uie :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uid :: TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type))
data ZipWith3Sym2 (l_a2Uih :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uii :: [a6989586621679700118]) (l_a2Uig :: TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type))
data ZipWith3Sym3 (l_a2Uil :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uim :: [a6989586621679700118]) (l_a2Uin :: [b6989586621679700119]) (l_a2Uik :: TyFun [c6989586621679700120] [d6989586621679700121])
data UnzipSym0 (l_a2UhE :: TyFun [(a6989586621679700116, b6989586621679700117)] ([a6989586621679700116], [b6989586621679700117]))
type UnzipSym1 (t_a2UhD :: [(a6989586621679700116, b6989586621679700117)]) = Unzip t_a2UhD


-- | 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_a272B), kproxy_a27DH ~ Proxy) => POrd (kproxy_a27DH :: Proxy a_a272B) where type Compare (arg_a27DI :: a_a272B) (arg_a27DJ :: a_a272B) :: Ordering type (:<) (arg_a27DR :: a_a272B) (arg_a27DS :: a_a272B) :: Bool type (:<=) (arg_a27E0 :: a_a272B) (arg_a27E1 :: a_a272B) :: Bool type (:>) (arg_a27E9 :: a_a272B) (arg_a27Ea :: a_a272B) :: Bool type (:>=) (arg_a27Ei :: a_a272B) (arg_a27Ej :: a_a272B) :: Bool type Max (arg_a27Er :: a_a272B) (arg_a27Es :: a_a272B) :: a_a272B type Min (arg_a27EA :: a_a272B) (arg_a27EB :: a_a272B) :: a_a272B type Compare a_a27Fg a_a27Fh = Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh type (:<) a_a27FN a_a27FO = Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO type (:<=) a_a27Gk a_a27Gl = Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl type (:>) a_a27GR a_a27GS = Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS type (:>=) a_a27Ho a_a27Hp = Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp type Max a_a27HV a_a27HW = Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW type Min a_a27Is a_a27It = Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It where {
    type family Compare (arg_a27DI :: a_a272B)
                        (arg_a27DJ :: a_a272B) :: Ordering;
    type family (:<) (arg_a27DR :: a_a272B)
                     (arg_a27DS :: a_a272B) :: Bool;
    type family (:<=) (arg_a27E0 :: a_a272B)
                      (arg_a27E1 :: a_a272B) :: Bool;
    type family (:>) (arg_a27E9 :: a_a272B)
                     (arg_a27Ea :: a_a272B) :: Bool;
    type family (:>=) (arg_a27Ei :: a_a272B)
                      (arg_a27Ej :: a_a272B) :: Bool;
    type family Max (arg_a27Er :: a_a272B)
                    (arg_a27Es :: a_a272B) :: a_a272B;
    type family Min (arg_a27EA :: a_a272B)
                    (arg_a27EB :: a_a272B) :: a_a272B;
    type Compare a_a27Fg a_a27Fh =
        Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh;
    type (:<) a_a27FN a_a27FO =
        Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO;
    type (:<=) a_a27Gk a_a27Gl =
        Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl;
    type (:>) a_a27GR a_a27GS =
        Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS;
    type (:>=) a_a27Ho a_a27Hp =
        Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp;
    type Max a_a27HV a_a27HW =
        Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW;
    type Min a_a27Is a_a27It =
        Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It;
}

-- | 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_a2rGa :: TyFun k06989586621679591922 k6989586621679591924)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data ThenCmpSym0 (l_a29ve :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> 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_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data FstSym0 (l_a2PWh :: TyFun (a6989586621679686056, b6989586621679686057) a6989586621679686056)
type FstSym1 (t_a2PWg :: (a6989586621679686056, b6989586621679686057)) = Fst t_a2PWg
data SndSym0 (l_a2PW9 :: TyFun (a6989586621679686054, b6989586621679686055) b6989586621679686055)
type SndSym1 (t_a2PW8 :: (a6989586621679686054, b6989586621679686055)) = Snd t_a2PW8
data CurrySym0 (l_a2PVT :: TyFun (TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type) -> Type))
data CurrySym1 (l_a2PVW :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PVV :: TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type))
data CurrySym2 (l_a2PVZ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PW0 :: a6989586621679686051) (l_a2PVY :: TyFun b6989586621679686052 c6989586621679686053)
type CurrySym3 (t_a2PVQ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (t_a2PVR :: a6989586621679686051) (t_a2PVS :: b6989586621679686052) = Curry t_a2PVQ t_a2PVR t_a2PVS
data UncurrySym0 (l_a2PWq :: TyFun (TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050 -> Type))
data UncurrySym1 (l_a2PWt :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (l_a2PWs :: TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050)
type UncurrySym2 (t_a2PWo :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (t_a2PWp :: (a6989586621679686048, b6989586621679686049)) = Uncurry t_a2PWo t_a2PWp
data SwapSym0 (l_a2PVL :: TyFun (a6989586621679686046, b6989586621679686047) (b6989586621679686047, a6989586621679686046))
type SwapSym1 (t_a2PVK :: (a6989586621679686046, b6989586621679686047)) = Swap t_a2PVK


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class (PEq (Proxy :: Proxy a_a272B), kproxy_a27DH ~ Proxy) => POrd (kproxy_a27DH :: Proxy a_a272B) where type Compare (arg_a27DI :: a_a272B) (arg_a27DJ :: a_a272B) :: Ordering type (:<) (arg_a27DR :: a_a272B) (arg_a27DS :: a_a272B) :: Bool type (:<=) (arg_a27E0 :: a_a272B) (arg_a27E1 :: a_a272B) :: Bool type (:>) (arg_a27E9 :: a_a272B) (arg_a27Ea :: a_a272B) :: Bool type (:>=) (arg_a27Ei :: a_a272B) (arg_a27Ej :: a_a272B) :: Bool type Max (arg_a27Er :: a_a272B) (arg_a27Es :: a_a272B) :: a_a272B type Min (arg_a27EA :: a_a272B) (arg_a27EB :: a_a272B) :: a_a272B type Compare a_a27Fg a_a27Fh = Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh type (:<) a_a27FN a_a27FO = Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO type (:<=) a_a27Gk a_a27Gl = Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl type (:>) a_a27GR a_a27GS = Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS type (:>=) a_a27Ho a_a27Hp = Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp type Max a_a27HV a_a27HW = Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW type Min a_a27Is a_a27It = Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It where {
    type family Compare (arg_a27DI :: a_a272B)
                        (arg_a27DJ :: a_a272B) :: Ordering;
    type family (:<) (arg_a27DR :: a_a272B)
                     (arg_a27DS :: a_a272B) :: Bool;
    type family (:<=) (arg_a27E0 :: a_a272B)
                      (arg_a27E1 :: a_a272B) :: Bool;
    type family (:>) (arg_a27E9 :: a_a272B)
                     (arg_a27Ea :: a_a272B) :: Bool;
    type family (:>=) (arg_a27Ei :: a_a272B)
                      (arg_a27Ej :: a_a272B) :: Bool;
    type family Max (arg_a27Er :: a_a272B)
                    (arg_a27Es :: a_a272B) :: a_a272B;
    type family Min (arg_a27EA :: a_a272B)
                    (arg_a27EB :: a_a272B) :: a_a272B;
    type Compare a_a27Fg a_a27Fh =
        Apply (Apply Compare_6989586621679515916Sym0 a_a27Fg) a_a27Fh;
    type (:<) a_a27FN a_a27FO =
        Apply (Apply TFHelper_6989586621679515949Sym0 a_a27FN) a_a27FO;
    type (:<=) a_a27Gk a_a27Gl =
        Apply (Apply TFHelper_6989586621679515982Sym0 a_a27Gk) a_a27Gl;
    type (:>) a_a27GR a_a27GS =
        Apply (Apply TFHelper_6989586621679516015Sym0 a_a27GR) a_a27GS;
    type (:>=) a_a27Ho a_a27Hp =
        Apply (Apply TFHelper_6989586621679516048Sym0 a_a27Ho) a_a27Hp;
    type Max a_a27HV a_a27HW =
        Apply (Apply Max_6989586621679516081Sym0 a_a27HV) a_a27HW;
    type Min a_a27Is a_a27It =
        Apply (Apply Min_6989586621679516114Sym0 a_a27Is) a_a27It;
}
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a27DM :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Ordering -> Type))
data CompareSym1 (l_a27DP :: a6989586621679513517) (l_a27DO :: TyFun a6989586621679513517 Ordering)
type CompareSym2 (t_a27DK :: a6989586621679513517) (t_a27DL :: a6989586621679513517) = Compare t_a27DK t_a27DL
data (:<$) (l_a27DV :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:<$$) (l_a27DY :: a6989586621679513517) (l_a27DX :: TyFun a6989586621679513517 Bool)
type (:<$$$) (t_a27DT :: a6989586621679513517) (t_a27DU :: a6989586621679513517) = (:<) t_a27DT t_a27DU
data (:<=$) (l_a27E4 :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:<=$$) (l_a27E7 :: a6989586621679513517) (l_a27E6 :: TyFun a6989586621679513517 Bool)
type (:<=$$$) (t_a27E2 :: a6989586621679513517) (t_a27E3 :: a6989586621679513517) = (:<=) t_a27E2 t_a27E3
data (:>$) (l_a27Ed :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:>$$) (l_a27Eg :: a6989586621679513517) (l_a27Ef :: TyFun a6989586621679513517 Bool)
type (:>$$$) (t_a27Eb :: a6989586621679513517) (t_a27Ec :: a6989586621679513517) = (:>) t_a27Eb t_a27Ec
data (:>=$) (l_a27Em :: TyFun a6989586621679513517 (TyFun a6989586621679513517 Bool -> Type))
data (:>=$$) (l_a27Ep :: a6989586621679513517) (l_a27Eo :: TyFun a6989586621679513517 Bool)
type (:>=$$$) (t_a27Ek :: a6989586621679513517) (t_a27El :: a6989586621679513517) = (:>=) t_a27Ek t_a27El
data MaxSym0 (l_a27Ev :: TyFun a6989586621679513517 (TyFun a6989586621679513517 a6989586621679513517 -> Type))
data MaxSym1 (l_a27Ey :: a6989586621679513517) (l_a27Ex :: TyFun a6989586621679513517 a6989586621679513517)
type MaxSym2 (t_a27Et :: a6989586621679513517) (t_a27Eu :: a6989586621679513517) = Max t_a27Et t_a27Eu
data MinSym0 (l_a27EE :: TyFun a6989586621679513517 (TyFun a6989586621679513517 a6989586621679513517 -> Type))
data MinSym1 (l_a27EH :: a6989586621679513517) (l_a27EG :: TyFun a6989586621679513517 a6989586621679513517)
type MinSym2 (t_a27EC :: a6989586621679513517) (t_a27ED :: a6989586621679513517) = Min t_a27EC t_a27ED


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class kproxy_a2tQ2 ~ Proxy => PNum (kproxy_a2tQ2 :: Proxy a_a2tPY) where type (:+) (arg_a2tQ3 :: a_a2tPY) (arg_a2tQ4 :: a_a2tPY) :: a_a2tPY type (:-) (arg_a2tQc :: a_a2tPY) (arg_a2tQd :: a_a2tPY) :: a_a2tPY type (:*) (arg_a2tQl :: a_a2tPY) (arg_a2tQm :: a_a2tPY) :: a_a2tPY type Negate (arg_a2tQu :: a_a2tPY) :: a_a2tPY type Abs (arg_a2tQy :: a_a2tPY) :: a_a2tPY type Signum (arg_a2tQC :: a_a2tPY) :: a_a2tPY type FromInteger (arg_a2tQG :: Nat) :: a_a2tPY type (:-) a_a2tQV a_a2tQW = Apply (Apply TFHelper_6989586621679601207Sym0 a_a2tQV) a_a2tQW type Negate a_a2tRb = Apply Negate_6989586621679601222Sym0 a_a2tRb where {
    type family (:+) (arg_a2tQ3 :: a_a2tPY)
                     (arg_a2tQ4 :: a_a2tPY) :: a_a2tPY;
    type family (:-) (arg_a2tQc :: a_a2tPY)
                     (arg_a2tQd :: a_a2tPY) :: a_a2tPY;
    type family (:*) (arg_a2tQl :: a_a2tPY)
                     (arg_a2tQm :: a_a2tPY) :: a_a2tPY;
    type family Negate (arg_a2tQu :: a_a2tPY) :: a_a2tPY;
    type family Abs (arg_a2tQy :: a_a2tPY) :: a_a2tPY;
    type family Signum (arg_a2tQC :: a_a2tPY) :: a_a2tPY;
    type family FromInteger (arg_a2tQG :: Nat) :: a_a2tPY;
    type (:-) a_a2tQV a_a2tQW =
        Apply (Apply TFHelper_6989586621679601207Sym0 a_a2tQV) a_a2tQW;
    type Negate a_a2tRb = Apply Negate_6989586621679601222Sym0 a_a2tRb;
}
data (:+$) (l_a2tQ7 :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:+$$) (l_a2tQa :: a6989586621679601146) (l_a2tQ9 :: TyFun a6989586621679601146 a6989586621679601146)
type (:+$$$) (t_a2tQ5 :: a6989586621679601146) (t_a2tQ6 :: a6989586621679601146) = (:+) t_a2tQ5 t_a2tQ6
data (:-$) (l_a2tQg :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:-$$) (l_a2tQj :: a6989586621679601146) (l_a2tQi :: TyFun a6989586621679601146 a6989586621679601146)
type (:-$$$) (t_a2tQe :: a6989586621679601146) (t_a2tQf :: a6989586621679601146) = (:-) t_a2tQe t_a2tQf
data (:*$) (l_a2tQp :: TyFun a6989586621679601146 (TyFun a6989586621679601146 a6989586621679601146 -> Type))
data (:*$$) (l_a2tQs :: a6989586621679601146) (l_a2tQr :: TyFun a6989586621679601146 a6989586621679601146)
type (:*$$$) (t_a2tQn :: a6989586621679601146) (t_a2tQo :: a6989586621679601146) = (:*) t_a2tQn t_a2tQo
data NegateSym0 (l_a2tQw :: TyFun a6989586621679601146 a6989586621679601146)
type NegateSym1 (t_a2tQv :: a6989586621679601146) = Negate t_a2tQv
data AbsSym0 (l_a2tQA :: TyFun a6989586621679601146 a6989586621679601146)
type AbsSym1 (t_a2tQz :: a6989586621679601146) = Abs t_a2tQz
data SignumSym0 (l_a2tQE :: TyFun a6989586621679601146 a6989586621679601146)
type SignumSym1 (t_a2tQD :: a6989586621679601146) = Signum t_a2tQD
data FromIntegerSym0 (l_a2tQI :: TyFun Nat a6989586621679601146)
type FromIntegerSym1 (t_a2tQH :: Nat) = FromInteger t_a2tQH
data SubtractSym0 (l_a2usK :: TyFun a6989586621679603462 (TyFun a6989586621679603462 a6989586621679603462 -> Type))
data SubtractSym1 (l_a2usN :: a6989586621679603462) (l_a2usM :: TyFun a6989586621679603462 a6989586621679603462)
type SubtractSym2 (t_a2usI :: a6989586621679603462) (t_a2usJ :: a6989586621679603462) = Subtract t_a2usI t_a2usJ


-- | 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_a2NlF a_a2NlG. b_a2NlF -> (a_a2NlG -> b_a2NlF) -> Maybe a_a2NlG -> b_a2NlF
type NothingSym0 = Nothing
data JustSym0 (l_a1N7P :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a1N7O :: a3530822107858468866) = Just t_a1N7O
data Maybe_Sym0 (l_a2NlO :: TyFun b6989586621679676147 (TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type) -> Type))
data Maybe_Sym1 (l_a2NlR :: b6989586621679676147) (l_a2NlQ :: TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type))
data Maybe_Sym2 (l_a2NlU :: b6989586621679676147) (l_a2NlV :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (l_a2NlT :: TyFun (Maybe a6989586621679676148) b6989586621679676147)
type Maybe_Sym3 (t_a2NlL :: b6989586621679676147) (t_a2NlM :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (t_a2NlN :: Maybe a6989586621679676148) = Maybe_ t_a2NlL t_a2NlM t_a2NlN
data IsJustSym0 (l_a2NHN :: TyFun (Maybe a6989586621679677401) Bool)
type IsJustSym1 (t_a2NHM :: Maybe a6989586621679677401) = IsJust t_a2NHM
data IsNothingSym0 (l_a2NHG :: TyFun (Maybe a6989586621679677400) Bool)
type IsNothingSym1 (t_a2NHF :: Maybe a6989586621679677400) = IsNothing t_a2NHF
data FromJustSym0 (l_a2NHB :: TyFun (Maybe a6989586621679677399) a6989586621679677399)
type FromJustSym1 (t_a2NHA :: Maybe a6989586621679677399) = FromJust t_a2NHA
data FromMaybeSym0 (l_a2NHn :: TyFun a6989586621679677398 (TyFun (Maybe a6989586621679677398) a6989586621679677398 -> Type))
data FromMaybeSym1 (l_a2NHq :: a6989586621679677398) (l_a2NHp :: TyFun (Maybe a6989586621679677398) a6989586621679677398)
type FromMaybeSym2 (t_a2NHl :: a6989586621679677398) (t_a2NHm :: Maybe a6989586621679677398) = FromMaybe t_a2NHl t_a2NHm
data MaybeToListSym0 (l_a2NHh :: TyFun (Maybe a6989586621679677397) [a6989586621679677397])
type MaybeToListSym1 (t_a2NHg :: Maybe a6989586621679677397) = MaybeToList t_a2NHg
data ListToMaybeSym0 (l_a2NH9 :: TyFun [a6989586621679677396] (Maybe a6989586621679677396))
type ListToMaybeSym1 (t_a2NH8 :: [a6989586621679677396]) = ListToMaybe t_a2NH8
data CatMaybesSym0 (l_a2NH2 :: TyFun [Maybe a6989586621679677395] [a6989586621679677395])
type CatMaybesSym1 (t_a2NH1 :: [Maybe a6989586621679677395]) = CatMaybes t_a2NH1
data MapMaybeSym0 (l_a2NGk :: TyFun (TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (TyFun [a6989586621679677393] [b6989586621679677394] -> Type))
data MapMaybeSym1 (l_a2NGn :: TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (l_a2NGm :: TyFun [a6989586621679677393] [b6989586621679677394])
type MapMaybeSym2 (t_a2NGi :: TyFun a6989586621679677393 (Maybe b6989586621679677394) -> Type) (t_a2NGj :: [a6989586621679677393]) = MapMaybe t_a2NGi t_a2NGj


-- | 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_a2QOv. (a_a2QOv -> Bool) -> [a_a2QOv] -> Bool
type NilSym0 = '[]
data (:$) (l_a1N7Z :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a1N82 :: a3530822107858468866) (l_a1N81 :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a1N7X :: a3530822107858468866) (t_a1N7Y :: [a3530822107858468866]) = (:) t_a1N7X t_a1N7Y
type (:++$$$) (t_a1Z1b :: [a6989586621679482536]) (t_a1Z1c :: [a6989586621679482536]) = (:++) t_a1Z1b t_a1Z1c
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data HeadSym0 (l_a2UOr :: TyFun [a6989586621679700171] a6989586621679700171)
type HeadSym1 (t_a2UOq :: [a6989586621679700171]) = Head t_a2UOq
data LastSym0 (l_a2UOh :: TyFun [a6989586621679700170] a6989586621679700170)
type LastSym1 (t_a2UOg :: [a6989586621679700170]) = Last t_a2UOg
data TailSym0 (l_a2UO9 :: TyFun [a6989586621679700169] [a6989586621679700169])
type TailSym1 (t_a2UO8 :: [a6989586621679700169]) = Tail t_a2UO8
data InitSym0 (l_a2UNC :: TyFun [a6989586621679700168] [a6989586621679700168])
type InitSym1 (t_a2UNB :: [a6989586621679700168]) = Init t_a2UNB
data NullSym0 (l_a2UMv :: TyFun [a6989586621679700167] Bool)
type NullSym1 (t_a2UMu :: [a6989586621679700167]) = Null t_a2UMu
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data ReverseSym0 (l_a2ULW :: TyFun [a6989586621679700166] [a6989586621679700166])
type ReverseSym1 (t_a2ULV :: [a6989586621679700166]) = Reverse t_a2ULV
data IntersperseSym0 (l_a2ULx :: TyFun a6989586621679700165 (TyFun [a6989586621679700165] [a6989586621679700165] -> Type))
data IntersperseSym1 (l_a2ULA :: a6989586621679700165) (l_a2ULz :: TyFun [a6989586621679700165] [a6989586621679700165])
type IntersperseSym2 (t_a2ULv :: a6989586621679700165) (t_a2ULw :: [a6989586621679700165]) = Intersperse t_a2ULv t_a2ULw
data IntercalateSym0 (l_a2ULM :: TyFun [a6989586621679700164] (TyFun [[a6989586621679700164]] [a6989586621679700164] -> Type))
data IntercalateSym1 (l_a2ULP :: [a6989586621679700164]) (l_a2ULO :: TyFun [[a6989586621679700164]] [a6989586621679700164])
type IntercalateSym2 (t_a2ULK :: [a6989586621679700164]) (t_a2ULL :: [[a6989586621679700164]]) = Intercalate t_a2ULK t_a2ULL
data SubsequencesSym0 (l_a2ULr :: TyFun [a6989586621679700163] [[a6989586621679700163]])
type SubsequencesSym1 (t_a2ULq :: [a6989586621679700163]) = Subsequences t_a2ULq
data PermutationsSym0 (l_a2UEJ :: TyFun [a6989586621679700160] [[a6989586621679700160]])
type PermutationsSym1 (t_a2UEI :: [a6989586621679700160]) = Permutations t_a2UEI
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type) -> Type))
data FoldlSym1 (l_a1Q5K :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5J :: TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type))
data FoldlSym2 (l_a1Q5N :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5O :: b6989586621679448348) (l_a1Q5M :: TyFun [a6989586621679448347] b6989586621679448348)
type FoldlSym3 (t_a1Q5E :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (t_a1Q5F :: b6989586621679448348) (t_a1Q5G :: [a6989586621679448347]) = Foldl t_a1Q5E t_a1Q5F t_a1Q5G
data Foldl'Sym0 (l_a2UDa :: TyFun (TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (TyFun b6989586621679700159 (TyFun [a6989586621679700158] b6989586621679700159 -> Type) -> Type))
data Foldl'Sym1 (l_a2UDd :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (l_a2UDc :: TyFun b6989586621679700159 (TyFun [a6989586621679700158] b6989586621679700159 -> Type))
data Foldl'Sym2 (l_a2UDg :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (l_a2UDh :: b6989586621679700159) (l_a2UDf :: TyFun [a6989586621679700158] b6989586621679700159)
type Foldl'Sym3 (t_a2UD7 :: TyFun b6989586621679700159 (TyFun a6989586621679700158 b6989586621679700159 -> Type) -> Type) (t_a2UD8 :: b6989586621679700159) (t_a2UD9 :: [a6989586621679700158]) = Foldl' t_a2UD7 t_a2UD8 t_a2UD9
data Foldl1Sym0 (l_a2UzE :: TyFun (TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (TyFun [a6989586621679700157] a6989586621679700157 -> Type))
data Foldl1Sym1 (l_a2UzH :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (l_a2UzG :: TyFun [a6989586621679700157] a6989586621679700157)
type Foldl1Sym2 (t_a2UzC :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (t_a2UzD :: [a6989586621679700157]) = Foldl1 t_a2UzC t_a2UzD
data Foldl1'Sym0 (l_a2UEv :: TyFun (TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (TyFun [a6989586621679700156] a6989586621679700156 -> Type))
data Foldl1'Sym1 (l_a2UEy :: TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (l_a2UEx :: TyFun [a6989586621679700156] a6989586621679700156)
type Foldl1'Sym2 (t_a2UEt :: TyFun a6989586621679700156 (TyFun a6989586621679700156 a6989586621679700156 -> Type) -> Type) (t_a2UEu :: [a6989586621679700156]) = Foldl1' t_a2UEt t_a2UEu
data FoldrSym0 (l_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data Foldr1Sym0 (l_a2Uz1 :: TyFun (TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (TyFun [a6989586621679700155] a6989586621679700155 -> Type))
data Foldr1Sym1 (l_a2Uz4 :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (l_a2Uz3 :: TyFun [a6989586621679700155] a6989586621679700155)
type Foldr1Sym2 (t_a2UyZ :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (t_a2Uz0 :: [a6989586621679700155]) = Foldr1 t_a2UyZ t_a2Uz0
data ConcatSym0 (l_a2UyV :: TyFun [[a6989586621679700154]] [a6989586621679700154])
type ConcatSym1 (t_a2UyU :: [[a6989586621679700154]]) = Concat t_a2UyU
data ConcatMapSym0 (l_a2UyH :: TyFun (TyFun a6989586621679700152 [b6989586621679700153] -> Type) (TyFun [a6989586621679700152] [b6989586621679700153] -> Type))
data ConcatMapSym1 (l_a2UyK :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (l_a2UyJ :: TyFun [a6989586621679700152] [b6989586621679700153])
type ConcatMapSym2 (t_a2UyF :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (t_a2UyG :: [a6989586621679700152]) = ConcatMap t_a2UyF t_a2UyG
data AndSym0 (l_a2UyA :: TyFun [Bool] Bool)
type AndSym1 (t_a2Uyz :: [Bool]) = And t_a2Uyz
data OrSym0 (l_a2Uyu :: TyFun [Bool] Bool)
type OrSym1 (t_a2Uyt :: [Bool]) = Or t_a2Uyt
data Any_Sym0 (l_a2QOC :: TyFun (TyFun a6989586621679689467 Bool -> Type) (TyFun [a6989586621679689467] Bool -> Type))
data Any_Sym1 (l_a2QOF :: TyFun a6989586621679689467 Bool -> Type) (l_a2QOE :: TyFun [a6989586621679689467] Bool)
type Any_Sym2 (t_a2QOA :: TyFun a6989586621679689467 Bool -> Type) (t_a2QOB :: [a6989586621679689467]) = Any_ t_a2QOA t_a2QOB
data AllSym0 (l_a2Uyg :: TyFun (TyFun a6989586621679700151 Bool -> Type) (TyFun [a6989586621679700151] Bool -> Type))
data AllSym1 (l_a2Uyj :: TyFun a6989586621679700151 Bool -> Type) (l_a2Uyi :: TyFun [a6989586621679700151] Bool)
type AllSym2 (t_a2Uye :: TyFun a6989586621679700151 Bool -> Type) (t_a2Uyf :: [a6989586621679700151]) = All t_a2Uye t_a2Uyf
data ScanlSym0 (l_a2UxF :: TyFun (TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type) -> Type))
data ScanlSym1 (l_a2UxI :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxH :: TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type))
data ScanlSym2 (l_a2UxL :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxM :: b6989586621679700149) (l_a2UxK :: TyFun [a6989586621679700150] [b6989586621679700149])
type ScanlSym3 (t_a2UxC :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (t_a2UxD :: b6989586621679700149) (t_a2UxE :: [a6989586621679700150]) = Scanl t_a2UxC t_a2UxD t_a2UxE
data Scanl1Sym0 (l_a2Uy1 :: TyFun (TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (TyFun [a6989586621679700148] [a6989586621679700148] -> Type))
data Scanl1Sym1 (l_a2Uy4 :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (l_a2Uy3 :: TyFun [a6989586621679700148] [a6989586621679700148])
type Scanl1Sym2 (t_a2UxZ :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (t_a2Uy0 :: [a6989586621679700148]) = Scanl1 t_a2UxZ t_a2Uy0
data ScanrSym0 (l_a2UwU :: TyFun (TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type) -> Type))
data ScanrSym1 (l_a2UwX :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2UwW :: TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type))
data ScanrSym2 (l_a2Ux0 :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2Ux1 :: b6989586621679700147) (l_a2UwZ :: TyFun [a6989586621679700146] [b6989586621679700147])
type ScanrSym3 (t_a2UwR :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (t_a2UwS :: b6989586621679700147) (t_a2UwT :: [a6989586621679700146]) = Scanr t_a2UwR t_a2UwS t_a2UwT
data Scanr1Sym0 (l_a2UvS :: TyFun (TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (TyFun [a6989586621679700145] [a6989586621679700145] -> Type))
data Scanr1Sym1 (l_a2UvV :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (l_a2UvU :: TyFun [a6989586621679700145] [a6989586621679700145])
type Scanr1Sym2 (t_a2UvQ :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (t_a2UvR :: [a6989586621679700145]) = Scanr1 t_a2UvQ t_a2UvR
data MapAccumLSym0 (l_a2Ut7 :: TyFun (TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (TyFun acc6989586621679700142 (TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]) -> Type) -> Type))
data MapAccumLSym1 (l_a2Uta :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (l_a2Ut9 :: TyFun acc6989586621679700142 (TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]) -> Type))
data MapAccumLSym2 (l_a2Utd :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (l_a2Ute :: acc6989586621679700142) (l_a2Utc :: TyFun [x6989586621679700143] (acc6989586621679700142, [y6989586621679700144]))
type MapAccumLSym3 (t_a2Ut4 :: TyFun acc6989586621679700142 (TyFun x6989586621679700143 (acc6989586621679700142, y6989586621679700144) -> Type) -> Type) (t_a2Ut5 :: acc6989586621679700142) (t_a2Ut6 :: [x6989586621679700143]) = MapAccumL t_a2Ut4 t_a2Ut5 t_a2Ut6
data MapAccumRSym0 (l_a2Uql :: TyFun (TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (TyFun acc6989586621679700139 (TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]) -> Type) -> Type))
data MapAccumRSym1 (l_a2Uqo :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (l_a2Uqn :: TyFun acc6989586621679700139 (TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]) -> Type))
data MapAccumRSym2 (l_a2Uqr :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (l_a2Uqs :: acc6989586621679700139) (l_a2Uqq :: TyFun [x6989586621679700140] (acc6989586621679700139, [y6989586621679700141]))
type MapAccumRSym3 (t_a2Uqi :: TyFun acc6989586621679700139 (TyFun x6989586621679700140 (acc6989586621679700139, y6989586621679700141) -> Type) -> Type) (t_a2Uqj :: acc6989586621679700139) (t_a2Uqk :: [x6989586621679700140]) = MapAccumR t_a2Uqi t_a2Uqj t_a2Uqk
data UnfoldrSym0 (l_a2UpW :: TyFun (TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (TyFun b6989586621679700137 [a6989586621679700138] -> Type))
data UnfoldrSym1 (l_a2UpZ :: TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (l_a2UpY :: TyFun b6989586621679700137 [a6989586621679700138])
type UnfoldrSym2 (t_a2UpU :: TyFun b6989586621679700137 (Maybe (a6989586621679700138, b6989586621679700137)) -> Type) (t_a2UpV :: b6989586621679700137) = Unfoldr t_a2UpU t_a2UpV
data InitsSym0 (l_a2UpL :: TyFun [a6989586621679700136] [[a6989586621679700136]])
type InitsSym1 (t_a2UpK :: [a6989586621679700136]) = Inits t_a2UpK
data TailsSym0 (l_a2Upo :: TyFun [a6989586621679700135] [[a6989586621679700135]])
type TailsSym1 (t_a2Upn :: [a6989586621679700135]) = Tails t_a2Upn
data IsPrefixOfSym0 (l_a2Up0 :: TyFun [a6989586621679700134] (TyFun [a6989586621679700134] Bool -> Type))
data IsPrefixOfSym1 (l_a2Up3 :: [a6989586621679700134]) (l_a2Up2 :: TyFun [a6989586621679700134] Bool)
type IsPrefixOfSym2 (t_a2UoY :: [a6989586621679700134]) (t_a2UoZ :: [a6989586621679700134]) = IsPrefixOf t_a2UoY t_a2UoZ
data IsSuffixOfSym0 (l_a2UMl :: TyFun [a6989586621679700133] (TyFun [a6989586621679700133] Bool -> Type))
data IsSuffixOfSym1 (l_a2UMo :: [a6989586621679700133]) (l_a2UMn :: TyFun [a6989586621679700133] Bool)
type IsSuffixOfSym2 (t_a2UMj :: [a6989586621679700133]) (t_a2UMk :: [a6989586621679700133]) = IsSuffixOf t_a2UMj t_a2UMk
data IsInfixOfSym0 (l_a2UpB :: TyFun [a6989586621679700132] (TyFun [a6989586621679700132] Bool -> Type))
data IsInfixOfSym1 (l_a2UpE :: [a6989586621679700132]) (l_a2UpD :: TyFun [a6989586621679700132] Bool)
type IsInfixOfSym2 (t_a2Upz :: [a6989586621679700132]) (t_a2UpA :: [a6989586621679700132]) = IsInfixOf t_a2Upz t_a2UpA
data ElemSym0 (l_a2UnZ :: TyFun a6989586621679700131 (TyFun [a6989586621679700131] Bool -> Type))
data ElemSym1 (l_a2Uo2 :: a6989586621679700131) (l_a2Uo1 :: TyFun [a6989586621679700131] Bool)
type ElemSym2 (t_a2UnX :: a6989586621679700131) (t_a2UnY :: [a6989586621679700131]) = Elem t_a2UnX t_a2UnY
data NotElemSym0 (l_a2UnK :: TyFun a6989586621679700130 (TyFun [a6989586621679700130] Bool -> Type))
data NotElemSym1 (l_a2UnN :: a6989586621679700130) (l_a2UnM :: TyFun [a6989586621679700130] Bool)
type NotElemSym2 (t_a2UnI :: a6989586621679700130) (t_a2UnJ :: [a6989586621679700130]) = NotElem t_a2UnI t_a2UnJ
data ZipSym0 (l_a2UlH :: TyFun [a6989586621679700128] (TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)] -> Type))
data ZipSym1 (l_a2UlK :: [a6989586621679700128]) (l_a2UlJ :: TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)])
type ZipSym2 (t_a2UlF :: [a6989586621679700128]) (t_a2UlG :: [b6989586621679700129]) = Zip t_a2UlF t_a2UlG
data Zip3Sym0 (l_a2Ukv :: TyFun [a6989586621679700125] (TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type) -> Type))
data Zip3Sym1 (l_a2Uky :: [a6989586621679700125]) (l_a2Ukx :: TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type))
data Zip3Sym2 (l_a2UkB :: [a6989586621679700125]) (l_a2UkC :: [b6989586621679700126]) (l_a2UkA :: TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)])
type Zip3Sym3 (t_a2Uks :: [a6989586621679700125]) (t_a2Ukt :: [b6989586621679700126]) (t_a2Uku :: [c6989586621679700127]) = Zip3 t_a2Uks t_a2Ukt t_a2Uku
data ZipWithSym0 (l_a2UjQ :: TyFun (TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type) -> Type))
data ZipWithSym1 (l_a2UjT :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjS :: TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type))
data ZipWithSym2 (l_a2UjW :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjX :: [a6989586621679700122]) (l_a2UjV :: TyFun [b6989586621679700123] [c6989586621679700124])
type ZipWithSym3 (t_a2UjN :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (t_a2UjO :: [a6989586621679700122]) (t_a2UjP :: [b6989586621679700123]) = ZipWith t_a2UjN t_a2UjO t_a2UjP
data ZipWith3Sym0 (l_a2Uib :: TyFun (TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a2Uie :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uid :: TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type))
data ZipWith3Sym2 (l_a2Uih :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uii :: [a6989586621679700118]) (l_a2Uig :: TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type))
data ZipWith3Sym3 (l_a2Uil :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uim :: [a6989586621679700118]) (l_a2Uin :: [b6989586621679700119]) (l_a2Uik :: TyFun [c6989586621679700120] [d6989586621679700121])
type ZipWith3Sym4 (t_a2Ui7 :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (t_a2Ui8 :: [a6989586621679700118]) (t_a2Ui9 :: [b6989586621679700119]) (t_a2Uia :: [c6989586621679700120]) = ZipWith3 t_a2Ui7 t_a2Ui8 t_a2Ui9 t_a2Uia
data UnzipSym0 (l_a2UhE :: TyFun [(a6989586621679700116, b6989586621679700117)] ([a6989586621679700116], [b6989586621679700117]))
type UnzipSym1 (t_a2UhD :: [(a6989586621679700116, b6989586621679700117)]) = Unzip t_a2UhD
data Unzip3Sym0 (l_a2Uh8 :: TyFun [(a6989586621679700113, b6989586621679700114, c6989586621679700115)] ([a6989586621679700113], [b6989586621679700114], [c6989586621679700115]))
type Unzip3Sym1 (t_a2Uh7 :: [(a6989586621679700113, b6989586621679700114, c6989586621679700115)]) = Unzip3 t_a2Uh7
data Unzip4Sym0 (l_a2UgA :: TyFun [(a6989586621679700109, b6989586621679700110, c6989586621679700111, d6989586621679700112)] ([a6989586621679700109], [b6989586621679700110], [c6989586621679700111], [d6989586621679700112]))
type Unzip4Sym1 (t_a2Ugz :: [(a6989586621679700109, b6989586621679700110, c6989586621679700111, d6989586621679700112)]) = Unzip4 t_a2Ugz
data Unzip5Sym0 (l_a2Ug0 :: TyFun [(a6989586621679700104, b6989586621679700105, c6989586621679700106, d6989586621679700107, e6989586621679700108)] ([a6989586621679700104], [b6989586621679700105], [c6989586621679700106], [d6989586621679700107], [e6989586621679700108]))
type Unzip5Sym1 (t_a2UfZ :: [(a6989586621679700104, b6989586621679700105, c6989586621679700106, d6989586621679700107, e6989586621679700108)]) = Unzip5 t_a2UfZ
data Unzip6Sym0 (l_a2Ufo :: TyFun [(a6989586621679700098, b6989586621679700099, c6989586621679700100, d6989586621679700101, e6989586621679700102, f6989586621679700103)] ([a6989586621679700098], [b6989586621679700099], [c6989586621679700100], [d6989586621679700101], [e6989586621679700102], [f6989586621679700103]))
type Unzip6Sym1 (t_a2Ufn :: [(a6989586621679700098, b6989586621679700099, c6989586621679700100, d6989586621679700101, e6989586621679700102, f6989586621679700103)]) = Unzip6 t_a2Ufn
data Unzip7Sym0 (l_a2UeK :: TyFun [(a6989586621679700091, b6989586621679700092, c6989586621679700093, d6989586621679700094, e6989586621679700095, f6989586621679700096, g6989586621679700097)] ([a6989586621679700091], [b6989586621679700092], [c6989586621679700093], [d6989586621679700094], [e6989586621679700095], [f6989586621679700096], [g6989586621679700097]))
type Unzip7Sym1 (t_a2UeJ :: [(a6989586621679700091, b6989586621679700092, c6989586621679700093, d6989586621679700094, e6989586621679700095, f6989586621679700096, g6989586621679700097)]) = Unzip7 t_a2UeJ
data DeleteSym0 (l_a2Uel :: TyFun a6989586621679700090 (TyFun [a6989586621679700090] [a6989586621679700090] -> Type))
data DeleteSym1 (l_a2Ueo :: a6989586621679700090) (l_a2Uen :: TyFun [a6989586621679700090] [a6989586621679700090])
type DeleteSym2 (t_a2Uej :: a6989586621679700090) (t_a2Uek :: [a6989586621679700090]) = Delete t_a2Uej t_a2Uek
data (:\\$) (l_a2UeA :: TyFun [a6989586621679700089] (TyFun [a6989586621679700089] [a6989586621679700089] -> Type))
data (:\\$$) (l_a2UeD :: [a6989586621679700089]) (l_a2UeC :: TyFun [a6989586621679700089] [a6989586621679700089])
type (:\\$$$) (t_a2Uey :: [a6989586621679700089]) (t_a2Uez :: [a6989586621679700089]) = (:\\) t_a2Uey t_a2Uez
data IntersectSym0 (l_a2UaV :: TyFun [a6989586621679700076] (TyFun [a6989586621679700076] [a6989586621679700076] -> Type))
data IntersectSym1 (l_a2UaY :: [a6989586621679700076]) (l_a2UaX :: TyFun [a6989586621679700076] [a6989586621679700076])
type IntersectSym2 (t_a2UaT :: [a6989586621679700076]) (t_a2UaU :: [a6989586621679700076]) = Intersect t_a2UaT t_a2UaU
data InsertSym0 (l_a2Uc8 :: TyFun a6989586621679700063 (TyFun [a6989586621679700063] [a6989586621679700063] -> Type))
data InsertSym1 (l_a2Ucb :: a6989586621679700063) (l_a2Uca :: TyFun [a6989586621679700063] [a6989586621679700063])
type InsertSym2 (t_a2Uc6 :: a6989586621679700063) (t_a2Uc7 :: [a6989586621679700063]) = Insert t_a2Uc6 t_a2Uc7
data SortSym0 (l_a2Ucx :: TyFun [a6989586621679700062] [a6989586621679700062])
type SortSym1 (t_a2Ucw :: [a6989586621679700062]) = Sort t_a2Ucw
data DeleteBySym0 (l_a2UcE :: TyFun (TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (TyFun a6989586621679700088 (TyFun [a6989586621679700088] [a6989586621679700088] -> Type) -> Type))
data DeleteBySym1 (l_a2UcH :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (l_a2UcG :: TyFun a6989586621679700088 (TyFun [a6989586621679700088] [a6989586621679700088] -> Type))
data DeleteBySym2 (l_a2UcK :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (l_a2UcL :: a6989586621679700088) (l_a2UcJ :: TyFun [a6989586621679700088] [a6989586621679700088])
type DeleteBySym3 (t_a2UcB :: TyFun a6989586621679700088 (TyFun a6989586621679700088 Bool -> Type) -> Type) (t_a2UcC :: a6989586621679700088) (t_a2UcD :: [a6989586621679700088]) = DeleteBy t_a2UcB t_a2UcC t_a2UcD
data DeleteFirstsBySym0 (l_a2Udp :: TyFun (TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (TyFun [a6989586621679700087] (TyFun [a6989586621679700087] [a6989586621679700087] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a2Uds :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (l_a2Udr :: TyFun [a6989586621679700087] (TyFun [a6989586621679700087] [a6989586621679700087] -> Type))
data DeleteFirstsBySym2 (l_a2Udv :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (l_a2Udw :: [a6989586621679700087]) (l_a2Udu :: TyFun [a6989586621679700087] [a6989586621679700087])
type DeleteFirstsBySym3 (t_a2Udm :: TyFun a6989586621679700087 (TyFun a6989586621679700087 Bool -> Type) -> Type) (t_a2Udn :: [a6989586621679700087]) (t_a2Udo :: [a6989586621679700087]) = DeleteFirstsBy t_a2Udm t_a2Udn t_a2Udo
data IntersectBySym0 (l_a2U8N :: TyFun (TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (TyFun [a6989586621679700075] (TyFun [a6989586621679700075] [a6989586621679700075] -> Type) -> Type))
data IntersectBySym1 (l_a2U8Q :: TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (l_a2U8P :: TyFun [a6989586621679700075] (TyFun [a6989586621679700075] [a6989586621679700075] -> Type))
data IntersectBySym2 (l_a2U8T :: TyFun a6989586621679700075 (TyFun a6989586621679700075 Bool -> Type) -> Type) (l_a2U8U :: [a6989586621679700075]) (l_a2U8S :: TyFun [a6989586621679700075] [a6989586621679700075])
data SortBySym0 (l_a2Ucj :: TyFun (TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (TyFun [a6989586621679700086] [a6989586621679700086] -> Type))
data SortBySym1 (l_a2Ucm :: TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (l_a2Ucl :: TyFun [a6989586621679700086] [a6989586621679700086])
type SortBySym2 (t_a2Uch :: TyFun a6989586621679700086 (TyFun a6989586621679700086 Ordering -> Type) -> Type) (t_a2Uci :: [a6989586621679700086]) = SortBy t_a2Uch t_a2Uci
data InsertBySym0 (l_a2Ub7 :: TyFun (TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (TyFun a6989586621679700085 (TyFun [a6989586621679700085] [a6989586621679700085] -> Type) -> Type))
data InsertBySym1 (l_a2Uba :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (l_a2Ub9 :: TyFun a6989586621679700085 (TyFun [a6989586621679700085] [a6989586621679700085] -> Type))
data InsertBySym2 (l_a2Ubd :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (l_a2Ube :: a6989586621679700085) (l_a2Ubc :: TyFun [a6989586621679700085] [a6989586621679700085])
type InsertBySym3 (t_a2Ub4 :: TyFun a6989586621679700085 (TyFun a6989586621679700085 Ordering -> Type) -> Type) (t_a2Ub5 :: a6989586621679700085) (t_a2Ub6 :: [a6989586621679700085]) = InsertBy t_a2Ub4 t_a2Ub5 t_a2Ub6
data MaximumBySym0 (l_a2UzT :: TyFun (TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (TyFun [a6989586621679700084] a6989586621679700084 -> Type))
data MaximumBySym1 (l_a2UzW :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (l_a2UzV :: TyFun [a6989586621679700084] a6989586621679700084)
type MaximumBySym2 (t_a2UzR :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (t_a2UzS :: [a6989586621679700084]) = MaximumBy t_a2UzR t_a2UzS
data MinimumBySym0 (l_a2UBi :: TyFun (TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (TyFun [a6989586621679700083] a6989586621679700083 -> Type))
data MinimumBySym1 (l_a2UBl :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (l_a2UBk :: TyFun [a6989586621679700083] a6989586621679700083)
type MinimumBySym2 (t_a2UBg :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (t_a2UBh :: [a6989586621679700083]) = MinimumBy t_a2UBg t_a2UBh
data LengthSym0 (l_a2TYK :: TyFun [a6989586621679700054] Nat)
type LengthSym1 (t_a2TYJ :: [a6989586621679700054]) = Length t_a2TYJ
data SumSym0 (l_a2TZg :: TyFun [a6989586621679700056] a6989586621679700056)
type SumSym1 (t_a2TZf :: [a6989586621679700056]) = Sum t_a2TZf
data ProductSym0 (l_a2TYS :: TyFun [a6989586621679700055] a6989586621679700055)
type ProductSym1 (t_a2TYR :: [a6989586621679700055]) = Product t_a2TYR
data ReplicateSym0 (l_a2TYp :: TyFun Nat (TyFun a6989586621679700053 [a6989586621679700053] -> Type))
data ReplicateSym1 (l_a2TYs :: Nat) (l_a2TYr :: TyFun a6989586621679700053 [a6989586621679700053])
type ReplicateSym2 (t_a2TYn :: Nat) (t_a2TYo :: a6989586621679700053) = Replicate t_a2TYn t_a2TYo
data TransposeSym0 (l_a2UOz :: TyFun [[a6989586621679700052]] [[a6989586621679700052]])
type TransposeSym1 (t_a2UOy :: [[a6989586621679700052]]) = Transpose t_a2UOy
data TakeSym0 (l_a2U1A :: TyFun Nat (TyFun [a6989586621679700069] [a6989586621679700069] -> Type))
data TakeSym1 (l_a2U1D :: Nat) (l_a2U1C :: TyFun [a6989586621679700069] [a6989586621679700069])
type TakeSym2 (t_a2U1y :: Nat) (t_a2U1z :: [a6989586621679700069]) = Take t_a2U1y t_a2U1z
data DropSym0 (l_a2U15 :: TyFun Nat (TyFun [a6989586621679700068] [a6989586621679700068] -> Type))
data DropSym1 (l_a2U18 :: Nat) (l_a2U17 :: TyFun [a6989586621679700068] [a6989586621679700068])
type DropSym2 (t_a2U13 :: Nat) (t_a2U14 :: [a6989586621679700068]) = Drop t_a2U13 t_a2U14
data SplitAtSym0 (l_a2U25 :: TyFun Nat (TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]) -> Type))
data SplitAtSym1 (l_a2U28 :: Nat) (l_a2U27 :: TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]))
type SplitAtSym2 (t_a2U23 :: Nat) (t_a2U24 :: [a6989586621679700067]) = SplitAt t_a2U23 t_a2U24
data TakeWhileSym0 (l_a2U7B :: TyFun (TyFun a6989586621679700074 Bool -> Type) (TyFun [a6989586621679700074] [a6989586621679700074] -> Type))
data TakeWhileSym1 (l_a2U7E :: TyFun a6989586621679700074 Bool -> Type) (l_a2U7D :: TyFun [a6989586621679700074] [a6989586621679700074])
type TakeWhileSym2 (t_a2U7z :: TyFun a6989586621679700074 Bool -> Type) (t_a2U7A :: [a6989586621679700074]) = TakeWhile t_a2U7z t_a2U7A
data DropWhileSym0 (l_a2U6T :: TyFun (TyFun a6989586621679700073 Bool -> Type) (TyFun [a6989586621679700073] [a6989586621679700073] -> Type))
data DropWhileSym1 (l_a2U6W :: TyFun a6989586621679700073 Bool -> Type) (l_a2U6V :: TyFun [a6989586621679700073] [a6989586621679700073])
type DropWhileSym2 (t_a2U6R :: TyFun a6989586621679700073 Bool -> Type) (t_a2U6S :: [a6989586621679700073]) = DropWhile t_a2U6R t_a2U6S
data DropWhileEndSym0 (l_a2UMG :: TyFun (TyFun a6989586621679700072 Bool -> Type) (TyFun [a6989586621679700072] [a6989586621679700072] -> Type))
data DropWhileEndSym1 (l_a2UMJ :: TyFun a6989586621679700072 Bool -> Type) (l_a2UMI :: TyFun [a6989586621679700072] [a6989586621679700072])
type DropWhileEndSym2 (t_a2UME :: TyFun a6989586621679700072 Bool -> Type) (t_a2UMF :: [a6989586621679700072]) = DropWhileEnd t_a2UME t_a2UMF
data SpanSym0 (l_a2U3X :: TyFun (TyFun a6989586621679700071 Bool -> Type) (TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]) -> Type))
data SpanSym1 (l_a2U40 :: TyFun a6989586621679700071 Bool -> Type) (l_a2U3Z :: TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]))
type SpanSym2 (t_a2U3V :: TyFun a6989586621679700071 Bool -> Type) (t_a2U3W :: [a6989586621679700071]) = Span t_a2U3V t_a2U3W
data BreakSym0 (l_a2U2g :: TyFun (TyFun a6989586621679700070 Bool -> Type) (TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]) -> Type))
data BreakSym1 (l_a2U2j :: TyFun a6989586621679700070 Bool -> Type) (l_a2U2i :: TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]))
type BreakSym2 (t_a2U2e :: TyFun a6989586621679700070 Bool -> Type) (t_a2U2f :: [a6989586621679700070]) = Break t_a2U2e t_a2U2f
data StripPrefixSym0 (l_a3PLy :: TyFun [a6989586621679923077] (TyFun [a6989586621679923077] (Maybe [a6989586621679923077]) -> Type))
data StripPrefixSym1 (l_a3PLB :: [a6989586621679923077]) (l_a3PLA :: TyFun [a6989586621679923077] (Maybe [a6989586621679923077]))
type StripPrefixSym2 (t_a3PLw :: [a6989586621679923077]) (t_a3PLx :: [a6989586621679923077]) = StripPrefix t_a3PLw t_a3PLx
data MaximumSym0 (l_a2UCG :: TyFun [a6989586621679700065] a6989586621679700065)
type MaximumSym1 (t_a2UCF :: [a6989586621679700065]) = Maximum t_a2UCF
data MinimumSym0 (l_a2UCU :: TyFun [a6989586621679700064] a6989586621679700064)
type MinimumSym1 (t_a2UCT :: [a6989586621679700064]) = Minimum t_a2UCT
data GroupSym0 (l_a2U6N :: TyFun [a6989586621679700066] [[a6989586621679700066]])
type GroupSym1 (t_a2U6M :: [a6989586621679700066]) = Group t_a2U6M
data GroupBySym0 (l_a2U5E :: TyFun (TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (TyFun [a6989586621679700061] [[a6989586621679700061]] -> Type))
data GroupBySym1 (l_a2U5H :: TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (l_a2U5G :: TyFun [a6989586621679700061] [[a6989586621679700061]])
type GroupBySym2 (t_a2U5C :: TyFun a6989586621679700061 (TyFun a6989586621679700061 Bool -> Type) -> Type) (t_a2U5D :: [a6989586621679700061]) = GroupBy t_a2U5C t_a2U5D
data LookupSym0 (l_a2U0v :: TyFun a6989586621679700059 (TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060) -> Type))
data LookupSym1 (l_a2U0y :: a6989586621679700059) (l_a2U0x :: TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060))
type LookupSym2 (t_a2U0t :: a6989586621679700059) (t_a2U0u :: [(a6989586621679700059, b6989586621679700060)]) = Lookup t_a2U0t t_a2U0u
data FindSym0 (l_a2U8z :: TyFun (TyFun a6989586621679700081 Bool -> Type) (TyFun [a6989586621679700081] (Maybe a6989586621679700081) -> Type))
data FindSym1 (l_a2U8C :: TyFun a6989586621679700081 Bool -> Type) (l_a2U8B :: TyFun [a6989586621679700081] (Maybe a6989586621679700081))
type FindSym2 (t_a2U8x :: TyFun a6989586621679700081 Bool -> Type) (t_a2U8y :: [a6989586621679700081]) = Find t_a2U8x t_a2U8y
data FilterSym0 (l_a2U86 :: TyFun (TyFun a6989586621679700082 Bool -> Type) (TyFun [a6989586621679700082] [a6989586621679700082] -> Type))
data FilterSym1 (l_a2U89 :: TyFun a6989586621679700082 Bool -> Type) (l_a2U88 :: TyFun [a6989586621679700082] [a6989586621679700082])
type FilterSym2 (t_a2U84 :: TyFun a6989586621679700082 Bool -> Type) (t_a2U85 :: [a6989586621679700082]) = Filter t_a2U84 t_a2U85
data PartitionSym0 (l_a2U0k :: TyFun (TyFun a6989586621679700058 Bool -> Type) (TyFun [a6989586621679700058] ([a6989586621679700058], [a6989586621679700058]) -> Type))
data PartitionSym1 (l_a2U0n :: TyFun a6989586621679700058 Bool -> Type) (l_a2U0m :: TyFun [a6989586621679700058] ([a6989586621679700058], [a6989586621679700058]))
type PartitionSym2 (t_a2U0i :: TyFun a6989586621679700058 Bool -> Type) (t_a2U0j :: [a6989586621679700058]) = Partition t_a2U0i t_a2U0j
data (:!!$) (l_a2TXU :: TyFun [a6989586621679700051] (TyFun Nat a6989586621679700051 -> Type))
data (:!!$$) (l_a2TXX :: [a6989586621679700051]) (l_a2TXW :: TyFun Nat a6989586621679700051)
type (:!!$$$) (t_a2TXS :: [a6989586621679700051]) (t_a2TXT :: Nat) = (:!!) t_a2TXS t_a2TXT
data ElemIndexSym0 (l_a2Unx :: TyFun a6989586621679700080 (TyFun [a6989586621679700080] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a2UnA :: a6989586621679700080) (l_a2Unz :: TyFun [a6989586621679700080] (Maybe Nat))
type ElemIndexSym2 (t_a2Unv :: a6989586621679700080) (t_a2Unw :: [a6989586621679700080]) = ElemIndex t_a2Unv t_a2Unw
data ElemIndicesSym0 (l_a2Un7 :: TyFun a6989586621679700079 (TyFun [a6989586621679700079] [Nat] -> Type))
data ElemIndicesSym1 (l_a2Una :: a6989586621679700079) (l_a2Un9 :: TyFun [a6989586621679700079] [Nat])
type ElemIndicesSym2 (t_a2Un5 :: a6989586621679700079) (t_a2Un6 :: [a6989586621679700079]) = ElemIndices t_a2Un5 t_a2Un6
data FindIndexSym0 (l_a2Unk :: TyFun (TyFun a6989586621679700078 Bool -> Type) (TyFun [a6989586621679700078] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a2Unn :: TyFun a6989586621679700078 Bool -> Type) (l_a2Unm :: TyFun [a6989586621679700078] (Maybe Nat))
type FindIndexSym2 (t_a2Uni :: TyFun a6989586621679700078 Bool -> Type) (t_a2Unj :: [a6989586621679700078]) = FindIndex t_a2Uni t_a2Unj
data FindIndicesSym0 (l_a2Um6 :: TyFun (TyFun a6989586621679700077 Bool -> Type) (TyFun [a6989586621679700077] [Nat] -> Type))
data FindIndicesSym1 (l_a2Um9 :: TyFun a6989586621679700077 Bool -> Type) (l_a2Um8 :: TyFun [a6989586621679700077] [Nat])
type FindIndicesSym2 (t_a2Um4 :: TyFun a6989586621679700077 Bool -> Type) (t_a2Um5 :: [a6989586621679700077]) = FindIndices t_a2Um4 t_a2Um5
data Zip4Sym0 (l_a3PLa :: TyFun [a6989586621679923073] (TyFun [b6989586621679923074] (TyFun [c6989586621679923075] (TyFun [d6989586621679923076] [(a6989586621679923073, b6989586621679923074, c6989586621679923075, d6989586621679923076)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a3PLd :: [a6989586621679923073]) (l_a3PLc :: TyFun [b6989586621679923074] (TyFun [c6989586621679923075] (TyFun [d6989586621679923076] [(a6989586621679923073, b6989586621679923074, c6989586621679923075, d6989586621679923076)] -> Type) -> Type))
data Zip4Sym2 (l_a3PLg :: [a6989586621679923073]) (l_a3PLh :: [b6989586621679923074]) (l_a3PLf :: TyFun [c6989586621679923075] (TyFun [d6989586621679923076] [(a6989586621679923073, b6989586621679923074, c6989586621679923075, d6989586621679923076)] -> Type))
data Zip4Sym3 (l_a3PLk :: [a6989586621679923073]) (l_a3PLl :: [b6989586621679923074]) (l_a3PLm :: [c6989586621679923075]) (l_a3PLj :: TyFun [d6989586621679923076] [(a6989586621679923073, b6989586621679923074, c6989586621679923075, d6989586621679923076)])
type Zip4Sym4 (t_a3PL6 :: [a6989586621679923073]) (t_a3PL7 :: [b6989586621679923074]) (t_a3PL8 :: [c6989586621679923075]) (t_a3PL9 :: [d6989586621679923076]) = Zip4 t_a3PL6 t_a3PL7 t_a3PL8 t_a3PL9
data Zip5Sym0 (l_a3PKu :: TyFun [a6989586621679923068] (TyFun [b6989586621679923069] (TyFun [c6989586621679923070] (TyFun [d6989586621679923071] (TyFun [e6989586621679923072] [(a6989586621679923068, b6989586621679923069, c6989586621679923070, d6989586621679923071, e6989586621679923072)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a3PKx :: [a6989586621679923068]) (l_a3PKw :: TyFun [b6989586621679923069] (TyFun [c6989586621679923070] (TyFun [d6989586621679923071] (TyFun [e6989586621679923072] [(a6989586621679923068, b6989586621679923069, c6989586621679923070, d6989586621679923071, e6989586621679923072)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a3PKA :: [a6989586621679923068]) (l_a3PKB :: [b6989586621679923069]) (l_a3PKz :: TyFun [c6989586621679923070] (TyFun [d6989586621679923071] (TyFun [e6989586621679923072] [(a6989586621679923068, b6989586621679923069, c6989586621679923070, d6989586621679923071, e6989586621679923072)] -> Type) -> Type))
data Zip5Sym3 (l_a3PKE :: [a6989586621679923068]) (l_a3PKF :: [b6989586621679923069]) (l_a3PKG :: [c6989586621679923070]) (l_a3PKD :: TyFun [d6989586621679923071] (TyFun [e6989586621679923072] [(a6989586621679923068, b6989586621679923069, c6989586621679923070, d6989586621679923071, e6989586621679923072)] -> Type))
data Zip5Sym4 (l_a3PKJ :: [a6989586621679923068]) (l_a3PKK :: [b6989586621679923069]) (l_a3PKL :: [c6989586621679923070]) (l_a3PKM :: [d6989586621679923071]) (l_a3PKI :: TyFun [e6989586621679923072] [(a6989586621679923068, b6989586621679923069, c6989586621679923070, d6989586621679923071, e6989586621679923072)])
type Zip5Sym5 (t_a3PKp :: [a6989586621679923068]) (t_a3PKq :: [b6989586621679923069]) (t_a3PKr :: [c6989586621679923070]) (t_a3PKs :: [d6989586621679923071]) (t_a3PKt :: [e6989586621679923072]) = Zip5 t_a3PKp t_a3PKq t_a3PKr t_a3PKs t_a3PKt
data Zip6Sym0 (l_a3PJC :: TyFun [a6989586621679923062] (TyFun [b6989586621679923063] (TyFun [c6989586621679923064] (TyFun [d6989586621679923065] (TyFun [e6989586621679923066] (TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a3PJF :: [a6989586621679923062]) (l_a3PJE :: TyFun [b6989586621679923063] (TyFun [c6989586621679923064] (TyFun [d6989586621679923065] (TyFun [e6989586621679923066] (TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a3PJI :: [a6989586621679923062]) (l_a3PJJ :: [b6989586621679923063]) (l_a3PJH :: TyFun [c6989586621679923064] (TyFun [d6989586621679923065] (TyFun [e6989586621679923066] (TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a3PJM :: [a6989586621679923062]) (l_a3PJN :: [b6989586621679923063]) (l_a3PJO :: [c6989586621679923064]) (l_a3PJL :: TyFun [d6989586621679923065] (TyFun [e6989586621679923066] (TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)] -> Type) -> Type))
data Zip6Sym4 (l_a3PJR :: [a6989586621679923062]) (l_a3PJS :: [b6989586621679923063]) (l_a3PJT :: [c6989586621679923064]) (l_a3PJU :: [d6989586621679923065]) (l_a3PJQ :: TyFun [e6989586621679923066] (TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)] -> Type))
data Zip6Sym5 (l_a3PJX :: [a6989586621679923062]) (l_a3PJY :: [b6989586621679923063]) (l_a3PJZ :: [c6989586621679923064]) (l_a3PK0 :: [d6989586621679923065]) (l_a3PK1 :: [e6989586621679923066]) (l_a3PJW :: TyFun [f6989586621679923067] [(a6989586621679923062, b6989586621679923063, c6989586621679923064, d6989586621679923065, e6989586621679923066, f6989586621679923067)])
type Zip6Sym6 (t_a3PJw :: [a6989586621679923062]) (t_a3PJx :: [b6989586621679923063]) (t_a3PJy :: [c6989586621679923064]) (t_a3PJz :: [d6989586621679923065]) (t_a3PJA :: [e6989586621679923066]) (t_a3PJB :: [f6989586621679923067]) = Zip6 t_a3PJw t_a3PJx t_a3PJy t_a3PJz t_a3PJA t_a3PJB
data Zip7Sym0 (l_a3PIx :: TyFun [a6989586621679923055] (TyFun [b6989586621679923056] (TyFun [c6989586621679923057] (TyFun [d6989586621679923058] (TyFun [e6989586621679923059] (TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a3PIA :: [a6989586621679923055]) (l_a3PIz :: TyFun [b6989586621679923056] (TyFun [c6989586621679923057] (TyFun [d6989586621679923058] (TyFun [e6989586621679923059] (TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a3PID :: [a6989586621679923055]) (l_a3PIE :: [b6989586621679923056]) (l_a3PIC :: TyFun [c6989586621679923057] (TyFun [d6989586621679923058] (TyFun [e6989586621679923059] (TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a3PIH :: [a6989586621679923055]) (l_a3PII :: [b6989586621679923056]) (l_a3PIJ :: [c6989586621679923057]) (l_a3PIG :: TyFun [d6989586621679923058] (TyFun [e6989586621679923059] (TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a3PIM :: [a6989586621679923055]) (l_a3PIN :: [b6989586621679923056]) (l_a3PIO :: [c6989586621679923057]) (l_a3PIP :: [d6989586621679923058]) (l_a3PIL :: TyFun [e6989586621679923059] (TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type) -> Type))
data Zip7Sym5 (l_a3PIS :: [a6989586621679923055]) (l_a3PIT :: [b6989586621679923056]) (l_a3PIU :: [c6989586621679923057]) (l_a3PIV :: [d6989586621679923058]) (l_a3PIW :: [e6989586621679923059]) (l_a3PIR :: TyFun [f6989586621679923060] (TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)] -> Type))
data Zip7Sym6 (l_a3PIZ :: [a6989586621679923055]) (l_a3PJ0 :: [b6989586621679923056]) (l_a3PJ1 :: [c6989586621679923057]) (l_a3PJ2 :: [d6989586621679923058]) (l_a3PJ3 :: [e6989586621679923059]) (l_a3PJ4 :: [f6989586621679923060]) (l_a3PIY :: TyFun [g6989586621679923061] [(a6989586621679923055, b6989586621679923056, c6989586621679923057, d6989586621679923058, e6989586621679923059, f6989586621679923060, g6989586621679923061)])
type Zip7Sym7 (t_a3PIq :: [a6989586621679923055]) (t_a3PIr :: [b6989586621679923056]) (t_a3PIs :: [c6989586621679923057]) (t_a3PIt :: [d6989586621679923058]) (t_a3PIu :: [e6989586621679923059]) (t_a3PIv :: [f6989586621679923060]) (t_a3PIw :: [g6989586621679923061]) = Zip7 t_a3PIq t_a3PIr t_a3PIs t_a3PIt t_a3PIu t_a3PIv t_a3PIw
data ZipWith4Sym0 (l_a3PHp :: TyFun (TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679923050] (TyFun [b6989586621679923051] (TyFun [c6989586621679923052] (TyFun [d6989586621679923053] [e6989586621679923054] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a3PHs :: TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (l_a3PHr :: TyFun [a6989586621679923050] (TyFun [b6989586621679923051] (TyFun [c6989586621679923052] (TyFun [d6989586621679923053] [e6989586621679923054] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a3PHv :: TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (l_a3PHw :: [a6989586621679923050]) (l_a3PHu :: TyFun [b6989586621679923051] (TyFun [c6989586621679923052] (TyFun [d6989586621679923053] [e6989586621679923054] -> Type) -> Type))
data ZipWith4Sym3 (l_a3PHz :: TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (l_a3PHA :: [a6989586621679923050]) (l_a3PHB :: [b6989586621679923051]) (l_a3PHy :: TyFun [c6989586621679923052] (TyFun [d6989586621679923053] [e6989586621679923054] -> Type))
data ZipWith4Sym4 (l_a3PHE :: TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (l_a3PHF :: [a6989586621679923050]) (l_a3PHG :: [b6989586621679923051]) (l_a3PHH :: [c6989586621679923052]) (l_a3PHD :: TyFun [d6989586621679923053] [e6989586621679923054])
type ZipWith4Sym5 (t_a3PHk :: TyFun a6989586621679923050 (TyFun b6989586621679923051 (TyFun c6989586621679923052 (TyFun d6989586621679923053 e6989586621679923054 -> Type) -> Type) -> Type) -> Type) (t_a3PHl :: [a6989586621679923050]) (t_a3PHm :: [b6989586621679923051]) (t_a3PHn :: [c6989586621679923052]) (t_a3PHo :: [d6989586621679923053]) = ZipWith4 t_a3PHk t_a3PHl t_a3PHm t_a3PHn t_a3PHo
data ZipWith5Sym0 (l_a3PGk :: TyFun (TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679923044] (TyFun [b6989586621679923045] (TyFun [c6989586621679923046] (TyFun [d6989586621679923047] (TyFun [e6989586621679923048] [f6989586621679923049] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a3PGn :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PGm :: TyFun [a6989586621679923044] (TyFun [b6989586621679923045] (TyFun [c6989586621679923046] (TyFun [d6989586621679923047] (TyFun [e6989586621679923048] [f6989586621679923049] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a3PGq :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PGr :: [a6989586621679923044]) (l_a3PGp :: TyFun [b6989586621679923045] (TyFun [c6989586621679923046] (TyFun [d6989586621679923047] (TyFun [e6989586621679923048] [f6989586621679923049] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a3PGu :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PGv :: [a6989586621679923044]) (l_a3PGw :: [b6989586621679923045]) (l_a3PGt :: TyFun [c6989586621679923046] (TyFun [d6989586621679923047] (TyFun [e6989586621679923048] [f6989586621679923049] -> Type) -> Type))
data ZipWith5Sym4 (l_a3PGz :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PGA :: [a6989586621679923044]) (l_a3PGB :: [b6989586621679923045]) (l_a3PGC :: [c6989586621679923046]) (l_a3PGy :: TyFun [d6989586621679923047] (TyFun [e6989586621679923048] [f6989586621679923049] -> Type))
data ZipWith5Sym5 (l_a3PGF :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PGG :: [a6989586621679923044]) (l_a3PGH :: [b6989586621679923045]) (l_a3PGI :: [c6989586621679923046]) (l_a3PGJ :: [d6989586621679923047]) (l_a3PGE :: TyFun [e6989586621679923048] [f6989586621679923049])
type ZipWith5Sym6 (t_a3PGe :: TyFun a6989586621679923044 (TyFun b6989586621679923045 (TyFun c6989586621679923046 (TyFun d6989586621679923047 (TyFun e6989586621679923048 f6989586621679923049 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3PGf :: [a6989586621679923044]) (t_a3PGg :: [b6989586621679923045]) (t_a3PGh :: [c6989586621679923046]) (t_a3PGi :: [d6989586621679923047]) (t_a3PGj :: [e6989586621679923048]) = ZipWith5 t_a3PGe t_a3PGf t_a3PGg t_a3PGh t_a3PGi t_a3PGj
data ZipWith6Sym0 (l_a3PF0 :: TyFun (TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679923037] (TyFun [b6989586621679923038] (TyFun [c6989586621679923039] (TyFun [d6989586621679923040] (TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a3PF3 :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PF2 :: TyFun [a6989586621679923037] (TyFun [b6989586621679923038] (TyFun [c6989586621679923039] (TyFun [d6989586621679923040] (TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a3PF6 :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PF7 :: [a6989586621679923037]) (l_a3PF5 :: TyFun [b6989586621679923038] (TyFun [c6989586621679923039] (TyFun [d6989586621679923040] (TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a3PFa :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PFb :: [a6989586621679923037]) (l_a3PFc :: [b6989586621679923038]) (l_a3PF9 :: TyFun [c6989586621679923039] (TyFun [d6989586621679923040] (TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a3PFf :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PFg :: [a6989586621679923037]) (l_a3PFh :: [b6989586621679923038]) (l_a3PFi :: [c6989586621679923039]) (l_a3PFe :: TyFun [d6989586621679923040] (TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type) -> Type))
data ZipWith6Sym5 (l_a3PFl :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PFm :: [a6989586621679923037]) (l_a3PFn :: [b6989586621679923038]) (l_a3PFo :: [c6989586621679923039]) (l_a3PFp :: [d6989586621679923040]) (l_a3PFk :: TyFun [e6989586621679923041] (TyFun [f6989586621679923042] [g6989586621679923043] -> Type))
data ZipWith6Sym6 (l_a3PFs :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PFt :: [a6989586621679923037]) (l_a3PFu :: [b6989586621679923038]) (l_a3PFv :: [c6989586621679923039]) (l_a3PFw :: [d6989586621679923040]) (l_a3PFx :: [e6989586621679923041]) (l_a3PFr :: TyFun [f6989586621679923042] [g6989586621679923043])
type ZipWith6Sym7 (t_a3PET :: TyFun a6989586621679923037 (TyFun b6989586621679923038 (TyFun c6989586621679923039 (TyFun d6989586621679923040 (TyFun e6989586621679923041 (TyFun f6989586621679923042 g6989586621679923043 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3PEU :: [a6989586621679923037]) (t_a3PEV :: [b6989586621679923038]) (t_a3PEW :: [c6989586621679923039]) (t_a3PEX :: [d6989586621679923040]) (t_a3PEY :: [e6989586621679923041]) (t_a3PEZ :: [f6989586621679923042]) = ZipWith6 t_a3PET t_a3PEU t_a3PEV t_a3PEW t_a3PEX t_a3PEY t_a3PEZ
data ZipWith7Sym0 (l_a3PDq :: TyFun (TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679923029] (TyFun [b6989586621679923030] (TyFun [c6989586621679923031] (TyFun [d6989586621679923032] (TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a3PDt :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDs :: TyFun [a6989586621679923029] (TyFun [b6989586621679923030] (TyFun [c6989586621679923031] (TyFun [d6989586621679923032] (TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a3PDw :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDx :: [a6989586621679923029]) (l_a3PDv :: TyFun [b6989586621679923030] (TyFun [c6989586621679923031] (TyFun [d6989586621679923032] (TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a3PDA :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDB :: [a6989586621679923029]) (l_a3PDC :: [b6989586621679923030]) (l_a3PDz :: TyFun [c6989586621679923031] (TyFun [d6989586621679923032] (TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a3PDF :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDG :: [a6989586621679923029]) (l_a3PDH :: [b6989586621679923030]) (l_a3PDI :: [c6989586621679923031]) (l_a3PDE :: TyFun [d6989586621679923032] (TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a3PDL :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDM :: [a6989586621679923029]) (l_a3PDN :: [b6989586621679923030]) (l_a3PDO :: [c6989586621679923031]) (l_a3PDP :: [d6989586621679923032]) (l_a3PDK :: TyFun [e6989586621679923033] (TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type) -> Type))
data ZipWith7Sym6 (l_a3PDS :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PDT :: [a6989586621679923029]) (l_a3PDU :: [b6989586621679923030]) (l_a3PDV :: [c6989586621679923031]) (l_a3PDW :: [d6989586621679923032]) (l_a3PDX :: [e6989586621679923033]) (l_a3PDR :: TyFun [f6989586621679923034] (TyFun [g6989586621679923035] [h6989586621679923036] -> Type))
data ZipWith7Sym7 (l_a3PE0 :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3PE1 :: [a6989586621679923029]) (l_a3PE2 :: [b6989586621679923030]) (l_a3PE3 :: [c6989586621679923031]) (l_a3PE4 :: [d6989586621679923032]) (l_a3PE5 :: [e6989586621679923033]) (l_a3PE6 :: [f6989586621679923034]) (l_a3PDZ :: TyFun [g6989586621679923035] [h6989586621679923036])
type ZipWith7Sym8 (t_a3PDi :: TyFun a6989586621679923029 (TyFun b6989586621679923030 (TyFun c6989586621679923031 (TyFun d6989586621679923032 (TyFun e6989586621679923033 (TyFun f6989586621679923034 (TyFun g6989586621679923035 h6989586621679923036 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3PDj :: [a6989586621679923029]) (t_a3PDk :: [b6989586621679923030]) (t_a3PDl :: [c6989586621679923031]) (t_a3PDm :: [d6989586621679923032]) (t_a3PDn :: [e6989586621679923033]) (t_a3PDo :: [f6989586621679923034]) (t_a3PDp :: [g6989586621679923035]) = ZipWith7 t_a3PDi t_a3PDj t_a3PDk t_a3PDl t_a3PDm t_a3PDn t_a3PDo t_a3PDp
data NubSym0 (l_a2Uod :: TyFun [a6989586621679700050] [a6989586621679700050])
type NubSym1 (t_a2Uoc :: [a6989586621679700050]) = Nub t_a2Uoc
data NubBySym0 (l_a2TWP :: TyFun (TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (TyFun [a6989586621679700049] [a6989586621679700049] -> Type))
data NubBySym1 (l_a2TWS :: TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (l_a2TWR :: TyFun [a6989586621679700049] [a6989586621679700049])
type NubBySym2 (t_a2TWN :: TyFun a6989586621679700049 (TyFun a6989586621679700049 Bool -> Type) -> Type) (t_a2TWO :: [a6989586621679700049]) = NubBy t_a2TWN t_a2TWO
data UnionSym0 (l_a2Ue6 :: TyFun [a6989586621679700046] (TyFun [a6989586621679700046] [a6989586621679700046] -> Type))
data UnionSym1 (l_a2Ue9 :: [a6989586621679700046]) (l_a2Ue8 :: TyFun [a6989586621679700046] [a6989586621679700046])
type UnionSym2 (t_a2Ue4 :: [a6989586621679700046]) (t_a2Ue5 :: [a6989586621679700046]) = Union t_a2Ue4 t_a2Ue5
data UnionBySym0 (l_a2UdL :: TyFun (TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (TyFun [a6989586621679700047] (TyFun [a6989586621679700047] [a6989586621679700047] -> Type) -> Type))
data UnionBySym1 (l_a2UdO :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (l_a2UdN :: TyFun [a6989586621679700047] (TyFun [a6989586621679700047] [a6989586621679700047] -> Type))
data UnionBySym2 (l_a2UdR :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (l_a2UdS :: [a6989586621679700047]) (l_a2UdQ :: TyFun [a6989586621679700047] [a6989586621679700047])
type UnionBySym3 (t_a2UdI :: TyFun a6989586621679700047 (TyFun a6989586621679700047 Bool -> Type) -> Type) (t_a2UdJ :: [a6989586621679700047]) (t_a2UdK :: [a6989586621679700047]) = UnionBy t_a2UdI t_a2UdJ t_a2UdK
data GenericLengthSym0 (l_a2TWh :: TyFun [a6989586621679700045] i6989586621679700044)
type GenericLengthSym1 (t_a2TWg :: [a6989586621679700045]) = GenericLength t_a2TWg
data GenericTakeSym0 (l_a3PD9 :: TyFun i6989586621679923027 (TyFun [a6989586621679923028] [a6989586621679923028] -> Type))
data GenericTakeSym1 (l_a3PDc :: i6989586621679923027) (l_a3PDb :: TyFun [a6989586621679923028] [a6989586621679923028])
type GenericTakeSym2 (t_a3PD7 :: i6989586621679923027) (t_a3PD8 :: [a6989586621679923028]) = GenericTake t_a3PD7 t_a3PD8
data GenericDropSym0 (l_a3PCU :: TyFun i6989586621679923025 (TyFun [a6989586621679923026] [a6989586621679923026] -> Type))
data GenericDropSym1 (l_a3PCX :: i6989586621679923025) (l_a3PCW :: TyFun [a6989586621679923026] [a6989586621679923026])
type GenericDropSym2 (t_a3PCS :: i6989586621679923025) (t_a3PCT :: [a6989586621679923026]) = GenericDrop t_a3PCS t_a3PCT
data GenericSplitAtSym0 (l_a3PCF :: TyFun i6989586621679923023 (TyFun [a6989586621679923024] ([a6989586621679923024], [a6989586621679923024]) -> Type))
data GenericSplitAtSym1 (l_a3PCI :: i6989586621679923023) (l_a3PCH :: TyFun [a6989586621679923024] ([a6989586621679923024], [a6989586621679923024]))
type GenericSplitAtSym2 (t_a3PCD :: i6989586621679923023) (t_a3PCE :: [a6989586621679923024]) = GenericSplitAt t_a3PCD t_a3PCE
data GenericIndexSym0 (l_a3PCq :: TyFun [a6989586621679923022] (TyFun i6989586621679923021 a6989586621679923022 -> Type))
data GenericIndexSym1 (l_a3PCt :: [a6989586621679923022]) (l_a3PCs :: TyFun i6989586621679923021 a6989586621679923022)
type GenericIndexSym2 (t_a3PCo :: [a6989586621679923022]) (t_a3PCp :: i6989586621679923021) = GenericIndex t_a3PCo t_a3PCp
data GenericReplicateSym0 (l_a3PCb :: TyFun i6989586621679923019 (TyFun a6989586621679923020 [a6989586621679923020] -> Type))
data GenericReplicateSym1 (l_a3PCe :: i6989586621679923019) (l_a3PCd :: TyFun a6989586621679923020 [a6989586621679923020])
type GenericReplicateSym2 (t_a3PC9 :: i6989586621679923019) (t_a3PCa :: a6989586621679923020) = GenericReplicate t_a3PC9 t_a3PCa
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_a21um :: TyFun a6989586621679492109 (TyFun a6989586621679492109 Bool -> Type))
data (:==$$) (l_a21up :: a6989586621679492109) (l_a21uo :: TyFun a6989586621679492109 Bool)
type (:==$$$) (t_a21uk :: a6989586621679492109) (t_a21ul :: a6989586621679492109) = (:==) t_a21uk t_a21ul
data (:/=$) (l_a21ut :: TyFun a6989586621679492109 (TyFun a6989586621679492109 Bool -> Type))
data (:/=$$) (l_a21uw :: a6989586621679492109) (l_a21uv :: TyFun a6989586621679492109 Bool)
type (:/=$$$) (t_a21ur :: a6989586621679492109) (t_a21us :: a6989586621679492109) = (:/=) t_a21ur t_a21us


-- | Exports promoted versions of <a>Enum</a> and <a>Bounded</a>
module Data.Promotion.Prelude.Enum
class kproxy_a2vDc ~ Proxy => PBounded (kproxy_a2vDc :: Proxy a_a2vDb) where type MinBound :: a_a2vDb type MaxBound :: a_a2vDb where {
    type family MinBound :: a_a2vDb;
    type family MaxBound :: a_a2vDb;
}
class kproxy_a2wP9 ~ Proxy => PEnum (kproxy_a2wP9 :: Proxy a_a2wGB) where type Succ (arg_a2wPa :: a_a2wGB) :: a_a2wGB type Pred (arg_a2wPe :: a_a2wGB) :: a_a2wGB type ToEnum (arg_a2wPi :: Nat) :: a_a2wGB type FromEnum (arg_a2wPm :: a_a2wGB) :: Nat type EnumFromTo (arg_a2wPq :: a_a2wGB) (arg_a2wPr :: a_a2wGB) :: [a_a2wGB] type EnumFromThenTo (arg_a2wPz :: a_a2wGB) (arg_a2wPA :: a_a2wGB) (arg_a2wPB :: a_a2wGB) :: [a_a2wGB] type Succ a_a2wPV = Apply Succ_6989586621679612676Sym0 a_a2wPV type Pred a_a2wQ8 = Apply Pred_6989586621679612689Sym0 a_a2wQ8 type EnumFromTo a_a2wQp a_a2wQq = Apply (Apply EnumFromTo_6989586621679612707Sym0 a_a2wQp) a_a2wQq type EnumFromThenTo a_a2wQS a_a2wQT a_a2wQU = Apply (Apply (Apply EnumFromThenTo_6989586621679612737Sym0 a_a2wQS) a_a2wQT) a_a2wQU where {
    type family Succ (arg_a2wPa :: a_a2wGB) :: a_a2wGB;
    type family Pred (arg_a2wPe :: a_a2wGB) :: a_a2wGB;
    type family ToEnum (arg_a2wPi :: Nat) :: a_a2wGB;
    type family FromEnum (arg_a2wPm :: a_a2wGB) :: Nat;
    type family EnumFromTo (arg_a2wPq :: a_a2wGB)
                           (arg_a2wPr :: a_a2wGB) :: [a_a2wGB];
    type family EnumFromThenTo (arg_a2wPz :: a_a2wGB)
                               (arg_a2wPA :: a_a2wGB)
                               (arg_a2wPB :: a_a2wGB) :: [a_a2wGB];
    type Succ a_a2wPV = Apply Succ_6989586621679612676Sym0 a_a2wPV;
    type Pred a_a2wQ8 = Apply Pred_6989586621679612689Sym0 a_a2wQ8;
    type EnumFromTo a_a2wQp a_a2wQq =
        Apply (Apply EnumFromTo_6989586621679612707Sym0 a_a2wQp) a_a2wQq;
    type EnumFromThenTo a_a2wQS a_a2wQT a_a2wQU =
        Apply (Apply (Apply EnumFromThenTo_6989586621679612737Sym0 a_a2wQS) a_a2wQT) a_a2wQU;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a2wPc :: TyFun a6989586621679612097 a6989586621679612097)
type SuccSym1 (t_a2wPb :: a6989586621679612097) = Succ t_a2wPb
data PredSym0 (l_a2wPg :: TyFun a6989586621679612097 a6989586621679612097)
type PredSym1 (t_a2wPf :: a6989586621679612097) = Pred t_a2wPf
data ToEnumSym0 (l_a2wPk :: TyFun Nat a6989586621679612097)
type ToEnumSym1 (t_a2wPj :: Nat) = ToEnum t_a2wPj
data FromEnumSym0 (l_a2wPo :: TyFun a6989586621679612097 Nat)
type FromEnumSym1 (t_a2wPn :: a6989586621679612097) = FromEnum t_a2wPn
data EnumFromToSym0 (l_a2wPu :: TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type))
data EnumFromToSym1 (l_a2wPx :: a6989586621679612097) (l_a2wPw :: TyFun a6989586621679612097 [a6989586621679612097])
type EnumFromToSym2 (t_a2wPs :: a6989586621679612097) (t_a2wPt :: a6989586621679612097) = EnumFromTo t_a2wPs t_a2wPt
data EnumFromThenToSym0 (l_a2wPF :: TyFun a6989586621679612097 (TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type) -> Type))
data EnumFromThenToSym1 (l_a2wPI :: a6989586621679612097) (l_a2wPH :: TyFun a6989586621679612097 (TyFun a6989586621679612097 [a6989586621679612097] -> Type))
data EnumFromThenToSym2 (l_a2wPL :: a6989586621679612097) (l_a2wPM :: a6989586621679612097) (l_a2wPK :: TyFun a6989586621679612097 [a6989586621679612097])
type EnumFromThenToSym3 (t_a2wPC :: a6989586621679612097) (t_a2wPD :: a6989586621679612097) (t_a2wPE :: a6989586621679612097) = EnumFromThenTo t_a2wPC t_a2wPD t_a2wPE


-- | 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_a2L8P c_a2L8Q b_a2L8R. (a_a2L8P -> c_a2L8Q) -> (b_a2L8R -> c_a2L8Q) -> Either a_a2L8P b_a2L8R -> c_a2L8Q
data LeftSym0 (l_a1N8g :: TyFun a6989586621679054100 (Either a6989586621679054100 b6989586621679054101))
type LeftSym1 (t_a1N8f :: a6989586621679054100) = Left t_a1N8f
data RightSym0 (l_a1N8j :: TyFun b6989586621679054101 (Either a6989586621679054100 b6989586621679054101))
type RightSym1 (t_a1N8i :: b6989586621679054101) = Right t_a1N8i
data Either_Sym0 (l_a2L90 :: TyFun (TyFun a6989586621679667663 c6989586621679667664 -> Type) (TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type) -> Type))
data Either_Sym1 (l_a2L93 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L92 :: TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type))
data Either_Sym2 (l_a2L96 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L97 :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (l_a2L95 :: TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664)
type Either_Sym3 (t_a2L8X :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (t_a2L8Y :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (t_a2L8Z :: Either a6989586621679667663 b6989586621679667665) = Either_ t_a2L8X t_a2L8Y t_a2L8Z
data LeftsSym0 (l_a2LuP :: TyFun [Either a6989586621679668933 b6989586621679668934] [a6989586621679668933])
type LeftsSym1 (t_a2LuO :: [Either a6989586621679668933 b6989586621679668934]) = Lefts t_a2LuO
data RightsSym0 (l_a2LuF :: TyFun [Either a6989586621679668931 b6989586621679668932] [b6989586621679668932])
type RightsSym1 (t_a2LuE :: [Either a6989586621679668931 b6989586621679668932]) = Rights t_a2LuE
data IsLeftSym0 (l_a2LtP :: TyFun (Either a6989586621679668927 b6989586621679668928) Bool)
type IsLeftSym1 (t_a2LtO :: Either a6989586621679668927 b6989586621679668928) = IsLeft t_a2LtO
data IsRightSym0 (l_a2LtF :: TyFun (Either a6989586621679668925 b6989586621679668926) Bool)
type IsRightSym1 (t_a2LtE :: Either a6989586621679668925 b6989586621679668926) = IsRight t_a2LtE


-- | 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_a1XYY. a_a1XYY -> a_a1XYY -> Bool -> a_a1XYY
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1Yar :: TyFun Bool Bool)
type NotSym1 (t_a1Yaq :: Bool) = Not t_a1Yaq
data (:&&$) (l_a1YaJ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1YaM :: Bool) (l_a1YaL :: TyFun Bool Bool)
type (:&&$$$) (t_a1YaH :: Bool) (t_a1YaI :: Bool) = (:&&) t_a1YaH t_a1YaI
data (:||$) (l_a1Yaw :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1Yaz :: Bool) (l_a1Yay :: TyFun Bool Bool)
type (:||$$$) (t_a1Yau :: Bool) (t_a1Yav :: Bool) = (:||) t_a1Yau t_a1Yav
data Bool_Sym0 (l_a1XZ7 :: TyFun a6989586621679478696 (TyFun a6989586621679478696 (TyFun Bool a6989586621679478696 -> Type) -> Type))
data Bool_Sym1 (l_a1XZa :: a6989586621679478696) (l_a1XZ9 :: TyFun a6989586621679478696 (TyFun Bool a6989586621679478696 -> Type))
data Bool_Sym2 (l_a1XZd :: a6989586621679478696) (l_a1XZe :: a6989586621679478696) (l_a1XZc :: TyFun Bool a6989586621679478696)
type Bool_Sym3 (t_a1XZ4 :: a6989586621679478696) (t_a1XZ5 :: a6989586621679478696) (t_a1XZ6 :: Bool) = Bool_ t_a1XZ4 t_a1XZ5 t_a1XZ6
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_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
type (:++$$$) (t_a1Z1b :: [a6989586621679482536]) (t_a1Z1c :: [a6989586621679482536]) = (:++) t_a1Z1b t_a1Z1c
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1Z17 :: TyFun a6989586621679482535 a6989586621679482535)
type IdSym1 (t_a1Z16 :: a6989586621679482535) = Id t_a1Z16
data ConstSym0 (l_a1Z0G :: TyFun a6989586621679482533 (TyFun b6989586621679482534 a6989586621679482533 -> Type))
data ConstSym1 (l_a1Z0J :: a6989586621679482533) (l_a1Z0I :: TyFun b6989586621679482534 a6989586621679482533)
type ConstSym2 (t_a1Z0E :: a6989586621679482533) (t_a1Z0F :: b6989586621679482534) = Const t_a1Z0E t_a1Z0F
data (:.$) (l_a1Z01 :: TyFun (TyFun b6989586621679482530 c6989586621679482531 -> Type) (TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type) -> Type))
data (:.$$) (l_a1Z04 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z03 :: TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type))
data (:.$$$) (l_a1Z07 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z08 :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (l_a1Z06 :: TyFun a6989586621679482532 c6989586621679482531)
type (:.$$$$) (t_a1YZY :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (t_a1YZZ :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (t_a1Z00 :: a6989586621679482532) = (:.) t_a1YZY t_a1YZZ t_a1Z00
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_a1YZJ :: TyFun (TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type) -> Type))
data FlipSym1 (l_a1YZM :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZL :: TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type))
data FlipSym2 (l_a1YZP :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZQ :: b6989586621679482528) (l_a1YZO :: TyFun a6989586621679482527 c6989586621679482529)
type FlipSym3 (t_a1YZG :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (t_a1YZH :: b6989586621679482528) (t_a1YZI :: a6989586621679482527) = Flip t_a1YZG t_a1YZH t_a1YZI
data UntilSym0 (l_a3Uv6 :: TyFun (TyFun a6989586621679941957 Bool -> Type) (TyFun (TyFun a6989586621679941957 a6989586621679941957 -> Type) (TyFun a6989586621679941957 a6989586621679941957 -> Type) -> Type))
data UntilSym1 (l_a3Uv9 :: TyFun a6989586621679941957 Bool -> Type) (l_a3Uv8 :: TyFun (TyFun a6989586621679941957 a6989586621679941957 -> Type) (TyFun a6989586621679941957 a6989586621679941957 -> Type))
data UntilSym2 (l_a3Uvc :: TyFun a6989586621679941957 Bool -> Type) (l_a3Uvd :: TyFun a6989586621679941957 a6989586621679941957 -> Type) (l_a3Uvb :: TyFun a6989586621679941957 a6989586621679941957)
type UntilSym3 (t_a3Uv3 :: TyFun a6989586621679941957 Bool -> Type) (t_a3Uv4 :: TyFun a6989586621679941957 a6989586621679941957 -> Type) (t_a3Uv5 :: a6989586621679941957) = Until t_a3Uv3 t_a3Uv4 t_a3Uv5
data AsTypeOfSym0 (l_a1Z0X :: TyFun a6989586621679482526 (TyFun a6989586621679482526 a6989586621679482526 -> Type))
data AsTypeOfSym1 (l_a1Z10 :: a6989586621679482526) (l_a1Z0Z :: TyFun a6989586621679482526 a6989586621679482526)
type AsTypeOfSym2 (t_a1Z0V :: a6989586621679482526) (t_a1Z0W :: a6989586621679482526) = AsTypeOf t_a1Z0V t_a1Z0W
data SeqSym0 (l_a1YZv :: TyFun a6989586621679482524 (TyFun b6989586621679482525 b6989586621679482525 -> Type))
data SeqSym1 (l_a1YZy :: a6989586621679482524) (l_a1YZx :: TyFun b6989586621679482525 b6989586621679482525)
type SeqSym2 (t_a1YZt :: a6989586621679482524) (t_a1YZu :: b6989586621679482525) = Seq t_a1YZt t_a1YZu
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679941985GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679941985GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679941985GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679941985GoSym0
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_a2NlF a_a2NlG. b_a2NlF -> (a_a2NlG -> b_a2NlF) -> Maybe a_a2NlG -> b_a2NlF
either_ :: forall a_a2L8P c_a2L8Q b_a2L8R. (a_a2L8P -> c_a2L8Q) -> (b_a2L8R -> c_a2L8Q) -> Either a_a2L8P b_a2L8R -> c_a2L8Q

-- | (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_a2rGa :: TyFun k06989586621679591922 k6989586621679591924)
any_ :: forall a_a2QOv. (a_a2QOv -> Bool) -> [a_a2QOv] -> 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_a1Yar :: TyFun Bool Bool)
type NotSym1 (t_a1Yaq :: Bool) = Not t_a1Yaq
data (:&&$) (l_a1YaJ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1YaM :: Bool) (l_a1YaL :: TyFun Bool Bool)
type (:&&$$$) (t_a1YaH :: Bool) (t_a1YaI :: Bool) = (:&&) t_a1YaH t_a1YaI
data (:||$) (l_a1Yaw :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1Yaz :: Bool) (l_a1Yay :: TyFun Bool Bool)
type (:||$$$) (t_a1Yau :: Bool) (t_a1Yav :: Bool) = (:||) t_a1Yau t_a1Yav
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a1N7P :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a1N7O :: a3530822107858468866) = Just t_a1N7O
data Maybe_Sym0 (l_a2NlO :: TyFun b6989586621679676147 (TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type) -> Type))
data Maybe_Sym1 (l_a2NlR :: b6989586621679676147) (l_a2NlQ :: TyFun (TyFun a6989586621679676148 b6989586621679676147 -> Type) (TyFun (Maybe a6989586621679676148) b6989586621679676147 -> Type))
data Maybe_Sym2 (l_a2NlU :: b6989586621679676147) (l_a2NlV :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (l_a2NlT :: TyFun (Maybe a6989586621679676148) b6989586621679676147)
type Maybe_Sym3 (t_a2NlL :: b6989586621679676147) (t_a2NlM :: TyFun a6989586621679676148 b6989586621679676147 -> Type) (t_a2NlN :: Maybe a6989586621679676148) = Maybe_ t_a2NlL t_a2NlM t_a2NlN
data LeftSym0 (l_a1N8g :: TyFun a6989586621679054100 (Either a6989586621679054100 b6989586621679054101))
type LeftSym1 (t_a1N8f :: a6989586621679054100) = Left t_a1N8f
data RightSym0 (l_a1N8j :: TyFun b6989586621679054101 (Either a6989586621679054100 b6989586621679054101))
type RightSym1 (t_a1N8i :: b6989586621679054101) = Right t_a1N8i
data Either_Sym0 (l_a2L90 :: TyFun (TyFun a6989586621679667663 c6989586621679667664 -> Type) (TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type) -> Type))
data Either_Sym1 (l_a2L93 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L92 :: TyFun (TyFun b6989586621679667665 c6989586621679667664 -> Type) (TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664 -> Type))
data Either_Sym2 (l_a2L96 :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (l_a2L97 :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (l_a2L95 :: TyFun (Either a6989586621679667663 b6989586621679667665) c6989586621679667664)
type Either_Sym3 (t_a2L8X :: TyFun a6989586621679667663 c6989586621679667664 -> Type) (t_a2L8Y :: TyFun b6989586621679667665 c6989586621679667664 -> Type) (t_a2L8Z :: Either a6989586621679667663 b6989586621679667665) = Either_ t_a2L8X t_a2L8Y t_a2L8Z
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a1N8P :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a1N8S :: a3530822107858468866) (l_a1N8R :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a1N8N :: a3530822107858468866) (t_a1N8O :: b3530822107858468867) = '(t_a1N8N, t_a1N8O)
data Tuple3Sym0 (l_a1N99 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a1N9c :: a3530822107858468866) (l_a1N9b :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a1N9f :: a3530822107858468866) (l_a1N9g :: b3530822107858468867) (l_a1N9e :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a1N96 :: a3530822107858468866) (t_a1N97 :: b3530822107858468867) (t_a1N98 :: c3530822107858468868) = '(t_a1N96, t_a1N97, t_a1N98)
data Tuple4Sym0 (l_a1N9D :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a1N9G :: a3530822107858468866) (l_a1N9F :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a1N9J :: a3530822107858468866) (l_a1N9K :: b3530822107858468867) (l_a1N9I :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a1N9N :: a3530822107858468866) (l_a1N9O :: b3530822107858468867) (l_a1N9P :: c3530822107858468868) (l_a1N9M :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a1N9z :: a3530822107858468866) (t_a1N9A :: b3530822107858468867) (t_a1N9B :: c3530822107858468868) (t_a1N9C :: d3530822107858468869) = '(t_a1N9z, t_a1N9A, t_a1N9B, t_a1N9C)
data Tuple5Sym0 (l_a1Nai :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a1Nal :: a3530822107858468866) (l_a1Nak :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a1Nao :: a3530822107858468866) (l_a1Nap :: b3530822107858468867) (l_a1Nan :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a1Nas :: a3530822107858468866) (l_a1Nat :: b3530822107858468867) (l_a1Nau :: c3530822107858468868) (l_a1Nar :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a1Nax :: a3530822107858468866) (l_a1Nay :: b3530822107858468867) (l_a1Naz :: c3530822107858468868) (l_a1NaA :: d3530822107858468869) (l_a1Naw :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a1Nad :: a3530822107858468866) (t_a1Nae :: b3530822107858468867) (t_a1Naf :: c3530822107858468868) (t_a1Nag :: d3530822107858468869) (t_a1Nah :: e3530822107858468870) = '(t_a1Nad, t_a1Nae, t_a1Naf, t_a1Nag, t_a1Nah)
data Tuple6Sym0 (l_a1Nb9 :: 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_a1Nbc :: a3530822107858468866) (l_a1Nbb :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a1Nbf :: a3530822107858468866) (l_a1Nbg :: b3530822107858468867) (l_a1Nbe :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a1Nbj :: a3530822107858468866) (l_a1Nbk :: b3530822107858468867) (l_a1Nbl :: c3530822107858468868) (l_a1Nbi :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a1Nbo :: a3530822107858468866) (l_a1Nbp :: b3530822107858468867) (l_a1Nbq :: c3530822107858468868) (l_a1Nbr :: d3530822107858468869) (l_a1Nbn :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a1Nbu :: a3530822107858468866) (l_a1Nbv :: b3530822107858468867) (l_a1Nbw :: c3530822107858468868) (l_a1Nbx :: d3530822107858468869) (l_a1Nby :: e3530822107858468870) (l_a1Nbt :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a1Nb3 :: a3530822107858468866) (t_a1Nb4 :: b3530822107858468867) (t_a1Nb5 :: c3530822107858468868) (t_a1Nb6 :: d3530822107858468869) (t_a1Nb7 :: e3530822107858468870) (t_a1Nb8 :: f3530822107858468871) = '(t_a1Nb3, t_a1Nb4, t_a1Nb5, t_a1Nb6, t_a1Nb7, t_a1Nb8)
data Tuple7Sym0 (l_a1Ncd :: 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_a1Ncg :: a3530822107858468866) (l_a1Ncf :: 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_a1Ncj :: a3530822107858468866) (l_a1Nck :: b3530822107858468867) (l_a1Nci :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a1Ncn :: a3530822107858468866) (l_a1Nco :: b3530822107858468867) (l_a1Ncp :: c3530822107858468868) (l_a1Ncm :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a1Ncs :: a3530822107858468866) (l_a1Nct :: b3530822107858468867) (l_a1Ncu :: c3530822107858468868) (l_a1Ncv :: d3530822107858468869) (l_a1Ncr :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a1Ncy :: a3530822107858468866) (l_a1Ncz :: b3530822107858468867) (l_a1NcA :: c3530822107858468868) (l_a1NcB :: d3530822107858468869) (l_a1NcC :: e3530822107858468870) (l_a1Ncx :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a1NcF :: a3530822107858468866) (l_a1NcG :: b3530822107858468867) (l_a1NcH :: c3530822107858468868) (l_a1NcI :: d3530822107858468869) (l_a1NcJ :: e3530822107858468870) (l_a1NcK :: f3530822107858468871) (l_a1NcE :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a1Nc6 :: a3530822107858468866) (t_a1Nc7 :: b3530822107858468867) (t_a1Nc8 :: c3530822107858468868) (t_a1Nc9 :: d3530822107858468869) (t_a1Nca :: e3530822107858468870) (t_a1Ncb :: f3530822107858468871) (t_a1Ncc :: g3530822107858468872) = '(t_a1Nc6, t_a1Nc7, t_a1Nc8, t_a1Nc9, t_a1Nca, t_a1Ncb, t_a1Ncc)
data FstSym0 (l_a2PWh :: TyFun (a6989586621679686056, b6989586621679686057) a6989586621679686056)
type FstSym1 (t_a2PWg :: (a6989586621679686056, b6989586621679686057)) = Fst t_a2PWg
data SndSym0 (l_a2PW9 :: TyFun (a6989586621679686054, b6989586621679686055) b6989586621679686055)
type SndSym1 (t_a2PW8 :: (a6989586621679686054, b6989586621679686055)) = Snd t_a2PW8
data CurrySym0 (l_a2PVT :: TyFun (TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type) -> Type))
data CurrySym1 (l_a2PVW :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PVV :: TyFun a6989586621679686051 (TyFun b6989586621679686052 c6989586621679686053 -> Type))
data CurrySym2 (l_a2PVZ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (l_a2PW0 :: a6989586621679686051) (l_a2PVY :: TyFun b6989586621679686052 c6989586621679686053)
type CurrySym3 (t_a2PVQ :: TyFun (a6989586621679686051, b6989586621679686052) c6989586621679686053 -> Type) (t_a2PVR :: a6989586621679686051) (t_a2PVS :: b6989586621679686052) = Curry t_a2PVQ t_a2PVR t_a2PVS
data UncurrySym0 (l_a2PWq :: TyFun (TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050 -> Type))
data UncurrySym1 (l_a2PWt :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (l_a2PWs :: TyFun (a6989586621679686048, b6989586621679686049) c6989586621679686050)
type UncurrySym2 (t_a2PWo :: TyFun a6989586621679686048 (TyFun b6989586621679686049 c6989586621679686050 -> Type) -> Type) (t_a2PWp :: (a6989586621679686048, b6989586621679686049)) = Uncurry t_a2PWo t_a2PWp
data (:^$) l_a2rIS
data (:^$$) (l_a2rIV :: Nat) l_a2rIU
data IdSym0 (l_a1Z17 :: TyFun a6989586621679482535 a6989586621679482535)
type IdSym1 (t_a1Z16 :: a6989586621679482535) = Id t_a1Z16
data ConstSym0 (l_a1Z0G :: TyFun a6989586621679482533 (TyFun b6989586621679482534 a6989586621679482533 -> Type))
data ConstSym1 (l_a1Z0J :: a6989586621679482533) (l_a1Z0I :: TyFun b6989586621679482534 a6989586621679482533)
type ConstSym2 (t_a1Z0E :: a6989586621679482533) (t_a1Z0F :: b6989586621679482534) = Const t_a1Z0E t_a1Z0F
data (:.$) (l_a1Z01 :: TyFun (TyFun b6989586621679482530 c6989586621679482531 -> Type) (TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type) -> Type))
data (:.$$) (l_a1Z04 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z03 :: TyFun (TyFun a6989586621679482532 b6989586621679482530 -> Type) (TyFun a6989586621679482532 c6989586621679482531 -> Type))
data (:.$$$) (l_a1Z07 :: TyFun b6989586621679482530 c6989586621679482531 -> Type) (l_a1Z08 :: TyFun a6989586621679482532 b6989586621679482530 -> Type) (l_a1Z06 :: TyFun a6989586621679482532 c6989586621679482531)
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_a1YZJ :: TyFun (TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type) -> Type))
data FlipSym1 (l_a1YZM :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZL :: TyFun b6989586621679482528 (TyFun a6989586621679482527 c6989586621679482529 -> Type))
data FlipSym2 (l_a1YZP :: TyFun a6989586621679482527 (TyFun b6989586621679482528 c6989586621679482529 -> Type) -> Type) (l_a1YZQ :: b6989586621679482528) (l_a1YZO :: TyFun a6989586621679482527 c6989586621679482529)
data AsTypeOfSym0 (l_a1Z0X :: TyFun a6989586621679482526 (TyFun a6989586621679482526 a6989586621679482526 -> Type))
data AsTypeOfSym1 (l_a1Z10 :: a6989586621679482526) (l_a1Z0Z :: TyFun a6989586621679482526 a6989586621679482526)
type AsTypeOfSym2 (t_a1Z0V :: a6989586621679482526) (t_a1Z0W :: a6989586621679482526) = AsTypeOf t_a1Z0V t_a1Z0W
data SeqSym0 (l_a1YZv :: TyFun a6989586621679482524 (TyFun b6989586621679482525 b6989586621679482525 -> Type))
data SeqSym1 (l_a1YZy :: a6989586621679482524) (l_a1YZx :: TyFun b6989586621679482525 b6989586621679482525)
type SeqSym2 (t_a1YZt :: a6989586621679482524) (t_a1YZu :: b6989586621679482525) = Seq t_a1YZt t_a1YZu
data (:$) (l_a1N7Z :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a1N82 :: a3530822107858468866) (l_a1N81 :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a1N7X :: a3530822107858468866) (t_a1N7Y :: [a3530822107858468866]) = (:) t_a1N7X t_a1N7Y
type NilSym0 = '[]
data MapSym0 (l_a1Z1q :: TyFun (TyFun a6989586621679482537 b6989586621679482538 -> Type) (TyFun [a6989586621679482537] [b6989586621679482538] -> Type))
data MapSym1 (l_a1Z1t :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (l_a1Z1s :: TyFun [a6989586621679482537] [b6989586621679482538])
type MapSym2 (t_a1Z1o :: TyFun a6989586621679482537 b6989586621679482538 -> Type) (t_a1Z1p :: [a6989586621679482537]) = Map t_a1Z1o t_a1Z1p
data ReverseSym0 (l_a2ULW :: TyFun [a6989586621679700166] [a6989586621679700166])
type ReverseSym1 (t_a2ULV :: [a6989586621679700166]) = Reverse t_a2ULV
data (:++$$) (l_a1Z1g :: [a6989586621679482536]) (l_a1Z1f :: TyFun [a6989586621679482536] [a6989586621679482536])
data (:++$) (l_a1Z1d :: TyFun [a6989586621679482536] (TyFun [a6989586621679482536] [a6989586621679482536] -> Type))
data HeadSym0 (l_a2UOr :: TyFun [a6989586621679700171] a6989586621679700171)
type HeadSym1 (t_a2UOq :: [a6989586621679700171]) = Head t_a2UOq
data LastSym0 (l_a2UOh :: TyFun [a6989586621679700170] a6989586621679700170)
type LastSym1 (t_a2UOg :: [a6989586621679700170]) = Last t_a2UOg
data TailSym0 (l_a2UO9 :: TyFun [a6989586621679700169] [a6989586621679700169])
type TailSym1 (t_a2UO8 :: [a6989586621679700169]) = Tail t_a2UO8
data InitSym0 (l_a2UNC :: TyFun [a6989586621679700168] [a6989586621679700168])
type InitSym1 (t_a2UNB :: [a6989586621679700168]) = Init t_a2UNB
data NullSym0 (l_a2UMv :: TyFun [a6989586621679700167] Bool)
type NullSym1 (t_a2UMu :: [a6989586621679700167]) = Null t_a2UMu
data FoldlSym0 (l_a1Q5H :: TyFun (TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type) -> Type))
data FoldlSym1 (l_a1Q5K :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5J :: TyFun b6989586621679448348 (TyFun [a6989586621679448347] b6989586621679448348 -> Type))
data FoldlSym2 (l_a1Q5N :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (l_a1Q5O :: b6989586621679448348) (l_a1Q5M :: TyFun [a6989586621679448347] b6989586621679448348)
type FoldlSym3 (t_a1Q5E :: TyFun b6989586621679448348 (TyFun a6989586621679448347 b6989586621679448348 -> Type) -> Type) (t_a1Q5F :: b6989586621679448348) (t_a1Q5G :: [a6989586621679448347]) = Foldl t_a1Q5E t_a1Q5F t_a1Q5G
data Foldl1Sym0 (l_a2UzE :: TyFun (TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (TyFun [a6989586621679700157] a6989586621679700157 -> Type))
data Foldl1Sym1 (l_a2UzH :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (l_a2UzG :: TyFun [a6989586621679700157] a6989586621679700157)
type Foldl1Sym2 (t_a2UzC :: TyFun a6989586621679700157 (TyFun a6989586621679700157 a6989586621679700157 -> Type) -> Type) (t_a2UzD :: [a6989586621679700157]) = Foldl1 t_a2UzC t_a2UzD
data FoldrSym0 (l_a1Z1G :: TyFun (TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type) -> Type))
data FoldrSym1 (l_a1Z1J :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1I :: TyFun b6989586621679482540 (TyFun [a6989586621679482539] b6989586621679482540 -> Type))
data FoldrSym2 (l_a1Z1M :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (l_a1Z1N :: b6989586621679482540) (l_a1Z1L :: TyFun [a6989586621679482539] b6989586621679482540)
type FoldrSym3 (t_a1Z1D :: TyFun a6989586621679482539 (TyFun b6989586621679482540 b6989586621679482540 -> Type) -> Type) (t_a1Z1E :: b6989586621679482540) (t_a1Z1F :: [a6989586621679482539]) = Foldr t_a1Z1D t_a1Z1E t_a1Z1F
data Foldr1Sym0 (l_a2Uz1 :: TyFun (TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (TyFun [a6989586621679700155] a6989586621679700155 -> Type))
data Foldr1Sym1 (l_a2Uz4 :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (l_a2Uz3 :: TyFun [a6989586621679700155] a6989586621679700155)
type Foldr1Sym2 (t_a2UyZ :: TyFun a6989586621679700155 (TyFun a6989586621679700155 a6989586621679700155 -> Type) -> Type) (t_a2Uz0 :: [a6989586621679700155]) = Foldr1 t_a2UyZ t_a2Uz0
data ConcatSym0 (l_a2UyV :: TyFun [[a6989586621679700154]] [a6989586621679700154])
type ConcatSym1 (t_a2UyU :: [[a6989586621679700154]]) = Concat t_a2UyU
data ConcatMapSym0 (l_a2UyH :: TyFun (TyFun a6989586621679700152 [b6989586621679700153] -> Type) (TyFun [a6989586621679700152] [b6989586621679700153] -> Type))
data ConcatMapSym1 (l_a2UyK :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (l_a2UyJ :: TyFun [a6989586621679700152] [b6989586621679700153])
type ConcatMapSym2 (t_a2UyF :: TyFun a6989586621679700152 [b6989586621679700153] -> Type) (t_a2UyG :: [a6989586621679700152]) = ConcatMap t_a2UyF t_a2UyG
data MaximumBySym0 (l_a2UzT :: TyFun (TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (TyFun [a6989586621679700084] a6989586621679700084 -> Type))
data MaximumBySym1 (l_a2UzW :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (l_a2UzV :: TyFun [a6989586621679700084] a6989586621679700084)
type MaximumBySym2 (t_a2UzR :: TyFun a6989586621679700084 (TyFun a6989586621679700084 Ordering -> Type) -> Type) (t_a2UzS :: [a6989586621679700084]) = MaximumBy t_a2UzR t_a2UzS
data MinimumBySym0 (l_a2UBi :: TyFun (TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (TyFun [a6989586621679700083] a6989586621679700083 -> Type))
data MinimumBySym1 (l_a2UBl :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (l_a2UBk :: TyFun [a6989586621679700083] a6989586621679700083)
type MinimumBySym2 (t_a2UBg :: TyFun a6989586621679700083 (TyFun a6989586621679700083 Ordering -> Type) -> Type) (t_a2UBh :: [a6989586621679700083]) = MinimumBy t_a2UBg t_a2UBh
data AndSym0 (l_a2UyA :: TyFun [Bool] Bool)
type AndSym1 (t_a2Uyz :: [Bool]) = And t_a2Uyz
data OrSym0 (l_a2Uyu :: TyFun [Bool] Bool)
type OrSym1 (t_a2Uyt :: [Bool]) = Or t_a2Uyt
data Any_Sym0 (l_a2QOC :: TyFun (TyFun a6989586621679689467 Bool -> Type) (TyFun [a6989586621679689467] Bool -> Type))
data Any_Sym1 (l_a2QOF :: TyFun a6989586621679689467 Bool -> Type) (l_a2QOE :: TyFun [a6989586621679689467] Bool)
type Any_Sym2 (t_a2QOA :: TyFun a6989586621679689467 Bool -> Type) (t_a2QOB :: [a6989586621679689467]) = Any_ t_a2QOA t_a2QOB
data AllSym0 (l_a2Uyg :: TyFun (TyFun a6989586621679700151 Bool -> Type) (TyFun [a6989586621679700151] Bool -> Type))
data AllSym1 (l_a2Uyj :: TyFun a6989586621679700151 Bool -> Type) (l_a2Uyi :: TyFun [a6989586621679700151] Bool)
type AllSym2 (t_a2Uye :: TyFun a6989586621679700151 Bool -> Type) (t_a2Uyf :: [a6989586621679700151]) = All t_a2Uye t_a2Uyf
data ScanlSym0 (l_a2UxF :: TyFun (TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type) -> Type))
data ScanlSym1 (l_a2UxI :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxH :: TyFun b6989586621679700149 (TyFun [a6989586621679700150] [b6989586621679700149] -> Type))
data ScanlSym2 (l_a2UxL :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (l_a2UxM :: b6989586621679700149) (l_a2UxK :: TyFun [a6989586621679700150] [b6989586621679700149])
type ScanlSym3 (t_a2UxC :: TyFun b6989586621679700149 (TyFun a6989586621679700150 b6989586621679700149 -> Type) -> Type) (t_a2UxD :: b6989586621679700149) (t_a2UxE :: [a6989586621679700150]) = Scanl t_a2UxC t_a2UxD t_a2UxE
data Scanl1Sym0 (l_a2Uy1 :: TyFun (TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (TyFun [a6989586621679700148] [a6989586621679700148] -> Type))
data Scanl1Sym1 (l_a2Uy4 :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (l_a2Uy3 :: TyFun [a6989586621679700148] [a6989586621679700148])
type Scanl1Sym2 (t_a2UxZ :: TyFun a6989586621679700148 (TyFun a6989586621679700148 a6989586621679700148 -> Type) -> Type) (t_a2Uy0 :: [a6989586621679700148]) = Scanl1 t_a2UxZ t_a2Uy0
data ScanrSym0 (l_a2UwU :: TyFun (TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type) -> Type))
data ScanrSym1 (l_a2UwX :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2UwW :: TyFun b6989586621679700147 (TyFun [a6989586621679700146] [b6989586621679700147] -> Type))
data ScanrSym2 (l_a2Ux0 :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (l_a2Ux1 :: b6989586621679700147) (l_a2UwZ :: TyFun [a6989586621679700146] [b6989586621679700147])
type ScanrSym3 (t_a2UwR :: TyFun a6989586621679700146 (TyFun b6989586621679700147 b6989586621679700147 -> Type) -> Type) (t_a2UwS :: b6989586621679700147) (t_a2UwT :: [a6989586621679700146]) = Scanr t_a2UwR t_a2UwS t_a2UwT
data Scanr1Sym0 (l_a2UvS :: TyFun (TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (TyFun [a6989586621679700145] [a6989586621679700145] -> Type))
data Scanr1Sym1 (l_a2UvV :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (l_a2UvU :: TyFun [a6989586621679700145] [a6989586621679700145])
type Scanr1Sym2 (t_a2UvQ :: TyFun a6989586621679700145 (TyFun a6989586621679700145 a6989586621679700145 -> Type) -> Type) (t_a2UvR :: [a6989586621679700145]) = Scanr1 t_a2UvQ t_a2UvR
data ElemSym0 (l_a2UnZ :: TyFun a6989586621679700131 (TyFun [a6989586621679700131] Bool -> Type))
data ElemSym1 (l_a2Uo2 :: a6989586621679700131) (l_a2Uo1 :: TyFun [a6989586621679700131] Bool)
type ElemSym2 (t_a2UnX :: a6989586621679700131) (t_a2UnY :: [a6989586621679700131]) = Elem t_a2UnX t_a2UnY
data NotElemSym0 (l_a2UnK :: TyFun a6989586621679700130 (TyFun [a6989586621679700130] Bool -> Type))
data NotElemSym1 (l_a2UnN :: a6989586621679700130) (l_a2UnM :: TyFun [a6989586621679700130] Bool)
type NotElemSym2 (t_a2UnI :: a6989586621679700130) (t_a2UnJ :: [a6989586621679700130]) = NotElem t_a2UnI t_a2UnJ
data ZipSym0 (l_a2UlH :: TyFun [a6989586621679700128] (TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)] -> Type))
data ZipSym1 (l_a2UlK :: [a6989586621679700128]) (l_a2UlJ :: TyFun [b6989586621679700129] [(a6989586621679700128, b6989586621679700129)])
type ZipSym2 (t_a2UlF :: [a6989586621679700128]) (t_a2UlG :: [b6989586621679700129]) = Zip t_a2UlF t_a2UlG
data Zip3Sym0 (l_a2Ukv :: TyFun [a6989586621679700125] (TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type) -> Type))
data Zip3Sym1 (l_a2Uky :: [a6989586621679700125]) (l_a2Ukx :: TyFun [b6989586621679700126] (TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)] -> Type))
data Zip3Sym2 (l_a2UkB :: [a6989586621679700125]) (l_a2UkC :: [b6989586621679700126]) (l_a2UkA :: TyFun [c6989586621679700127] [(a6989586621679700125, b6989586621679700126, c6989586621679700127)])
type Zip3Sym3 (t_a2Uks :: [a6989586621679700125]) (t_a2Ukt :: [b6989586621679700126]) (t_a2Uku :: [c6989586621679700127]) = Zip3 t_a2Uks t_a2Ukt t_a2Uku
data ZipWithSym0 (l_a2UjQ :: TyFun (TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type) -> Type))
data ZipWithSym1 (l_a2UjT :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjS :: TyFun [a6989586621679700122] (TyFun [b6989586621679700123] [c6989586621679700124] -> Type))
data ZipWithSym2 (l_a2UjW :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (l_a2UjX :: [a6989586621679700122]) (l_a2UjV :: TyFun [b6989586621679700123] [c6989586621679700124])
type ZipWithSym3 (t_a2UjN :: TyFun a6989586621679700122 (TyFun b6989586621679700123 c6989586621679700124 -> Type) -> Type) (t_a2UjO :: [a6989586621679700122]) (t_a2UjP :: [b6989586621679700123]) = ZipWith t_a2UjN t_a2UjO t_a2UjP
data ZipWith3Sym0 (l_a2Uib :: TyFun (TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a2Uie :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uid :: TyFun [a6989586621679700118] (TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type) -> Type))
data ZipWith3Sym2 (l_a2Uih :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uii :: [a6989586621679700118]) (l_a2Uig :: TyFun [b6989586621679700119] (TyFun [c6989586621679700120] [d6989586621679700121] -> Type))
data ZipWith3Sym3 (l_a2Uil :: TyFun a6989586621679700118 (TyFun b6989586621679700119 (TyFun c6989586621679700120 d6989586621679700121 -> Type) -> Type) -> Type) (l_a2Uim :: [a6989586621679700118]) (l_a2Uin :: [b6989586621679700119]) (l_a2Uik :: TyFun [c6989586621679700120] [d6989586621679700121])
data UnzipSym0 (l_a2UhE :: TyFun [(a6989586621679700116, b6989586621679700117)] ([a6989586621679700116], [b6989586621679700117]))
type UnzipSym1 (t_a2UhD :: [(a6989586621679700116, b6989586621679700117)]) = Unzip t_a2UhD
data UntilSym0 (l_a3Uv6 :: TyFun (TyFun a6989586621679941957 Bool -> Type) (TyFun (TyFun a6989586621679941957 a6989586621679941957 -> Type) (TyFun a6989586621679941957 a6989586621679941957 -> Type) -> Type))
data UntilSym1 (l_a3Uv9 :: TyFun a6989586621679941957 Bool -> Type) (l_a3Uv8 :: TyFun (TyFun a6989586621679941957 a6989586621679941957 -> Type) (TyFun a6989586621679941957 a6989586621679941957 -> Type))
data UntilSym2 (l_a3Uvc :: TyFun a6989586621679941957 Bool -> Type) (l_a3Uvd :: TyFun a6989586621679941957 a6989586621679941957 -> Type) (l_a3Uvb :: TyFun a6989586621679941957 a6989586621679941957)
type UntilSym3 (t_a3Uv3 :: TyFun a6989586621679941957 Bool -> Type) (t_a3Uv4 :: TyFun a6989586621679941957 a6989586621679941957 -> Type) (t_a3Uv5 :: a6989586621679941957) = Until t_a3Uv3 t_a3Uv4 t_a3Uv5
data LengthSym0 (l_a2TYK :: TyFun [a6989586621679700054] Nat)
type LengthSym1 (t_a2TYJ :: [a6989586621679700054]) = Length t_a2TYJ
data SumSym0 (l_a2TZg :: TyFun [a6989586621679700056] a6989586621679700056)
type SumSym1 (t_a2TZf :: [a6989586621679700056]) = Sum t_a2TZf
data ProductSym0 (l_a2TYS :: TyFun [a6989586621679700055] a6989586621679700055)
type ProductSym1 (t_a2TYR :: [a6989586621679700055]) = Product t_a2TYR
data ReplicateSym0 (l_a2TYp :: TyFun Nat (TyFun a6989586621679700053 [a6989586621679700053] -> Type))
data ReplicateSym1 (l_a2TYs :: Nat) (l_a2TYr :: TyFun a6989586621679700053 [a6989586621679700053])
type ReplicateSym2 (t_a2TYn :: Nat) (t_a2TYo :: a6989586621679700053) = Replicate t_a2TYn t_a2TYo
data TakeSym0 (l_a2U1A :: TyFun Nat (TyFun [a6989586621679700069] [a6989586621679700069] -> Type))
data TakeSym1 (l_a2U1D :: Nat) (l_a2U1C :: TyFun [a6989586621679700069] [a6989586621679700069])
type TakeSym2 (t_a2U1y :: Nat) (t_a2U1z :: [a6989586621679700069]) = Take t_a2U1y t_a2U1z
data DropSym0 (l_a2U15 :: TyFun Nat (TyFun [a6989586621679700068] [a6989586621679700068] -> Type))
data DropSym1 (l_a2U18 :: Nat) (l_a2U17 :: TyFun [a6989586621679700068] [a6989586621679700068])
type DropSym2 (t_a2U13 :: Nat) (t_a2U14 :: [a6989586621679700068]) = Drop t_a2U13 t_a2U14
data SplitAtSym0 (l_a2U25 :: TyFun Nat (TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]) -> Type))
data SplitAtSym1 (l_a2U28 :: Nat) (l_a2U27 :: TyFun [a6989586621679700067] ([a6989586621679700067], [a6989586621679700067]))
type SplitAtSym2 (t_a2U23 :: Nat) (t_a2U24 :: [a6989586621679700067]) = SplitAt t_a2U23 t_a2U24
data TakeWhileSym0 (l_a2U7B :: TyFun (TyFun a6989586621679700074 Bool -> Type) (TyFun [a6989586621679700074] [a6989586621679700074] -> Type))
data TakeWhileSym1 (l_a2U7E :: TyFun a6989586621679700074 Bool -> Type) (l_a2U7D :: TyFun [a6989586621679700074] [a6989586621679700074])
type TakeWhileSym2 (t_a2U7z :: TyFun a6989586621679700074 Bool -> Type) (t_a2U7A :: [a6989586621679700074]) = TakeWhile t_a2U7z t_a2U7A
data DropWhileSym0 (l_a2U6T :: TyFun (TyFun a6989586621679700073 Bool -> Type) (TyFun [a6989586621679700073] [a6989586621679700073] -> Type))
data DropWhileSym1 (l_a2U6W :: TyFun a6989586621679700073 Bool -> Type) (l_a2U6V :: TyFun [a6989586621679700073] [a6989586621679700073])
type DropWhileSym2 (t_a2U6R :: TyFun a6989586621679700073 Bool -> Type) (t_a2U6S :: [a6989586621679700073]) = DropWhile t_a2U6R t_a2U6S
data SpanSym0 (l_a2U3X :: TyFun (TyFun a6989586621679700071 Bool -> Type) (TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]) -> Type))
data SpanSym1 (l_a2U40 :: TyFun a6989586621679700071 Bool -> Type) (l_a2U3Z :: TyFun [a6989586621679700071] ([a6989586621679700071], [a6989586621679700071]))
type SpanSym2 (t_a2U3V :: TyFun a6989586621679700071 Bool -> Type) (t_a2U3W :: [a6989586621679700071]) = Span t_a2U3V t_a2U3W
data BreakSym0 (l_a2U2g :: TyFun (TyFun a6989586621679700070 Bool -> Type) (TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]) -> Type))
data BreakSym1 (l_a2U2j :: TyFun a6989586621679700070 Bool -> Type) (l_a2U2i :: TyFun [a6989586621679700070] ([a6989586621679700070], [a6989586621679700070]))
type BreakSym2 (t_a2U2e :: TyFun a6989586621679700070 Bool -> Type) (t_a2U2f :: [a6989586621679700070]) = Break t_a2U2e t_a2U2f
data LookupSym0 (l_a2U0v :: TyFun a6989586621679700059 (TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060) -> Type))
data LookupSym1 (l_a2U0y :: a6989586621679700059) (l_a2U0x :: TyFun [(a6989586621679700059, b6989586621679700060)] (Maybe b6989586621679700060))
type LookupSym2 (t_a2U0t :: a6989586621679700059) (t_a2U0u :: [(a6989586621679700059, b6989586621679700060)]) = Lookup t_a2U0t t_a2U0u
data FilterSym0 (l_a2U86 :: TyFun (TyFun a6989586621679700082 Bool -> Type) (TyFun [a6989586621679700082] [a6989586621679700082] -> Type))
data FilterSym1 (l_a2U89 :: TyFun a6989586621679700082 Bool -> Type) (l_a2U88 :: TyFun [a6989586621679700082] [a6989586621679700082])
type FilterSym2 (t_a2U84 :: TyFun a6989586621679700082 Bool -> Type) (t_a2U85 :: [a6989586621679700082]) = Filter t_a2U84 t_a2U85
data (:!!$) (l_a2TXU :: TyFun [a6989586621679700051] (TyFun Nat a6989586621679700051 -> Type))
data (:!!$$) (l_a2TXX :: [a6989586621679700051]) (l_a2TXW :: TyFun Nat a6989586621679700051)
type (:!!$$$) (t_a2TXS :: [a6989586621679700051]) (t_a2TXT :: Nat) = (:!!) t_a2TXS t_a2TXT
