-- 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_a2TkY :: Bool). Sing t_a2TkY -> Sing (Apply NotSym0 t_a2TkY :: Bool)
(%:&&) :: forall (t_a2Tl1 :: Bool) (t_a2Tl2 :: Bool). Sing t_a2Tl1 -> Sing t_a2Tl2 -> Sing (Apply (Apply (:&&$) t_a2Tl1) t_a2Tl2 :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a2TkZ :: Bool) (t_a2Tl0 :: Bool). Sing t_a2TkZ -> Sing t_a2Tl0 -> Sing (Apply (Apply (:||$) t_a2TkZ) t_a2Tl0 :: Bool)
infixr 2 %:||
bool_ :: forall a_a2T92. a_a2T92 -> a_a2T92 -> Bool -> a_a2T92
sBool_ :: forall (t_a2T9r :: a_a2T92) (t_a2T9s :: a_a2T92) (t_a2T9t :: Bool). Sing t_a2T9r -> Sing t_a2T9s -> Sing t_a2T9t -> Sing (Apply (Apply (Apply Bool_Sym0 t_a2T9r) t_a2T9s) t_a2T9t :: a_a2T92)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a2Tkv :: TyFun Bool Bool)
type NotSym1 (t_a2Tku :: Bool) = Not t_a2Tku
data (:&&$) (l_a2TkN :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2TkQ :: Bool) (l_a2TkP :: TyFun Bool Bool)
type (:&&$$$) (t_a2TkL :: Bool) (t_a2TkM :: Bool) = (:&&) t_a2TkL t_a2TkM
data (:||$) (l_a2TkA :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2TkD :: Bool) (l_a2TkC :: TyFun Bool Bool)
type (:||$$$) (t_a2Tky :: Bool) (t_a2Tkz :: Bool) = (:||) t_a2Tky t_a2Tkz
data Bool_Sym0 (l_a2T9b :: TyFun a6989586621679698428 (TyFun a6989586621679698428 (TyFun Bool a6989586621679698428 -> Type) -> Type))
data Bool_Sym1 (l_a2T9e :: a6989586621679698428) (l_a2T9d :: TyFun a6989586621679698428 (TyFun Bool a6989586621679698428 -> Type))
data Bool_Sym2 (l_a2T9h :: a6989586621679698428) (l_a2T9i :: a6989586621679698428) (l_a2T9g :: TyFun Bool a6989586621679698428)
type Bool_Sym3 (t_a2T98 :: a6989586621679698428) (t_a2T99 :: a6989586621679698428) (t_a2T9a :: Bool) = Bool_ t_a2T98 t_a2T99 t_a2T9a
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_a2UuS :: TyFun a_a2Urf (TyFun b_a2Urg b_a2Urg -> Type) -> Type) (t_a2UuT :: b_a2Urg) (t_a2UuU :: [a_a2Urf]). Sing t_a2UuS -> Sing t_a2UuT -> Sing t_a2UuU -> Sing (Apply (Apply (Apply FoldrSym0 t_a2UuS) t_a2UuT) t_a2UuU :: b_a2Urg)
sMap :: forall (t_a2UuQ :: TyFun a_a2Urd b_a2Ure -> Type) (t_a2UuR :: [a_a2Urd]). Sing t_a2UuQ -> Sing t_a2UuR -> Sing (Apply (Apply MapSym0 t_a2UuQ) t_a2UuR :: [b_a2Ure])
(%:++) :: forall (t_a2UuO :: [a_a2Urc]) (t_a2UuP :: [a_a2Urc]). Sing t_a2UuO -> Sing t_a2UuP -> Sing (Apply (Apply (:++$) t_a2UuO) t_a2UuP :: [a_a2Urc])
infixr 5 %:++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a2UuN :: a_a2Urb). Sing t_a2UuN -> Sing (Apply IdSym0 t_a2UuN :: a_a2Urb)
sConst :: forall (t_a2UuJ :: a_a2Ur9) (t_a2UuK :: b_a2Ura). Sing t_a2UuJ -> Sing t_a2UuK -> Sing (Apply (Apply ConstSym0 t_a2UuJ) t_a2UuK :: a_a2Ur9)
(%:.) :: forall (t_a2UuG :: TyFun b_a2Ur6 c_a2Ur7 -> Type) (t_a2UuH :: TyFun a_a2Ur8 b_a2Ur6 -> Type) (t_a2UuI :: a_a2Ur8). Sing t_a2UuG -> Sing t_a2UuH -> Sing t_a2UuI -> Sing (Apply (Apply (Apply (:.$) t_a2UuG) t_a2UuH) t_a2UuI :: c_a2Ur7)
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_a2UuD :: TyFun a_a2Ur3 (TyFun b_a2Ur4 c_a2Ur5 -> Type) -> Type) (t_a2UuE :: b_a2Ur4) (t_a2UuF :: a_a2Ur3). Sing t_a2UuD -> Sing t_a2UuE -> Sing t_a2UuF -> Sing (Apply (Apply (Apply FlipSym0 t_a2UuD) t_a2UuE) t_a2UuF :: c_a2Ur5)
sAsTypeOf :: forall (t_a2UuL :: a_a2Ur2) (t_a2UuM :: a_a2Ur2). Sing t_a2UuL -> Sing t_a2UuM -> Sing (Apply (Apply AsTypeOfSym0 t_a2UuL) t_a2UuM :: a_a2Ur2)
sSeq :: forall (t_a2UuB :: a_a2Ur0) (t_a2UuC :: b_a2Ur1). Sing t_a2UuB -> Sing t_a2UuC -> Sing (Apply (Apply SeqSym0 t_a2UuB) t_a2UuC :: b_a2Ur1)
infixr 0 `sSeq`
data FoldrSym0 (l_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
type (:++$$$) (t_a2Utt :: [a6989586621679703398]) (t_a2Utu :: [a6989586621679703398]) = (:++) t_a2Utt t_a2Utu
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a2Utp :: TyFun a6989586621679703397 a6989586621679703397)
type IdSym1 (t_a2Uto :: a6989586621679703397) = Id t_a2Uto
data ConstSym0 (l_a2UsY :: TyFun a6989586621679703395 (TyFun b6989586621679703396 a6989586621679703395 -> Type))
data ConstSym1 (l_a2Ut1 :: a6989586621679703395) (l_a2Ut0 :: TyFun b6989586621679703396 a6989586621679703395)
type ConstSym2 (t_a2UsW :: a6989586621679703395) (t_a2UsX :: b6989586621679703396) = Const t_a2UsW t_a2UsX
data (:.$) (l_a2Usj :: TyFun (TyFun b6989586621679703392 c6989586621679703393 -> Type) (TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type) -> Type))
data (:.$$) (l_a2Usm :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usl :: TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type))
data (:.$$$) (l_a2Usp :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usq :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (l_a2Uso :: TyFun a6989586621679703394 c6989586621679703393)
type (:.$$$$) (t_a2Usg :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (t_a2Ush :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (t_a2Usi :: a6989586621679703394) = (:.) t_a2Usg t_a2Ush t_a2Usi
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_a2Us1 :: TyFun (TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type) -> Type))
data FlipSym1 (l_a2Us4 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us3 :: TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type))
data FlipSym2 (l_a2Us7 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us8 :: b6989586621679703390) (l_a2Us6 :: TyFun a6989586621679703389 c6989586621679703391)
type FlipSym3 (t_a2UrY :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (t_a2UrZ :: b6989586621679703390) (t_a2Us0 :: a6989586621679703389) = Flip t_a2UrY t_a2UrZ t_a2Us0
data AsTypeOfSym0 (l_a2Utf :: TyFun a6989586621679703388 (TyFun a6989586621679703388 a6989586621679703388 -> Type))
data AsTypeOfSym1 (l_a2Uti :: a6989586621679703388) (l_a2Uth :: TyFun a6989586621679703388 a6989586621679703388)
type AsTypeOfSym2 (t_a2Utd :: a6989586621679703388) (t_a2Ute :: a6989586621679703388) = AsTypeOf t_a2Utd t_a2Ute
data SeqSym0 (l_a2UrN :: TyFun a6989586621679703386 (TyFun b6989586621679703387 b6989586621679703387 -> Type))
data SeqSym1 (l_a2UrQ :: a6989586621679703386) (l_a2UrP :: TyFun b6989586621679703387 b6989586621679703387)
type SeqSym2 (t_a2UrL :: a6989586621679703386) (t_a2UrM :: b6989586621679703387) = Seq t_a2UrL t_a2UrM
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679703484Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679703484Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679703484Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679703484Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679703587GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679703587GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679703587GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679703587GoSym0
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_a2XKW :: TyFun a6989586621679716089 (TyFun a6989586621679716089 Bool -> Type))
data (:==$$) (l_a2XKZ :: a6989586621679716089) (l_a2XKY :: TyFun a6989586621679716089 Bool)
type (:==$$$) (t_a2XKU :: a6989586621679716089) (t_a2XKV :: a6989586621679716089) = (:==) t_a2XKU t_a2XKV
data (:/=$) (l_a2XL3 :: TyFun a6989586621679716089 (TyFun a6989586621679716089 Bool -> Type))
data (:/=$$) (l_a2XL6 :: a6989586621679716089) (l_a2XL5 :: TyFun a6989586621679716089 Bool)
type (:/=$$$) (t_a2XL1 :: a6989586621679716089) (t_a2XL2 :: a6989586621679716089) = (:/=) t_a2XL1 t_a2XL2
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_a36b6), kproxy_a36Mc ~ Proxy) => POrd (kproxy_a36Mc :: Proxy a_a36b6) where type Compare (arg_a36Md :: a_a36b6) (arg_a36Me :: a_a36b6) :: Ordering type (:<) (arg_a36Mm :: a_a36b6) (arg_a36Mn :: a_a36b6) :: Bool type (:<=) (arg_a36Mv :: a_a36b6) (arg_a36Mw :: a_a36b6) :: Bool type (:>) (arg_a36ME :: a_a36b6) (arg_a36MF :: a_a36b6) :: Bool type (:>=) (arg_a36MN :: a_a36b6) (arg_a36MO :: a_a36b6) :: Bool type Max (arg_a36MW :: a_a36b6) (arg_a36MX :: a_a36b6) :: a_a36b6 type Min (arg_a36N5 :: a_a36b6) (arg_a36N6 :: a_a36b6) :: a_a36b6 type Compare a_a36NL a_a36NM = Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM type (:<) a_a36Oi a_a36Oj = Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj type (:<=) a_a36OP a_a36OQ = Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ type (:>) a_a36Pm a_a36Pn = Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn type (:>=) a_a36PT a_a36PU = Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU type Max a_a36Qq a_a36Qr = Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr type Min a_a36QX a_a36QY = Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY where {
    type family Compare (arg_a36Md :: a_a36b6)
                        (arg_a36Me :: a_a36b6) :: Ordering;
    type family (:<) (arg_a36Mm :: a_a36b6)
                     (arg_a36Mn :: a_a36b6) :: Bool;
    type family (:<=) (arg_a36Mv :: a_a36b6)
                      (arg_a36Mw :: a_a36b6) :: Bool;
    type family (:>) (arg_a36ME :: a_a36b6)
                     (arg_a36MF :: a_a36b6) :: Bool;
    type family (:>=) (arg_a36MN :: a_a36b6)
                      (arg_a36MO :: a_a36b6) :: Bool;
    type family Max (arg_a36MW :: a_a36b6)
                    (arg_a36MX :: a_a36b6) :: a_a36b6;
    type family Min (arg_a36N5 :: a_a36b6)
                    (arg_a36N6 :: a_a36b6) :: a_a36b6;
    type Compare a_a36NL a_a36NM =
        Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM;
    type (:<) a_a36Oi a_a36Oj =
        Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj;
    type (:<=) a_a36OP a_a36OQ =
        Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ;
    type (:>) a_a36Pm a_a36Pn =
        Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn;
    type (:>=) a_a36PT a_a36PU =
        Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU;
    type Max a_a36Qq a_a36Qr =
        Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr;
    type Min a_a36QX a_a36QY =
        Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY;
}
class SEq a_a36b6 => SOrd a_a36b6 where sCompare sX sY = let lambda_a36Rm :: forall x_a36Nn y_a36No. (t_a36R8 ~ x_a36Nn, t_a36R9 ~ y_a36No) => Sing x_a36Nn -> Sing y_a36No -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering) lambda_a36Rm x_a36Rn y_a36Ro = let sScrutinee_6989586621679748543 :: Sing (Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No) sScrutinee_6989586621679748543 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a36Rn) y_a36Ro in  case sScrutinee_6989586621679748543 of { STrue -> let lambda_a36Rp :: TrueSym0 ~ Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750911 x_a36Nn y_a36No TrueSym0 :: Ordering) lambda_a36Rp = SEQ in lambda_a36Rp SFalse -> let lambda_a36Rq :: FalseSym0 ~ Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750911 x_a36Nn y_a36No FalseSym0 :: Ordering) lambda_a36Rq = let sScrutinee_6989586621679748545 :: Sing (Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No) sScrutinee_6989586621679748545 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36Rn) y_a36Ro in  case sScrutinee_6989586621679748545 of { STrue -> let lambda_a36Rr :: TrueSym0 ~ Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750921 x_a36Nn y_a36No TrueSym0 :: Ordering) lambda_a36Rr = SLT in lambda_a36Rr SFalse -> let lambda_a36Rs :: FalseSym0 ~ Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750921 x_a36Nn y_a36No FalseSym0 :: Ordering) lambda_a36Rs = SGT in lambda_a36Rs } :: Sing (Case_6989586621679750921 x_a36Nn y_a36No (Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No) :: Ordering) in lambda_a36Rq } :: Sing (Case_6989586621679750911 x_a36Nn y_a36No (Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No) :: Ordering) in lambda_a36Rm sX sY (%:<) sX sY = let lambda_a36Rt :: forall x_a36O5 y_a36O6. (t_a36Ra ~ x_a36O5, t_a36Rb ~ y_a36O6) => Sing x_a36O5 -> Sing y_a36O6 -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool) lambda_a36Rt x_a36Ru y_a36Rv = let sScrutinee_6989586621679748547 :: Sing (Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6) sScrutinee_6989586621679748547 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36Ru) y_a36Rv in  case sScrutinee_6989586621679748547 of { SLT -> let lambda_a36Rw :: LTSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 LTSym0 :: Bool) lambda_a36Rw = STrue in lambda_a36Rw SEQ -> let lambda_a36Rx :: EQSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 EQSym0 :: Bool) lambda_a36Rx = SFalse in lambda_a36Rx SGT -> let lambda_a36Ry :: GTSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 GTSym0 :: Bool) lambda_a36Ry = SFalse in lambda_a36Ry } :: Sing (Case_6989586621679750955 x_a36O5 y_a36O6 (Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6) :: Bool) in lambda_a36Rt sX sY (%:<=) sX sY = let lambda_a36Rz :: forall x_a36OC y_a36OD. (t_a36Rc ~ x_a36OC, t_a36Rd ~ y_a36OD) => Sing x_a36OC -> Sing y_a36OD -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool) lambda_a36Rz x_a36RA y_a36RB = let sScrutinee_6989586621679748549 :: Sing (Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD) sScrutinee_6989586621679748549 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RA) y_a36RB in  case sScrutinee_6989586621679748549 of { SLT -> let lambda_a36RC :: LTSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD LTSym0 :: Bool) lambda_a36RC = STrue in lambda_a36RC SEQ -> let lambda_a36RD :: EQSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD EQSym0 :: Bool) lambda_a36RD = STrue in lambda_a36RD SGT -> let lambda_a36RE :: GTSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD GTSym0 :: Bool) lambda_a36RE = SFalse in lambda_a36RE } :: Sing (Case_6989586621679750988 x_a36OC y_a36OD (Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD) :: Bool) in lambda_a36Rz sX sY (%:>) sX sY = let lambda_a36RF :: forall x_a36P9 y_a36Pa. (t_a36Re ~ x_a36P9, t_a36Rf ~ y_a36Pa) => Sing x_a36P9 -> Sing y_a36Pa -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool) lambda_a36RF x_a36RG y_a36RH = let sScrutinee_6989586621679748551 :: Sing (Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa) sScrutinee_6989586621679748551 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RG) y_a36RH in  case sScrutinee_6989586621679748551 of { SLT -> let lambda_a36RI :: LTSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa LTSym0 :: Bool) lambda_a36RI = SFalse in lambda_a36RI SEQ -> let lambda_a36RJ :: EQSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa EQSym0 :: Bool) lambda_a36RJ = SFalse in lambda_a36RJ SGT -> let lambda_a36RK :: GTSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa GTSym0 :: Bool) lambda_a36RK = STrue in lambda_a36RK } :: Sing (Case_6989586621679751021 x_a36P9 y_a36Pa (Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa) :: Bool) in lambda_a36RF sX sY (%:>=) sX sY = let lambda_a36RL :: forall x_a36PG y_a36PH. (t_a36Rg ~ x_a36PG, t_a36Rh ~ y_a36PH) => Sing x_a36PG -> Sing y_a36PH -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool) lambda_a36RL x_a36RM y_a36RN = let sScrutinee_6989586621679748553 :: Sing (Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH) sScrutinee_6989586621679748553 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RM) y_a36RN in  case sScrutinee_6989586621679748553 of { SLT -> let lambda_a36RO :: LTSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH LTSym0 :: Bool) lambda_a36RO = SFalse in lambda_a36RO SEQ -> let lambda_a36RP :: EQSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH EQSym0 :: Bool) lambda_a36RP = STrue in lambda_a36RP SGT -> let lambda_a36RQ :: GTSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH GTSym0 :: Bool) lambda_a36RQ = STrue in lambda_a36RQ } :: Sing (Case_6989586621679751054 x_a36PG y_a36PH (Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH) :: Bool) in lambda_a36RL sX sY sMax sX sY = let lambda_a36RR :: forall x_a36Qd y_a36Qe. (t_a36Ri ~ x_a36Qd, t_a36Rj ~ y_a36Qe) => Sing x_a36Qd -> Sing y_a36Qe -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6) lambda_a36RR x_a36RS y_a36RT = let sScrutinee_6989586621679748555 :: Sing (Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe) sScrutinee_6989586621679748555 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36RS) y_a36RT in  case sScrutinee_6989586621679748555 of { STrue -> let lambda_a36RU :: TrueSym0 ~ Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe => Sing (Case_6989586621679751087 x_a36Qd y_a36Qe TrueSym0 :: a_a36b6) lambda_a36RU = y_a36RT in lambda_a36RU SFalse -> let lambda_a36RV :: FalseSym0 ~ Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe => Sing (Case_6989586621679751087 x_a36Qd y_a36Qe FalseSym0 :: a_a36b6) lambda_a36RV = x_a36RS in lambda_a36RV } :: Sing (Case_6989586621679751087 x_a36Qd y_a36Qe (Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe) :: a_a36b6) in lambda_a36RR sX sY sMin sX sY = let lambda_a36RW :: forall x_a36QK y_a36QL. (t_a36Rk ~ x_a36QK, t_a36Rl ~ y_a36QL) => Sing x_a36QK -> Sing y_a36QL -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6) lambda_a36RW x_a36RX y_a36RY = let sScrutinee_6989586621679748557 :: Sing (Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL) sScrutinee_6989586621679748557 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36RX) y_a36RY in  case sScrutinee_6989586621679748557 of { STrue -> let lambda_a36RZ :: TrueSym0 ~ Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL => Sing (Case_6989586621679751120 x_a36QK y_a36QL TrueSym0 :: a_a36b6) lambda_a36RZ = x_a36RX in lambda_a36RZ SFalse -> let lambda_a36S0 :: FalseSym0 ~ Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL => Sing (Case_6989586621679751120 x_a36QK y_a36QL FalseSym0 :: a_a36b6) lambda_a36S0 = y_a36RY in lambda_a36S0 } :: Sing (Case_6989586621679751120 x_a36QK y_a36QL (Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL) :: a_a36b6) in lambda_a36RW sX sY
sCompare :: forall (t_a36R8 :: a_a36b6) (t_a36R9 :: a_a36b6). SOrd a_a36b6 => Sing t_a36R8 -> Sing t_a36R9 -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering)
(%:<) :: forall (t_a36Ra :: a_a36b6) (t_a36Rb :: a_a36b6). SOrd a_a36b6 => Sing t_a36Ra -> Sing t_a36Rb -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool)
(%:<=) :: forall (t_a36Rc :: a_a36b6) (t_a36Rd :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rc -> Sing t_a36Rd -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool)
(%:>) :: forall (t_a36Re :: a_a36b6) (t_a36Rf :: a_a36b6). SOrd a_a36b6 => Sing t_a36Re -> Sing t_a36Rf -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool)
(%:>=) :: forall (t_a36Rg :: a_a36b6) (t_a36Rh :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rg -> Sing t_a36Rh -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool)
sMax :: forall (t_a36Ri :: a_a36b6) (t_a36Rj :: a_a36b6). SOrd a_a36b6 => Sing t_a36Ri -> Sing t_a36Rj -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6)
sMin :: forall (t_a36Rk :: a_a36b6) (t_a36Rl :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rk -> Sing t_a36Rl -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6)
sCompare :: forall (t_a36R8 :: a_a36b6) (t_a36R9 :: a_a36b6). (SOrd a_a36b6, Apply (Apply CompareSym0 t_a36R8) t_a36R9 ~ Apply (Apply Compare_6989586621679750927Sym0 t_a36R8) t_a36R9) => Sing t_a36R8 -> Sing t_a36R9 -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering)
(%:<) :: forall (t_a36Ra :: a_a36b6) (t_a36Rb :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:<$) t_a36Ra) t_a36Rb ~ Apply (Apply TFHelper_6989586621679750960Sym0 t_a36Ra) t_a36Rb) => Sing t_a36Ra -> Sing t_a36Rb -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool)
(%:<=) :: forall (t_a36Rc :: a_a36b6) (t_a36Rd :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:<=$) t_a36Rc) t_a36Rd ~ Apply (Apply TFHelper_6989586621679750993Sym0 t_a36Rc) t_a36Rd) => Sing t_a36Rc -> Sing t_a36Rd -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool)
(%:>) :: forall (t_a36Re :: a_a36b6) (t_a36Rf :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:>$) t_a36Re) t_a36Rf ~ Apply (Apply TFHelper_6989586621679751026Sym0 t_a36Re) t_a36Rf) => Sing t_a36Re -> Sing t_a36Rf -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool)
(%:>=) :: forall (t_a36Rg :: a_a36b6) (t_a36Rh :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:>=$) t_a36Rg) t_a36Rh ~ Apply (Apply TFHelper_6989586621679751059Sym0 t_a36Rg) t_a36Rh) => Sing t_a36Rg -> Sing t_a36Rh -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool)
sMax :: forall (t_a36Ri :: a_a36b6) (t_a36Rj :: a_a36b6). (SOrd a_a36b6, Apply (Apply MaxSym0 t_a36Ri) t_a36Rj ~ Apply (Apply Max_6989586621679751092Sym0 t_a36Ri) t_a36Rj) => Sing t_a36Ri -> Sing t_a36Rj -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6)
sMin :: forall (t_a36Rk :: a_a36b6) (t_a36Rl :: a_a36b6). (SOrd a_a36b6, Apply (Apply MinSym0 t_a36Rk) t_a36Rl ~ Apply (Apply Min_6989586621679751125Sym0 t_a36Rk) t_a36Rl) => Sing t_a36Rk -> Sing t_a36Rl -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a38DX :: Ordering) (t_a38DY :: Ordering). Sing t_a38DX -> Sing t_a38DY -> Sing (Apply (Apply ThenCmpSym0 t_a38DX) t_a38DY :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a38DJ :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a38DM :: Ordering) (l_a38DL :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a38DH :: Ordering) (t_a38DI :: Ordering) = ThenCmp t_a38DH t_a38DI
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a36Mh :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Ordering -> Type))
data CompareSym1 (l_a36Mk :: a6989586621679748528) (l_a36Mj :: TyFun a6989586621679748528 Ordering)
type CompareSym2 (t_a36Mf :: a6989586621679748528) (t_a36Mg :: a6989586621679748528) = Compare t_a36Mf t_a36Mg
data (:<$) (l_a36Mq :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:<$$) (l_a36Mt :: a6989586621679748528) (l_a36Ms :: TyFun a6989586621679748528 Bool)
type (:<$$$) (t_a36Mo :: a6989586621679748528) (t_a36Mp :: a6989586621679748528) = (:<) t_a36Mo t_a36Mp
data (:<=$) (l_a36Mz :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:<=$$) (l_a36MC :: a6989586621679748528) (l_a36MB :: TyFun a6989586621679748528 Bool)
type (:<=$$$) (t_a36Mx :: a6989586621679748528) (t_a36My :: a6989586621679748528) = (:<=) t_a36Mx t_a36My
data (:>$) (l_a36MI :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:>$$) (l_a36ML :: a6989586621679748528) (l_a36MK :: TyFun a6989586621679748528 Bool)
type (:>$$$) (t_a36MG :: a6989586621679748528) (t_a36MH :: a6989586621679748528) = (:>) t_a36MG t_a36MH
data (:>=$) (l_a36MR :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:>=$$) (l_a36MU :: a6989586621679748528) (l_a36MT :: TyFun a6989586621679748528 Bool)
type (:>=$$$) (t_a36MP :: a6989586621679748528) (t_a36MQ :: a6989586621679748528) = (:>=) t_a36MP t_a36MQ
data MaxSym0 (l_a36N0 :: TyFun a6989586621679748528 (TyFun a6989586621679748528 a6989586621679748528 -> Type))
data MaxSym1 (l_a36N3 :: a6989586621679748528) (l_a36N2 :: TyFun a6989586621679748528 a6989586621679748528)
type MaxSym2 (t_a36MY :: a6989586621679748528) (t_a36MZ :: a6989586621679748528) = Max t_a36MY t_a36MZ
data MinSym0 (l_a36N9 :: TyFun a6989586621679748528 (TyFun a6989586621679748528 a6989586621679748528 -> Type))
data MinSym1 (l_a36Nc :: a6989586621679748528) (l_a36Nb :: TyFun a6989586621679748528 a6989586621679748528)
type MinSym2 (t_a36N7 :: a6989586621679748528) (t_a36N8 :: a6989586621679748528) = Min t_a36N7 t_a36N8
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758342Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758342Sym0
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_6989586621679758394Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758394Sym0
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_6989586621679758450Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758450Sym0
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_6989586621679758494Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758494Sym0
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_6989586621679758531Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758531Sym0
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_6989586621679758574Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758574Sym0
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_6989586621679758625Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758625Sym0
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_6989586621679758684Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758684Sym0
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_6989586621679758751Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758751Sym0
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_6989586621679758826Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758826Sym0
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_6989586621679758861Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758861Sym0
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_6989586621679758885Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758885Sym0
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_6989586621679758914Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679758914Sym0
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.Let6989586621679750903Scrutinee_6989586621679748543Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750903Scrutinee_6989586621679748543Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750913Scrutinee_6989586621679748545Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750913Scrutinee_6989586621679748545Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679750927Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679750927Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750947Scrutinee_6989586621679748547Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750947Scrutinee_6989586621679748547Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679750960Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679750960Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750980Scrutinee_6989586621679748549Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679750980Scrutinee_6989586621679748549Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679750993Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679750993Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751013Scrutinee_6989586621679748551Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751013Scrutinee_6989586621679748551Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679751026Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679751026Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751046Scrutinee_6989586621679748553Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751046Scrutinee_6989586621679748553Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679751059Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679751059Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751079Scrutinee_6989586621679748555Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751079Scrutinee_6989586621679748555Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679751092Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679751092Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751112Scrutinee_6989586621679748557Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679751112Scrutinee_6989586621679748557Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679751125Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679751125Sym0


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Singletons.Prelude.Num
class kproxy_a3Byd ~ Proxy => PNum (kproxy_a3Byd :: Proxy a_a3By9) where type (:+) (arg_a3Bye :: a_a3By9) (arg_a3Byf :: a_a3By9) :: a_a3By9 type (:-) (arg_a3Byn :: a_a3By9) (arg_a3Byo :: a_a3By9) :: a_a3By9 type (:*) (arg_a3Byw :: a_a3By9) (arg_a3Byx :: a_a3By9) :: a_a3By9 type Negate (arg_a3ByF :: a_a3By9) :: a_a3By9 type Abs (arg_a3ByJ :: a_a3By9) :: a_a3By9 type Signum (arg_a3ByN :: a_a3By9) :: a_a3By9 type FromInteger (arg_a3ByR :: Nat) :: a_a3By9 type (:-) a_a3Bz6 a_a3Bz7 = Apply (Apply TFHelper_6989586621679869182Sym0 a_a3Bz6) a_a3Bz7 type Negate a_a3Bzm = Apply Negate_6989586621679869197Sym0 a_a3Bzm where {
    type family (:+) (arg_a3Bye :: a_a3By9)
                     (arg_a3Byf :: a_a3By9) :: a_a3By9;
    type family (:-) (arg_a3Byn :: a_a3By9)
                     (arg_a3Byo :: a_a3By9) :: a_a3By9;
    type family (:*) (arg_a3Byw :: a_a3By9)
                     (arg_a3Byx :: a_a3By9) :: a_a3By9;
    type family Negate (arg_a3ByF :: a_a3By9) :: a_a3By9;
    type family Abs (arg_a3ByJ :: a_a3By9) :: a_a3By9;
    type family Signum (arg_a3ByN :: a_a3By9) :: a_a3By9;
    type family FromInteger (arg_a3ByR :: Nat) :: a_a3By9;
    type (:-) a_a3Bz6 a_a3Bz7 =
        Apply (Apply TFHelper_6989586621679869182Sym0 a_a3Bz6) a_a3Bz7;
    type Negate a_a3Bzm = Apply Negate_6989586621679869197Sym0 a_a3Bzm;
}
class SNum a_a3By9 where (%:-) sX sY = let lambda_a3BzC :: forall x_a3Bz4 y_a3Bz5. (t_a3Bzu ~ x_a3Bz4, t_a3Bzv ~ y_a3Bz5) => Sing x_a3Bz4 -> Sing y_a3Bz5 -> Sing (Apply (Apply (:-$) t_a3Bzu) t_a3Bzv :: a_a3By9) lambda_a3BzC x_a3BzD y_a3BzE = applySing (applySing (singFun2 (Proxy :: Proxy (:+$)) (%:+)) x_a3BzD) (applySing (singFun1 (Proxy :: Proxy NegateSym0) sNegate) y_a3BzE) in lambda_a3BzC sX sY sNegate sX = let lambda_a3BzF :: forall x_a3Bzl. t_a3Bzy ~ x_a3Bzl => Sing x_a3Bzl -> Sing (Apply NegateSym0 t_a3Bzy :: a_a3By9) lambda_a3BzF x_a3BzG = applySing (applySing (singFun2 (Proxy :: Proxy (:-$)) (%:-)) (sFromInteger (sing :: Sing 0))) x_a3BzG in lambda_a3BzF sX
(%:+) :: forall (t_a3Bzs :: a_a3By9) (t_a3Bzt :: a_a3By9). SNum a_a3By9 => Sing t_a3Bzs -> Sing t_a3Bzt -> Sing (Apply (Apply (:+$) t_a3Bzs) t_a3Bzt :: a_a3By9)
(%:-) :: forall (t_a3Bzu :: a_a3By9) (t_a3Bzv :: a_a3By9). SNum a_a3By9 => Sing t_a3Bzu -> Sing t_a3Bzv -> Sing (Apply (Apply (:-$) t_a3Bzu) t_a3Bzv :: a_a3By9)
(%:*) :: forall (t_a3Bzw :: a_a3By9) (t_a3Bzx :: a_a3By9). SNum a_a3By9 => Sing t_a3Bzw -> Sing t_a3Bzx -> Sing (Apply (Apply (:*$) t_a3Bzw) t_a3Bzx :: a_a3By9)
sNegate :: forall (t_a3Bzy :: a_a3By9). SNum a_a3By9 => Sing t_a3Bzy -> Sing (Apply NegateSym0 t_a3Bzy :: a_a3By9)
sAbs :: forall (t_a3Bzz :: a_a3By9). SNum a_a3By9 => Sing t_a3Bzz -> Sing (Apply AbsSym0 t_a3Bzz :: a_a3By9)
sSignum :: forall (t_a3BzA :: a_a3By9). SNum a_a3By9 => Sing t_a3BzA -> Sing (Apply SignumSym0 t_a3BzA :: a_a3By9)
sFromInteger :: forall (t_a3BzB :: Nat). SNum a_a3By9 => Sing t_a3BzB -> Sing (Apply FromIntegerSym0 t_a3BzB :: a_a3By9)
(%:-) :: forall (t_a3Bzu :: a_a3By9) (t_a3Bzv :: a_a3By9). (SNum a_a3By9, Apply (Apply (:-$) t_a3Bzu) t_a3Bzv ~ Apply (Apply TFHelper_6989586621679869182Sym0 t_a3Bzu) t_a3Bzv) => Sing t_a3Bzu -> Sing t_a3Bzv -> Sing (Apply (Apply (:-$) t_a3Bzu) t_a3Bzv :: a_a3By9)
sNegate :: forall (t_a3Bzy :: a_a3By9). (SNum a_a3By9, Apply NegateSym0 t_a3Bzy ~ Apply Negate_6989586621679869197Sym0 t_a3Bzy) => Sing t_a3Bzy -> Sing (Apply NegateSym0 t_a3Bzy :: a_a3By9)
sSubtract :: forall (t_a3Cb4 :: a_a3C9v) (t_a3Cb5 :: a_a3C9v). SNum a_a3C9v => Sing t_a3Cb4 -> Sing t_a3Cb5 -> Sing (Apply (Apply SubtractSym0 t_a3Cb4) t_a3Cb5 :: a_a3C9v)
data (:+$) (l_a3Byi :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:+$$) (l_a3Byl :: a6989586621679869121) (l_a3Byk :: TyFun a6989586621679869121 a6989586621679869121)
type (:+$$$) (t_a3Byg :: a6989586621679869121) (t_a3Byh :: a6989586621679869121) = (:+) t_a3Byg t_a3Byh
data (:-$) (l_a3Byr :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:-$$) (l_a3Byu :: a6989586621679869121) (l_a3Byt :: TyFun a6989586621679869121 a6989586621679869121)
type (:-$$$) (t_a3Byp :: a6989586621679869121) (t_a3Byq :: a6989586621679869121) = (:-) t_a3Byp t_a3Byq
data (:*$) (l_a3ByA :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:*$$) (l_a3ByD :: a6989586621679869121) (l_a3ByC :: TyFun a6989586621679869121 a6989586621679869121)
type (:*$$$) (t_a3Byy :: a6989586621679869121) (t_a3Byz :: a6989586621679869121) = (:*) t_a3Byy t_a3Byz
data NegateSym0 (l_a3ByH :: TyFun a6989586621679869121 a6989586621679869121)
type NegateSym1 (t_a3ByG :: a6989586621679869121) = Negate t_a3ByG
data AbsSym0 (l_a3ByL :: TyFun a6989586621679869121 a6989586621679869121)
type AbsSym1 (t_a3ByK :: a6989586621679869121) = Abs t_a3ByK
data SignumSym0 (l_a3ByP :: TyFun a6989586621679869121 a6989586621679869121)
type SignumSym1 (t_a3ByO :: a6989586621679869121) = Signum t_a3ByO
data FromIntegerSym0 (l_a3ByT :: TyFun Nat a6989586621679869121)
type FromIntegerSym1 (t_a3ByS :: Nat) = FromInteger t_a3ByS
data SubtractSym0 (l_a3CaV :: TyFun a6989586621679871437 (TyFun a6989586621679871437 a6989586621679871437 -> Type))
data SubtractSym1 (l_a3CaY :: a6989586621679871437) (l_a3CaX :: TyFun a6989586621679871437 a6989586621679871437)
type SubtractSym2 (t_a3CaT :: a6989586621679871437) (t_a3CaU :: a6989586621679871437) = Subtract t_a3CaT t_a3CaU
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_6989586621679869182Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679869182Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_6989586621679869197Sym0
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_a3yFb :: TyFun k06989586621679857097 k6989586621679857099)
type ErrorSym1 (t_a3yFa :: k06989586621679857097) = Error t_a3yFa

-- | 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_a3yHT
data (:^$$) (l_a3yHW :: Nat) l_a3yHV
type (:^$$$) (t_a3yHR :: Nat) (t_a3yHS :: Nat) = (:^) t_a3yHR t_a3yHS
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_a3E6D ~ Proxy => PBounded (kproxy_a3E6D :: Proxy a_a3E6C) where type MinBound :: a_a3E6C type MaxBound :: a_a3E6C where {
    type family MinBound :: a_a3E6C;
    type family MaxBound :: a_a3E6C;
}
class SBounded a_a3E6C
sMinBound :: SBounded a_a3E6C => Sing (MinBoundSym0 :: a_a3E6C)
sMaxBound :: SBounded a_a3E6C => Sing (MaxBoundSym0 :: a_a3E6C)
class kproxy_a3FiA ~ Proxy => PEnum (kproxy_a3FiA :: Proxy a_a3Fa2) where type Succ (arg_a3FiB :: a_a3Fa2) :: a_a3Fa2 type Pred (arg_a3FiF :: a_a3Fa2) :: a_a3Fa2 type ToEnum (arg_a3FiJ :: Nat) :: a_a3Fa2 type FromEnum (arg_a3FiN :: a_a3Fa2) :: Nat type EnumFromTo (arg_a3FiR :: a_a3Fa2) (arg_a3FiS :: a_a3Fa2) :: [a_a3Fa2] type EnumFromThenTo (arg_a3Fj0 :: a_a3Fa2) (arg_a3Fj1 :: a_a3Fa2) (arg_a3Fj2 :: a_a3Fa2) :: [a_a3Fa2] type Succ a_a3Fjm = Apply Succ_6989586621679883581Sym0 a_a3Fjm type Pred a_a3Fjz = Apply Pred_6989586621679883594Sym0 a_a3Fjz type EnumFromTo a_a3FjQ a_a3FjR = Apply (Apply EnumFromTo_6989586621679883612Sym0 a_a3FjQ) a_a3FjR type EnumFromThenTo a_a3Fkj a_a3Fkk a_a3Fkl = Apply (Apply (Apply EnumFromThenTo_6989586621679883642Sym0 a_a3Fkj) a_a3Fkk) a_a3Fkl where {
    type family Succ (arg_a3FiB :: a_a3Fa2) :: a_a3Fa2;
    type family Pred (arg_a3FiF :: a_a3Fa2) :: a_a3Fa2;
    type family ToEnum (arg_a3FiJ :: Nat) :: a_a3Fa2;
    type family FromEnum (arg_a3FiN :: a_a3Fa2) :: Nat;
    type family EnumFromTo (arg_a3FiR :: a_a3Fa2)
                           (arg_a3FiS :: a_a3Fa2) :: [a_a3Fa2];
    type family EnumFromThenTo (arg_a3Fj0 :: a_a3Fa2)
                               (arg_a3Fj1 :: a_a3Fa2)
                               (arg_a3Fj2 :: a_a3Fa2) :: [a_a3Fa2];
    type Succ a_a3Fjm = Apply Succ_6989586621679883581Sym0 a_a3Fjm;
    type Pred a_a3Fjz = Apply Pred_6989586621679883594Sym0 a_a3Fjz;
    type EnumFromTo a_a3FjQ a_a3FjR =
        Apply (Apply EnumFromTo_6989586621679883612Sym0 a_a3FjQ) a_a3FjR;
    type EnumFromThenTo a_a3Fkj a_a3Fkk a_a3Fkl =
        Apply (Apply (Apply EnumFromThenTo_6989586621679883642Sym0 a_a3Fkj) a_a3Fkk) a_a3Fkl;
}
class SEnum a_a3Fa2 where sSucc sA_6989586621679883573 = let lambda_a3FnG :: forall a_6989586621679883573_a3Fjl. t_a3Fnx ~ a_6989586621679883573_a3Fjl => Sing a_6989586621679883573_a3Fjl -> Sing (Apply SuccSym0 t_a3Fnx :: a_a3Fa2) lambda_a3FnG a_6989586621679883573_a3FnH = 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_6989586621679883573_a3FnH in lambda_a3FnG sA_6989586621679883573 sPred sA_6989586621679883586 = let lambda_a3FnI :: forall a_6989586621679883586_a3Fjy. t_a3Fny ~ a_6989586621679883586_a3Fjy => Sing a_6989586621679883586_a3Fjy -> Sing (Apply PredSym0 t_a3Fny :: a_a3Fa2) lambda_a3FnI a_6989586621679883586_a3FnJ = 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_6989586621679883586_a3FnJ in lambda_a3FnI sA_6989586621679883586 sEnumFromTo sX sY = let lambda_a3FnM :: forall x_a3FjO y_a3FjP. (t_a3FnB ~ x_a3FjO, t_a3FnC ~ y_a3FjP) => Sing x_a3FjO -> Sing y_a3FjP -> Sing (Apply (Apply EnumFromToSym0 t_a3FnB) t_a3FnC :: [a_a3Fa2]) lambda_a3FnM x_a3FnN y_a3FnO = 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_a3FnN)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a3FnO)) in lambda_a3FnM sX sY sEnumFromThenTo sX1 sX2 sY = let lambda_a3FnQ :: forall x1_a3Fkg x2_a3Fkh y_a3Fki. (t_a3FnD ~ x1_a3Fkg, t_a3FnE ~ x2_a3Fkh, t_a3FnF ~ y_a3Fki) => Sing x1_a3Fkg -> Sing x2_a3Fkh -> Sing y_a3Fki -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3FnD) t_a3FnE) t_a3FnF :: [a_a3Fa2]) lambda_a3FnQ x1_a3FnR x2_a3FnS y_a3FnT = 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_a3FnR)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) x2_a3FnS)) (applySing (singFun1 (Proxy :: Proxy FromEnumSym0) sFromEnum) y_a3FnT)) in lambda_a3FnQ sX1 sX2 sY
sSucc :: forall (t_a3Fnx :: a_a3Fa2). SEnum a_a3Fa2 => Sing t_a3Fnx -> Sing (Apply SuccSym0 t_a3Fnx :: a_a3Fa2)
sPred :: forall (t_a3Fny :: a_a3Fa2). SEnum a_a3Fa2 => Sing t_a3Fny -> Sing (Apply PredSym0 t_a3Fny :: a_a3Fa2)
sToEnum :: forall (t_a3Fnz :: Nat). SEnum a_a3Fa2 => Sing t_a3Fnz -> Sing (Apply ToEnumSym0 t_a3Fnz :: a_a3Fa2)
sFromEnum :: forall (t_a3FnA :: a_a3Fa2). SEnum a_a3Fa2 => Sing t_a3FnA -> Sing (Apply FromEnumSym0 t_a3FnA :: Nat)
sEnumFromTo :: forall (t_a3FnB :: a_a3Fa2) (t_a3FnC :: a_a3Fa2). SEnum a_a3Fa2 => Sing t_a3FnB -> Sing t_a3FnC -> Sing (Apply (Apply EnumFromToSym0 t_a3FnB) t_a3FnC :: [a_a3Fa2])
sEnumFromThenTo :: forall (t_a3FnD :: a_a3Fa2) (t_a3FnE :: a_a3Fa2) (t_a3FnF :: a_a3Fa2). SEnum a_a3Fa2 => Sing t_a3FnD -> Sing t_a3FnE -> Sing t_a3FnF -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3FnD) t_a3FnE) t_a3FnF :: [a_a3Fa2])
sSucc :: forall (t_a3Fnx :: a_a3Fa2). (SEnum a_a3Fa2, Apply SuccSym0 t_a3Fnx ~ Apply Succ_6989586621679883581Sym0 t_a3Fnx) => Sing t_a3Fnx -> Sing (Apply SuccSym0 t_a3Fnx :: a_a3Fa2)
sPred :: forall (t_a3Fny :: a_a3Fa2). (SEnum a_a3Fa2, Apply PredSym0 t_a3Fny ~ Apply Pred_6989586621679883594Sym0 t_a3Fny) => Sing t_a3Fny -> Sing (Apply PredSym0 t_a3Fny :: a_a3Fa2)
sEnumFromTo :: forall (t_a3FnB :: a_a3Fa2) (t_a3FnC :: a_a3Fa2). (SEnum a_a3Fa2, Apply (Apply EnumFromToSym0 t_a3FnB) t_a3FnC ~ Apply (Apply EnumFromTo_6989586621679883612Sym0 t_a3FnB) t_a3FnC) => Sing t_a3FnB -> Sing t_a3FnC -> Sing (Apply (Apply EnumFromToSym0 t_a3FnB) t_a3FnC :: [a_a3Fa2])
sEnumFromThenTo :: forall (t_a3FnD :: a_a3Fa2) (t_a3FnE :: a_a3Fa2) (t_a3FnF :: a_a3Fa2). (SEnum a_a3Fa2, Apply (Apply (Apply EnumFromThenToSym0 t_a3FnD) t_a3FnE) t_a3FnF ~ Apply (Apply (Apply EnumFromThenTo_6989586621679883642Sym0 t_a3FnD) t_a3FnE) t_a3FnF) => Sing t_a3FnD -> Sing t_a3FnE -> Sing t_a3FnF -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3FnD) t_a3FnE) t_a3FnF :: [a_a3Fa2])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3FiD :: TyFun a6989586621679883002 a6989586621679883002)
type SuccSym1 (t_a3FiC :: a6989586621679883002) = Succ t_a3FiC
data PredSym0 (l_a3FiH :: TyFun a6989586621679883002 a6989586621679883002)
type PredSym1 (t_a3FiG :: a6989586621679883002) = Pred t_a3FiG
data ToEnumSym0 (l_a3FiL :: TyFun Nat a6989586621679883002)
type ToEnumSym1 (t_a3FiK :: Nat) = ToEnum t_a3FiK
data FromEnumSym0 (l_a3FiP :: TyFun a6989586621679883002 Nat)
type FromEnumSym1 (t_a3FiO :: a6989586621679883002) = FromEnum t_a3FiO
data EnumFromToSym0 (l_a3FiV :: TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type))
data EnumFromToSym1 (l_a3FiY :: a6989586621679883002) (l_a3FiX :: TyFun a6989586621679883002 [a6989586621679883002])
type EnumFromToSym2 (t_a3FiT :: a6989586621679883002) (t_a3FiU :: a6989586621679883002) = EnumFromTo t_a3FiT t_a3FiU
data EnumFromThenToSym0 (l_a3Fj6 :: TyFun a6989586621679883002 (TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3Fj9 :: a6989586621679883002) (l_a3Fj8 :: TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type))
data EnumFromThenToSym2 (l_a3Fjc :: a6989586621679883002) (l_a3Fjd :: a6989586621679883002) (l_a3Fjb :: TyFun a6989586621679883002 [a6989586621679883002])
type EnumFromThenToSym3 (t_a3Fj3 :: a6989586621679883002) (t_a3Fj4 :: a6989586621679883002) (t_a3Fj5 :: a6989586621679883002) = EnumFromThenTo t_a3Fj3 t_a3Fj4 t_a3Fj5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679903466Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679903476Sym0
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_6989586621679903505Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679903515Sym0
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_6989586621679903541Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679903551Sym0
instance Data.Singletons.Prelude.Enum.PEnum 'Data.Proxy.Proxy
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883090Scrutinee_6989586621679883061Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883127Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883272Scrutinee_6989586621679883051Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883309Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883499Scrutinee_6989586621679883037Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883499Scrutinee_6989586621679883037Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883499Scrutinee_6989586621679883037Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883499Scrutinee_6989586621679883037Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883499Scrutinee_6989586621679883037Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883471GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883471GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883471GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883471GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679883471GoSym0
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_6989586621679883581Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679883594Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679883612Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679883612Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883642Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883642Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883642Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679883662Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679883673Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679883684Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679883695Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679883717Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679883717Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883753Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883753Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679883753Sym0
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_a36b6), kproxy_a36Mc ~ Proxy) => POrd (kproxy_a36Mc :: Proxy a_a36b6) where type Compare (arg_a36Md :: a_a36b6) (arg_a36Me :: a_a36b6) :: Ordering type (:<) (arg_a36Mm :: a_a36b6) (arg_a36Mn :: a_a36b6) :: Bool type (:<=) (arg_a36Mv :: a_a36b6) (arg_a36Mw :: a_a36b6) :: Bool type (:>) (arg_a36ME :: a_a36b6) (arg_a36MF :: a_a36b6) :: Bool type (:>=) (arg_a36MN :: a_a36b6) (arg_a36MO :: a_a36b6) :: Bool type Max (arg_a36MW :: a_a36b6) (arg_a36MX :: a_a36b6) :: a_a36b6 type Min (arg_a36N5 :: a_a36b6) (arg_a36N6 :: a_a36b6) :: a_a36b6 type Compare a_a36NL a_a36NM = Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM type (:<) a_a36Oi a_a36Oj = Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj type (:<=) a_a36OP a_a36OQ = Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ type (:>) a_a36Pm a_a36Pn = Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn type (:>=) a_a36PT a_a36PU = Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU type Max a_a36Qq a_a36Qr = Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr type Min a_a36QX a_a36QY = Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY where {
    type family Compare (arg_a36Md :: a_a36b6)
                        (arg_a36Me :: a_a36b6) :: Ordering;
    type family (:<) (arg_a36Mm :: a_a36b6)
                     (arg_a36Mn :: a_a36b6) :: Bool;
    type family (:<=) (arg_a36Mv :: a_a36b6)
                      (arg_a36Mw :: a_a36b6) :: Bool;
    type family (:>) (arg_a36ME :: a_a36b6)
                     (arg_a36MF :: a_a36b6) :: Bool;
    type family (:>=) (arg_a36MN :: a_a36b6)
                      (arg_a36MO :: a_a36b6) :: Bool;
    type family Max (arg_a36MW :: a_a36b6)
                    (arg_a36MX :: a_a36b6) :: a_a36b6;
    type family Min (arg_a36N5 :: a_a36b6)
                    (arg_a36N6 :: a_a36b6) :: a_a36b6;
    type Compare a_a36NL a_a36NM =
        Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM;
    type (:<) a_a36Oi a_a36Oj =
        Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj;
    type (:<=) a_a36OP a_a36OQ =
        Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ;
    type (:>) a_a36Pm a_a36Pn =
        Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn;
    type (:>=) a_a36PT a_a36PU =
        Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU;
    type Max a_a36Qq a_a36Qr =
        Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr;
    type Min a_a36QX a_a36QY =
        Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY;
}
class SEq a_a36b6 => SOrd a_a36b6 where sCompare sX sY = let lambda_a36Rm :: forall x_a36Nn y_a36No. (t_a36R8 ~ x_a36Nn, t_a36R9 ~ y_a36No) => Sing x_a36Nn -> Sing y_a36No -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering) lambda_a36Rm x_a36Rn y_a36Ro = let sScrutinee_6989586621679748543 :: Sing (Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No) sScrutinee_6989586621679748543 = applySing (applySing (singFun2 (Proxy :: Proxy (:==$)) (%:==)) x_a36Rn) y_a36Ro in  case sScrutinee_6989586621679748543 of { STrue -> let lambda_a36Rp :: TrueSym0 ~ Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750911 x_a36Nn y_a36No TrueSym0 :: Ordering) lambda_a36Rp = SEQ in lambda_a36Rp SFalse -> let lambda_a36Rq :: FalseSym0 ~ Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750911 x_a36Nn y_a36No FalseSym0 :: Ordering) lambda_a36Rq = let sScrutinee_6989586621679748545 :: Sing (Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No) sScrutinee_6989586621679748545 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36Rn) y_a36Ro in  case sScrutinee_6989586621679748545 of { STrue -> let lambda_a36Rr :: TrueSym0 ~ Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750921 x_a36Nn y_a36No TrueSym0 :: Ordering) lambda_a36Rr = SLT in lambda_a36Rr SFalse -> let lambda_a36Rs :: FalseSym0 ~ Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No => Sing (Case_6989586621679750921 x_a36Nn y_a36No FalseSym0 :: Ordering) lambda_a36Rs = SGT in lambda_a36Rs } :: Sing (Case_6989586621679750921 x_a36Nn y_a36No (Let6989586621679750913Scrutinee_6989586621679748545Sym2 x_a36Nn y_a36No) :: Ordering) in lambda_a36Rq } :: Sing (Case_6989586621679750911 x_a36Nn y_a36No (Let6989586621679750903Scrutinee_6989586621679748543Sym2 x_a36Nn y_a36No) :: Ordering) in lambda_a36Rm sX sY (%:<) sX sY = let lambda_a36Rt :: forall x_a36O5 y_a36O6. (t_a36Ra ~ x_a36O5, t_a36Rb ~ y_a36O6) => Sing x_a36O5 -> Sing y_a36O6 -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool) lambda_a36Rt x_a36Ru y_a36Rv = let sScrutinee_6989586621679748547 :: Sing (Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6) sScrutinee_6989586621679748547 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36Ru) y_a36Rv in  case sScrutinee_6989586621679748547 of { SLT -> let lambda_a36Rw :: LTSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 LTSym0 :: Bool) lambda_a36Rw = STrue in lambda_a36Rw SEQ -> let lambda_a36Rx :: EQSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 EQSym0 :: Bool) lambda_a36Rx = SFalse in lambda_a36Rx SGT -> let lambda_a36Ry :: GTSym0 ~ Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6 => Sing (Case_6989586621679750955 x_a36O5 y_a36O6 GTSym0 :: Bool) lambda_a36Ry = SFalse in lambda_a36Ry } :: Sing (Case_6989586621679750955 x_a36O5 y_a36O6 (Let6989586621679750947Scrutinee_6989586621679748547Sym2 x_a36O5 y_a36O6) :: Bool) in lambda_a36Rt sX sY (%:<=) sX sY = let lambda_a36Rz :: forall x_a36OC y_a36OD. (t_a36Rc ~ x_a36OC, t_a36Rd ~ y_a36OD) => Sing x_a36OC -> Sing y_a36OD -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool) lambda_a36Rz x_a36RA y_a36RB = let sScrutinee_6989586621679748549 :: Sing (Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD) sScrutinee_6989586621679748549 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RA) y_a36RB in  case sScrutinee_6989586621679748549 of { SLT -> let lambda_a36RC :: LTSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD LTSym0 :: Bool) lambda_a36RC = STrue in lambda_a36RC SEQ -> let lambda_a36RD :: EQSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD EQSym0 :: Bool) lambda_a36RD = STrue in lambda_a36RD SGT -> let lambda_a36RE :: GTSym0 ~ Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD => Sing (Case_6989586621679750988 x_a36OC y_a36OD GTSym0 :: Bool) lambda_a36RE = SFalse in lambda_a36RE } :: Sing (Case_6989586621679750988 x_a36OC y_a36OD (Let6989586621679750980Scrutinee_6989586621679748549Sym2 x_a36OC y_a36OD) :: Bool) in lambda_a36Rz sX sY (%:>) sX sY = let lambda_a36RF :: forall x_a36P9 y_a36Pa. (t_a36Re ~ x_a36P9, t_a36Rf ~ y_a36Pa) => Sing x_a36P9 -> Sing y_a36Pa -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool) lambda_a36RF x_a36RG y_a36RH = let sScrutinee_6989586621679748551 :: Sing (Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa) sScrutinee_6989586621679748551 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RG) y_a36RH in  case sScrutinee_6989586621679748551 of { SLT -> let lambda_a36RI :: LTSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa LTSym0 :: Bool) lambda_a36RI = SFalse in lambda_a36RI SEQ -> let lambda_a36RJ :: EQSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa EQSym0 :: Bool) lambda_a36RJ = SFalse in lambda_a36RJ SGT -> let lambda_a36RK :: GTSym0 ~ Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa => Sing (Case_6989586621679751021 x_a36P9 y_a36Pa GTSym0 :: Bool) lambda_a36RK = STrue in lambda_a36RK } :: Sing (Case_6989586621679751021 x_a36P9 y_a36Pa (Let6989586621679751013Scrutinee_6989586621679748551Sym2 x_a36P9 y_a36Pa) :: Bool) in lambda_a36RF sX sY (%:>=) sX sY = let lambda_a36RL :: forall x_a36PG y_a36PH. (t_a36Rg ~ x_a36PG, t_a36Rh ~ y_a36PH) => Sing x_a36PG -> Sing y_a36PH -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool) lambda_a36RL x_a36RM y_a36RN = let sScrutinee_6989586621679748553 :: Sing (Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH) sScrutinee_6989586621679748553 = applySing (applySing (singFun2 (Proxy :: Proxy CompareSym0) sCompare) x_a36RM) y_a36RN in  case sScrutinee_6989586621679748553 of { SLT -> let lambda_a36RO :: LTSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH LTSym0 :: Bool) lambda_a36RO = SFalse in lambda_a36RO SEQ -> let lambda_a36RP :: EQSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH EQSym0 :: Bool) lambda_a36RP = STrue in lambda_a36RP SGT -> let lambda_a36RQ :: GTSym0 ~ Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH => Sing (Case_6989586621679751054 x_a36PG y_a36PH GTSym0 :: Bool) lambda_a36RQ = STrue in lambda_a36RQ } :: Sing (Case_6989586621679751054 x_a36PG y_a36PH (Let6989586621679751046Scrutinee_6989586621679748553Sym2 x_a36PG y_a36PH) :: Bool) in lambda_a36RL sX sY sMax sX sY = let lambda_a36RR :: forall x_a36Qd y_a36Qe. (t_a36Ri ~ x_a36Qd, t_a36Rj ~ y_a36Qe) => Sing x_a36Qd -> Sing y_a36Qe -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6) lambda_a36RR x_a36RS y_a36RT = let sScrutinee_6989586621679748555 :: Sing (Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe) sScrutinee_6989586621679748555 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36RS) y_a36RT in  case sScrutinee_6989586621679748555 of { STrue -> let lambda_a36RU :: TrueSym0 ~ Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe => Sing (Case_6989586621679751087 x_a36Qd y_a36Qe TrueSym0 :: a_a36b6) lambda_a36RU = y_a36RT in lambda_a36RU SFalse -> let lambda_a36RV :: FalseSym0 ~ Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe => Sing (Case_6989586621679751087 x_a36Qd y_a36Qe FalseSym0 :: a_a36b6) lambda_a36RV = x_a36RS in lambda_a36RV } :: Sing (Case_6989586621679751087 x_a36Qd y_a36Qe (Let6989586621679751079Scrutinee_6989586621679748555Sym2 x_a36Qd y_a36Qe) :: a_a36b6) in lambda_a36RR sX sY sMin sX sY = let lambda_a36RW :: forall x_a36QK y_a36QL. (t_a36Rk ~ x_a36QK, t_a36Rl ~ y_a36QL) => Sing x_a36QK -> Sing y_a36QL -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6) lambda_a36RW x_a36RX y_a36RY = let sScrutinee_6989586621679748557 :: Sing (Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL) sScrutinee_6989586621679748557 = applySing (applySing (singFun2 (Proxy :: Proxy (:<=$)) (%:<=)) x_a36RX) y_a36RY in  case sScrutinee_6989586621679748557 of { STrue -> let lambda_a36RZ :: TrueSym0 ~ Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL => Sing (Case_6989586621679751120 x_a36QK y_a36QL TrueSym0 :: a_a36b6) lambda_a36RZ = x_a36RX in lambda_a36RZ SFalse -> let lambda_a36S0 :: FalseSym0 ~ Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL => Sing (Case_6989586621679751120 x_a36QK y_a36QL FalseSym0 :: a_a36b6) lambda_a36S0 = y_a36RY in lambda_a36S0 } :: Sing (Case_6989586621679751120 x_a36QK y_a36QL (Let6989586621679751112Scrutinee_6989586621679748557Sym2 x_a36QK y_a36QL) :: a_a36b6) in lambda_a36RW sX sY
sCompare :: forall (t_a36R8 :: a_a36b6) (t_a36R9 :: a_a36b6). SOrd a_a36b6 => Sing t_a36R8 -> Sing t_a36R9 -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering)
(%:<) :: forall (t_a36Ra :: a_a36b6) (t_a36Rb :: a_a36b6). SOrd a_a36b6 => Sing t_a36Ra -> Sing t_a36Rb -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool)
(%:<=) :: forall (t_a36Rc :: a_a36b6) (t_a36Rd :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rc -> Sing t_a36Rd -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool)
(%:>) :: forall (t_a36Re :: a_a36b6) (t_a36Rf :: a_a36b6). SOrd a_a36b6 => Sing t_a36Re -> Sing t_a36Rf -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool)
(%:>=) :: forall (t_a36Rg :: a_a36b6) (t_a36Rh :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rg -> Sing t_a36Rh -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool)
sMax :: forall (t_a36Ri :: a_a36b6) (t_a36Rj :: a_a36b6). SOrd a_a36b6 => Sing t_a36Ri -> Sing t_a36Rj -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6)
sMin :: forall (t_a36Rk :: a_a36b6) (t_a36Rl :: a_a36b6). SOrd a_a36b6 => Sing t_a36Rk -> Sing t_a36Rl -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6)
sCompare :: forall (t_a36R8 :: a_a36b6) (t_a36R9 :: a_a36b6). (SOrd a_a36b6, Apply (Apply CompareSym0 t_a36R8) t_a36R9 ~ Apply (Apply Compare_6989586621679750927Sym0 t_a36R8) t_a36R9) => Sing t_a36R8 -> Sing t_a36R9 -> Sing (Apply (Apply CompareSym0 t_a36R8) t_a36R9 :: Ordering)
(%:<) :: forall (t_a36Ra :: a_a36b6) (t_a36Rb :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:<$) t_a36Ra) t_a36Rb ~ Apply (Apply TFHelper_6989586621679750960Sym0 t_a36Ra) t_a36Rb) => Sing t_a36Ra -> Sing t_a36Rb -> Sing (Apply (Apply (:<$) t_a36Ra) t_a36Rb :: Bool)
(%:<=) :: forall (t_a36Rc :: a_a36b6) (t_a36Rd :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:<=$) t_a36Rc) t_a36Rd ~ Apply (Apply TFHelper_6989586621679750993Sym0 t_a36Rc) t_a36Rd) => Sing t_a36Rc -> Sing t_a36Rd -> Sing (Apply (Apply (:<=$) t_a36Rc) t_a36Rd :: Bool)
(%:>) :: forall (t_a36Re :: a_a36b6) (t_a36Rf :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:>$) t_a36Re) t_a36Rf ~ Apply (Apply TFHelper_6989586621679751026Sym0 t_a36Re) t_a36Rf) => Sing t_a36Re -> Sing t_a36Rf -> Sing (Apply (Apply (:>$) t_a36Re) t_a36Rf :: Bool)
(%:>=) :: forall (t_a36Rg :: a_a36b6) (t_a36Rh :: a_a36b6). (SOrd a_a36b6, Apply (Apply (:>=$) t_a36Rg) t_a36Rh ~ Apply (Apply TFHelper_6989586621679751059Sym0 t_a36Rg) t_a36Rh) => Sing t_a36Rg -> Sing t_a36Rh -> Sing (Apply (Apply (:>=$) t_a36Rg) t_a36Rh :: Bool)
sMax :: forall (t_a36Ri :: a_a36b6) (t_a36Rj :: a_a36b6). (SOrd a_a36b6, Apply (Apply MaxSym0 t_a36Ri) t_a36Rj ~ Apply (Apply Max_6989586621679751092Sym0 t_a36Ri) t_a36Rj) => Sing t_a36Ri -> Sing t_a36Rj -> Sing (Apply (Apply MaxSym0 t_a36Ri) t_a36Rj :: a_a36b6)
sMin :: forall (t_a36Rk :: a_a36b6) (t_a36Rl :: a_a36b6). (SOrd a_a36b6, Apply (Apply MinSym0 t_a36Rk) t_a36Rl ~ Apply (Apply Min_6989586621679751125Sym0 t_a36Rk) t_a36Rl) => Sing t_a36Rk -> Sing t_a36Rl -> Sing (Apply (Apply MinSym0 t_a36Rk) t_a36Rl :: a_a36b6)
sThenCmp :: forall (t_a38DX :: Ordering) (t_a38DY :: Ordering). Sing t_a38DX -> Sing t_a38DY -> Sing (Apply (Apply ThenCmpSym0 t_a38DX) t_a38DY :: Ordering)
sFoldl :: forall (t_a2GGK :: TyFun b_a2GFM (TyFun a_a2GFL b_a2GFM -> Type) -> Type) (t_a2GGL :: b_a2GFM) (t_a2GGM :: [a_a2GFL]). Sing t_a2GGK -> Sing t_a2GGL -> Sing t_a2GGM -> Sing (Apply (Apply (Apply FoldlSym0 t_a2GGK) t_a2GGL) t_a2GGM :: b_a2GFM)

-- | 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_a3yFb :: TyFun k06989586621679857097 k6989586621679857099)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data CompareSym0 (l_a36Mh :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Ordering -> Type))
data ThenCmpSym0 (l_a38DJ :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type) -> Type))

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


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

-- | The singleton kind-indexed data family.
type SEither = (Sing :: Either a_abwx b_abwy -> Type)
either_ :: forall a_a3YIC c_a3YID b_a3YIE. (a_a3YIC -> c_a3YID) -> (b_a3YIE -> c_a3YID) -> Either a_a3YIC b_a3YIE -> c_a3YID
sEither_ :: forall (t_a3YJ9 :: TyFun a_a3YIC c_a3YID -> Type) (t_a3YJa :: TyFun b_a3YIE c_a3YID -> Type) (t_a3YJb :: Either a_a3YIC b_a3YIE). Sing t_a3YJ9 -> Sing t_a3YJa -> Sing t_a3YJb -> Sing (Apply (Apply (Apply Either_Sym0 t_a3YJ9) t_a3YJa) t_a3YJb :: c_a3YID)
sLefts :: forall (t_a3Z4P :: [Either a_a3Z36 b_a3Z37]). Sing t_a3Z4P -> Sing (Apply LeftsSym0 t_a3Z4P :: [a_a3Z36])
sRights :: forall (t_a3Z4O :: [Either a_a3Z34 b_a3Z35]). Sing t_a3Z4O -> Sing (Apply RightsSym0 t_a3Z4O :: [b_a3Z35])
sPartitionEithers :: forall (t_a3Z4N :: [Either a_a3Z32 b_a3Z33]). Sing t_a3Z4N -> Sing (Apply PartitionEithersSym0 t_a3Z4N :: ([a_a3Z32], [b_a3Z33]))
sIsLeft :: forall (t_a3Z4M :: Either a_a3Z30 b_a3Z31). Sing t_a3Z4M -> Sing (Apply IsLeftSym0 t_a3Z4M :: Bool)
sIsRight :: forall (t_a3Z4L :: Either a_a3Z2Y b_a3Z2Z). Sing t_a3Z4L -> Sing (Apply IsRightSym0 t_a3Z4L :: Bool)
data LeftSym0 (l_a2DIy :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a2DIx :: a6989586621679054093) = Left t_a2DIx
data RightSym0 (l_a2DIB :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a2DIA :: b6989586621679054094) = Right t_a2DIA
data Either_Sym0 (l_a3YIN :: TyFun (TyFun a6989586621679958182 c6989586621679958183 -> Type) (TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type) -> Type))
data Either_Sym1 (l_a3YIQ :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIP :: TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type))
data Either_Sym2 (l_a3YIT :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIU :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (l_a3YIS :: TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183)
type Either_Sym3 (t_a3YIK :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (t_a3YIL :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (t_a3YIM :: Either a6989586621679958182 b6989586621679958184) = Either_ t_a3YIK t_a3YIL t_a3YIM
data LeftsSym0 (l_a3Z4C :: TyFun [Either a6989586621679959452 b6989586621679959453] [a6989586621679959452])
type LeftsSym1 (t_a3Z4B :: [Either a6989586621679959452 b6989586621679959453]) = Lefts t_a3Z4B
data RightsSym0 (l_a3Z4s :: TyFun [Either a6989586621679959450 b6989586621679959451] [b6989586621679959451])
type RightsSym1 (t_a3Z4r :: [Either a6989586621679959450 b6989586621679959451]) = Rights t_a3Z4r
data IsLeftSym0 (l_a3Z3C :: TyFun (Either a6989586621679959446 b6989586621679959447) Bool)
type IsLeftSym1 (t_a3Z3B :: Either a6989586621679959446 b6989586621679959447) = IsLeft t_a3Z3B
data IsRightSym0 (l_a3Z3s :: TyFun (Either a6989586621679959444 b6989586621679959445) Bool)
type IsRightSym1 (t_a3Z3r :: Either a6989586621679959444 b6989586621679959445) = IsRight t_a3Z3r
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500RightSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679959500LeftSym0
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_a41yM a_a41yN. b_a41yM -> (a_a41yN -> b_a41yM) -> Maybe a_a41yN -> b_a41yM
sMaybe_ :: forall (t_a41zg :: b_a41yM) (t_a41zh :: TyFun a_a41yN b_a41yM -> Type) (t_a41zi :: Maybe a_a41yN). Sing t_a41zg -> Sing t_a41zh -> Sing t_a41zi -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a41zg) t_a41zh) t_a41zi :: b_a41yM)
sIsJust :: forall (t_a41V9 :: Maybe a_a41T0). Sing t_a41V9 -> Sing (Apply IsJustSym0 t_a41V9 :: Bool)
sIsNothing :: forall (t_a41V8 :: Maybe a_a41SZ). Sing t_a41V8 -> Sing (Apply IsNothingSym0 t_a41V8 :: Bool)
sFromJust :: forall (t_a41V7 :: Maybe a_a41SY). Sing t_a41V7 -> Sing (Apply FromJustSym0 t_a41V7 :: a_a41SY)
sFromMaybe :: forall (t_a41V5 :: a_a41SX) (t_a41V6 :: Maybe a_a41SX). Sing t_a41V5 -> Sing t_a41V6 -> Sing (Apply (Apply FromMaybeSym0 t_a41V5) t_a41V6 :: a_a41SX)
sListToMaybe :: forall (t_a41V3 :: [a_a41SV]). Sing t_a41V3 -> Sing (Apply ListToMaybeSym0 t_a41V3 :: Maybe a_a41SV)
sMaybeToList :: forall (t_a41V4 :: Maybe a_a41SW). Sing t_a41V4 -> Sing (Apply MaybeToListSym0 t_a41V4 :: [a_a41SW])
sCatMaybes :: forall (t_a41V2 :: [Maybe a_a41SU]). Sing t_a41V2 -> Sing (Apply CatMaybesSym0 t_a41V2 :: [a_a41SU])
sMapMaybe :: forall (t_a41V0 :: TyFun a_a41SS (Maybe b_a41ST) -> Type) (t_a41V1 :: [a_a41SS]). Sing t_a41V0 -> Sing t_a41V1 -> Sing (Apply (Apply MapMaybeSym0 t_a41V0) t_a41V1 :: [b_a41ST])
type NothingSym0 = Nothing
data JustSym0 (l_a2DI7 :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a2DI6 :: a3530822107858468866) = Just t_a2DI6
data Maybe_Sym0 (l_a41yV :: TyFun b6989586621679969104 (TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type) -> Type))
data Maybe_Sym1 (l_a41yY :: b6989586621679969104) (l_a41yX :: TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type))
data Maybe_Sym2 (l_a41z1 :: b6989586621679969104) (l_a41z2 :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (l_a41z0 :: TyFun (Maybe a6989586621679969105) b6989586621679969104)
type Maybe_Sym3 (t_a41yS :: b6989586621679969104) (t_a41yT :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (t_a41yU :: Maybe a6989586621679969105) = Maybe_ t_a41yS t_a41yT t_a41yU
data IsJustSym0 (l_a41UU :: TyFun (Maybe a6989586621679970358) Bool)
type IsJustSym1 (t_a41UT :: Maybe a6989586621679970358) = IsJust t_a41UT
data IsNothingSym0 (l_a41UN :: TyFun (Maybe a6989586621679970357) Bool)
type IsNothingSym1 (t_a41UM :: Maybe a6989586621679970357) = IsNothing t_a41UM
data FromJustSym0 (l_a41UI :: TyFun (Maybe a6989586621679970356) a6989586621679970356)
type FromJustSym1 (t_a41UH :: Maybe a6989586621679970356) = FromJust t_a41UH
data FromMaybeSym0 (l_a41Uu :: TyFun a6989586621679970355 (TyFun (Maybe a6989586621679970355) a6989586621679970355 -> Type))
data FromMaybeSym1 (l_a41Ux :: a6989586621679970355) (l_a41Uw :: TyFun (Maybe a6989586621679970355) a6989586621679970355)
type FromMaybeSym2 (t_a41Us :: a6989586621679970355) (t_a41Ut :: Maybe a6989586621679970355) = FromMaybe t_a41Us t_a41Ut
data ListToMaybeSym0 (l_a41Ug :: TyFun [a6989586621679970353] (Maybe a6989586621679970353))
type ListToMaybeSym1 (t_a41Uf :: [a6989586621679970353]) = ListToMaybe t_a41Uf
data MaybeToListSym0 (l_a41Uo :: TyFun (Maybe a6989586621679970354) [a6989586621679970354])
type MaybeToListSym1 (t_a41Un :: Maybe a6989586621679970354) = MaybeToList t_a41Un
data CatMaybesSym0 (l_a41U9 :: TyFun [Maybe a6989586621679970352] [a6989586621679970352])
type CatMaybesSym1 (t_a41U8 :: [Maybe a6989586621679970352]) = CatMaybes t_a41U8
data MapMaybeSym0 (l_a41Tr :: TyFun (TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (TyFun [a6989586621679970350] [b6989586621679970351] -> Type))
data MapMaybeSym1 (l_a41Tu :: TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (l_a41Tt :: TyFun [a6989586621679970350] [b6989586621679970351])
type MapMaybeSym2 (t_a41Tp :: TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (t_a41Tq :: [a6989586621679970350]) = MapMaybe t_a41Tp t_a41Tq
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970398RsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970398RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970398RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970411Scrutinee_6989586621679970381Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970411Scrutinee_6989586621679970381Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679970411Scrutinee_6989586621679970381Sym0
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_a44V7 :: (a_a44TX, b_a44TY)). Sing t_a44V7 -> Sing (Apply FstSym0 t_a44V7 :: a_a44TX)
sSnd :: forall (t_a44V6 :: (a_a44TV, b_a44TW)). Sing t_a44V6 -> Sing (Apply SndSym0 t_a44V6 :: b_a44TW)
sCurry :: forall (t_a44V3 :: TyFun (a_a44TS, b_a44TT) c_a44TU -> Type) (t_a44V4 :: a_a44TS) (t_a44V5 :: b_a44TT). Sing t_a44V3 -> Sing t_a44V4 -> Sing t_a44V5 -> Sing (Apply (Apply (Apply CurrySym0 t_a44V3) t_a44V4) t_a44V5 :: c_a44TU)
sUncurry :: forall (t_a44V8 :: TyFun a_a44TP (TyFun b_a44TQ c_a44TR -> Type) -> Type) (t_a44V9 :: (a_a44TP, b_a44TQ)). Sing t_a44V8 -> Sing t_a44V9 -> Sing (Apply (Apply UncurrySym0 t_a44V8) t_a44V9 :: c_a44TR)
sSwap :: forall (t_a44V2 :: (a_a44TN, b_a44TO)). Sing t_a44V2 -> Sing (Apply SwapSym0 t_a44V2 :: (b_a44TO, a_a44TN))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data FstSym0 (l_a44UK :: TyFun (a6989586621679981949, b6989586621679981950) a6989586621679981949)
type FstSym1 (t_a44UJ :: (a6989586621679981949, b6989586621679981950)) = Fst t_a44UJ
data SndSym0 (l_a44UC :: TyFun (a6989586621679981947, b6989586621679981948) b6989586621679981948)
type SndSym1 (t_a44UB :: (a6989586621679981947, b6989586621679981948)) = Snd t_a44UB
data CurrySym0 (l_a44Um :: TyFun (TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type) -> Type))
data CurrySym1 (l_a44Up :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Uo :: TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type))
data CurrySym2 (l_a44Us :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Ut :: a6989586621679981944) (l_a44Ur :: TyFun b6989586621679981945 c6989586621679981946)
type CurrySym3 (t_a44Uj :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (t_a44Uk :: a6989586621679981944) (t_a44Ul :: b6989586621679981945) = Curry t_a44Uj t_a44Uk t_a44Ul
data UncurrySym0 (l_a44UT :: TyFun (TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943 -> Type))
data UncurrySym1 (l_a44UW :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (l_a44UV :: TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943)
type UncurrySym2 (t_a44UR :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (t_a44US :: (a6989586621679981941, b6989586621679981942)) = Uncurry t_a44UR t_a44US
data SwapSym0 (l_a44Ue :: TyFun (a6989586621679981939, b6989586621679981940) (b6989586621679981940, a6989586621679981939))
type SwapSym1 (t_a44Ud :: (a6989586621679981939, b6989586621679981940)) = Swap t_a44Ud
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_a2UuO :: [a_a2Urc]) (t_a2UuP :: [a_a2Urc]). Sing t_a2UuO -> Sing t_a2UuP -> Sing (Apply (Apply (:++$) t_a2UuO) t_a2UuP :: [a_a2Urc])
infixr 5 %:++
sHead :: forall (t_a4a6T :: [a_a48QI]). Sing t_a4a6T -> Sing (Apply HeadSym0 t_a4a6T :: a_a48QI)
sLast :: forall (t_a4a6S :: [a_a48QH]). Sing t_a4a6S -> Sing (Apply LastSym0 t_a4a6S :: a_a48QH)
sTail :: forall (t_a4a6R :: [a_a48QG]). Sing t_a4a6R -> Sing (Apply TailSym0 t_a4a6R :: [a_a48QG])
sInit :: forall (t_a4a6Q :: [a_a48QF]). Sing t_a4a6Q -> Sing (Apply InitSym0 t_a4a6Q :: [a_a48QF])
sNull :: forall (t_a4a6N :: [a_a48QE]). Sing t_a4a6N -> Sing (Apply NullSym0 t_a4a6N :: Bool)
sLength :: forall (t_a4a4p :: [a_a48OP]). Sing t_a4a4p -> Sing (Apply LengthSym0 t_a4a4p :: Nat)
sMap :: forall (t_a2UuQ :: TyFun a_a2Urd b_a2Ure -> Type) (t_a2UuR :: [a_a2Urd]). Sing t_a2UuQ -> Sing t_a2UuR -> Sing (Apply (Apply MapSym0 t_a2UuQ) t_a2UuR :: [b_a2Ure])
sReverse :: forall (t_a4a6K :: [a_a48QD]). Sing t_a4a6K -> Sing (Apply ReverseSym0 t_a4a6K :: [a_a48QD])
sIntersperse :: forall (t_a4a6G :: a_a48QC) (t_a4a6H :: [a_a48QC]). Sing t_a4a6G -> Sing t_a4a6H -> Sing (Apply (Apply IntersperseSym0 t_a4a6G) t_a4a6H :: [a_a48QC])
sIntercalate :: forall (t_a4a6I :: [a_a48QB]) (t_a4a6J :: [[a_a48QB]]). Sing t_a4a6I -> Sing t_a4a6J -> Sing (Apply (Apply IntercalateSym0 t_a4a6I) t_a4a6J :: [a_a48QB])
sTranspose :: forall (t_a4a6U :: [[a_a48ON]]). Sing t_a4a6U -> Sing (Apply TransposeSym0 t_a4a6U :: [[a_a48ON]])
sSubsequences :: forall (t_a4a6F :: [a_a48QA]). Sing t_a4a6F -> Sing (Apply SubsequencesSym0 t_a4a6F :: [[a_a48QA]])
sPermutations :: forall (t_a4a6B :: [a_a48Qx]). Sing t_a4a6B -> Sing (Apply PermutationsSym0 t_a4a6B :: [[a_a48Qx]])
sFoldl :: forall (t_a2GGK :: TyFun b_a2GFM (TyFun a_a2GFL b_a2GFM -> Type) -> Type) (t_a2GGL :: b_a2GFM) (t_a2GGM :: [a_a2GFL]). Sing t_a2GGK -> Sing t_a2GGL -> Sing t_a2GGM -> Sing (Apply (Apply (Apply FoldlSym0 t_a2GGK) t_a2GGL) t_a2GGM :: b_a2GFM)
sFoldl' :: forall (t_a4a6w :: TyFun b_a48Qw (TyFun a_a48Qv b_a48Qw -> Type) -> Type) (t_a4a6x :: b_a48Qw) (t_a4a6y :: [a_a48Qv]). Sing t_a4a6w -> Sing t_a4a6x -> Sing t_a4a6y -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a4a6w) t_a4a6x) t_a4a6y :: b_a48Qw)
sFoldl1 :: forall (t_a4a6o :: TyFun a_a48Qu (TyFun a_a48Qu a_a48Qu -> Type) -> Type) (t_a4a6p :: [a_a48Qu]). Sing t_a4a6o -> Sing t_a4a6p -> Sing (Apply (Apply Foldl1Sym0 t_a4a6o) t_a4a6p :: a_a48Qu)
sFoldl1' :: forall (t_a4a6z :: TyFun a_a48Qt (TyFun a_a48Qt a_a48Qt -> Type) -> Type) (t_a4a6A :: [a_a48Qt]). Sing t_a4a6z -> Sing t_a4a6A -> Sing (Apply (Apply Foldl1'Sym0 t_a4a6z) t_a4a6A :: a_a48Qt)
sFoldr :: forall (t_a2UuS :: TyFun a_a2Urf (TyFun b_a2Urg b_a2Urg -> Type) -> Type) (t_a2UuT :: b_a2Urg) (t_a2UuU :: [a_a2Urf]). Sing t_a2UuS -> Sing t_a2UuT -> Sing t_a2UuU -> Sing (Apply (Apply (Apply FoldrSym0 t_a2UuS) t_a2UuT) t_a2UuU :: b_a2Urg)
sFoldr1 :: forall (t_a4a6m :: TyFun a_a48Qs (TyFun a_a48Qs a_a48Qs -> Type) -> Type) (t_a4a6n :: [a_a48Qs]). Sing t_a4a6m -> Sing t_a4a6n -> Sing (Apply (Apply Foldr1Sym0 t_a4a6m) t_a4a6n :: a_a48Qs)
sConcat :: forall (t_a4a6l :: [[a_a48Qr]]). Sing t_a4a6l -> Sing (Apply ConcatSym0 t_a4a6l :: [a_a48Qr])
sConcatMap :: forall (t_a4a6j :: TyFun a_a48Qp [b_a48Qq] -> Type) (t_a4a6k :: [a_a48Qp]). Sing t_a4a6j -> Sing t_a4a6k -> Sing (Apply (Apply ConcatMapSym0 t_a4a6j) t_a4a6k :: [b_a48Qq])
sAnd :: forall (t_a4a6i :: [Bool]). Sing t_a4a6i -> Sing (Apply AndSym0 t_a4a6i :: Bool)
sOr :: forall (t_a4a6h :: [Bool]). Sing t_a4a6h -> Sing (Apply OrSym0 t_a4a6h :: Bool)
sAny_ :: forall (t_a464o :: TyFun a_a4644 Bool -> Type) (t_a464p :: [a_a4644]). Sing t_a464o -> Sing t_a464p -> Sing (Apply (Apply Any_Sym0 t_a464o) t_a464p :: Bool)
sAll :: forall (t_a4a6f :: TyFun a_a48Qo Bool -> Type) (t_a4a6g :: [a_a48Qo]). Sing t_a4a6f -> Sing t_a4a6g -> Sing (Apply (Apply AllSym0 t_a4a6f) t_a4a6g :: Bool)
sSum :: forall (t_a4a4r :: [a_a48OR]). SNum a_a48OR => Sing t_a4a4r -> Sing (Apply SumSym0 t_a4a4r :: a_a48OR)
sProduct :: forall (t_a4a4q :: [a_a48OQ]). SNum a_a48OQ => Sing t_a4a4q -> Sing (Apply ProductSym0 t_a4a4q :: a_a48OQ)
sMaximum :: forall (t_a4a6u :: [a_a48P0]). SOrd a_a48P0 => Sing t_a4a6u -> Sing (Apply MaximumSym0 t_a4a6u :: a_a48P0)
sMinimum :: forall (t_a4a6v :: [a_a48OZ]). SOrd a_a48OZ => Sing t_a4a6v -> Sing (Apply MinimumSym0 t_a4a6v :: a_a48OZ)
any_ :: forall a_a4644. (a_a4644 -> Bool) -> [a_a4644] -> Bool
sScanl :: forall (t_a4a6a :: TyFun b_a48Qm (TyFun a_a48Qn b_a48Qm -> Type) -> Type) (t_a4a6b :: b_a48Qm) (t_a4a6c :: [a_a48Qn]). Sing t_a4a6a -> Sing t_a4a6b -> Sing t_a4a6c -> Sing (Apply (Apply (Apply ScanlSym0 t_a4a6a) t_a4a6b) t_a4a6c :: [b_a48Qm])
sScanl1 :: forall (t_a4a6d :: TyFun a_a48Ql (TyFun a_a48Ql a_a48Ql -> Type) -> Type) (t_a4a6e :: [a_a48Ql]). Sing t_a4a6d -> Sing t_a4a6e -> Sing (Apply (Apply Scanl1Sym0 t_a4a6d) t_a4a6e :: [a_a48Ql])
sScanr :: forall (t_a4a67 :: TyFun a_a48Qj (TyFun b_a48Qk b_a48Qk -> Type) -> Type) (t_a4a68 :: b_a48Qk) (t_a4a69 :: [a_a48Qj]). Sing t_a4a67 -> Sing t_a4a68 -> Sing t_a4a69 -> Sing (Apply (Apply (Apply ScanrSym0 t_a4a67) t_a4a68) t_a4a69 :: [b_a48Qk])
sScanr1 :: forall (t_a4a65 :: TyFun a_a48Qi (TyFun a_a48Qi a_a48Qi -> Type) -> Type) (t_a4a66 :: [a_a48Qi]). Sing t_a4a65 -> Sing t_a4a66 -> Sing (Apply (Apply Scanr1Sym0 t_a4a65) t_a4a66 :: [a_a48Qi])
sMapAccumL :: forall (t_a4a62 :: TyFun acc_a48Qf (TyFun x_a48Qg (acc_a48Qf, y_a48Qh) -> Type) -> Type) (t_a4a63 :: acc_a48Qf) (t_a4a64 :: [x_a48Qg]). Sing t_a4a62 -> Sing t_a4a63 -> Sing t_a4a64 -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a4a62) t_a4a63) t_a4a64 :: (acc_a48Qf, [y_a48Qh]))
sMapAccumR :: forall (t_a4a5Z :: TyFun acc_a48Qc (TyFun x_a48Qd (acc_a48Qc, y_a48Qe) -> Type) -> Type) (t_a4a60 :: acc_a48Qc) (t_a4a61 :: [x_a48Qd]). Sing t_a4a5Z -> Sing t_a4a60 -> Sing t_a4a61 -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a4a5Z) t_a4a60) t_a4a61 :: (acc_a48Qc, [y_a48Qe]))
sReplicate :: forall (t_a4a4n :: Nat) (t_a4a4o :: a_a48OO). Sing t_a4a4n -> Sing t_a4a4o -> Sing (Apply (Apply ReplicateSym0 t_a4a4n) t_a4a4o :: [a_a48OO])
sUnfoldr :: forall (t_a4a5X :: TyFun b_a48Qa (Maybe (a_a48Qb, b_a48Qa)) -> Type) (t_a4a5Y :: b_a48Qa). Sing t_a4a5X -> Sing t_a4a5Y -> Sing (Apply (Apply UnfoldrSym0 t_a4a5X) t_a4a5Y :: [a_a48Qb])
sTake :: forall (t_a4a4B :: Nat) (t_a4a4C :: [a_a48P4]). Sing t_a4a4B -> Sing t_a4a4C -> Sing (Apply (Apply TakeSym0 t_a4a4B) t_a4a4C :: [a_a48P4])
sDrop :: forall (t_a4a4z :: Nat) (t_a4a4A :: [a_a48P3]). Sing t_a4a4z -> Sing t_a4a4A -> Sing (Apply (Apply DropSym0 t_a4a4z) t_a4a4A :: [a_a48P3])
sSplitAt :: forall (t_a4a4D :: Nat) (t_a4a4E :: [a_a48P2]). Sing t_a4a4D -> Sing t_a4a4E -> Sing (Apply (Apply SplitAtSym0 t_a4a4D) t_a4a4E :: ([a_a48P2], [a_a48P2]))
sTakeWhile :: forall (t_a4a4O :: TyFun a_a48P9 Bool -> Type) (t_a4a4P :: [a_a48P9]). Sing t_a4a4O -> Sing t_a4a4P -> Sing (Apply (Apply TakeWhileSym0 t_a4a4O) t_a4a4P :: [a_a48P9])
sDropWhile :: forall (t_a4a4M :: TyFun a_a48P8 Bool -> Type) (t_a4a4N :: [a_a48P8]). Sing t_a4a4M -> Sing t_a4a4N -> Sing (Apply (Apply DropWhileSym0 t_a4a4M) t_a4a4N :: [a_a48P8])
sDropWhileEnd :: forall (t_a4a6O :: TyFun a_a48P7 Bool -> Type) (t_a4a6P :: [a_a48P7]). Sing t_a4a6O -> Sing t_a4a6P -> Sing (Apply (Apply DropWhileEndSym0 t_a4a6O) t_a4a6P :: [a_a48P7])
sSpan :: forall (t_a4a4H :: TyFun a_a48P6 Bool -> Type) (t_a4a4I :: [a_a48P6]). Sing t_a4a4H -> Sing t_a4a4I -> Sing (Apply (Apply SpanSym0 t_a4a4H) t_a4a4I :: ([a_a48P6], [a_a48P6]))
sBreak :: forall (t_a4a4F :: TyFun a_a48P5 Bool -> Type) (t_a4a4G :: [a_a48P5]). Sing t_a4a4F -> Sing t_a4a4G -> Sing (Apply (Apply BreakSym0 t_a4a4F) t_a4a4G :: ([a_a48P5], [a_a48P5]))
sGroup :: forall (t_a4a4L :: [a_a48P1]). SEq a_a48P1 => Sing t_a4a4L -> Sing (Apply GroupSym0 t_a4a4L :: [[a_a48P1]])
sInits :: forall (t_a4a5W :: [a_a48Q9]). Sing t_a4a5W -> Sing (Apply InitsSym0 t_a4a5W :: [[a_a48Q9]])
sTails :: forall (t_a4a5T :: [a_a48Q8]). Sing t_a4a5T -> Sing (Apply TailsSym0 t_a4a5T :: [[a_a48Q8]])
sIsPrefixOf :: forall (t_a4a5R :: [a_a48Q7]) (t_a4a5S :: [a_a48Q7]). SEq a_a48Q7 => Sing t_a4a5R -> Sing t_a4a5S -> Sing (Apply (Apply IsPrefixOfSym0 t_a4a5R) t_a4a5S :: Bool)
sIsSuffixOf :: forall (t_a4a6L :: [a_a48Q6]) (t_a4a6M :: [a_a48Q6]). SEq a_a48Q6 => Sing t_a4a6L -> Sing t_a4a6M -> Sing (Apply (Apply IsSuffixOfSym0 t_a4a6L) t_a4a6M :: Bool)
sIsInfixOf :: forall (t_a4a5U :: [a_a48Q5]) (t_a4a5V :: [a_a48Q5]). SEq a_a48Q5 => Sing t_a4a5U -> Sing t_a4a5V -> Sing (Apply (Apply IsInfixOfSym0 t_a4a5U) t_a4a5V :: Bool)
sElem :: forall (t_a4a5O :: a_a48Q4) (t_a4a5P :: [a_a48Q4]). SEq a_a48Q4 => Sing t_a4a5O -> Sing t_a4a5P -> Sing (Apply (Apply ElemSym0 t_a4a5O) t_a4a5P :: Bool)
sNotElem :: forall (t_a4a5M :: a_a48Q3) (t_a4a5N :: [a_a48Q3]). SEq a_a48Q3 => Sing t_a4a5M -> Sing t_a4a5N -> Sing (Apply (Apply NotElemSym0 t_a4a5M) t_a4a5N :: Bool)
sLookup :: forall (t_a4a4x :: a_a48OU) (t_a4a4y :: [(a_a48OU, b_a48OV)]). SEq a_a48OU => Sing t_a4a4x -> Sing t_a4a4y -> Sing (Apply (Apply LookupSym0 t_a4a4x) t_a4a4y :: Maybe b_a48OV)
sFind :: forall (t_a4a4S :: TyFun a_a48Pg Bool -> Type) (t_a4a4T :: [a_a48Pg]). Sing t_a4a4S -> Sing t_a4a4T -> Sing (Apply (Apply FindSym0 t_a4a4S) t_a4a4T :: Maybe a_a48Pg)
sFilter :: forall (t_a4a4Q :: TyFun a_a48Ph Bool -> Type) (t_a4a4R :: [a_a48Ph]). Sing t_a4a4Q -> Sing t_a4a4R -> Sing (Apply (Apply FilterSym0 t_a4a4Q) t_a4a4R :: [a_a48Ph])
sPartition :: forall (t_a4a4v :: TyFun a_a48OT Bool -> Type) (t_a4a4w :: [a_a48OT]). Sing t_a4a4v -> Sing t_a4a4w -> Sing (Apply (Apply PartitionSym0 t_a4a4v) t_a4a4w :: ([a_a48OT], [a_a48OT]))
(%:!!) :: forall (t_a4a4l :: [a_a48OM]) (t_a4a4m :: Nat). Sing t_a4a4l -> Sing t_a4a4m -> Sing (Apply (Apply (:!!$) t_a4a4l) t_a4a4m :: a_a48OM)
sElemIndex :: forall (t_a4a5K :: a_a48Pf) (t_a4a5L :: [a_a48Pf]). SEq a_a48Pf => Sing t_a4a5K -> Sing t_a4a5L -> Sing (Apply (Apply ElemIndexSym0 t_a4a5K) t_a4a5L :: Maybe Nat)
sElemIndices :: forall (t_a4a5G :: a_a48Pe) (t_a4a5H :: [a_a48Pe]). SEq a_a48Pe => Sing t_a4a5G -> Sing t_a4a5H -> Sing (Apply (Apply ElemIndicesSym0 t_a4a5G) t_a4a5H :: [Nat])
sFindIndex :: forall (t_a4a5I :: TyFun a_a48Pd Bool -> Type) (t_a4a5J :: [a_a48Pd]). Sing t_a4a5I -> Sing t_a4a5J -> Sing (Apply (Apply FindIndexSym0 t_a4a5I) t_a4a5J :: Maybe Nat)
sFindIndices :: forall (t_a4a5E :: TyFun a_a48Pc Bool -> Type) (t_a4a5F :: [a_a48Pc]). Sing t_a4a5E -> Sing t_a4a5F -> Sing (Apply (Apply FindIndicesSym0 t_a4a5E) t_a4a5F :: [Nat])
sZip :: forall (t_a4a5C :: [a_a48Q1]) (t_a4a5D :: [b_a48Q2]). Sing t_a4a5C -> Sing t_a4a5D -> Sing (Apply (Apply ZipSym0 t_a4a5C) t_a4a5D :: [(a_a48Q1, b_a48Q2)])
sZip3 :: forall (t_a4a5z :: [a_a48PY]) (t_a4a5A :: [b_a48PZ]) (t_a4a5B :: [c_a48Q0]). Sing t_a4a5z -> Sing t_a4a5A -> Sing t_a4a5B -> Sing (Apply (Apply (Apply Zip3Sym0 t_a4a5z) t_a4a5A) t_a4a5B :: [(a_a48PY, b_a48PZ, c_a48Q0)])
sZipWith :: forall (t_a4a5w :: TyFun a_a48PV (TyFun b_a48PW c_a48PX -> Type) -> Type) (t_a4a5x :: [a_a48PV]) (t_a4a5y :: [b_a48PW]). Sing t_a4a5w -> Sing t_a4a5x -> Sing t_a4a5y -> Sing (Apply (Apply (Apply ZipWithSym0 t_a4a5w) t_a4a5x) t_a4a5y :: [c_a48PX])
sZipWith3 :: forall (t_a4a5s :: TyFun a_a48PR (TyFun b_a48PS (TyFun c_a48PT d_a48PU -> Type) -> Type) -> Type) (t_a4a5t :: [a_a48PR]) (t_a4a5u :: [b_a48PS]) (t_a4a5v :: [c_a48PT]). Sing t_a4a5s -> Sing t_a4a5t -> Sing t_a4a5u -> Sing t_a4a5v -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a4a5s) t_a4a5t) t_a4a5u) t_a4a5v :: [d_a48PU])
sUnzip :: forall (t_a4a5r :: [(a_a48PP, b_a48PQ)]). Sing t_a4a5r -> Sing (Apply UnzipSym0 t_a4a5r :: ([a_a48PP], [b_a48PQ]))
sUnzip3 :: forall (t_a4a5q :: [(a_a48PM, b_a48PN, c_a48PO)]). Sing t_a4a5q -> Sing (Apply Unzip3Sym0 t_a4a5q :: ([a_a48PM], [b_a48PN], [c_a48PO]))
sUnzip4 :: forall (t_a4a5p :: [(a_a48PI, b_a48PJ, c_a48PK, d_a48PL)]). Sing t_a4a5p -> Sing (Apply Unzip4Sym0 t_a4a5p :: ([a_a48PI], [b_a48PJ], [c_a48PK], [d_a48PL]))
sUnzip5 :: forall (t_a4a5o :: [(a_a48PD, b_a48PE, c_a48PF, d_a48PG, e_a48PH)]). Sing t_a4a5o -> Sing (Apply Unzip5Sym0 t_a4a5o :: ([a_a48PD], [b_a48PE], [c_a48PF], [d_a48PG], [e_a48PH]))
sUnzip6 :: forall (t_a4a5n :: [(a_a48Px, b_a48Py, c_a48Pz, d_a48PA, e_a48PB, f_a48PC)]). Sing t_a4a5n -> Sing (Apply Unzip6Sym0 t_a4a5n :: ([a_a48Px], [b_a48Py], [c_a48Pz], [d_a48PA], [e_a48PB], [f_a48PC]))
sUnzip7 :: forall (t_a4a5m :: [(a_a48Pq, b_a48Pr, c_a48Ps, d_a48Pt, e_a48Pu, f_a48Pv, g_a48Pw)]). Sing t_a4a5m -> Sing (Apply Unzip7Sym0 t_a4a5m :: ([a_a48Pq], [b_a48Pr], [c_a48Ps], [d_a48Pt], [e_a48Pu], [f_a48Pv], [g_a48Pw]))
sNub :: forall (t_a4a5Q :: [a_a48OL]). SEq a_a48OL => Sing t_a4a5Q -> Sing (Apply NubSym0 t_a4a5Q :: [a_a48OL])
sDelete :: forall (t_a4a5i :: a_a48Pp) (t_a4a5j :: [a_a48Pp]). SEq a_a48Pp => Sing t_a4a5i -> Sing t_a4a5j -> Sing (Apply (Apply DeleteSym0 t_a4a5i) t_a4a5j :: [a_a48Pp])
(%:\\) :: forall (t_a4a5k :: [a_a48Po]) (t_a4a5l :: [a_a48Po]). SEq a_a48Po => Sing t_a4a5k -> Sing t_a4a5l -> Sing (Apply (Apply (:\\$) t_a4a5k) t_a4a5l :: [a_a48Po])
infix 5 %:\\
sUnion :: forall (t_a4a5g :: [a_a48OH]) (t_a4a5h :: [a_a48OH]). SEq a_a48OH => Sing t_a4a5g -> Sing t_a4a5h -> Sing (Apply (Apply UnionSym0 t_a4a5g) t_a4a5h :: [a_a48OH])
sIntersect :: forall (t_a4a4X :: [a_a48Pb]) (t_a4a4Y :: [a_a48Pb]). SEq a_a48Pb => Sing t_a4a4X -> Sing t_a4a4Y -> Sing (Apply (Apply IntersectSym0 t_a4a4X) t_a4a4Y :: [a_a48Pb])
sInsert :: forall (t_a4a52 :: a_a48OY) (t_a4a53 :: [a_a48OY]). SOrd a_a48OY => Sing t_a4a52 -> Sing t_a4a53 -> Sing (Apply (Apply InsertSym0 t_a4a52) t_a4a53 :: [a_a48OY])
sSort :: forall (t_a4a56 :: [a_a48OX]). SOrd a_a48OX => Sing t_a4a56 -> Sing (Apply SortSym0 t_a4a56 :: [a_a48OX])
sNubBy :: forall (t_a4a4j :: TyFun a_a48OK (TyFun a_a48OK Bool -> Type) -> Type) (t_a4a4k :: [a_a48OK]). Sing t_a4a4j -> Sing t_a4a4k -> Sing (Apply (Apply NubBySym0 t_a4a4j) t_a4a4k :: [a_a48OK])
sDeleteBy :: forall (t_a4a57 :: TyFun a_a48Pn (TyFun a_a48Pn Bool -> Type) -> Type) (t_a4a58 :: a_a48Pn) (t_a4a59 :: [a_a48Pn]). Sing t_a4a57 -> Sing t_a4a58 -> Sing t_a4a59 -> Sing (Apply (Apply (Apply DeleteBySym0 t_a4a57) t_a4a58) t_a4a59 :: [a_a48Pn])
sDeleteFirstsBy :: forall (t_a4a5a :: TyFun a_a48Pm (TyFun a_a48Pm Bool -> Type) -> Type) (t_a4a5b :: [a_a48Pm]) (t_a4a5c :: [a_a48Pm]). Sing t_a4a5a -> Sing t_a4a5b -> Sing t_a4a5c -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a4a5a) t_a4a5b) t_a4a5c :: [a_a48Pm])
sUnionBy :: forall (t_a4a5d :: TyFun a_a48OI (TyFun a_a48OI Bool -> Type) -> Type) (t_a4a5e :: [a_a48OI]) (t_a4a5f :: [a_a48OI]). Sing t_a4a5d -> Sing t_a4a5e -> Sing t_a4a5f -> Sing (Apply (Apply (Apply UnionBySym0 t_a4a5d) t_a4a5e) t_a4a5f :: [a_a48OI])
sIntersectBy :: forall (t_a4a4U :: TyFun a_a48Pa (TyFun a_a48Pa Bool -> Type) -> Type) (t_a4a4V :: [a_a48Pa]) (t_a4a4W :: [a_a48Pa]). Sing t_a4a4U -> Sing t_a4a4V -> Sing t_a4a4W -> Sing (Apply (Apply (Apply IntersectBySym0 t_a4a4U) t_a4a4V) t_a4a4W :: [a_a48Pa])
sGroupBy :: forall (t_a4a4J :: TyFun a_a48OW (TyFun a_a48OW Bool -> Type) -> Type) (t_a4a4K :: [a_a48OW]). Sing t_a4a4J -> Sing t_a4a4K -> Sing (Apply (Apply GroupBySym0 t_a4a4J) t_a4a4K :: [[a_a48OW]])
sSortBy :: forall (t_a4a54 :: TyFun a_a48Pl (TyFun a_a48Pl Ordering -> Type) -> Type) (t_a4a55 :: [a_a48Pl]). Sing t_a4a54 -> Sing t_a4a55 -> Sing (Apply (Apply SortBySym0 t_a4a54) t_a4a55 :: [a_a48Pl])
sInsertBy :: forall (t_a4a4Z :: TyFun a_a48Pk (TyFun a_a48Pk Ordering -> Type) -> Type) (t_a4a50 :: a_a48Pk) (t_a4a51 :: [a_a48Pk]). Sing t_a4a4Z -> Sing t_a4a50 -> Sing t_a4a51 -> Sing (Apply (Apply (Apply InsertBySym0 t_a4a4Z) t_a4a50) t_a4a51 :: [a_a48Pk])
sMaximumBy :: forall (t_a4a6q :: TyFun a_a48Pj (TyFun a_a48Pj Ordering -> Type) -> Type) (t_a4a6r :: [a_a48Pj]). Sing t_a4a6q -> Sing t_a4a6r -> Sing (Apply (Apply MaximumBySym0 t_a4a6q) t_a4a6r :: a_a48Pj)
sMinimumBy :: forall (t_a4a6s :: TyFun a_a48Pi (TyFun a_a48Pi Ordering -> Type) -> Type) (t_a4a6t :: [a_a48Pi]). Sing t_a4a6s -> Sing t_a4a6t -> Sing (Apply (Apply MinimumBySym0 t_a4a6s) t_a4a6t :: a_a48Pi)
sGenericLength :: forall (t_a4a4f :: [a_a48OG]). SNum i_a48OF => Sing t_a4a4f -> Sing (Apply GenericLengthSym0 t_a4a4f :: i_a48OF)
type NilSym0 = '[]
data (:$) (l_a2DIh :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a2DIk :: a3530822107858468866) (l_a2DIj :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a2DIf :: a3530822107858468866) (t_a2DIg :: [a3530822107858468866]) = (:) t_a2DIf t_a2DIg
type (:++$$$) (t_a2Utt :: [a6989586621679703398]) (t_a2Utu :: [a6989586621679703398]) = (:++) t_a2Utt t_a2Utu
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data HeadSym0 (l_a4a40 :: TyFun [a6989586621679997124] a6989586621679997124)
type HeadSym1 (t_a4a3Z :: [a6989586621679997124]) = Head t_a4a3Z
data LastSym0 (l_a4a3Q :: TyFun [a6989586621679997123] a6989586621679997123)
type LastSym1 (t_a4a3P :: [a6989586621679997123]) = Last t_a4a3P
data TailSym0 (l_a4a3I :: TyFun [a6989586621679997122] [a6989586621679997122])
type TailSym1 (t_a4a3H :: [a6989586621679997122]) = Tail t_a4a3H
data InitSym0 (l_a4a3b :: TyFun [a6989586621679997121] [a6989586621679997121])
type InitSym1 (t_a4a3a :: [a6989586621679997121]) = Init t_a4a3a
data NullSym0 (l_a4a24 :: TyFun [a6989586621679997120] Bool)
type NullSym1 (t_a4a23 :: [a6989586621679997120]) = Null t_a4a23
data LengthSym0 (l_a49ej :: TyFun [a6989586621679997007] Nat)
type LengthSym1 (t_a49ei :: [a6989586621679997007]) = Length t_a49ei
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data ReverseSym0 (l_a4a1v :: TyFun [a6989586621679997119] [a6989586621679997119])
type ReverseSym1 (t_a4a1u :: [a6989586621679997119]) = Reverse t_a4a1u
data IntersperseSym0 (l_a4a16 :: TyFun a6989586621679997118 (TyFun [a6989586621679997118] [a6989586621679997118] -> Type))
data IntersperseSym1 (l_a4a19 :: a6989586621679997118) (l_a4a18 :: TyFun [a6989586621679997118] [a6989586621679997118])
type IntersperseSym2 (t_a4a14 :: a6989586621679997118) (t_a4a15 :: [a6989586621679997118]) = Intersperse t_a4a14 t_a4a15
data IntercalateSym0 (l_a4a1l :: TyFun [a6989586621679997117] (TyFun [[a6989586621679997117]] [a6989586621679997117] -> Type))
data IntercalateSym1 (l_a4a1o :: [a6989586621679997117]) (l_a4a1n :: TyFun [[a6989586621679997117]] [a6989586621679997117])
type IntercalateSym2 (t_a4a1j :: [a6989586621679997117]) (t_a4a1k :: [[a6989586621679997117]]) = Intercalate t_a4a1j t_a4a1k
data TransposeSym0 (l_a4a48 :: TyFun [[a6989586621679997005]] [[a6989586621679997005]])
type TransposeSym1 (t_a4a47 :: [[a6989586621679997005]]) = Transpose t_a4a47
data SubsequencesSym0 (l_a4a10 :: TyFun [a6989586621679997116] [[a6989586621679997116]])
type SubsequencesSym1 (t_a4a0Z :: [a6989586621679997116]) = Subsequences t_a4a0Z
data PermutationsSym0 (l_a49Ui :: TyFun [a6989586621679997113] [[a6989586621679997113]])
type PermutationsSym1 (t_a49Uh :: [a6989586621679997113]) = Permutations t_a49Uh
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type) -> Type))
data FoldlSym1 (l_a2GG2 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG1 :: TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type))
data FoldlSym2 (l_a2GG5 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG6 :: b6989586621679650486) (l_a2GG4 :: TyFun [a6989586621679650485] b6989586621679650486)
type FoldlSym3 (t_a2GFW :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (t_a2GFX :: b6989586621679650486) (t_a2GFY :: [a6989586621679650485]) = Foldl t_a2GFW t_a2GFX t_a2GFY
data Foldl'Sym0 (l_a49SJ :: TyFun (TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (TyFun b6989586621679997112 (TyFun [a6989586621679997111] b6989586621679997112 -> Type) -> Type))
data Foldl'Sym1 (l_a49SM :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (l_a49SL :: TyFun b6989586621679997112 (TyFun [a6989586621679997111] b6989586621679997112 -> Type))
data Foldl'Sym2 (l_a49SP :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (l_a49SQ :: b6989586621679997112) (l_a49SO :: TyFun [a6989586621679997111] b6989586621679997112)
type Foldl'Sym3 (t_a49SG :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (t_a49SH :: b6989586621679997112) (t_a49SI :: [a6989586621679997111]) = Foldl' t_a49SG t_a49SH t_a49SI
data Foldl1Sym0 (l_a49Pd :: TyFun (TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (TyFun [a6989586621679997110] a6989586621679997110 -> Type))
data Foldl1Sym1 (l_a49Pg :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (l_a49Pf :: TyFun [a6989586621679997110] a6989586621679997110)
type Foldl1Sym2 (t_a49Pb :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (t_a49Pc :: [a6989586621679997110]) = Foldl1 t_a49Pb t_a49Pc
data Foldl1'Sym0 (l_a49U4 :: TyFun (TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (TyFun [a6989586621679997109] a6989586621679997109 -> Type))
data Foldl1'Sym1 (l_a49U7 :: TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (l_a49U6 :: TyFun [a6989586621679997109] a6989586621679997109)
type Foldl1'Sym2 (t_a49U2 :: TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (t_a49U3 :: [a6989586621679997109]) = Foldl1' t_a49U2 t_a49U3
data FoldrSym0 (l_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data Foldr1Sym0 (l_a49OA :: TyFun (TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (TyFun [a6989586621679997108] a6989586621679997108 -> Type))
data Foldr1Sym1 (l_a49OD :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (l_a49OC :: TyFun [a6989586621679997108] a6989586621679997108)
type Foldr1Sym2 (t_a49Oy :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (t_a49Oz :: [a6989586621679997108]) = Foldr1 t_a49Oy t_a49Oz
data ConcatSym0 (l_a49Ou :: TyFun [[a6989586621679997107]] [a6989586621679997107])
type ConcatSym1 (t_a49Ot :: [[a6989586621679997107]]) = Concat t_a49Ot
data ConcatMapSym0 (l_a49Og :: TyFun (TyFun a6989586621679997105 [b6989586621679997106] -> Type) (TyFun [a6989586621679997105] [b6989586621679997106] -> Type))
data ConcatMapSym1 (l_a49Oj :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (l_a49Oi :: TyFun [a6989586621679997105] [b6989586621679997106])
type ConcatMapSym2 (t_a49Oe :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (t_a49Of :: [a6989586621679997105]) = ConcatMap t_a49Oe t_a49Of
data AndSym0 (l_a49O9 :: TyFun [Bool] Bool)
type AndSym1 (t_a49O8 :: [Bool]) = And t_a49O8
data OrSym0 (l_a49O3 :: TyFun [Bool] Bool)
type OrSym1 (t_a49O2 :: [Bool]) = Or t_a49O2
data Any_Sym0 (l_a464b :: TyFun (TyFun a6989586621679986420 Bool -> Type) (TyFun [a6989586621679986420] Bool -> Type))
data Any_Sym1 (l_a464e :: TyFun a6989586621679986420 Bool -> Type) (l_a464d :: TyFun [a6989586621679986420] Bool)
type Any_Sym2 (t_a4649 :: TyFun a6989586621679986420 Bool -> Type) (t_a464a :: [a6989586621679986420]) = Any_ t_a4649 t_a464a
data AllSym0 (l_a49NP :: TyFun (TyFun a6989586621679997104 Bool -> Type) (TyFun [a6989586621679997104] Bool -> Type))
data AllSym1 (l_a49NS :: TyFun a6989586621679997104 Bool -> Type) (l_a49NR :: TyFun [a6989586621679997104] Bool)
type AllSym2 (t_a49NN :: TyFun a6989586621679997104 Bool -> Type) (t_a49NO :: [a6989586621679997104]) = All t_a49NN t_a49NO
data SumSym0 (l_a49eP :: TyFun [a6989586621679997009] a6989586621679997009)
type SumSym1 (t_a49eO :: [a6989586621679997009]) = Sum t_a49eO
data ProductSym0 (l_a49er :: TyFun [a6989586621679997008] a6989586621679997008)
type ProductSym1 (t_a49eq :: [a6989586621679997008]) = Product t_a49eq
data MaximumSym0 (l_a49Sf :: TyFun [a6989586621679997018] a6989586621679997018)
type MaximumSym1 (t_a49Se :: [a6989586621679997018]) = Maximum t_a49Se
data MinimumSym0 (l_a49St :: TyFun [a6989586621679997017] a6989586621679997017)
type MinimumSym1 (t_a49Ss :: [a6989586621679997017]) = Minimum t_a49Ss
data ScanlSym0 (l_a49Ne :: TyFun (TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type) -> Type))
data ScanlSym1 (l_a49Nh :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Ng :: TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type))
data ScanlSym2 (l_a49Nk :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Nl :: b6989586621679997102) (l_a49Nj :: TyFun [a6989586621679997103] [b6989586621679997102])
type ScanlSym3 (t_a49Nb :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (t_a49Nc :: b6989586621679997102) (t_a49Nd :: [a6989586621679997103]) = Scanl t_a49Nb t_a49Nc t_a49Nd
data Scanl1Sym0 (l_a49NA :: TyFun (TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (TyFun [a6989586621679997101] [a6989586621679997101] -> Type))
data Scanl1Sym1 (l_a49ND :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (l_a49NC :: TyFun [a6989586621679997101] [a6989586621679997101])
type Scanl1Sym2 (t_a49Ny :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (t_a49Nz :: [a6989586621679997101]) = Scanl1 t_a49Ny t_a49Nz
data ScanrSym0 (l_a49Mt :: TyFun (TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type) -> Type))
data ScanrSym1 (l_a49Mw :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49Mv :: TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type))
data ScanrSym2 (l_a49Mz :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49MA :: b6989586621679997100) (l_a49My :: TyFun [a6989586621679997099] [b6989586621679997100])
type ScanrSym3 (t_a49Mq :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (t_a49Mr :: b6989586621679997100) (t_a49Ms :: [a6989586621679997099]) = Scanr t_a49Mq t_a49Mr t_a49Ms
data Scanr1Sym0 (l_a49Lr :: TyFun (TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (TyFun [a6989586621679997098] [a6989586621679997098] -> Type))
data Scanr1Sym1 (l_a49Lu :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (l_a49Lt :: TyFun [a6989586621679997098] [a6989586621679997098])
type Scanr1Sym2 (t_a49Lp :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (t_a49Lq :: [a6989586621679997098]) = Scanr1 t_a49Lp t_a49Lq
data MapAccumLSym0 (l_a49IG :: TyFun (TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (TyFun acc6989586621679997095 (TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]) -> Type) -> Type))
data MapAccumLSym1 (l_a49IJ :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (l_a49II :: TyFun acc6989586621679997095 (TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]) -> Type))
data MapAccumLSym2 (l_a49IM :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (l_a49IN :: acc6989586621679997095) (l_a49IL :: TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]))
type MapAccumLSym3 (t_a49ID :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (t_a49IE :: acc6989586621679997095) (t_a49IF :: [x6989586621679997096]) = MapAccumL t_a49ID t_a49IE t_a49IF
data MapAccumRSym0 (l_a49FU :: TyFun (TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (TyFun acc6989586621679997092 (TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]) -> Type) -> Type))
data MapAccumRSym1 (l_a49FX :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (l_a49FW :: TyFun acc6989586621679997092 (TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]) -> Type))
data MapAccumRSym2 (l_a49G0 :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (l_a49G1 :: acc6989586621679997092) (l_a49FZ :: TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]))
type MapAccumRSym3 (t_a49FR :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (t_a49FS :: acc6989586621679997092) (t_a49FT :: [x6989586621679997093]) = MapAccumR t_a49FR t_a49FS t_a49FT
data ReplicateSym0 (l_a49dY :: TyFun Nat (TyFun a6989586621679997006 [a6989586621679997006] -> Type))
data ReplicateSym1 (l_a49e1 :: Nat) (l_a49e0 :: TyFun a6989586621679997006 [a6989586621679997006])
type ReplicateSym2 (t_a49dW :: Nat) (t_a49dX :: a6989586621679997006) = Replicate t_a49dW t_a49dX
data UnfoldrSym0 (l_a49Fv :: TyFun (TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (TyFun b6989586621679997090 [a6989586621679997091] -> Type))
data UnfoldrSym1 (l_a49Fy :: TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (l_a49Fx :: TyFun b6989586621679997090 [a6989586621679997091])
type UnfoldrSym2 (t_a49Ft :: TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (t_a49Fu :: b6989586621679997090) = Unfoldr t_a49Ft t_a49Fu
data TakeSym0 (l_a49h9 :: TyFun Nat (TyFun [a6989586621679997022] [a6989586621679997022] -> Type))
data TakeSym1 (l_a49hc :: Nat) (l_a49hb :: TyFun [a6989586621679997022] [a6989586621679997022])
type TakeSym2 (t_a49h7 :: Nat) (t_a49h8 :: [a6989586621679997022]) = Take t_a49h7 t_a49h8
data DropSym0 (l_a49gE :: TyFun Nat (TyFun [a6989586621679997021] [a6989586621679997021] -> Type))
data DropSym1 (l_a49gH :: Nat) (l_a49gG :: TyFun [a6989586621679997021] [a6989586621679997021])
type DropSym2 (t_a49gC :: Nat) (t_a49gD :: [a6989586621679997021]) = Drop t_a49gC t_a49gD
data SplitAtSym0 (l_a49hE :: TyFun Nat (TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]) -> Type))
data SplitAtSym1 (l_a49hH :: Nat) (l_a49hG :: TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]))
type SplitAtSym2 (t_a49hC :: Nat) (t_a49hD :: [a6989586621679997020]) = SplitAt t_a49hC t_a49hD
data TakeWhileSym0 (l_a49na :: TyFun (TyFun a6989586621679997027 Bool -> Type) (TyFun [a6989586621679997027] [a6989586621679997027] -> Type))
data TakeWhileSym1 (l_a49nd :: TyFun a6989586621679997027 Bool -> Type) (l_a49nc :: TyFun [a6989586621679997027] [a6989586621679997027])
type TakeWhileSym2 (t_a49n8 :: TyFun a6989586621679997027 Bool -> Type) (t_a49n9 :: [a6989586621679997027]) = TakeWhile t_a49n8 t_a49n9
data DropWhileSym0 (l_a49ms :: TyFun (TyFun a6989586621679997026 Bool -> Type) (TyFun [a6989586621679997026] [a6989586621679997026] -> Type))
data DropWhileSym1 (l_a49mv :: TyFun a6989586621679997026 Bool -> Type) (l_a49mu :: TyFun [a6989586621679997026] [a6989586621679997026])
type DropWhileSym2 (t_a49mq :: TyFun a6989586621679997026 Bool -> Type) (t_a49mr :: [a6989586621679997026]) = DropWhile t_a49mq t_a49mr
data DropWhileEndSym0 (l_a4a2f :: TyFun (TyFun a6989586621679997025 Bool -> Type) (TyFun [a6989586621679997025] [a6989586621679997025] -> Type))
data DropWhileEndSym1 (l_a4a2i :: TyFun a6989586621679997025 Bool -> Type) (l_a4a2h :: TyFun [a6989586621679997025] [a6989586621679997025])
type DropWhileEndSym2 (t_a4a2d :: TyFun a6989586621679997025 Bool -> Type) (t_a4a2e :: [a6989586621679997025]) = DropWhileEnd t_a4a2d t_a4a2e
data SpanSym0 (l_a49jw :: TyFun (TyFun a6989586621679997024 Bool -> Type) (TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]) -> Type))
data SpanSym1 (l_a49jz :: TyFun a6989586621679997024 Bool -> Type) (l_a49jy :: TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]))
type SpanSym2 (t_a49ju :: TyFun a6989586621679997024 Bool -> Type) (t_a49jv :: [a6989586621679997024]) = Span t_a49ju t_a49jv
data BreakSym0 (l_a49hP :: TyFun (TyFun a6989586621679997023 Bool -> Type) (TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]) -> Type))
data BreakSym1 (l_a49hS :: TyFun a6989586621679997023 Bool -> Type) (l_a49hR :: TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]))
type BreakSym2 (t_a49hN :: TyFun a6989586621679997023 Bool -> Type) (t_a49hO :: [a6989586621679997023]) = Break t_a49hN t_a49hO
data GroupSym0 (l_a49mm :: TyFun [a6989586621679997019] [[a6989586621679997019]])
type GroupSym1 (t_a49ml :: [a6989586621679997019]) = Group t_a49ml
data InitsSym0 (l_a49Fk :: TyFun [a6989586621679997089] [[a6989586621679997089]])
type InitsSym1 (t_a49Fj :: [a6989586621679997089]) = Inits t_a49Fj
data TailsSym0 (l_a49EX :: TyFun [a6989586621679997088] [[a6989586621679997088]])
type TailsSym1 (t_a49EW :: [a6989586621679997088]) = Tails t_a49EW
data IsPrefixOfSym0 (l_a49Ez :: TyFun [a6989586621679997087] (TyFun [a6989586621679997087] Bool -> Type))
data IsPrefixOfSym1 (l_a49EC :: [a6989586621679997087]) (l_a49EB :: TyFun [a6989586621679997087] Bool)
type IsPrefixOfSym2 (t_a49Ex :: [a6989586621679997087]) (t_a49Ey :: [a6989586621679997087]) = IsPrefixOf t_a49Ex t_a49Ey
data IsSuffixOfSym0 (l_a4a1U :: TyFun [a6989586621679997086] (TyFun [a6989586621679997086] Bool -> Type))
data IsSuffixOfSym1 (l_a4a1X :: [a6989586621679997086]) (l_a4a1W :: TyFun [a6989586621679997086] Bool)
type IsSuffixOfSym2 (t_a4a1S :: [a6989586621679997086]) (t_a4a1T :: [a6989586621679997086]) = IsSuffixOf t_a4a1S t_a4a1T
data IsInfixOfSym0 (l_a49Fa :: TyFun [a6989586621679997085] (TyFun [a6989586621679997085] Bool -> Type))
data IsInfixOfSym1 (l_a49Fd :: [a6989586621679997085]) (l_a49Fc :: TyFun [a6989586621679997085] Bool)
type IsInfixOfSym2 (t_a49F8 :: [a6989586621679997085]) (t_a49F9 :: [a6989586621679997085]) = IsInfixOf t_a49F8 t_a49F9
data ElemSym0 (l_a49Dy :: TyFun a6989586621679997084 (TyFun [a6989586621679997084] Bool -> Type))
data ElemSym1 (l_a49DB :: a6989586621679997084) (l_a49DA :: TyFun [a6989586621679997084] Bool)
type ElemSym2 (t_a49Dw :: a6989586621679997084) (t_a49Dx :: [a6989586621679997084]) = Elem t_a49Dw t_a49Dx
data NotElemSym0 (l_a49Dj :: TyFun a6989586621679997083 (TyFun [a6989586621679997083] Bool -> Type))
data NotElemSym1 (l_a49Dm :: a6989586621679997083) (l_a49Dl :: TyFun [a6989586621679997083] Bool)
type NotElemSym2 (t_a49Dh :: a6989586621679997083) (t_a49Di :: [a6989586621679997083]) = NotElem t_a49Dh t_a49Di
data LookupSym0 (l_a49g4 :: TyFun a6989586621679997012 (TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013) -> Type))
data LookupSym1 (l_a49g7 :: a6989586621679997012) (l_a49g6 :: TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013))
type LookupSym2 (t_a49g2 :: a6989586621679997012) (t_a49g3 :: [(a6989586621679997012, b6989586621679997013)]) = Lookup t_a49g2 t_a49g3
data FindSym0 (l_a49o8 :: TyFun (TyFun a6989586621679997034 Bool -> Type) (TyFun [a6989586621679997034] (Maybe a6989586621679997034) -> Type))
data FindSym1 (l_a49ob :: TyFun a6989586621679997034 Bool -> Type) (l_a49oa :: TyFun [a6989586621679997034] (Maybe a6989586621679997034))
type FindSym2 (t_a49o6 :: TyFun a6989586621679997034 Bool -> Type) (t_a49o7 :: [a6989586621679997034]) = Find t_a49o6 t_a49o7
data FilterSym0 (l_a49nF :: TyFun (TyFun a6989586621679997035 Bool -> Type) (TyFun [a6989586621679997035] [a6989586621679997035] -> Type))
data FilterSym1 (l_a49nI :: TyFun a6989586621679997035 Bool -> Type) (l_a49nH :: TyFun [a6989586621679997035] [a6989586621679997035])
type FilterSym2 (t_a49nD :: TyFun a6989586621679997035 Bool -> Type) (t_a49nE :: [a6989586621679997035]) = Filter t_a49nD t_a49nE
data PartitionSym0 (l_a49fT :: TyFun (TyFun a6989586621679997011 Bool -> Type) (TyFun [a6989586621679997011] ([a6989586621679997011], [a6989586621679997011]) -> Type))
data PartitionSym1 (l_a49fW :: TyFun a6989586621679997011 Bool -> Type) (l_a49fV :: TyFun [a6989586621679997011] ([a6989586621679997011], [a6989586621679997011]))
type PartitionSym2 (t_a49fR :: TyFun a6989586621679997011 Bool -> Type) (t_a49fS :: [a6989586621679997011]) = Partition t_a49fR t_a49fS
data (:!!$) (l_a49dt :: TyFun [a6989586621679997004] (TyFun Nat a6989586621679997004 -> Type))
data (:!!$$) (l_a49dw :: [a6989586621679997004]) (l_a49dv :: TyFun Nat a6989586621679997004)
type (:!!$$$) (t_a49dr :: [a6989586621679997004]) (t_a49ds :: Nat) = (:!!) t_a49dr t_a49ds
data ElemIndexSym0 (l_a49D6 :: TyFun a6989586621679997033 (TyFun [a6989586621679997033] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a49D9 :: a6989586621679997033) (l_a49D8 :: TyFun [a6989586621679997033] (Maybe Nat))
type ElemIndexSym2 (t_a49D4 :: a6989586621679997033) (t_a49D5 :: [a6989586621679997033]) = ElemIndex t_a49D4 t_a49D5
data ElemIndicesSym0 (l_a49CG :: TyFun a6989586621679997032 (TyFun [a6989586621679997032] [Nat] -> Type))
data ElemIndicesSym1 (l_a49CJ :: a6989586621679997032) (l_a49CI :: TyFun [a6989586621679997032] [Nat])
type ElemIndicesSym2 (t_a49CE :: a6989586621679997032) (t_a49CF :: [a6989586621679997032]) = ElemIndices t_a49CE t_a49CF
data FindIndexSym0 (l_a49CT :: TyFun (TyFun a6989586621679997031 Bool -> Type) (TyFun [a6989586621679997031] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a49CW :: TyFun a6989586621679997031 Bool -> Type) (l_a49CV :: TyFun [a6989586621679997031] (Maybe Nat))
type FindIndexSym2 (t_a49CR :: TyFun a6989586621679997031 Bool -> Type) (t_a49CS :: [a6989586621679997031]) = FindIndex t_a49CR t_a49CS
data FindIndicesSym0 (l_a49BF :: TyFun (TyFun a6989586621679997030 Bool -> Type) (TyFun [a6989586621679997030] [Nat] -> Type))
data FindIndicesSym1 (l_a49BI :: TyFun a6989586621679997030 Bool -> Type) (l_a49BH :: TyFun [a6989586621679997030] [Nat])
type FindIndicesSym2 (t_a49BD :: TyFun a6989586621679997030 Bool -> Type) (t_a49BE :: [a6989586621679997030]) = FindIndices t_a49BD t_a49BE
data ZipSym0 (l_a49Bg :: TyFun [a6989586621679997081] (TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)] -> Type))
data ZipSym1 (l_a49Bj :: [a6989586621679997081]) (l_a49Bi :: TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)])
type ZipSym2 (t_a49Be :: [a6989586621679997081]) (t_a49Bf :: [b6989586621679997082]) = Zip t_a49Be t_a49Bf
data Zip3Sym0 (l_a49A4 :: TyFun [a6989586621679997078] (TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type) -> Type))
data Zip3Sym1 (l_a49A7 :: [a6989586621679997078]) (l_a49A6 :: TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type))
data Zip3Sym2 (l_a49Aa :: [a6989586621679997078]) (l_a49Ab :: [b6989586621679997079]) (l_a49A9 :: TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)])
type Zip3Sym3 (t_a49A1 :: [a6989586621679997078]) (t_a49A2 :: [b6989586621679997079]) (t_a49A3 :: [c6989586621679997080]) = Zip3 t_a49A1 t_a49A2 t_a49A3
data ZipWithSym0 (l_a49zp :: TyFun (TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type) -> Type))
data ZipWithSym1 (l_a49zs :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zr :: TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type))
data ZipWithSym2 (l_a49zv :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zw :: [a6989586621679997075]) (l_a49zu :: TyFun [b6989586621679997076] [c6989586621679997077])
type ZipWithSym3 (t_a49zm :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (t_a49zn :: [a6989586621679997075]) (t_a49zo :: [b6989586621679997076]) = ZipWith t_a49zm t_a49zn t_a49zo
data ZipWith3Sym0 (l_a49xK :: TyFun (TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a49xN :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xM :: TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type))
data ZipWith3Sym2 (l_a49xQ :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xR :: [a6989586621679997071]) (l_a49xP :: TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type))
data ZipWith3Sym3 (l_a49xU :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xV :: [a6989586621679997071]) (l_a49xW :: [b6989586621679997072]) (l_a49xT :: TyFun [c6989586621679997073] [d6989586621679997074])
type ZipWith3Sym4 (t_a49xG :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (t_a49xH :: [a6989586621679997071]) (t_a49xI :: [b6989586621679997072]) (t_a49xJ :: [c6989586621679997073]) = ZipWith3 t_a49xG t_a49xH t_a49xI t_a49xJ
data UnzipSym0 (l_a49xd :: TyFun [(a6989586621679997069, b6989586621679997070)] ([a6989586621679997069], [b6989586621679997070]))
type UnzipSym1 (t_a49xc :: [(a6989586621679997069, b6989586621679997070)]) = Unzip t_a49xc
data Unzip3Sym0 (l_a49wH :: TyFun [(a6989586621679997066, b6989586621679997067, c6989586621679997068)] ([a6989586621679997066], [b6989586621679997067], [c6989586621679997068]))
type Unzip3Sym1 (t_a49wG :: [(a6989586621679997066, b6989586621679997067, c6989586621679997068)]) = Unzip3 t_a49wG
data Unzip4Sym0 (l_a49w9 :: TyFun [(a6989586621679997062, b6989586621679997063, c6989586621679997064, d6989586621679997065)] ([a6989586621679997062], [b6989586621679997063], [c6989586621679997064], [d6989586621679997065]))
type Unzip4Sym1 (t_a49w8 :: [(a6989586621679997062, b6989586621679997063, c6989586621679997064, d6989586621679997065)]) = Unzip4 t_a49w8
data Unzip5Sym0 (l_a49vz :: TyFun [(a6989586621679997057, b6989586621679997058, c6989586621679997059, d6989586621679997060, e6989586621679997061)] ([a6989586621679997057], [b6989586621679997058], [c6989586621679997059], [d6989586621679997060], [e6989586621679997061]))
type Unzip5Sym1 (t_a49vy :: [(a6989586621679997057, b6989586621679997058, c6989586621679997059, d6989586621679997060, e6989586621679997061)]) = Unzip5 t_a49vy
data Unzip6Sym0 (l_a49uX :: TyFun [(a6989586621679997051, b6989586621679997052, c6989586621679997053, d6989586621679997054, e6989586621679997055, f6989586621679997056)] ([a6989586621679997051], [b6989586621679997052], [c6989586621679997053], [d6989586621679997054], [e6989586621679997055], [f6989586621679997056]))
type Unzip6Sym1 (t_a49uW :: [(a6989586621679997051, b6989586621679997052, c6989586621679997053, d6989586621679997054, e6989586621679997055, f6989586621679997056)]) = Unzip6 t_a49uW
data Unzip7Sym0 (l_a49uj :: TyFun [(a6989586621679997044, b6989586621679997045, c6989586621679997046, d6989586621679997047, e6989586621679997048, f6989586621679997049, g6989586621679997050)] ([a6989586621679997044], [b6989586621679997045], [c6989586621679997046], [d6989586621679997047], [e6989586621679997048], [f6989586621679997049], [g6989586621679997050]))
type Unzip7Sym1 (t_a49ui :: [(a6989586621679997044, b6989586621679997045, c6989586621679997046, d6989586621679997047, e6989586621679997048, f6989586621679997049, g6989586621679997050)]) = Unzip7 t_a49ui
data NubSym0 (l_a49DM :: TyFun [a6989586621679997003] [a6989586621679997003])
type NubSym1 (t_a49DL :: [a6989586621679997003]) = Nub t_a49DL
data DeleteSym0 (l_a49tU :: TyFun a6989586621679997043 (TyFun [a6989586621679997043] [a6989586621679997043] -> Type))
data DeleteSym1 (l_a49tX :: a6989586621679997043) (l_a49tW :: TyFun [a6989586621679997043] [a6989586621679997043])
type DeleteSym2 (t_a49tS :: a6989586621679997043) (t_a49tT :: [a6989586621679997043]) = Delete t_a49tS t_a49tT
data (:\\$) (l_a49u9 :: TyFun [a6989586621679997042] (TyFun [a6989586621679997042] [a6989586621679997042] -> Type))
data (:\\$$) (l_a49uc :: [a6989586621679997042]) (l_a49ub :: TyFun [a6989586621679997042] [a6989586621679997042])
type (:\\$$$) (t_a49u7 :: [a6989586621679997042]) (t_a49u8 :: [a6989586621679997042]) = (:\\) t_a49u7 t_a49u8
data UnionSym0 (l_a49tF :: TyFun [a6989586621679996999] (TyFun [a6989586621679996999] [a6989586621679996999] -> Type))
data UnionSym1 (l_a49tI :: [a6989586621679996999]) (l_a49tH :: TyFun [a6989586621679996999] [a6989586621679996999])
type UnionSym2 (t_a49tD :: [a6989586621679996999]) (t_a49tE :: [a6989586621679996999]) = Union t_a49tD t_a49tE
data IntersectSym0 (l_a49qu :: TyFun [a6989586621679997029] (TyFun [a6989586621679997029] [a6989586621679997029] -> Type))
data IntersectSym1 (l_a49qx :: [a6989586621679997029]) (l_a49qw :: TyFun [a6989586621679997029] [a6989586621679997029])
type IntersectSym2 (t_a49qs :: [a6989586621679997029]) (t_a49qt :: [a6989586621679997029]) = Intersect t_a49qs t_a49qt
data InsertSym0 (l_a49rH :: TyFun a6989586621679997016 (TyFun [a6989586621679997016] [a6989586621679997016] -> Type))
data InsertSym1 (l_a49rK :: a6989586621679997016) (l_a49rJ :: TyFun [a6989586621679997016] [a6989586621679997016])
type InsertSym2 (t_a49rF :: a6989586621679997016) (t_a49rG :: [a6989586621679997016]) = Insert t_a49rF t_a49rG
data SortSym0 (l_a49s6 :: TyFun [a6989586621679997015] [a6989586621679997015])
type SortSym1 (t_a49s5 :: [a6989586621679997015]) = Sort t_a49s5
data NubBySym0 (l_a49co :: TyFun (TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (TyFun [a6989586621679997002] [a6989586621679997002] -> Type))
data NubBySym1 (l_a49cr :: TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (l_a49cq :: TyFun [a6989586621679997002] [a6989586621679997002])
type NubBySym2 (t_a49cm :: TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (t_a49cn :: [a6989586621679997002]) = NubBy t_a49cm t_a49cn
data DeleteBySym0 (l_a49sd :: TyFun (TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (TyFun a6989586621679997041 (TyFun [a6989586621679997041] [a6989586621679997041] -> Type) -> Type))
data DeleteBySym1 (l_a49sg :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (l_a49sf :: TyFun a6989586621679997041 (TyFun [a6989586621679997041] [a6989586621679997041] -> Type))
data DeleteBySym2 (l_a49sj :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (l_a49sk :: a6989586621679997041) (l_a49si :: TyFun [a6989586621679997041] [a6989586621679997041])
type DeleteBySym3 (t_a49sa :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (t_a49sb :: a6989586621679997041) (t_a49sc :: [a6989586621679997041]) = DeleteBy t_a49sa t_a49sb t_a49sc
data DeleteFirstsBySym0 (l_a49sY :: TyFun (TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (TyFun [a6989586621679997040] (TyFun [a6989586621679997040] [a6989586621679997040] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a49t1 :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (l_a49t0 :: TyFun [a6989586621679997040] (TyFun [a6989586621679997040] [a6989586621679997040] -> Type))
data DeleteFirstsBySym2 (l_a49t4 :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (l_a49t5 :: [a6989586621679997040]) (l_a49t3 :: TyFun [a6989586621679997040] [a6989586621679997040])
type DeleteFirstsBySym3 (t_a49sV :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (t_a49sW :: [a6989586621679997040]) (t_a49sX :: [a6989586621679997040]) = DeleteFirstsBy t_a49sV t_a49sW t_a49sX
data UnionBySym0 (l_a49tk :: TyFun (TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (TyFun [a6989586621679997000] (TyFun [a6989586621679997000] [a6989586621679997000] -> Type) -> Type))
data UnionBySym1 (l_a49tn :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (l_a49tm :: TyFun [a6989586621679997000] (TyFun [a6989586621679997000] [a6989586621679997000] -> Type))
data UnionBySym2 (l_a49tq :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (l_a49tr :: [a6989586621679997000]) (l_a49tp :: TyFun [a6989586621679997000] [a6989586621679997000])
type UnionBySym3 (t_a49th :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (t_a49ti :: [a6989586621679997000]) (t_a49tj :: [a6989586621679997000]) = UnionBy t_a49th t_a49ti t_a49tj
data IntersectBySym0 (l_a49om :: TyFun (TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (TyFun [a6989586621679997028] (TyFun [a6989586621679997028] [a6989586621679997028] -> Type) -> Type))
data IntersectBySym1 (l_a49op :: TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (l_a49oo :: TyFun [a6989586621679997028] (TyFun [a6989586621679997028] [a6989586621679997028] -> Type))
data IntersectBySym2 (l_a49os :: TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (l_a49ot :: [a6989586621679997028]) (l_a49or :: TyFun [a6989586621679997028] [a6989586621679997028])
type IntersectBySym3 (t_a49oj :: TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (t_a49ok :: [a6989586621679997028]) (t_a49ol :: [a6989586621679997028]) = IntersectBy t_a49oj t_a49ok t_a49ol
data GroupBySym0 (l_a49ld :: TyFun (TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (TyFun [a6989586621679997014] [[a6989586621679997014]] -> Type))
data GroupBySym1 (l_a49lg :: TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (l_a49lf :: TyFun [a6989586621679997014] [[a6989586621679997014]])
type GroupBySym2 (t_a49lb :: TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (t_a49lc :: [a6989586621679997014]) = GroupBy t_a49lb t_a49lc
data SortBySym0 (l_a49rS :: TyFun (TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (TyFun [a6989586621679997039] [a6989586621679997039] -> Type))
data SortBySym1 (l_a49rV :: TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (l_a49rU :: TyFun [a6989586621679997039] [a6989586621679997039])
type SortBySym2 (t_a49rQ :: TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (t_a49rR :: [a6989586621679997039]) = SortBy t_a49rQ t_a49rR
data InsertBySym0 (l_a49qG :: TyFun (TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (TyFun a6989586621679997038 (TyFun [a6989586621679997038] [a6989586621679997038] -> Type) -> Type))
data InsertBySym1 (l_a49qJ :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (l_a49qI :: TyFun a6989586621679997038 (TyFun [a6989586621679997038] [a6989586621679997038] -> Type))
data InsertBySym2 (l_a49qM :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (l_a49qN :: a6989586621679997038) (l_a49qL :: TyFun [a6989586621679997038] [a6989586621679997038])
type InsertBySym3 (t_a49qD :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (t_a49qE :: a6989586621679997038) (t_a49qF :: [a6989586621679997038]) = InsertBy t_a49qD t_a49qE t_a49qF
data MaximumBySym0 (l_a49Ps :: TyFun (TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (TyFun [a6989586621679997037] a6989586621679997037 -> Type))
data MaximumBySym1 (l_a49Pv :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (l_a49Pu :: TyFun [a6989586621679997037] a6989586621679997037)
type MaximumBySym2 (t_a49Pq :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (t_a49Pr :: [a6989586621679997037]) = MaximumBy t_a49Pq t_a49Pr
data MinimumBySym0 (l_a49QR :: TyFun (TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (TyFun [a6989586621679997036] a6989586621679997036 -> Type))
data MinimumBySym1 (l_a49QU :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (l_a49QT :: TyFun [a6989586621679997036] a6989586621679997036)
type MinimumBySym2 (t_a49QP :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (t_a49QQ :: [a6989586621679997036]) = MinimumBy t_a49QP t_a49QQ
data GenericLengthSym0 (l_a49bQ :: TyFun [a6989586621679996998] i6989586621679996997)
type GenericLengthSym1 (t_a49bP :: [a6989586621679996998]) = GenericLength t_a49bP
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998504Scrutinee_6989586621679997669Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998504Scrutinee_6989586621679997669Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998504Scrutinee_6989586621679997669Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998504Scrutinee_6989586621679997669Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998504Scrutinee_6989586621679997669Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998477NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998477NubBy'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998477NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998477NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998548Scrutinee_6989586621679997665Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998548Scrutinee_6989586621679997665Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998548Scrutinee_6989586621679997665Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998575Scrutinee_6989586621679997663Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998575Scrutinee_6989586621679997663Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998599ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998599ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998599ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998623Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998623Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998623Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998661Scrutinee_6989586621679997661Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998661Scrutinee_6989586621679997661Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998661Scrutinee_6989586621679997661Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998661Scrutinee_6989586621679997661Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998708Scrutinee_6989586621679997659Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998708Scrutinee_6989586621679997659Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998708Scrutinee_6989586621679997659Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998708Scrutinee_6989586621679997659Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998745Scrutinee_6989586621679997649Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998745Scrutinee_6989586621679997649Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998745Scrutinee_6989586621679997649Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998776Scrutinee_6989586621679997647Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998776Scrutinee_6989586621679997647Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998776Scrutinee_6989586621679997647Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998815XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998822XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998822XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998822XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998835Scrutinee_6989586621679997645Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998835Scrutinee_6989586621679997645Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998835Scrutinee_6989586621679997645Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850X_6989586621679998851Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850X_6989586621679998851Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998850X_6989586621679998851Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998920XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998927XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998927XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998927XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998940Scrutinee_6989586621679997643Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998940Scrutinee_6989586621679997643Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998940Scrutinee_6989586621679997643Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955X_6989586621679998956Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955X_6989586621679998956Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679998955X_6989586621679998956Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028X_6989586621679999029Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028X_6989586621679999029Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999028X_6989586621679999029Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999105XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999105XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999105XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999118Scrutinee_6989586621679997639Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999118Scrutinee_6989586621679997639Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999118Scrutinee_6989586621679997639Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999149Scrutinee_6989586621679997637Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999149Scrutinee_6989586621679997637Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999149Scrutinee_6989586621679997637Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999178Scrutinee_6989586621679997625Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999178Scrutinee_6989586621679997625Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999178Scrutinee_6989586621679997625Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999248YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999299Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999374YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999374YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999374YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999374YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999393Scrutinee_6989586621679997611Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999393Scrutinee_6989586621679997611Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999393Scrutinee_6989586621679997611Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999393Scrutinee_6989586621679997611Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999471Scrutinee_6989586621679997609Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999471Scrutinee_6989586621679997609Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999471Scrutinee_6989586621679997609Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679999471Scrutinee_6989586621679997609Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999583Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999583Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999583Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999623Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999623Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999623Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999661Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999661Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999661Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999697Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999697Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999697Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999731Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999731Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999731Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999763Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999763Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679999763Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000044BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000044BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000044BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000044BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680000073Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680000073Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680000073Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000191Scrutinee_6989586621679997667Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000191Scrutinee_6989586621679997667Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000191Scrutinee_6989586621679997667Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000191Scrutinee_6989586621679997667Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000170Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000170Nub'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000170Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000282Scrutinee_6989586621679997583Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000282Scrutinee_6989586621679997583Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000319Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000319Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000319Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000319Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000325Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000325Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000325Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000318X_6989586621680000325Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000491Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000491Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000491Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000491Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000497Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000497Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000497Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000490X_6989586621680000497Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000659XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000659XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000659XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000659XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000678Scrutinee_6989586621679997577Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000678Scrutinee_6989586621679997577Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000678Scrutinee_6989586621679997577Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000678Scrutinee_6989586621679997577Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000725Scrutinee_6989586621679997575Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000725Scrutinee_6989586621679997575Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000725Scrutinee_6989586621679997575Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000725Scrutinee_6989586621679997575Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000851XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000851XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000851XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000851XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000903XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000903XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000903XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000946Scrutinee_6989586621679997613Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000946Scrutinee_6989586621679997613Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000946Scrutinee_6989586621679997613Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000946Scrutinee_6989586621679997613Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000946Scrutinee_6989586621679997613Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000916MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000916MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000916MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000916MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000916MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000990XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000990XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680000990XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001033Scrutinee_6989586621679997619Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001033Scrutinee_6989586621679997619Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001033Scrutinee_6989586621679997619Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001033Scrutinee_6989586621679997619Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001033Scrutinee_6989586621679997619Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001003MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001003MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001003MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001003MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001003MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001068XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001068XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001082XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001082XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001140Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001108LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001108LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001108LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001108LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001108LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001269X_6989586621680001270Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001483X_6989586621680001484Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001215InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001194PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001194PermsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001194PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001582FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001582FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001582FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001582FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001641RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001641RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001641RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001698Scrutinee_6989586621679997641Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001698Scrutinee_6989586621679997641Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001698Scrutinee_6989586621679997641Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001698Scrutinee_6989586621679997641Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680001694Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680001694Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680001694Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621680001694Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001746Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001746Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001746Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621680001746Init'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GenericLengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Elem_bySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:!!$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:!!$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReplicateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReplicateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ProductSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PartitionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PartitionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LookupSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LookupSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SplitAtSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.BreakSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.BreakSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SpanSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SpanSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.GroupSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FilterSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FilterSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:\\$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:\\$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip7Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnzipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWith3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Zip3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ZipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NotElemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NotElemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsPrefixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsPrefixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnfoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnfoldrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumRSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MapAccumLSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanr1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanr1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ScanlSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanl1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AllSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AllSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.OrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldr1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldr1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PermutationsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PrependToAllSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PrependToAllSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmptySubsequencesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SubsequencesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReverseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NullSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LastSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.HeadSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TransposeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym0


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

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

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

-- | Conditional over singletons
sIf :: Sing a -> Sing b -> Sing c -> Sing (If a b c)
sNot :: forall (t_a2TkY :: Bool). Sing t_a2TkY -> Sing (Apply NotSym0 t_a2TkY :: Bool)
(%:&&) :: forall (t_a2Tl1 :: Bool) (t_a2Tl2 :: Bool). Sing t_a2Tl1 -> Sing t_a2Tl2 -> Sing (Apply (Apply (:&&$) t_a2Tl1) t_a2Tl2 :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a2TkZ :: Bool) (t_a2Tl0 :: Bool). Sing t_a2TkZ -> Sing t_a2Tl0 -> Sing (Apply (Apply (:||$) t_a2TkZ) t_a2Tl0 :: 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_a3yFb :: TyFun k06989586621679857097 k6989586621679857099)

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a
sId :: forall (t_a2UuN :: a_a2Urb). Sing t_a2UuN -> Sing (Apply IdSym0 t_a2UuN :: a_a2Urb)
sConst :: forall (t_a2UuJ :: a_a2Ur9) (t_a2UuK :: b_a2Ura). Sing t_a2UuJ -> Sing t_a2UuK -> Sing (Apply (Apply ConstSym0 t_a2UuJ) t_a2UuK :: a_a2Ur9)
(%:.) :: forall (t_a2UuG :: TyFun b_a2Ur6 c_a2Ur7 -> Type) (t_a2UuH :: TyFun a_a2Ur8 b_a2Ur6 -> Type) (t_a2UuI :: a_a2Ur8). Sing t_a2UuG -> Sing t_a2UuH -> Sing t_a2UuI -> Sing (Apply (Apply (Apply (:.$) t_a2UuG) t_a2UuH) t_a2UuI :: c_a2Ur7)
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_a2UuD :: TyFun a_a2Ur3 (TyFun b_a2Ur4 c_a2Ur5 -> Type) -> Type) (t_a2UuE :: b_a2Ur4) (t_a2UuF :: a_a2Ur3). Sing t_a2UuD -> Sing t_a2UuE -> Sing t_a2UuF -> Sing (Apply (Apply (Apply FlipSym0 t_a2UuD) t_a2UuE) t_a2UuF :: c_a2Ur5)
sAsTypeOf :: forall (t_a2UuL :: a_a2Ur2) (t_a2UuM :: a_a2Ur2). Sing t_a2UuL -> Sing t_a2UuM -> Sing (Apply (Apply AsTypeOfSym0 t_a2UuL) t_a2UuM :: a_a2Ur2)
sSeq :: forall (t_a2UuB :: a_a2Ur0) (t_a2UuC :: b_a2Ur1). Sing t_a2UuB -> Sing t_a2UuC -> Sing (Apply (Apply SeqSym0 t_a2UuB) t_a2UuC :: b_a2Ur1)
infixr 0 `sSeq`
sMap :: forall (t_a2UuQ :: TyFun a_a2Urd b_a2Ure -> Type) (t_a2UuR :: [a_a2Urd]). Sing t_a2UuQ -> Sing t_a2UuR -> Sing (Apply (Apply MapSym0 t_a2UuQ) t_a2UuR :: [b_a2Ure])
(%:++) :: forall (t_a2UuO :: [a_a2Urc]) (t_a2UuP :: [a_a2Urc]). Sing t_a2UuO -> Sing t_a2UuP -> Sing (Apply (Apply (:++$) t_a2UuO) t_a2UuP :: [a_a2Urc])
infixr 5 %:++
sHead :: forall (t_a4a6T :: [a_a48QI]). Sing t_a4a6T -> Sing (Apply HeadSym0 t_a4a6T :: a_a48QI)
sLast :: forall (t_a4a6S :: [a_a48QH]). Sing t_a4a6S -> Sing (Apply LastSym0 t_a4a6S :: a_a48QH)
sTail :: forall (t_a4a6R :: [a_a48QG]). Sing t_a4a6R -> Sing (Apply TailSym0 t_a4a6R :: [a_a48QG])
sInit :: forall (t_a4a6Q :: [a_a48QF]). Sing t_a4a6Q -> Sing (Apply InitSym0 t_a4a6Q :: [a_a48QF])
sNull :: forall (t_a4a6N :: [a_a48QE]). Sing t_a4a6N -> Sing (Apply NullSym0 t_a4a6N :: Bool)
sReverse :: forall (t_a4a6K :: [a_a48QD]). Sing t_a4a6K -> Sing (Apply ReverseSym0 t_a4a6K :: [a_a48QD])
sFoldl :: forall (t_a2GGK :: TyFun b_a2GFM (TyFun a_a2GFL b_a2GFM -> Type) -> Type) (t_a2GGL :: b_a2GFM) (t_a2GGM :: [a_a2GFL]). Sing t_a2GGK -> Sing t_a2GGL -> Sing t_a2GGM -> Sing (Apply (Apply (Apply FoldlSym0 t_a2GGK) t_a2GGL) t_a2GGM :: b_a2GFM)
sFoldl1 :: forall (t_a4a6o :: TyFun a_a48Qu (TyFun a_a48Qu a_a48Qu -> Type) -> Type) (t_a4a6p :: [a_a48Qu]). Sing t_a4a6o -> Sing t_a4a6p -> Sing (Apply (Apply Foldl1Sym0 t_a4a6o) t_a4a6p :: a_a48Qu)
sFoldr :: forall (t_a2UuS :: TyFun a_a2Urf (TyFun b_a2Urg b_a2Urg -> Type) -> Type) (t_a2UuT :: b_a2Urg) (t_a2UuU :: [a_a2Urf]). Sing t_a2UuS -> Sing t_a2UuT -> Sing t_a2UuU -> Sing (Apply (Apply (Apply FoldrSym0 t_a2UuS) t_a2UuT) t_a2UuU :: b_a2Urg)
sFoldr1 :: forall (t_a4a6m :: TyFun a_a48Qs (TyFun a_a48Qs a_a48Qs -> Type) -> Type) (t_a4a6n :: [a_a48Qs]). Sing t_a4a6m -> Sing t_a4a6n -> Sing (Apply (Apply Foldr1Sym0 t_a4a6m) t_a4a6n :: a_a48Qs)
sAnd :: forall (t_a4a6i :: [Bool]). Sing t_a4a6i -> Sing (Apply AndSym0 t_a4a6i :: Bool)
sOr :: forall (t_a4a6h :: [Bool]). Sing t_a4a6h -> Sing (Apply OrSym0 t_a4a6h :: Bool)
sAny_ :: forall (t_a464o :: TyFun a_a4644 Bool -> Type) (t_a464p :: [a_a4644]). Sing t_a464o -> Sing t_a464p -> Sing (Apply (Apply Any_Sym0 t_a464o) t_a464p :: Bool)
sAll :: forall (t_a4a6f :: TyFun a_a48Qo Bool -> Type) (t_a4a6g :: [a_a48Qo]). Sing t_a4a6f -> Sing t_a4a6g -> Sing (Apply (Apply AllSym0 t_a4a6f) t_a4a6g :: Bool)
sConcat :: forall (t_a4a6l :: [[a_a48Qr]]). Sing t_a4a6l -> Sing (Apply ConcatSym0 t_a4a6l :: [a_a48Qr])
sConcatMap :: forall (t_a4a6j :: TyFun a_a48Qp [b_a48Qq] -> Type) (t_a4a6k :: [a_a48Qp]). Sing t_a4a6j -> Sing t_a4a6k -> Sing (Apply (Apply ConcatMapSym0 t_a4a6j) t_a4a6k :: [b_a48Qq])
sScanl :: forall (t_a4a6a :: TyFun b_a48Qm (TyFun a_a48Qn b_a48Qm -> Type) -> Type) (t_a4a6b :: b_a48Qm) (t_a4a6c :: [a_a48Qn]). Sing t_a4a6a -> Sing t_a4a6b -> Sing t_a4a6c -> Sing (Apply (Apply (Apply ScanlSym0 t_a4a6a) t_a4a6b) t_a4a6c :: [b_a48Qm])
sScanl1 :: forall (t_a4a6d :: TyFun a_a48Ql (TyFun a_a48Ql a_a48Ql -> Type) -> Type) (t_a4a6e :: [a_a48Ql]). Sing t_a4a6d -> Sing t_a4a6e -> Sing (Apply (Apply Scanl1Sym0 t_a4a6d) t_a4a6e :: [a_a48Ql])
sScanr :: forall (t_a4a67 :: TyFun a_a48Qj (TyFun b_a48Qk b_a48Qk -> Type) -> Type) (t_a4a68 :: b_a48Qk) (t_a4a69 :: [a_a48Qj]). Sing t_a4a67 -> Sing t_a4a68 -> Sing t_a4a69 -> Sing (Apply (Apply (Apply ScanrSym0 t_a4a67) t_a4a68) t_a4a69 :: [b_a48Qk])
sScanr1 :: forall (t_a4a65 :: TyFun a_a48Qi (TyFun a_a48Qi a_a48Qi -> Type) -> Type) (t_a4a66 :: [a_a48Qi]). Sing t_a4a65 -> Sing t_a4a66 -> Sing (Apply (Apply Scanr1Sym0 t_a4a65) t_a4a66 :: [a_a48Qi])
sElem :: forall (t_a4a5O :: a_a48Q4) (t_a4a5P :: [a_a48Q4]). SEq a_a48Q4 => Sing t_a4a5O -> Sing t_a4a5P -> Sing (Apply (Apply ElemSym0 t_a4a5O) t_a4a5P :: Bool)
sNotElem :: forall (t_a4a5M :: a_a48Q3) (t_a4a5N :: [a_a48Q3]). SEq a_a48Q3 => Sing t_a4a5M -> Sing t_a4a5N -> Sing (Apply (Apply NotElemSym0 t_a4a5M) t_a4a5N :: Bool)
sLookup :: forall (t_a4a4x :: a_a48OU) (t_a4a4y :: [(a_a48OU, b_a48OV)]). SEq a_a48OU => Sing t_a4a4x -> Sing t_a4a4y -> Sing (Apply (Apply LookupSym0 t_a4a4x) t_a4a4y :: Maybe b_a48OV)
sZip :: forall (t_a4a5C :: [a_a48Q1]) (t_a4a5D :: [b_a48Q2]). Sing t_a4a5C -> Sing t_a4a5D -> Sing (Apply (Apply ZipSym0 t_a4a5C) t_a4a5D :: [(a_a48Q1, b_a48Q2)])
sZip3 :: forall (t_a4a5z :: [a_a48PY]) (t_a4a5A :: [b_a48PZ]) (t_a4a5B :: [c_a48Q0]). Sing t_a4a5z -> Sing t_a4a5A -> Sing t_a4a5B -> Sing (Apply (Apply (Apply Zip3Sym0 t_a4a5z) t_a4a5A) t_a4a5B :: [(a_a48PY, b_a48PZ, c_a48Q0)])
sZipWith :: forall (t_a4a5w :: TyFun a_a48PV (TyFun b_a48PW c_a48PX -> Type) -> Type) (t_a4a5x :: [a_a48PV]) (t_a4a5y :: [b_a48PW]). Sing t_a4a5w -> Sing t_a4a5x -> Sing t_a4a5y -> Sing (Apply (Apply (Apply ZipWithSym0 t_a4a5w) t_a4a5x) t_a4a5y :: [c_a48PX])
sZipWith3 :: forall (t_a4a5s :: TyFun a_a48PR (TyFun b_a48PS (TyFun c_a48PT d_a48PU -> Type) -> Type) -> Type) (t_a4a5t :: [a_a48PR]) (t_a4a5u :: [b_a48PS]) (t_a4a5v :: [c_a48PT]). Sing t_a4a5s -> Sing t_a4a5t -> Sing t_a4a5u -> Sing t_a4a5v -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a4a5s) t_a4a5t) t_a4a5u) t_a4a5v :: [d_a48PU])
sUnzip :: forall (t_a4a5r :: [(a_a48PP, b_a48PQ)]). Sing t_a4a5r -> Sing (Apply UnzipSym0 t_a4a5r :: ([a_a48PP], [b_a48PQ]))
sUnzip3 :: forall (t_a4a5q :: [(a_a48PM, b_a48PN, c_a48PO)]). Sing t_a4a5q -> Sing (Apply Unzip3Sym0 t_a4a5q :: ([a_a48PM], [b_a48PN], [c_a48PO]))
sMaybe_ :: forall (t_a41zg :: b_a41yM) (t_a41zh :: TyFun a_a41yN b_a41yM -> Type) (t_a41zi :: Maybe a_a41yN). Sing t_a41zg -> Sing t_a41zh -> Sing t_a41zi -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a41zg) t_a41zh) t_a41zi :: b_a41yM)
sEither_ :: forall (t_a3YJ9 :: TyFun a_a3YIC c_a3YID -> Type) (t_a3YJa :: TyFun b_a3YIE c_a3YID -> Type) (t_a3YJb :: Either a_a3YIC b_a3YIE). Sing t_a3YJ9 -> Sing t_a3YJa -> Sing t_a3YJb -> Sing (Apply (Apply (Apply Either_Sym0 t_a3YJ9) t_a3YJa) t_a3YJb :: c_a3YID)
sFst :: forall (t_a44V7 :: (a_a44TX, b_a44TY)). Sing t_a44V7 -> Sing (Apply FstSym0 t_a44V7 :: a_a44TX)
sSnd :: forall (t_a44V6 :: (a_a44TV, b_a44TW)). Sing t_a44V6 -> Sing (Apply SndSym0 t_a44V6 :: b_a44TW)
sCurry :: forall (t_a44V3 :: TyFun (a_a44TS, b_a44TT) c_a44TU -> Type) (t_a44V4 :: a_a44TS) (t_a44V5 :: b_a44TT). Sing t_a44V3 -> Sing t_a44V4 -> Sing t_a44V5 -> Sing (Apply (Apply (Apply CurrySym0 t_a44V3) t_a44V4) t_a44V5 :: c_a44TU)
sUncurry :: forall (t_a44V8 :: TyFun a_a44TP (TyFun b_a44TQ c_a44TR -> Type) -> Type) (t_a44V9 :: (a_a44TP, b_a44TQ)). Sing t_a44V8 -> Sing t_a44V9 -> Sing (Apply (Apply UncurrySym0 t_a44V8) t_a44V9 :: c_a44TR)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *
either_ :: forall a_a3YIC c_a3YID b_a3YIE. (a_a3YIC -> c_a3YID) -> (b_a3YIE -> c_a3YID) -> Either a_a3YIC b_a3YIE -> c_a3YID
maybe_ :: forall b_a41yM a_a41yN. b_a41yM -> (a_a41yN -> b_a41yM) -> Maybe a_a41yN -> b_a41yM
bool_ :: forall a_a2T92. a_a2T92 -> a_a2T92 -> Bool -> a_a2T92
any_ :: forall a_a4644. (a_a4644 -> Bool) -> [a_a4644] -> Bool
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a2Tkv :: TyFun Bool Bool)
type NotSym1 (t_a2Tku :: Bool) = Not t_a2Tku
data (:&&$) (l_a2TkN :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2TkQ :: Bool) (l_a2TkP :: TyFun Bool Bool)
type (:&&$$$) (t_a2TkL :: Bool) (t_a2TkM :: Bool) = (:&&) t_a2TkL t_a2TkM
data (:||$) (l_a2TkA :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2TkD :: Bool) (l_a2TkC :: TyFun Bool Bool)
type (:||$$$) (t_a2Tky :: Bool) (t_a2Tkz :: Bool) = (:||) t_a2Tky t_a2Tkz
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a2DI7 :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a2DI6 :: a3530822107858468866) = Just t_a2DI6
data Maybe_Sym0 (l_a41yV :: TyFun b6989586621679969104 (TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type) -> Type))
data Maybe_Sym1 (l_a41yY :: b6989586621679969104) (l_a41yX :: TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type))
data Maybe_Sym2 (l_a41z1 :: b6989586621679969104) (l_a41z2 :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (l_a41z0 :: TyFun (Maybe a6989586621679969105) b6989586621679969104)
type Maybe_Sym3 (t_a41yS :: b6989586621679969104) (t_a41yT :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (t_a41yU :: Maybe a6989586621679969105) = Maybe_ t_a41yS t_a41yT t_a41yU
data LeftSym0 (l_a2DIy :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a2DIx :: a6989586621679054093) = Left t_a2DIx
data RightSym0 (l_a2DIB :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a2DIA :: b6989586621679054094) = Right t_a2DIA
data Either_Sym0 (l_a3YIN :: TyFun (TyFun a6989586621679958182 c6989586621679958183 -> Type) (TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type) -> Type))
data Either_Sym1 (l_a3YIQ :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIP :: TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type))
data Either_Sym2 (l_a3YIT :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIU :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (l_a3YIS :: TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183)
type Either_Sym3 (t_a3YIK :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (t_a3YIL :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (t_a3YIM :: Either a6989586621679958182 b6989586621679958184) = Either_ t_a3YIK t_a3YIL t_a3YIM
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data FstSym0 (l_a44UK :: TyFun (a6989586621679981949, b6989586621679981950) a6989586621679981949)
type FstSym1 (t_a44UJ :: (a6989586621679981949, b6989586621679981950)) = Fst t_a44UJ
data SndSym0 (l_a44UC :: TyFun (a6989586621679981947, b6989586621679981948) b6989586621679981948)
type SndSym1 (t_a44UB :: (a6989586621679981947, b6989586621679981948)) = Snd t_a44UB
data CurrySym0 (l_a44Um :: TyFun (TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type) -> Type))
data CurrySym1 (l_a44Up :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Uo :: TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type))
data CurrySym2 (l_a44Us :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Ut :: a6989586621679981944) (l_a44Ur :: TyFun b6989586621679981945 c6989586621679981946)
type CurrySym3 (t_a44Uj :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (t_a44Uk :: a6989586621679981944) (t_a44Ul :: b6989586621679981945) = Curry t_a44Uj t_a44Uk t_a44Ul
data UncurrySym0 (l_a44UT :: TyFun (TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943 -> Type))
data UncurrySym1 (l_a44UW :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (l_a44UV :: TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943)
type UncurrySym2 (t_a44UR :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (t_a44US :: (a6989586621679981941, b6989586621679981942)) = Uncurry t_a44UR t_a44US
data IdSym0 (l_a2Utp :: TyFun a6989586621679703397 a6989586621679703397)
type IdSym1 (t_a2Uto :: a6989586621679703397) = Id t_a2Uto
data ConstSym0 (l_a2UsY :: TyFun a6989586621679703395 (TyFun b6989586621679703396 a6989586621679703395 -> Type))
data ConstSym1 (l_a2Ut1 :: a6989586621679703395) (l_a2Ut0 :: TyFun b6989586621679703396 a6989586621679703395)
type ConstSym2 (t_a2UsW :: a6989586621679703395) (t_a2UsX :: b6989586621679703396) = Const t_a2UsW t_a2UsX
data (:.$) (l_a2Usj :: TyFun (TyFun b6989586621679703392 c6989586621679703393 -> Type) (TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type) -> Type))
data (:.$$) (l_a2Usm :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usl :: TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type))
data (:.$$$) (l_a2Usp :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usq :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (l_a2Uso :: TyFun a6989586621679703394 c6989586621679703393)
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_a2Us1 :: TyFun (TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type) -> Type))
data FlipSym1 (l_a2Us4 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us3 :: TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type))
data FlipSym2 (l_a2Us7 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us8 :: b6989586621679703390) (l_a2Us6 :: TyFun a6989586621679703389 c6989586621679703391)
data AsTypeOfSym0 (l_a2Utf :: TyFun a6989586621679703388 (TyFun a6989586621679703388 a6989586621679703388 -> Type))
data AsTypeOfSym1 (l_a2Uti :: a6989586621679703388) (l_a2Uth :: TyFun a6989586621679703388 a6989586621679703388)
type AsTypeOfSym2 (t_a2Utd :: a6989586621679703388) (t_a2Ute :: a6989586621679703388) = AsTypeOf t_a2Utd t_a2Ute
data SeqSym0 (l_a2UrN :: TyFun a6989586621679703386 (TyFun b6989586621679703387 b6989586621679703387 -> Type))
data SeqSym1 (l_a2UrQ :: a6989586621679703386) (l_a2UrP :: TyFun b6989586621679703387 b6989586621679703387)
type SeqSym2 (t_a2UrL :: a6989586621679703386) (t_a2UrM :: b6989586621679703387) = Seq t_a2UrL t_a2UrM
data (:$) (l_a2DIh :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a2DIk :: a3530822107858468866) (l_a2DIj :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a2DIf :: a3530822107858468866) (t_a2DIg :: [a3530822107858468866]) = (:) t_a2DIf t_a2DIg
type NilSym0 = '[]
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data ReverseSym0 (l_a4a1v :: TyFun [a6989586621679997119] [a6989586621679997119])
type ReverseSym1 (t_a4a1u :: [a6989586621679997119]) = Reverse t_a4a1u
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data HeadSym0 (l_a4a40 :: TyFun [a6989586621679997124] a6989586621679997124)
type HeadSym1 (t_a4a3Z :: [a6989586621679997124]) = Head t_a4a3Z
data LastSym0 (l_a4a3Q :: TyFun [a6989586621679997123] a6989586621679997123)
type LastSym1 (t_a4a3P :: [a6989586621679997123]) = Last t_a4a3P
data TailSym0 (l_a4a3I :: TyFun [a6989586621679997122] [a6989586621679997122])
type TailSym1 (t_a4a3H :: [a6989586621679997122]) = Tail t_a4a3H
data InitSym0 (l_a4a3b :: TyFun [a6989586621679997121] [a6989586621679997121])
type InitSym1 (t_a4a3a :: [a6989586621679997121]) = Init t_a4a3a
data NullSym0 (l_a4a24 :: TyFun [a6989586621679997120] Bool)
type NullSym1 (t_a4a23 :: [a6989586621679997120]) = Null t_a4a23
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type) -> Type))
data FoldlSym1 (l_a2GG2 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG1 :: TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type))
data FoldlSym2 (l_a2GG5 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG6 :: b6989586621679650486) (l_a2GG4 :: TyFun [a6989586621679650485] b6989586621679650486)
type FoldlSym3 (t_a2GFW :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (t_a2GFX :: b6989586621679650486) (t_a2GFY :: [a6989586621679650485]) = Foldl t_a2GFW t_a2GFX t_a2GFY
data Foldl1Sym0 (l_a49Pd :: TyFun (TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (TyFun [a6989586621679997110] a6989586621679997110 -> Type))
data Foldl1Sym1 (l_a49Pg :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (l_a49Pf :: TyFun [a6989586621679997110] a6989586621679997110)
type Foldl1Sym2 (t_a49Pb :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (t_a49Pc :: [a6989586621679997110]) = Foldl1 t_a49Pb t_a49Pc
data FoldrSym0 (l_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data Foldr1Sym0 (l_a49OA :: TyFun (TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (TyFun [a6989586621679997108] a6989586621679997108 -> Type))
data Foldr1Sym1 (l_a49OD :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (l_a49OC :: TyFun [a6989586621679997108] a6989586621679997108)
type Foldr1Sym2 (t_a49Oy :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (t_a49Oz :: [a6989586621679997108]) = Foldr1 t_a49Oy t_a49Oz
data ConcatSym0 (l_a49Ou :: TyFun [[a6989586621679997107]] [a6989586621679997107])
type ConcatSym1 (t_a49Ot :: [[a6989586621679997107]]) = Concat t_a49Ot
data ConcatMapSym0 (l_a49Og :: TyFun (TyFun a6989586621679997105 [b6989586621679997106] -> Type) (TyFun [a6989586621679997105] [b6989586621679997106] -> Type))
data ConcatMapSym1 (l_a49Oj :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (l_a49Oi :: TyFun [a6989586621679997105] [b6989586621679997106])
type ConcatMapSym2 (t_a49Oe :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (t_a49Of :: [a6989586621679997105]) = ConcatMap t_a49Oe t_a49Of
data AndSym0 (l_a49O9 :: TyFun [Bool] Bool)
type AndSym1 (t_a49O8 :: [Bool]) = And t_a49O8
data OrSym0 (l_a49O3 :: TyFun [Bool] Bool)
type OrSym1 (t_a49O2 :: [Bool]) = Or t_a49O2
data Any_Sym0 (l_a464b :: TyFun (TyFun a6989586621679986420 Bool -> Type) (TyFun [a6989586621679986420] Bool -> Type))
data Any_Sym1 (l_a464e :: TyFun a6989586621679986420 Bool -> Type) (l_a464d :: TyFun [a6989586621679986420] Bool)
type Any_Sym2 (t_a4649 :: TyFun a6989586621679986420 Bool -> Type) (t_a464a :: [a6989586621679986420]) = Any_ t_a4649 t_a464a
data AllSym0 (l_a49NP :: TyFun (TyFun a6989586621679997104 Bool -> Type) (TyFun [a6989586621679997104] Bool -> Type))
data AllSym1 (l_a49NS :: TyFun a6989586621679997104 Bool -> Type) (l_a49NR :: TyFun [a6989586621679997104] Bool)
type AllSym2 (t_a49NN :: TyFun a6989586621679997104 Bool -> Type) (t_a49NO :: [a6989586621679997104]) = All t_a49NN t_a49NO
data ScanlSym0 (l_a49Ne :: TyFun (TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type) -> Type))
data ScanlSym1 (l_a49Nh :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Ng :: TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type))
data ScanlSym2 (l_a49Nk :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Nl :: b6989586621679997102) (l_a49Nj :: TyFun [a6989586621679997103] [b6989586621679997102])
type ScanlSym3 (t_a49Nb :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (t_a49Nc :: b6989586621679997102) (t_a49Nd :: [a6989586621679997103]) = Scanl t_a49Nb t_a49Nc t_a49Nd
data Scanl1Sym0 (l_a49NA :: TyFun (TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (TyFun [a6989586621679997101] [a6989586621679997101] -> Type))
data Scanl1Sym1 (l_a49ND :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (l_a49NC :: TyFun [a6989586621679997101] [a6989586621679997101])
type Scanl1Sym2 (t_a49Ny :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (t_a49Nz :: [a6989586621679997101]) = Scanl1 t_a49Ny t_a49Nz
data ScanrSym0 (l_a49Mt :: TyFun (TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type) -> Type))
data ScanrSym1 (l_a49Mw :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49Mv :: TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type))
data ScanrSym2 (l_a49Mz :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49MA :: b6989586621679997100) (l_a49My :: TyFun [a6989586621679997099] [b6989586621679997100])
type ScanrSym3 (t_a49Mq :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (t_a49Mr :: b6989586621679997100) (t_a49Ms :: [a6989586621679997099]) = Scanr t_a49Mq t_a49Mr t_a49Ms
data Scanr1Sym0 (l_a49Lr :: TyFun (TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (TyFun [a6989586621679997098] [a6989586621679997098] -> Type))
data Scanr1Sym1 (l_a49Lu :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (l_a49Lt :: TyFun [a6989586621679997098] [a6989586621679997098])
type Scanr1Sym2 (t_a49Lp :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (t_a49Lq :: [a6989586621679997098]) = Scanr1 t_a49Lp t_a49Lq
data ElemSym0 (l_a49Dy :: TyFun a6989586621679997084 (TyFun [a6989586621679997084] Bool -> Type))
data ElemSym1 (l_a49DB :: a6989586621679997084) (l_a49DA :: TyFun [a6989586621679997084] Bool)
type ElemSym2 (t_a49Dw :: a6989586621679997084) (t_a49Dx :: [a6989586621679997084]) = Elem t_a49Dw t_a49Dx
data NotElemSym0 (l_a49Dj :: TyFun a6989586621679997083 (TyFun [a6989586621679997083] Bool -> Type))
data NotElemSym1 (l_a49Dm :: a6989586621679997083) (l_a49Dl :: TyFun [a6989586621679997083] Bool)
type NotElemSym2 (t_a49Dh :: a6989586621679997083) (t_a49Di :: [a6989586621679997083]) = NotElem t_a49Dh t_a49Di
data ZipSym0 (l_a49Bg :: TyFun [a6989586621679997081] (TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)] -> Type))
data ZipSym1 (l_a49Bj :: [a6989586621679997081]) (l_a49Bi :: TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)])
type ZipSym2 (t_a49Be :: [a6989586621679997081]) (t_a49Bf :: [b6989586621679997082]) = Zip t_a49Be t_a49Bf
data Zip3Sym0 (l_a49A4 :: TyFun [a6989586621679997078] (TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type) -> Type))
data Zip3Sym1 (l_a49A7 :: [a6989586621679997078]) (l_a49A6 :: TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type))
data Zip3Sym2 (l_a49Aa :: [a6989586621679997078]) (l_a49Ab :: [b6989586621679997079]) (l_a49A9 :: TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)])
type Zip3Sym3 (t_a49A1 :: [a6989586621679997078]) (t_a49A2 :: [b6989586621679997079]) (t_a49A3 :: [c6989586621679997080]) = Zip3 t_a49A1 t_a49A2 t_a49A3
data ZipWithSym0 (l_a49zp :: TyFun (TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type) -> Type))
data ZipWithSym1 (l_a49zs :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zr :: TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type))
data ZipWithSym2 (l_a49zv :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zw :: [a6989586621679997075]) (l_a49zu :: TyFun [b6989586621679997076] [c6989586621679997077])
type ZipWithSym3 (t_a49zm :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (t_a49zn :: [a6989586621679997075]) (t_a49zo :: [b6989586621679997076]) = ZipWith t_a49zm t_a49zn t_a49zo
data ZipWith3Sym0 (l_a49xK :: TyFun (TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a49xN :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xM :: TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type))
data ZipWith3Sym2 (l_a49xQ :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xR :: [a6989586621679997071]) (l_a49xP :: TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type))
data ZipWith3Sym3 (l_a49xU :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xV :: [a6989586621679997071]) (l_a49xW :: [b6989586621679997072]) (l_a49xT :: TyFun [c6989586621679997073] [d6989586621679997074])
data UnzipSym0 (l_a49xd :: TyFun [(a6989586621679997069, b6989586621679997070)] ([a6989586621679997069], [b6989586621679997070]))
type UnzipSym1 (t_a49xc :: [(a6989586621679997069, b6989586621679997070)]) = Unzip t_a49xc


-- | 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_a36b6), kproxy_a36Mc ~ Proxy) => POrd (kproxy_a36Mc :: Proxy a_a36b6) where type Compare (arg_a36Md :: a_a36b6) (arg_a36Me :: a_a36b6) :: Ordering type (:<) (arg_a36Mm :: a_a36b6) (arg_a36Mn :: a_a36b6) :: Bool type (:<=) (arg_a36Mv :: a_a36b6) (arg_a36Mw :: a_a36b6) :: Bool type (:>) (arg_a36ME :: a_a36b6) (arg_a36MF :: a_a36b6) :: Bool type (:>=) (arg_a36MN :: a_a36b6) (arg_a36MO :: a_a36b6) :: Bool type Max (arg_a36MW :: a_a36b6) (arg_a36MX :: a_a36b6) :: a_a36b6 type Min (arg_a36N5 :: a_a36b6) (arg_a36N6 :: a_a36b6) :: a_a36b6 type Compare a_a36NL a_a36NM = Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM type (:<) a_a36Oi a_a36Oj = Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj type (:<=) a_a36OP a_a36OQ = Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ type (:>) a_a36Pm a_a36Pn = Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn type (:>=) a_a36PT a_a36PU = Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU type Max a_a36Qq a_a36Qr = Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr type Min a_a36QX a_a36QY = Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY where {
    type family Compare (arg_a36Md :: a_a36b6)
                        (arg_a36Me :: a_a36b6) :: Ordering;
    type family (:<) (arg_a36Mm :: a_a36b6)
                     (arg_a36Mn :: a_a36b6) :: Bool;
    type family (:<=) (arg_a36Mv :: a_a36b6)
                      (arg_a36Mw :: a_a36b6) :: Bool;
    type family (:>) (arg_a36ME :: a_a36b6)
                     (arg_a36MF :: a_a36b6) :: Bool;
    type family (:>=) (arg_a36MN :: a_a36b6)
                      (arg_a36MO :: a_a36b6) :: Bool;
    type family Max (arg_a36MW :: a_a36b6)
                    (arg_a36MX :: a_a36b6) :: a_a36b6;
    type family Min (arg_a36N5 :: a_a36b6)
                    (arg_a36N6 :: a_a36b6) :: a_a36b6;
    type Compare a_a36NL a_a36NM =
        Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM;
    type (:<) a_a36Oi a_a36Oj =
        Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj;
    type (:<=) a_a36OP a_a36OQ =
        Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ;
    type (:>) a_a36Pm a_a36Pn =
        Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn;
    type (:>=) a_a36PT a_a36PU =
        Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU;
    type Max a_a36Qq a_a36Qr =
        Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr;
    type Min a_a36QX a_a36QY =
        Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY;
}

-- | 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_a3yFb :: TyFun k06989586621679857097 k6989586621679857099)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data ThenCmpSym0 (l_a38DJ :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> 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_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data FstSym0 (l_a44UK :: TyFun (a6989586621679981949, b6989586621679981950) a6989586621679981949)
type FstSym1 (t_a44UJ :: (a6989586621679981949, b6989586621679981950)) = Fst t_a44UJ
data SndSym0 (l_a44UC :: TyFun (a6989586621679981947, b6989586621679981948) b6989586621679981948)
type SndSym1 (t_a44UB :: (a6989586621679981947, b6989586621679981948)) = Snd t_a44UB
data CurrySym0 (l_a44Um :: TyFun (TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type) -> Type))
data CurrySym1 (l_a44Up :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Uo :: TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type))
data CurrySym2 (l_a44Us :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Ut :: a6989586621679981944) (l_a44Ur :: TyFun b6989586621679981945 c6989586621679981946)
type CurrySym3 (t_a44Uj :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (t_a44Uk :: a6989586621679981944) (t_a44Ul :: b6989586621679981945) = Curry t_a44Uj t_a44Uk t_a44Ul
data UncurrySym0 (l_a44UT :: TyFun (TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943 -> Type))
data UncurrySym1 (l_a44UW :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (l_a44UV :: TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943)
type UncurrySym2 (t_a44UR :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (t_a44US :: (a6989586621679981941, b6989586621679981942)) = Uncurry t_a44UR t_a44US
data SwapSym0 (l_a44Ue :: TyFun (a6989586621679981939, b6989586621679981940) (b6989586621679981940, a6989586621679981939))
type SwapSym1 (t_a44Ud :: (a6989586621679981939, b6989586621679981940)) = Swap t_a44Ud


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class (PEq (Proxy :: Proxy a_a36b6), kproxy_a36Mc ~ Proxy) => POrd (kproxy_a36Mc :: Proxy a_a36b6) where type Compare (arg_a36Md :: a_a36b6) (arg_a36Me :: a_a36b6) :: Ordering type (:<) (arg_a36Mm :: a_a36b6) (arg_a36Mn :: a_a36b6) :: Bool type (:<=) (arg_a36Mv :: a_a36b6) (arg_a36Mw :: a_a36b6) :: Bool type (:>) (arg_a36ME :: a_a36b6) (arg_a36MF :: a_a36b6) :: Bool type (:>=) (arg_a36MN :: a_a36b6) (arg_a36MO :: a_a36b6) :: Bool type Max (arg_a36MW :: a_a36b6) (arg_a36MX :: a_a36b6) :: a_a36b6 type Min (arg_a36N5 :: a_a36b6) (arg_a36N6 :: a_a36b6) :: a_a36b6 type Compare a_a36NL a_a36NM = Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM type (:<) a_a36Oi a_a36Oj = Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj type (:<=) a_a36OP a_a36OQ = Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ type (:>) a_a36Pm a_a36Pn = Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn type (:>=) a_a36PT a_a36PU = Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU type Max a_a36Qq a_a36Qr = Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr type Min a_a36QX a_a36QY = Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY where {
    type family Compare (arg_a36Md :: a_a36b6)
                        (arg_a36Me :: a_a36b6) :: Ordering;
    type family (:<) (arg_a36Mm :: a_a36b6)
                     (arg_a36Mn :: a_a36b6) :: Bool;
    type family (:<=) (arg_a36Mv :: a_a36b6)
                      (arg_a36Mw :: a_a36b6) :: Bool;
    type family (:>) (arg_a36ME :: a_a36b6)
                     (arg_a36MF :: a_a36b6) :: Bool;
    type family (:>=) (arg_a36MN :: a_a36b6)
                      (arg_a36MO :: a_a36b6) :: Bool;
    type family Max (arg_a36MW :: a_a36b6)
                    (arg_a36MX :: a_a36b6) :: a_a36b6;
    type family Min (arg_a36N5 :: a_a36b6)
                    (arg_a36N6 :: a_a36b6) :: a_a36b6;
    type Compare a_a36NL a_a36NM =
        Apply (Apply Compare_6989586621679750927Sym0 a_a36NL) a_a36NM;
    type (:<) a_a36Oi a_a36Oj =
        Apply (Apply TFHelper_6989586621679750960Sym0 a_a36Oi) a_a36Oj;
    type (:<=) a_a36OP a_a36OQ =
        Apply (Apply TFHelper_6989586621679750993Sym0 a_a36OP) a_a36OQ;
    type (:>) a_a36Pm a_a36Pn =
        Apply (Apply TFHelper_6989586621679751026Sym0 a_a36Pm) a_a36Pn;
    type (:>=) a_a36PT a_a36PU =
        Apply (Apply TFHelper_6989586621679751059Sym0 a_a36PT) a_a36PU;
    type Max a_a36Qq a_a36Qr =
        Apply (Apply Max_6989586621679751092Sym0 a_a36Qq) a_a36Qr;
    type Min a_a36QX a_a36QY =
        Apply (Apply Min_6989586621679751125Sym0 a_a36QX) a_a36QY;
}
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a36Mh :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Ordering -> Type))
data CompareSym1 (l_a36Mk :: a6989586621679748528) (l_a36Mj :: TyFun a6989586621679748528 Ordering)
type CompareSym2 (t_a36Mf :: a6989586621679748528) (t_a36Mg :: a6989586621679748528) = Compare t_a36Mf t_a36Mg
data (:<$) (l_a36Mq :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:<$$) (l_a36Mt :: a6989586621679748528) (l_a36Ms :: TyFun a6989586621679748528 Bool)
type (:<$$$) (t_a36Mo :: a6989586621679748528) (t_a36Mp :: a6989586621679748528) = (:<) t_a36Mo t_a36Mp
data (:<=$) (l_a36Mz :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:<=$$) (l_a36MC :: a6989586621679748528) (l_a36MB :: TyFun a6989586621679748528 Bool)
type (:<=$$$) (t_a36Mx :: a6989586621679748528) (t_a36My :: a6989586621679748528) = (:<=) t_a36Mx t_a36My
data (:>$) (l_a36MI :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:>$$) (l_a36ML :: a6989586621679748528) (l_a36MK :: TyFun a6989586621679748528 Bool)
type (:>$$$) (t_a36MG :: a6989586621679748528) (t_a36MH :: a6989586621679748528) = (:>) t_a36MG t_a36MH
data (:>=$) (l_a36MR :: TyFun a6989586621679748528 (TyFun a6989586621679748528 Bool -> Type))
data (:>=$$) (l_a36MU :: a6989586621679748528) (l_a36MT :: TyFun a6989586621679748528 Bool)
type (:>=$$$) (t_a36MP :: a6989586621679748528) (t_a36MQ :: a6989586621679748528) = (:>=) t_a36MP t_a36MQ
data MaxSym0 (l_a36N0 :: TyFun a6989586621679748528 (TyFun a6989586621679748528 a6989586621679748528 -> Type))
data MaxSym1 (l_a36N3 :: a6989586621679748528) (l_a36N2 :: TyFun a6989586621679748528 a6989586621679748528)
type MaxSym2 (t_a36MY :: a6989586621679748528) (t_a36MZ :: a6989586621679748528) = Max t_a36MY t_a36MZ
data MinSym0 (l_a36N9 :: TyFun a6989586621679748528 (TyFun a6989586621679748528 a6989586621679748528 -> Type))
data MinSym1 (l_a36Nc :: a6989586621679748528) (l_a36Nb :: TyFun a6989586621679748528 a6989586621679748528)
type MinSym2 (t_a36N7 :: a6989586621679748528) (t_a36N8 :: a6989586621679748528) = Min t_a36N7 t_a36N8


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class kproxy_a3Byd ~ Proxy => PNum (kproxy_a3Byd :: Proxy a_a3By9) where type (:+) (arg_a3Bye :: a_a3By9) (arg_a3Byf :: a_a3By9) :: a_a3By9 type (:-) (arg_a3Byn :: a_a3By9) (arg_a3Byo :: a_a3By9) :: a_a3By9 type (:*) (arg_a3Byw :: a_a3By9) (arg_a3Byx :: a_a3By9) :: a_a3By9 type Negate (arg_a3ByF :: a_a3By9) :: a_a3By9 type Abs (arg_a3ByJ :: a_a3By9) :: a_a3By9 type Signum (arg_a3ByN :: a_a3By9) :: a_a3By9 type FromInteger (arg_a3ByR :: Nat) :: a_a3By9 type (:-) a_a3Bz6 a_a3Bz7 = Apply (Apply TFHelper_6989586621679869182Sym0 a_a3Bz6) a_a3Bz7 type Negate a_a3Bzm = Apply Negate_6989586621679869197Sym0 a_a3Bzm where {
    type family (:+) (arg_a3Bye :: a_a3By9)
                     (arg_a3Byf :: a_a3By9) :: a_a3By9;
    type family (:-) (arg_a3Byn :: a_a3By9)
                     (arg_a3Byo :: a_a3By9) :: a_a3By9;
    type family (:*) (arg_a3Byw :: a_a3By9)
                     (arg_a3Byx :: a_a3By9) :: a_a3By9;
    type family Negate (arg_a3ByF :: a_a3By9) :: a_a3By9;
    type family Abs (arg_a3ByJ :: a_a3By9) :: a_a3By9;
    type family Signum (arg_a3ByN :: a_a3By9) :: a_a3By9;
    type family FromInteger (arg_a3ByR :: Nat) :: a_a3By9;
    type (:-) a_a3Bz6 a_a3Bz7 =
        Apply (Apply TFHelper_6989586621679869182Sym0 a_a3Bz6) a_a3Bz7;
    type Negate a_a3Bzm = Apply Negate_6989586621679869197Sym0 a_a3Bzm;
}
data (:+$) (l_a3Byi :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:+$$) (l_a3Byl :: a6989586621679869121) (l_a3Byk :: TyFun a6989586621679869121 a6989586621679869121)
type (:+$$$) (t_a3Byg :: a6989586621679869121) (t_a3Byh :: a6989586621679869121) = (:+) t_a3Byg t_a3Byh
data (:-$) (l_a3Byr :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:-$$) (l_a3Byu :: a6989586621679869121) (l_a3Byt :: TyFun a6989586621679869121 a6989586621679869121)
type (:-$$$) (t_a3Byp :: a6989586621679869121) (t_a3Byq :: a6989586621679869121) = (:-) t_a3Byp t_a3Byq
data (:*$) (l_a3ByA :: TyFun a6989586621679869121 (TyFun a6989586621679869121 a6989586621679869121 -> Type))
data (:*$$) (l_a3ByD :: a6989586621679869121) (l_a3ByC :: TyFun a6989586621679869121 a6989586621679869121)
type (:*$$$) (t_a3Byy :: a6989586621679869121) (t_a3Byz :: a6989586621679869121) = (:*) t_a3Byy t_a3Byz
data NegateSym0 (l_a3ByH :: TyFun a6989586621679869121 a6989586621679869121)
type NegateSym1 (t_a3ByG :: a6989586621679869121) = Negate t_a3ByG
data AbsSym0 (l_a3ByL :: TyFun a6989586621679869121 a6989586621679869121)
type AbsSym1 (t_a3ByK :: a6989586621679869121) = Abs t_a3ByK
data SignumSym0 (l_a3ByP :: TyFun a6989586621679869121 a6989586621679869121)
type SignumSym1 (t_a3ByO :: a6989586621679869121) = Signum t_a3ByO
data FromIntegerSym0 (l_a3ByT :: TyFun Nat a6989586621679869121)
type FromIntegerSym1 (t_a3ByS :: Nat) = FromInteger t_a3ByS
data SubtractSym0 (l_a3CaV :: TyFun a6989586621679871437 (TyFun a6989586621679871437 a6989586621679871437 -> Type))
data SubtractSym1 (l_a3CaY :: a6989586621679871437) (l_a3CaX :: TyFun a6989586621679871437 a6989586621679871437)
type SubtractSym2 (t_a3CaT :: a6989586621679871437) (t_a3CaU :: a6989586621679871437) = Subtract t_a3CaT t_a3CaU


-- | 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_a41yM a_a41yN. b_a41yM -> (a_a41yN -> b_a41yM) -> Maybe a_a41yN -> b_a41yM
type NothingSym0 = Nothing
data JustSym0 (l_a2DI7 :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a2DI6 :: a3530822107858468866) = Just t_a2DI6
data Maybe_Sym0 (l_a41yV :: TyFun b6989586621679969104 (TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type) -> Type))
data Maybe_Sym1 (l_a41yY :: b6989586621679969104) (l_a41yX :: TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type))
data Maybe_Sym2 (l_a41z1 :: b6989586621679969104) (l_a41z2 :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (l_a41z0 :: TyFun (Maybe a6989586621679969105) b6989586621679969104)
type Maybe_Sym3 (t_a41yS :: b6989586621679969104) (t_a41yT :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (t_a41yU :: Maybe a6989586621679969105) = Maybe_ t_a41yS t_a41yT t_a41yU
data IsJustSym0 (l_a41UU :: TyFun (Maybe a6989586621679970358) Bool)
type IsJustSym1 (t_a41UT :: Maybe a6989586621679970358) = IsJust t_a41UT
data IsNothingSym0 (l_a41UN :: TyFun (Maybe a6989586621679970357) Bool)
type IsNothingSym1 (t_a41UM :: Maybe a6989586621679970357) = IsNothing t_a41UM
data FromJustSym0 (l_a41UI :: TyFun (Maybe a6989586621679970356) a6989586621679970356)
type FromJustSym1 (t_a41UH :: Maybe a6989586621679970356) = FromJust t_a41UH
data FromMaybeSym0 (l_a41Uu :: TyFun a6989586621679970355 (TyFun (Maybe a6989586621679970355) a6989586621679970355 -> Type))
data FromMaybeSym1 (l_a41Ux :: a6989586621679970355) (l_a41Uw :: TyFun (Maybe a6989586621679970355) a6989586621679970355)
type FromMaybeSym2 (t_a41Us :: a6989586621679970355) (t_a41Ut :: Maybe a6989586621679970355) = FromMaybe t_a41Us t_a41Ut
data MaybeToListSym0 (l_a41Uo :: TyFun (Maybe a6989586621679970354) [a6989586621679970354])
type MaybeToListSym1 (t_a41Un :: Maybe a6989586621679970354) = MaybeToList t_a41Un
data ListToMaybeSym0 (l_a41Ug :: TyFun [a6989586621679970353] (Maybe a6989586621679970353))
type ListToMaybeSym1 (t_a41Uf :: [a6989586621679970353]) = ListToMaybe t_a41Uf
data CatMaybesSym0 (l_a41U9 :: TyFun [Maybe a6989586621679970352] [a6989586621679970352])
type CatMaybesSym1 (t_a41U8 :: [Maybe a6989586621679970352]) = CatMaybes t_a41U8
data MapMaybeSym0 (l_a41Tr :: TyFun (TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (TyFun [a6989586621679970350] [b6989586621679970351] -> Type))
data MapMaybeSym1 (l_a41Tu :: TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (l_a41Tt :: TyFun [a6989586621679970350] [b6989586621679970351])
type MapMaybeSym2 (t_a41Tp :: TyFun a6989586621679970350 (Maybe b6989586621679970351) -> Type) (t_a41Tq :: [a6989586621679970350]) = MapMaybe t_a41Tp t_a41Tq


-- | 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_a4644. (a_a4644 -> Bool) -> [a_a4644] -> Bool
type NilSym0 = '[]
data (:$) (l_a2DIh :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a2DIk :: a3530822107858468866) (l_a2DIj :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a2DIf :: a3530822107858468866) (t_a2DIg :: [a3530822107858468866]) = (:) t_a2DIf t_a2DIg
type (:++$$$) (t_a2Utt :: [a6989586621679703398]) (t_a2Utu :: [a6989586621679703398]) = (:++) t_a2Utt t_a2Utu
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data HeadSym0 (l_a4a40 :: TyFun [a6989586621679997124] a6989586621679997124)
type HeadSym1 (t_a4a3Z :: [a6989586621679997124]) = Head t_a4a3Z
data LastSym0 (l_a4a3Q :: TyFun [a6989586621679997123] a6989586621679997123)
type LastSym1 (t_a4a3P :: [a6989586621679997123]) = Last t_a4a3P
data TailSym0 (l_a4a3I :: TyFun [a6989586621679997122] [a6989586621679997122])
type TailSym1 (t_a4a3H :: [a6989586621679997122]) = Tail t_a4a3H
data InitSym0 (l_a4a3b :: TyFun [a6989586621679997121] [a6989586621679997121])
type InitSym1 (t_a4a3a :: [a6989586621679997121]) = Init t_a4a3a
data NullSym0 (l_a4a24 :: TyFun [a6989586621679997120] Bool)
type NullSym1 (t_a4a23 :: [a6989586621679997120]) = Null t_a4a23
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data ReverseSym0 (l_a4a1v :: TyFun [a6989586621679997119] [a6989586621679997119])
type ReverseSym1 (t_a4a1u :: [a6989586621679997119]) = Reverse t_a4a1u
data IntersperseSym0 (l_a4a16 :: TyFun a6989586621679997118 (TyFun [a6989586621679997118] [a6989586621679997118] -> Type))
data IntersperseSym1 (l_a4a19 :: a6989586621679997118) (l_a4a18 :: TyFun [a6989586621679997118] [a6989586621679997118])
type IntersperseSym2 (t_a4a14 :: a6989586621679997118) (t_a4a15 :: [a6989586621679997118]) = Intersperse t_a4a14 t_a4a15
data IntercalateSym0 (l_a4a1l :: TyFun [a6989586621679997117] (TyFun [[a6989586621679997117]] [a6989586621679997117] -> Type))
data IntercalateSym1 (l_a4a1o :: [a6989586621679997117]) (l_a4a1n :: TyFun [[a6989586621679997117]] [a6989586621679997117])
type IntercalateSym2 (t_a4a1j :: [a6989586621679997117]) (t_a4a1k :: [[a6989586621679997117]]) = Intercalate t_a4a1j t_a4a1k
data SubsequencesSym0 (l_a4a10 :: TyFun [a6989586621679997116] [[a6989586621679997116]])
type SubsequencesSym1 (t_a4a0Z :: [a6989586621679997116]) = Subsequences t_a4a0Z
data PermutationsSym0 (l_a49Ui :: TyFun [a6989586621679997113] [[a6989586621679997113]])
type PermutationsSym1 (t_a49Uh :: [a6989586621679997113]) = Permutations t_a49Uh
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type) -> Type))
data FoldlSym1 (l_a2GG2 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG1 :: TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type))
data FoldlSym2 (l_a2GG5 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG6 :: b6989586621679650486) (l_a2GG4 :: TyFun [a6989586621679650485] b6989586621679650486)
type FoldlSym3 (t_a2GFW :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (t_a2GFX :: b6989586621679650486) (t_a2GFY :: [a6989586621679650485]) = Foldl t_a2GFW t_a2GFX t_a2GFY
data Foldl'Sym0 (l_a49SJ :: TyFun (TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (TyFun b6989586621679997112 (TyFun [a6989586621679997111] b6989586621679997112 -> Type) -> Type))
data Foldl'Sym1 (l_a49SM :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (l_a49SL :: TyFun b6989586621679997112 (TyFun [a6989586621679997111] b6989586621679997112 -> Type))
data Foldl'Sym2 (l_a49SP :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (l_a49SQ :: b6989586621679997112) (l_a49SO :: TyFun [a6989586621679997111] b6989586621679997112)
type Foldl'Sym3 (t_a49SG :: TyFun b6989586621679997112 (TyFun a6989586621679997111 b6989586621679997112 -> Type) -> Type) (t_a49SH :: b6989586621679997112) (t_a49SI :: [a6989586621679997111]) = Foldl' t_a49SG t_a49SH t_a49SI
data Foldl1Sym0 (l_a49Pd :: TyFun (TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (TyFun [a6989586621679997110] a6989586621679997110 -> Type))
data Foldl1Sym1 (l_a49Pg :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (l_a49Pf :: TyFun [a6989586621679997110] a6989586621679997110)
type Foldl1Sym2 (t_a49Pb :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (t_a49Pc :: [a6989586621679997110]) = Foldl1 t_a49Pb t_a49Pc
data Foldl1'Sym0 (l_a49U4 :: TyFun (TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (TyFun [a6989586621679997109] a6989586621679997109 -> Type))
data Foldl1'Sym1 (l_a49U7 :: TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (l_a49U6 :: TyFun [a6989586621679997109] a6989586621679997109)
type Foldl1'Sym2 (t_a49U2 :: TyFun a6989586621679997109 (TyFun a6989586621679997109 a6989586621679997109 -> Type) -> Type) (t_a49U3 :: [a6989586621679997109]) = Foldl1' t_a49U2 t_a49U3
data FoldrSym0 (l_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data Foldr1Sym0 (l_a49OA :: TyFun (TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (TyFun [a6989586621679997108] a6989586621679997108 -> Type))
data Foldr1Sym1 (l_a49OD :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (l_a49OC :: TyFun [a6989586621679997108] a6989586621679997108)
type Foldr1Sym2 (t_a49Oy :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (t_a49Oz :: [a6989586621679997108]) = Foldr1 t_a49Oy t_a49Oz
data ConcatSym0 (l_a49Ou :: TyFun [[a6989586621679997107]] [a6989586621679997107])
type ConcatSym1 (t_a49Ot :: [[a6989586621679997107]]) = Concat t_a49Ot
data ConcatMapSym0 (l_a49Og :: TyFun (TyFun a6989586621679997105 [b6989586621679997106] -> Type) (TyFun [a6989586621679997105] [b6989586621679997106] -> Type))
data ConcatMapSym1 (l_a49Oj :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (l_a49Oi :: TyFun [a6989586621679997105] [b6989586621679997106])
type ConcatMapSym2 (t_a49Oe :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (t_a49Of :: [a6989586621679997105]) = ConcatMap t_a49Oe t_a49Of
data AndSym0 (l_a49O9 :: TyFun [Bool] Bool)
type AndSym1 (t_a49O8 :: [Bool]) = And t_a49O8
data OrSym0 (l_a49O3 :: TyFun [Bool] Bool)
type OrSym1 (t_a49O2 :: [Bool]) = Or t_a49O2
data Any_Sym0 (l_a464b :: TyFun (TyFun a6989586621679986420 Bool -> Type) (TyFun [a6989586621679986420] Bool -> Type))
data Any_Sym1 (l_a464e :: TyFun a6989586621679986420 Bool -> Type) (l_a464d :: TyFun [a6989586621679986420] Bool)
type Any_Sym2 (t_a4649 :: TyFun a6989586621679986420 Bool -> Type) (t_a464a :: [a6989586621679986420]) = Any_ t_a4649 t_a464a
data AllSym0 (l_a49NP :: TyFun (TyFun a6989586621679997104 Bool -> Type) (TyFun [a6989586621679997104] Bool -> Type))
data AllSym1 (l_a49NS :: TyFun a6989586621679997104 Bool -> Type) (l_a49NR :: TyFun [a6989586621679997104] Bool)
type AllSym2 (t_a49NN :: TyFun a6989586621679997104 Bool -> Type) (t_a49NO :: [a6989586621679997104]) = All t_a49NN t_a49NO
data ScanlSym0 (l_a49Ne :: TyFun (TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type) -> Type))
data ScanlSym1 (l_a49Nh :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Ng :: TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type))
data ScanlSym2 (l_a49Nk :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Nl :: b6989586621679997102) (l_a49Nj :: TyFun [a6989586621679997103] [b6989586621679997102])
type ScanlSym3 (t_a49Nb :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (t_a49Nc :: b6989586621679997102) (t_a49Nd :: [a6989586621679997103]) = Scanl t_a49Nb t_a49Nc t_a49Nd
data Scanl1Sym0 (l_a49NA :: TyFun (TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (TyFun [a6989586621679997101] [a6989586621679997101] -> Type))
data Scanl1Sym1 (l_a49ND :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (l_a49NC :: TyFun [a6989586621679997101] [a6989586621679997101])
type Scanl1Sym2 (t_a49Ny :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (t_a49Nz :: [a6989586621679997101]) = Scanl1 t_a49Ny t_a49Nz
data ScanrSym0 (l_a49Mt :: TyFun (TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type) -> Type))
data ScanrSym1 (l_a49Mw :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49Mv :: TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type))
data ScanrSym2 (l_a49Mz :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49MA :: b6989586621679997100) (l_a49My :: TyFun [a6989586621679997099] [b6989586621679997100])
type ScanrSym3 (t_a49Mq :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (t_a49Mr :: b6989586621679997100) (t_a49Ms :: [a6989586621679997099]) = Scanr t_a49Mq t_a49Mr t_a49Ms
data Scanr1Sym0 (l_a49Lr :: TyFun (TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (TyFun [a6989586621679997098] [a6989586621679997098] -> Type))
data Scanr1Sym1 (l_a49Lu :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (l_a49Lt :: TyFun [a6989586621679997098] [a6989586621679997098])
type Scanr1Sym2 (t_a49Lp :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (t_a49Lq :: [a6989586621679997098]) = Scanr1 t_a49Lp t_a49Lq
data MapAccumLSym0 (l_a49IG :: TyFun (TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (TyFun acc6989586621679997095 (TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]) -> Type) -> Type))
data MapAccumLSym1 (l_a49IJ :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (l_a49II :: TyFun acc6989586621679997095 (TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]) -> Type))
data MapAccumLSym2 (l_a49IM :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (l_a49IN :: acc6989586621679997095) (l_a49IL :: TyFun [x6989586621679997096] (acc6989586621679997095, [y6989586621679997097]))
type MapAccumLSym3 (t_a49ID :: TyFun acc6989586621679997095 (TyFun x6989586621679997096 (acc6989586621679997095, y6989586621679997097) -> Type) -> Type) (t_a49IE :: acc6989586621679997095) (t_a49IF :: [x6989586621679997096]) = MapAccumL t_a49ID t_a49IE t_a49IF
data MapAccumRSym0 (l_a49FU :: TyFun (TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (TyFun acc6989586621679997092 (TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]) -> Type) -> Type))
data MapAccumRSym1 (l_a49FX :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (l_a49FW :: TyFun acc6989586621679997092 (TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]) -> Type))
data MapAccumRSym2 (l_a49G0 :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (l_a49G1 :: acc6989586621679997092) (l_a49FZ :: TyFun [x6989586621679997093] (acc6989586621679997092, [y6989586621679997094]))
type MapAccumRSym3 (t_a49FR :: TyFun acc6989586621679997092 (TyFun x6989586621679997093 (acc6989586621679997092, y6989586621679997094) -> Type) -> Type) (t_a49FS :: acc6989586621679997092) (t_a49FT :: [x6989586621679997093]) = MapAccumR t_a49FR t_a49FS t_a49FT
data UnfoldrSym0 (l_a49Fv :: TyFun (TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (TyFun b6989586621679997090 [a6989586621679997091] -> Type))
data UnfoldrSym1 (l_a49Fy :: TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (l_a49Fx :: TyFun b6989586621679997090 [a6989586621679997091])
type UnfoldrSym2 (t_a49Ft :: TyFun b6989586621679997090 (Maybe (a6989586621679997091, b6989586621679997090)) -> Type) (t_a49Fu :: b6989586621679997090) = Unfoldr t_a49Ft t_a49Fu
data InitsSym0 (l_a49Fk :: TyFun [a6989586621679997089] [[a6989586621679997089]])
type InitsSym1 (t_a49Fj :: [a6989586621679997089]) = Inits t_a49Fj
data TailsSym0 (l_a49EX :: TyFun [a6989586621679997088] [[a6989586621679997088]])
type TailsSym1 (t_a49EW :: [a6989586621679997088]) = Tails t_a49EW
data IsPrefixOfSym0 (l_a49Ez :: TyFun [a6989586621679997087] (TyFun [a6989586621679997087] Bool -> Type))
data IsPrefixOfSym1 (l_a49EC :: [a6989586621679997087]) (l_a49EB :: TyFun [a6989586621679997087] Bool)
type IsPrefixOfSym2 (t_a49Ex :: [a6989586621679997087]) (t_a49Ey :: [a6989586621679997087]) = IsPrefixOf t_a49Ex t_a49Ey
data IsSuffixOfSym0 (l_a4a1U :: TyFun [a6989586621679997086] (TyFun [a6989586621679997086] Bool -> Type))
data IsSuffixOfSym1 (l_a4a1X :: [a6989586621679997086]) (l_a4a1W :: TyFun [a6989586621679997086] Bool)
type IsSuffixOfSym2 (t_a4a1S :: [a6989586621679997086]) (t_a4a1T :: [a6989586621679997086]) = IsSuffixOf t_a4a1S t_a4a1T
data IsInfixOfSym0 (l_a49Fa :: TyFun [a6989586621679997085] (TyFun [a6989586621679997085] Bool -> Type))
data IsInfixOfSym1 (l_a49Fd :: [a6989586621679997085]) (l_a49Fc :: TyFun [a6989586621679997085] Bool)
type IsInfixOfSym2 (t_a49F8 :: [a6989586621679997085]) (t_a49F9 :: [a6989586621679997085]) = IsInfixOf t_a49F8 t_a49F9
data ElemSym0 (l_a49Dy :: TyFun a6989586621679997084 (TyFun [a6989586621679997084] Bool -> Type))
data ElemSym1 (l_a49DB :: a6989586621679997084) (l_a49DA :: TyFun [a6989586621679997084] Bool)
type ElemSym2 (t_a49Dw :: a6989586621679997084) (t_a49Dx :: [a6989586621679997084]) = Elem t_a49Dw t_a49Dx
data NotElemSym0 (l_a49Dj :: TyFun a6989586621679997083 (TyFun [a6989586621679997083] Bool -> Type))
data NotElemSym1 (l_a49Dm :: a6989586621679997083) (l_a49Dl :: TyFun [a6989586621679997083] Bool)
type NotElemSym2 (t_a49Dh :: a6989586621679997083) (t_a49Di :: [a6989586621679997083]) = NotElem t_a49Dh t_a49Di
data ZipSym0 (l_a49Bg :: TyFun [a6989586621679997081] (TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)] -> Type))
data ZipSym1 (l_a49Bj :: [a6989586621679997081]) (l_a49Bi :: TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)])
type ZipSym2 (t_a49Be :: [a6989586621679997081]) (t_a49Bf :: [b6989586621679997082]) = Zip t_a49Be t_a49Bf
data Zip3Sym0 (l_a49A4 :: TyFun [a6989586621679997078] (TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type) -> Type))
data Zip3Sym1 (l_a49A7 :: [a6989586621679997078]) (l_a49A6 :: TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type))
data Zip3Sym2 (l_a49Aa :: [a6989586621679997078]) (l_a49Ab :: [b6989586621679997079]) (l_a49A9 :: TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)])
type Zip3Sym3 (t_a49A1 :: [a6989586621679997078]) (t_a49A2 :: [b6989586621679997079]) (t_a49A3 :: [c6989586621679997080]) = Zip3 t_a49A1 t_a49A2 t_a49A3
data ZipWithSym0 (l_a49zp :: TyFun (TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type) -> Type))
data ZipWithSym1 (l_a49zs :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zr :: TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type))
data ZipWithSym2 (l_a49zv :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zw :: [a6989586621679997075]) (l_a49zu :: TyFun [b6989586621679997076] [c6989586621679997077])
type ZipWithSym3 (t_a49zm :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (t_a49zn :: [a6989586621679997075]) (t_a49zo :: [b6989586621679997076]) = ZipWith t_a49zm t_a49zn t_a49zo
data ZipWith3Sym0 (l_a49xK :: TyFun (TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a49xN :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xM :: TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type))
data ZipWith3Sym2 (l_a49xQ :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xR :: [a6989586621679997071]) (l_a49xP :: TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type))
data ZipWith3Sym3 (l_a49xU :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xV :: [a6989586621679997071]) (l_a49xW :: [b6989586621679997072]) (l_a49xT :: TyFun [c6989586621679997073] [d6989586621679997074])
type ZipWith3Sym4 (t_a49xG :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (t_a49xH :: [a6989586621679997071]) (t_a49xI :: [b6989586621679997072]) (t_a49xJ :: [c6989586621679997073]) = ZipWith3 t_a49xG t_a49xH t_a49xI t_a49xJ
data UnzipSym0 (l_a49xd :: TyFun [(a6989586621679997069, b6989586621679997070)] ([a6989586621679997069], [b6989586621679997070]))
type UnzipSym1 (t_a49xc :: [(a6989586621679997069, b6989586621679997070)]) = Unzip t_a49xc
data Unzip3Sym0 (l_a49wH :: TyFun [(a6989586621679997066, b6989586621679997067, c6989586621679997068)] ([a6989586621679997066], [b6989586621679997067], [c6989586621679997068]))
type Unzip3Sym1 (t_a49wG :: [(a6989586621679997066, b6989586621679997067, c6989586621679997068)]) = Unzip3 t_a49wG
data Unzip4Sym0 (l_a49w9 :: TyFun [(a6989586621679997062, b6989586621679997063, c6989586621679997064, d6989586621679997065)] ([a6989586621679997062], [b6989586621679997063], [c6989586621679997064], [d6989586621679997065]))
type Unzip4Sym1 (t_a49w8 :: [(a6989586621679997062, b6989586621679997063, c6989586621679997064, d6989586621679997065)]) = Unzip4 t_a49w8
data Unzip5Sym0 (l_a49vz :: TyFun [(a6989586621679997057, b6989586621679997058, c6989586621679997059, d6989586621679997060, e6989586621679997061)] ([a6989586621679997057], [b6989586621679997058], [c6989586621679997059], [d6989586621679997060], [e6989586621679997061]))
type Unzip5Sym1 (t_a49vy :: [(a6989586621679997057, b6989586621679997058, c6989586621679997059, d6989586621679997060, e6989586621679997061)]) = Unzip5 t_a49vy
data Unzip6Sym0 (l_a49uX :: TyFun [(a6989586621679997051, b6989586621679997052, c6989586621679997053, d6989586621679997054, e6989586621679997055, f6989586621679997056)] ([a6989586621679997051], [b6989586621679997052], [c6989586621679997053], [d6989586621679997054], [e6989586621679997055], [f6989586621679997056]))
type Unzip6Sym1 (t_a49uW :: [(a6989586621679997051, b6989586621679997052, c6989586621679997053, d6989586621679997054, e6989586621679997055, f6989586621679997056)]) = Unzip6 t_a49uW
data Unzip7Sym0 (l_a49uj :: TyFun [(a6989586621679997044, b6989586621679997045, c6989586621679997046, d6989586621679997047, e6989586621679997048, f6989586621679997049, g6989586621679997050)] ([a6989586621679997044], [b6989586621679997045], [c6989586621679997046], [d6989586621679997047], [e6989586621679997048], [f6989586621679997049], [g6989586621679997050]))
type Unzip7Sym1 (t_a49ui :: [(a6989586621679997044, b6989586621679997045, c6989586621679997046, d6989586621679997047, e6989586621679997048, f6989586621679997049, g6989586621679997050)]) = Unzip7 t_a49ui
data DeleteSym0 (l_a49tU :: TyFun a6989586621679997043 (TyFun [a6989586621679997043] [a6989586621679997043] -> Type))
data DeleteSym1 (l_a49tX :: a6989586621679997043) (l_a49tW :: TyFun [a6989586621679997043] [a6989586621679997043])
type DeleteSym2 (t_a49tS :: a6989586621679997043) (t_a49tT :: [a6989586621679997043]) = Delete t_a49tS t_a49tT
data (:\\$) (l_a49u9 :: TyFun [a6989586621679997042] (TyFun [a6989586621679997042] [a6989586621679997042] -> Type))
data (:\\$$) (l_a49uc :: [a6989586621679997042]) (l_a49ub :: TyFun [a6989586621679997042] [a6989586621679997042])
type (:\\$$$) (t_a49u7 :: [a6989586621679997042]) (t_a49u8 :: [a6989586621679997042]) = (:\\) t_a49u7 t_a49u8
data IntersectSym0 (l_a49qu :: TyFun [a6989586621679997029] (TyFun [a6989586621679997029] [a6989586621679997029] -> Type))
data IntersectSym1 (l_a49qx :: [a6989586621679997029]) (l_a49qw :: TyFun [a6989586621679997029] [a6989586621679997029])
type IntersectSym2 (t_a49qs :: [a6989586621679997029]) (t_a49qt :: [a6989586621679997029]) = Intersect t_a49qs t_a49qt
data InsertSym0 (l_a49rH :: TyFun a6989586621679997016 (TyFun [a6989586621679997016] [a6989586621679997016] -> Type))
data InsertSym1 (l_a49rK :: a6989586621679997016) (l_a49rJ :: TyFun [a6989586621679997016] [a6989586621679997016])
type InsertSym2 (t_a49rF :: a6989586621679997016) (t_a49rG :: [a6989586621679997016]) = Insert t_a49rF t_a49rG
data SortSym0 (l_a49s6 :: TyFun [a6989586621679997015] [a6989586621679997015])
type SortSym1 (t_a49s5 :: [a6989586621679997015]) = Sort t_a49s5
data DeleteBySym0 (l_a49sd :: TyFun (TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (TyFun a6989586621679997041 (TyFun [a6989586621679997041] [a6989586621679997041] -> Type) -> Type))
data DeleteBySym1 (l_a49sg :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (l_a49sf :: TyFun a6989586621679997041 (TyFun [a6989586621679997041] [a6989586621679997041] -> Type))
data DeleteBySym2 (l_a49sj :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (l_a49sk :: a6989586621679997041) (l_a49si :: TyFun [a6989586621679997041] [a6989586621679997041])
type DeleteBySym3 (t_a49sa :: TyFun a6989586621679997041 (TyFun a6989586621679997041 Bool -> Type) -> Type) (t_a49sb :: a6989586621679997041) (t_a49sc :: [a6989586621679997041]) = DeleteBy t_a49sa t_a49sb t_a49sc
data DeleteFirstsBySym0 (l_a49sY :: TyFun (TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (TyFun [a6989586621679997040] (TyFun [a6989586621679997040] [a6989586621679997040] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a49t1 :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (l_a49t0 :: TyFun [a6989586621679997040] (TyFun [a6989586621679997040] [a6989586621679997040] -> Type))
data DeleteFirstsBySym2 (l_a49t4 :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (l_a49t5 :: [a6989586621679997040]) (l_a49t3 :: TyFun [a6989586621679997040] [a6989586621679997040])
type DeleteFirstsBySym3 (t_a49sV :: TyFun a6989586621679997040 (TyFun a6989586621679997040 Bool -> Type) -> Type) (t_a49sW :: [a6989586621679997040]) (t_a49sX :: [a6989586621679997040]) = DeleteFirstsBy t_a49sV t_a49sW t_a49sX
data IntersectBySym0 (l_a49om :: TyFun (TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (TyFun [a6989586621679997028] (TyFun [a6989586621679997028] [a6989586621679997028] -> Type) -> Type))
data IntersectBySym1 (l_a49op :: TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (l_a49oo :: TyFun [a6989586621679997028] (TyFun [a6989586621679997028] [a6989586621679997028] -> Type))
data IntersectBySym2 (l_a49os :: TyFun a6989586621679997028 (TyFun a6989586621679997028 Bool -> Type) -> Type) (l_a49ot :: [a6989586621679997028]) (l_a49or :: TyFun [a6989586621679997028] [a6989586621679997028])
data SortBySym0 (l_a49rS :: TyFun (TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (TyFun [a6989586621679997039] [a6989586621679997039] -> Type))
data SortBySym1 (l_a49rV :: TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (l_a49rU :: TyFun [a6989586621679997039] [a6989586621679997039])
type SortBySym2 (t_a49rQ :: TyFun a6989586621679997039 (TyFun a6989586621679997039 Ordering -> Type) -> Type) (t_a49rR :: [a6989586621679997039]) = SortBy t_a49rQ t_a49rR
data InsertBySym0 (l_a49qG :: TyFun (TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (TyFun a6989586621679997038 (TyFun [a6989586621679997038] [a6989586621679997038] -> Type) -> Type))
data InsertBySym1 (l_a49qJ :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (l_a49qI :: TyFun a6989586621679997038 (TyFun [a6989586621679997038] [a6989586621679997038] -> Type))
data InsertBySym2 (l_a49qM :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (l_a49qN :: a6989586621679997038) (l_a49qL :: TyFun [a6989586621679997038] [a6989586621679997038])
type InsertBySym3 (t_a49qD :: TyFun a6989586621679997038 (TyFun a6989586621679997038 Ordering -> Type) -> Type) (t_a49qE :: a6989586621679997038) (t_a49qF :: [a6989586621679997038]) = InsertBy t_a49qD t_a49qE t_a49qF
data MaximumBySym0 (l_a49Ps :: TyFun (TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (TyFun [a6989586621679997037] a6989586621679997037 -> Type))
data MaximumBySym1 (l_a49Pv :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (l_a49Pu :: TyFun [a6989586621679997037] a6989586621679997037)
type MaximumBySym2 (t_a49Pq :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (t_a49Pr :: [a6989586621679997037]) = MaximumBy t_a49Pq t_a49Pr
data MinimumBySym0 (l_a49QR :: TyFun (TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (TyFun [a6989586621679997036] a6989586621679997036 -> Type))
data MinimumBySym1 (l_a49QU :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (l_a49QT :: TyFun [a6989586621679997036] a6989586621679997036)
type MinimumBySym2 (t_a49QP :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (t_a49QQ :: [a6989586621679997036]) = MinimumBy t_a49QP t_a49QQ
data LengthSym0 (l_a49ej :: TyFun [a6989586621679997007] Nat)
type LengthSym1 (t_a49ei :: [a6989586621679997007]) = Length t_a49ei
data SumSym0 (l_a49eP :: TyFun [a6989586621679997009] a6989586621679997009)
type SumSym1 (t_a49eO :: [a6989586621679997009]) = Sum t_a49eO
data ProductSym0 (l_a49er :: TyFun [a6989586621679997008] a6989586621679997008)
type ProductSym1 (t_a49eq :: [a6989586621679997008]) = Product t_a49eq
data ReplicateSym0 (l_a49dY :: TyFun Nat (TyFun a6989586621679997006 [a6989586621679997006] -> Type))
data ReplicateSym1 (l_a49e1 :: Nat) (l_a49e0 :: TyFun a6989586621679997006 [a6989586621679997006])
type ReplicateSym2 (t_a49dW :: Nat) (t_a49dX :: a6989586621679997006) = Replicate t_a49dW t_a49dX
data TransposeSym0 (l_a4a48 :: TyFun [[a6989586621679997005]] [[a6989586621679997005]])
type TransposeSym1 (t_a4a47 :: [[a6989586621679997005]]) = Transpose t_a4a47
data TakeSym0 (l_a49h9 :: TyFun Nat (TyFun [a6989586621679997022] [a6989586621679997022] -> Type))
data TakeSym1 (l_a49hc :: Nat) (l_a49hb :: TyFun [a6989586621679997022] [a6989586621679997022])
type TakeSym2 (t_a49h7 :: Nat) (t_a49h8 :: [a6989586621679997022]) = Take t_a49h7 t_a49h8
data DropSym0 (l_a49gE :: TyFun Nat (TyFun [a6989586621679997021] [a6989586621679997021] -> Type))
data DropSym1 (l_a49gH :: Nat) (l_a49gG :: TyFun [a6989586621679997021] [a6989586621679997021])
type DropSym2 (t_a49gC :: Nat) (t_a49gD :: [a6989586621679997021]) = Drop t_a49gC t_a49gD
data SplitAtSym0 (l_a49hE :: TyFun Nat (TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]) -> Type))
data SplitAtSym1 (l_a49hH :: Nat) (l_a49hG :: TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]))
type SplitAtSym2 (t_a49hC :: Nat) (t_a49hD :: [a6989586621679997020]) = SplitAt t_a49hC t_a49hD
data TakeWhileSym0 (l_a49na :: TyFun (TyFun a6989586621679997027 Bool -> Type) (TyFun [a6989586621679997027] [a6989586621679997027] -> Type))
data TakeWhileSym1 (l_a49nd :: TyFun a6989586621679997027 Bool -> Type) (l_a49nc :: TyFun [a6989586621679997027] [a6989586621679997027])
type TakeWhileSym2 (t_a49n8 :: TyFun a6989586621679997027 Bool -> Type) (t_a49n9 :: [a6989586621679997027]) = TakeWhile t_a49n8 t_a49n9
data DropWhileSym0 (l_a49ms :: TyFun (TyFun a6989586621679997026 Bool -> Type) (TyFun [a6989586621679997026] [a6989586621679997026] -> Type))
data DropWhileSym1 (l_a49mv :: TyFun a6989586621679997026 Bool -> Type) (l_a49mu :: TyFun [a6989586621679997026] [a6989586621679997026])
type DropWhileSym2 (t_a49mq :: TyFun a6989586621679997026 Bool -> Type) (t_a49mr :: [a6989586621679997026]) = DropWhile t_a49mq t_a49mr
data DropWhileEndSym0 (l_a4a2f :: TyFun (TyFun a6989586621679997025 Bool -> Type) (TyFun [a6989586621679997025] [a6989586621679997025] -> Type))
data DropWhileEndSym1 (l_a4a2i :: TyFun a6989586621679997025 Bool -> Type) (l_a4a2h :: TyFun [a6989586621679997025] [a6989586621679997025])
type DropWhileEndSym2 (t_a4a2d :: TyFun a6989586621679997025 Bool -> Type) (t_a4a2e :: [a6989586621679997025]) = DropWhileEnd t_a4a2d t_a4a2e
data SpanSym0 (l_a49jw :: TyFun (TyFun a6989586621679997024 Bool -> Type) (TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]) -> Type))
data SpanSym1 (l_a49jz :: TyFun a6989586621679997024 Bool -> Type) (l_a49jy :: TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]))
type SpanSym2 (t_a49ju :: TyFun a6989586621679997024 Bool -> Type) (t_a49jv :: [a6989586621679997024]) = Span t_a49ju t_a49jv
data BreakSym0 (l_a49hP :: TyFun (TyFun a6989586621679997023 Bool -> Type) (TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]) -> Type))
data BreakSym1 (l_a49hS :: TyFun a6989586621679997023 Bool -> Type) (l_a49hR :: TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]))
type BreakSym2 (t_a49hN :: TyFun a6989586621679997023 Bool -> Type) (t_a49hO :: [a6989586621679997023]) = Break t_a49hN t_a49hO
data StripPrefixSym0 (l_a5qNR :: TyFun [a6989586621680303776] (TyFun [a6989586621680303776] (Maybe [a6989586621680303776]) -> Type))
data StripPrefixSym1 (l_a5qNU :: [a6989586621680303776]) (l_a5qNT :: TyFun [a6989586621680303776] (Maybe [a6989586621680303776]))
type StripPrefixSym2 (t_a5qNP :: [a6989586621680303776]) (t_a5qNQ :: [a6989586621680303776]) = StripPrefix t_a5qNP t_a5qNQ
data MaximumSym0 (l_a49Sf :: TyFun [a6989586621679997018] a6989586621679997018)
type MaximumSym1 (t_a49Se :: [a6989586621679997018]) = Maximum t_a49Se
data MinimumSym0 (l_a49St :: TyFun [a6989586621679997017] a6989586621679997017)
type MinimumSym1 (t_a49Ss :: [a6989586621679997017]) = Minimum t_a49Ss
data GroupSym0 (l_a49mm :: TyFun [a6989586621679997019] [[a6989586621679997019]])
type GroupSym1 (t_a49ml :: [a6989586621679997019]) = Group t_a49ml
data GroupBySym0 (l_a49ld :: TyFun (TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (TyFun [a6989586621679997014] [[a6989586621679997014]] -> Type))
data GroupBySym1 (l_a49lg :: TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (l_a49lf :: TyFun [a6989586621679997014] [[a6989586621679997014]])
type GroupBySym2 (t_a49lb :: TyFun a6989586621679997014 (TyFun a6989586621679997014 Bool -> Type) -> Type) (t_a49lc :: [a6989586621679997014]) = GroupBy t_a49lb t_a49lc
data LookupSym0 (l_a49g4 :: TyFun a6989586621679997012 (TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013) -> Type))
data LookupSym1 (l_a49g7 :: a6989586621679997012) (l_a49g6 :: TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013))
type LookupSym2 (t_a49g2 :: a6989586621679997012) (t_a49g3 :: [(a6989586621679997012, b6989586621679997013)]) = Lookup t_a49g2 t_a49g3
data FindSym0 (l_a49o8 :: TyFun (TyFun a6989586621679997034 Bool -> Type) (TyFun [a6989586621679997034] (Maybe a6989586621679997034) -> Type))
data FindSym1 (l_a49ob :: TyFun a6989586621679997034 Bool -> Type) (l_a49oa :: TyFun [a6989586621679997034] (Maybe a6989586621679997034))
type FindSym2 (t_a49o6 :: TyFun a6989586621679997034 Bool -> Type) (t_a49o7 :: [a6989586621679997034]) = Find t_a49o6 t_a49o7
data FilterSym0 (l_a49nF :: TyFun (TyFun a6989586621679997035 Bool -> Type) (TyFun [a6989586621679997035] [a6989586621679997035] -> Type))
data FilterSym1 (l_a49nI :: TyFun a6989586621679997035 Bool -> Type) (l_a49nH :: TyFun [a6989586621679997035] [a6989586621679997035])
type FilterSym2 (t_a49nD :: TyFun a6989586621679997035 Bool -> Type) (t_a49nE :: [a6989586621679997035]) = Filter t_a49nD t_a49nE
data PartitionSym0 (l_a49fT :: TyFun (TyFun a6989586621679997011 Bool -> Type) (TyFun [a6989586621679997011] ([a6989586621679997011], [a6989586621679997011]) -> Type))
data PartitionSym1 (l_a49fW :: TyFun a6989586621679997011 Bool -> Type) (l_a49fV :: TyFun [a6989586621679997011] ([a6989586621679997011], [a6989586621679997011]))
type PartitionSym2 (t_a49fR :: TyFun a6989586621679997011 Bool -> Type) (t_a49fS :: [a6989586621679997011]) = Partition t_a49fR t_a49fS
data (:!!$) (l_a49dt :: TyFun [a6989586621679997004] (TyFun Nat a6989586621679997004 -> Type))
data (:!!$$) (l_a49dw :: [a6989586621679997004]) (l_a49dv :: TyFun Nat a6989586621679997004)
type (:!!$$$) (t_a49dr :: [a6989586621679997004]) (t_a49ds :: Nat) = (:!!) t_a49dr t_a49ds
data ElemIndexSym0 (l_a49D6 :: TyFun a6989586621679997033 (TyFun [a6989586621679997033] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a49D9 :: a6989586621679997033) (l_a49D8 :: TyFun [a6989586621679997033] (Maybe Nat))
type ElemIndexSym2 (t_a49D4 :: a6989586621679997033) (t_a49D5 :: [a6989586621679997033]) = ElemIndex t_a49D4 t_a49D5
data ElemIndicesSym0 (l_a49CG :: TyFun a6989586621679997032 (TyFun [a6989586621679997032] [Nat] -> Type))
data ElemIndicesSym1 (l_a49CJ :: a6989586621679997032) (l_a49CI :: TyFun [a6989586621679997032] [Nat])
type ElemIndicesSym2 (t_a49CE :: a6989586621679997032) (t_a49CF :: [a6989586621679997032]) = ElemIndices t_a49CE t_a49CF
data FindIndexSym0 (l_a49CT :: TyFun (TyFun a6989586621679997031 Bool -> Type) (TyFun [a6989586621679997031] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a49CW :: TyFun a6989586621679997031 Bool -> Type) (l_a49CV :: TyFun [a6989586621679997031] (Maybe Nat))
type FindIndexSym2 (t_a49CR :: TyFun a6989586621679997031 Bool -> Type) (t_a49CS :: [a6989586621679997031]) = FindIndex t_a49CR t_a49CS
data FindIndicesSym0 (l_a49BF :: TyFun (TyFun a6989586621679997030 Bool -> Type) (TyFun [a6989586621679997030] [Nat] -> Type))
data FindIndicesSym1 (l_a49BI :: TyFun a6989586621679997030 Bool -> Type) (l_a49BH :: TyFun [a6989586621679997030] [Nat])
type FindIndicesSym2 (t_a49BD :: TyFun a6989586621679997030 Bool -> Type) (t_a49BE :: [a6989586621679997030]) = FindIndices t_a49BD t_a49BE
data Zip4Sym0 (l_a5qNt :: TyFun [a6989586621680303772] (TyFun [b6989586621680303773] (TyFun [c6989586621680303774] (TyFun [d6989586621680303775] [(a6989586621680303772, b6989586621680303773, c6989586621680303774, d6989586621680303775)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a5qNw :: [a6989586621680303772]) (l_a5qNv :: TyFun [b6989586621680303773] (TyFun [c6989586621680303774] (TyFun [d6989586621680303775] [(a6989586621680303772, b6989586621680303773, c6989586621680303774, d6989586621680303775)] -> Type) -> Type))
data Zip4Sym2 (l_a5qNz :: [a6989586621680303772]) (l_a5qNA :: [b6989586621680303773]) (l_a5qNy :: TyFun [c6989586621680303774] (TyFun [d6989586621680303775] [(a6989586621680303772, b6989586621680303773, c6989586621680303774, d6989586621680303775)] -> Type))
data Zip4Sym3 (l_a5qND :: [a6989586621680303772]) (l_a5qNE :: [b6989586621680303773]) (l_a5qNF :: [c6989586621680303774]) (l_a5qNC :: TyFun [d6989586621680303775] [(a6989586621680303772, b6989586621680303773, c6989586621680303774, d6989586621680303775)])
type Zip4Sym4 (t_a5qNp :: [a6989586621680303772]) (t_a5qNq :: [b6989586621680303773]) (t_a5qNr :: [c6989586621680303774]) (t_a5qNs :: [d6989586621680303775]) = Zip4 t_a5qNp t_a5qNq t_a5qNr t_a5qNs
data Zip5Sym0 (l_a5qMN :: TyFun [a6989586621680303767] (TyFun [b6989586621680303768] (TyFun [c6989586621680303769] (TyFun [d6989586621680303770] (TyFun [e6989586621680303771] [(a6989586621680303767, b6989586621680303768, c6989586621680303769, d6989586621680303770, e6989586621680303771)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a5qMQ :: [a6989586621680303767]) (l_a5qMP :: TyFun [b6989586621680303768] (TyFun [c6989586621680303769] (TyFun [d6989586621680303770] (TyFun [e6989586621680303771] [(a6989586621680303767, b6989586621680303768, c6989586621680303769, d6989586621680303770, e6989586621680303771)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a5qMT :: [a6989586621680303767]) (l_a5qMU :: [b6989586621680303768]) (l_a5qMS :: TyFun [c6989586621680303769] (TyFun [d6989586621680303770] (TyFun [e6989586621680303771] [(a6989586621680303767, b6989586621680303768, c6989586621680303769, d6989586621680303770, e6989586621680303771)] -> Type) -> Type))
data Zip5Sym3 (l_a5qMX :: [a6989586621680303767]) (l_a5qMY :: [b6989586621680303768]) (l_a5qMZ :: [c6989586621680303769]) (l_a5qMW :: TyFun [d6989586621680303770] (TyFun [e6989586621680303771] [(a6989586621680303767, b6989586621680303768, c6989586621680303769, d6989586621680303770, e6989586621680303771)] -> Type))
data Zip5Sym4 (l_a5qN2 :: [a6989586621680303767]) (l_a5qN3 :: [b6989586621680303768]) (l_a5qN4 :: [c6989586621680303769]) (l_a5qN5 :: [d6989586621680303770]) (l_a5qN1 :: TyFun [e6989586621680303771] [(a6989586621680303767, b6989586621680303768, c6989586621680303769, d6989586621680303770, e6989586621680303771)])
type Zip5Sym5 (t_a5qMI :: [a6989586621680303767]) (t_a5qMJ :: [b6989586621680303768]) (t_a5qMK :: [c6989586621680303769]) (t_a5qML :: [d6989586621680303770]) (t_a5qMM :: [e6989586621680303771]) = Zip5 t_a5qMI t_a5qMJ t_a5qMK t_a5qML t_a5qMM
data Zip6Sym0 (l_a5qLV :: TyFun [a6989586621680303761] (TyFun [b6989586621680303762] (TyFun [c6989586621680303763] (TyFun [d6989586621680303764] (TyFun [e6989586621680303765] (TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a5qLY :: [a6989586621680303761]) (l_a5qLX :: TyFun [b6989586621680303762] (TyFun [c6989586621680303763] (TyFun [d6989586621680303764] (TyFun [e6989586621680303765] (TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a5qM1 :: [a6989586621680303761]) (l_a5qM2 :: [b6989586621680303762]) (l_a5qM0 :: TyFun [c6989586621680303763] (TyFun [d6989586621680303764] (TyFun [e6989586621680303765] (TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a5qM5 :: [a6989586621680303761]) (l_a5qM6 :: [b6989586621680303762]) (l_a5qM7 :: [c6989586621680303763]) (l_a5qM4 :: TyFun [d6989586621680303764] (TyFun [e6989586621680303765] (TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)] -> Type) -> Type))
data Zip6Sym4 (l_a5qMa :: [a6989586621680303761]) (l_a5qMb :: [b6989586621680303762]) (l_a5qMc :: [c6989586621680303763]) (l_a5qMd :: [d6989586621680303764]) (l_a5qM9 :: TyFun [e6989586621680303765] (TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)] -> Type))
data Zip6Sym5 (l_a5qMg :: [a6989586621680303761]) (l_a5qMh :: [b6989586621680303762]) (l_a5qMi :: [c6989586621680303763]) (l_a5qMj :: [d6989586621680303764]) (l_a5qMk :: [e6989586621680303765]) (l_a5qMf :: TyFun [f6989586621680303766] [(a6989586621680303761, b6989586621680303762, c6989586621680303763, d6989586621680303764, e6989586621680303765, f6989586621680303766)])
type Zip6Sym6 (t_a5qLP :: [a6989586621680303761]) (t_a5qLQ :: [b6989586621680303762]) (t_a5qLR :: [c6989586621680303763]) (t_a5qLS :: [d6989586621680303764]) (t_a5qLT :: [e6989586621680303765]) (t_a5qLU :: [f6989586621680303766]) = Zip6 t_a5qLP t_a5qLQ t_a5qLR t_a5qLS t_a5qLT t_a5qLU
data Zip7Sym0 (l_a5qKQ :: TyFun [a6989586621680303754] (TyFun [b6989586621680303755] (TyFun [c6989586621680303756] (TyFun [d6989586621680303757] (TyFun [e6989586621680303758] (TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a5qKT :: [a6989586621680303754]) (l_a5qKS :: TyFun [b6989586621680303755] (TyFun [c6989586621680303756] (TyFun [d6989586621680303757] (TyFun [e6989586621680303758] (TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a5qKW :: [a6989586621680303754]) (l_a5qKX :: [b6989586621680303755]) (l_a5qKV :: TyFun [c6989586621680303756] (TyFun [d6989586621680303757] (TyFun [e6989586621680303758] (TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a5qL0 :: [a6989586621680303754]) (l_a5qL1 :: [b6989586621680303755]) (l_a5qL2 :: [c6989586621680303756]) (l_a5qKZ :: TyFun [d6989586621680303757] (TyFun [e6989586621680303758] (TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a5qL5 :: [a6989586621680303754]) (l_a5qL6 :: [b6989586621680303755]) (l_a5qL7 :: [c6989586621680303756]) (l_a5qL8 :: [d6989586621680303757]) (l_a5qL4 :: TyFun [e6989586621680303758] (TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type) -> Type))
data Zip7Sym5 (l_a5qLb :: [a6989586621680303754]) (l_a5qLc :: [b6989586621680303755]) (l_a5qLd :: [c6989586621680303756]) (l_a5qLe :: [d6989586621680303757]) (l_a5qLf :: [e6989586621680303758]) (l_a5qLa :: TyFun [f6989586621680303759] (TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)] -> Type))
data Zip7Sym6 (l_a5qLi :: [a6989586621680303754]) (l_a5qLj :: [b6989586621680303755]) (l_a5qLk :: [c6989586621680303756]) (l_a5qLl :: [d6989586621680303757]) (l_a5qLm :: [e6989586621680303758]) (l_a5qLn :: [f6989586621680303759]) (l_a5qLh :: TyFun [g6989586621680303760] [(a6989586621680303754, b6989586621680303755, c6989586621680303756, d6989586621680303757, e6989586621680303758, f6989586621680303759, g6989586621680303760)])
type Zip7Sym7 (t_a5qKJ :: [a6989586621680303754]) (t_a5qKK :: [b6989586621680303755]) (t_a5qKL :: [c6989586621680303756]) (t_a5qKM :: [d6989586621680303757]) (t_a5qKN :: [e6989586621680303758]) (t_a5qKO :: [f6989586621680303759]) (t_a5qKP :: [g6989586621680303760]) = Zip7 t_a5qKJ t_a5qKK t_a5qKL t_a5qKM t_a5qKN t_a5qKO t_a5qKP
data ZipWith4Sym0 (l_a5qJI :: TyFun (TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680303749] (TyFun [b6989586621680303750] (TyFun [c6989586621680303751] (TyFun [d6989586621680303752] [e6989586621680303753] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a5qJL :: TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (l_a5qJK :: TyFun [a6989586621680303749] (TyFun [b6989586621680303750] (TyFun [c6989586621680303751] (TyFun [d6989586621680303752] [e6989586621680303753] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a5qJO :: TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (l_a5qJP :: [a6989586621680303749]) (l_a5qJN :: TyFun [b6989586621680303750] (TyFun [c6989586621680303751] (TyFun [d6989586621680303752] [e6989586621680303753] -> Type) -> Type))
data ZipWith4Sym3 (l_a5qJS :: TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (l_a5qJT :: [a6989586621680303749]) (l_a5qJU :: [b6989586621680303750]) (l_a5qJR :: TyFun [c6989586621680303751] (TyFun [d6989586621680303752] [e6989586621680303753] -> Type))
data ZipWith4Sym4 (l_a5qJX :: TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (l_a5qJY :: [a6989586621680303749]) (l_a5qJZ :: [b6989586621680303750]) (l_a5qK0 :: [c6989586621680303751]) (l_a5qJW :: TyFun [d6989586621680303752] [e6989586621680303753])
type ZipWith4Sym5 (t_a5qJD :: TyFun a6989586621680303749 (TyFun b6989586621680303750 (TyFun c6989586621680303751 (TyFun d6989586621680303752 e6989586621680303753 -> Type) -> Type) -> Type) -> Type) (t_a5qJE :: [a6989586621680303749]) (t_a5qJF :: [b6989586621680303750]) (t_a5qJG :: [c6989586621680303751]) (t_a5qJH :: [d6989586621680303752]) = ZipWith4 t_a5qJD t_a5qJE t_a5qJF t_a5qJG t_a5qJH
data ZipWith5Sym0 (l_a5qID :: TyFun (TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680303743] (TyFun [b6989586621680303744] (TyFun [c6989586621680303745] (TyFun [d6989586621680303746] (TyFun [e6989586621680303747] [f6989586621680303748] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a5qIG :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qIF :: TyFun [a6989586621680303743] (TyFun [b6989586621680303744] (TyFun [c6989586621680303745] (TyFun [d6989586621680303746] (TyFun [e6989586621680303747] [f6989586621680303748] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a5qIJ :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qIK :: [a6989586621680303743]) (l_a5qII :: TyFun [b6989586621680303744] (TyFun [c6989586621680303745] (TyFun [d6989586621680303746] (TyFun [e6989586621680303747] [f6989586621680303748] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a5qIN :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qIO :: [a6989586621680303743]) (l_a5qIP :: [b6989586621680303744]) (l_a5qIM :: TyFun [c6989586621680303745] (TyFun [d6989586621680303746] (TyFun [e6989586621680303747] [f6989586621680303748] -> Type) -> Type))
data ZipWith5Sym4 (l_a5qIS :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qIT :: [a6989586621680303743]) (l_a5qIU :: [b6989586621680303744]) (l_a5qIV :: [c6989586621680303745]) (l_a5qIR :: TyFun [d6989586621680303746] (TyFun [e6989586621680303747] [f6989586621680303748] -> Type))
data ZipWith5Sym5 (l_a5qIY :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qIZ :: [a6989586621680303743]) (l_a5qJ0 :: [b6989586621680303744]) (l_a5qJ1 :: [c6989586621680303745]) (l_a5qJ2 :: [d6989586621680303746]) (l_a5qIX :: TyFun [e6989586621680303747] [f6989586621680303748])
type ZipWith5Sym6 (t_a5qIx :: TyFun a6989586621680303743 (TyFun b6989586621680303744 (TyFun c6989586621680303745 (TyFun d6989586621680303746 (TyFun e6989586621680303747 f6989586621680303748 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a5qIy :: [a6989586621680303743]) (t_a5qIz :: [b6989586621680303744]) (t_a5qIA :: [c6989586621680303745]) (t_a5qIB :: [d6989586621680303746]) (t_a5qIC :: [e6989586621680303747]) = ZipWith5 t_a5qIx t_a5qIy t_a5qIz t_a5qIA t_a5qIB t_a5qIC
data ZipWith6Sym0 (l_a5qHj :: TyFun (TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680303736] (TyFun [b6989586621680303737] (TyFun [c6989586621680303738] (TyFun [d6989586621680303739] (TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a5qHm :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHl :: TyFun [a6989586621680303736] (TyFun [b6989586621680303737] (TyFun [c6989586621680303738] (TyFun [d6989586621680303739] (TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a5qHp :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHq :: [a6989586621680303736]) (l_a5qHo :: TyFun [b6989586621680303737] (TyFun [c6989586621680303738] (TyFun [d6989586621680303739] (TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a5qHt :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHu :: [a6989586621680303736]) (l_a5qHv :: [b6989586621680303737]) (l_a5qHs :: TyFun [c6989586621680303738] (TyFun [d6989586621680303739] (TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a5qHy :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHz :: [a6989586621680303736]) (l_a5qHA :: [b6989586621680303737]) (l_a5qHB :: [c6989586621680303738]) (l_a5qHx :: TyFun [d6989586621680303739] (TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type) -> Type))
data ZipWith6Sym5 (l_a5qHE :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHF :: [a6989586621680303736]) (l_a5qHG :: [b6989586621680303737]) (l_a5qHH :: [c6989586621680303738]) (l_a5qHI :: [d6989586621680303739]) (l_a5qHD :: TyFun [e6989586621680303740] (TyFun [f6989586621680303741] [g6989586621680303742] -> Type))
data ZipWith6Sym6 (l_a5qHL :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qHM :: [a6989586621680303736]) (l_a5qHN :: [b6989586621680303737]) (l_a5qHO :: [c6989586621680303738]) (l_a5qHP :: [d6989586621680303739]) (l_a5qHQ :: [e6989586621680303740]) (l_a5qHK :: TyFun [f6989586621680303741] [g6989586621680303742])
type ZipWith6Sym7 (t_a5qHc :: TyFun a6989586621680303736 (TyFun b6989586621680303737 (TyFun c6989586621680303738 (TyFun d6989586621680303739 (TyFun e6989586621680303740 (TyFun f6989586621680303741 g6989586621680303742 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a5qHd :: [a6989586621680303736]) (t_a5qHe :: [b6989586621680303737]) (t_a5qHf :: [c6989586621680303738]) (t_a5qHg :: [d6989586621680303739]) (t_a5qHh :: [e6989586621680303740]) (t_a5qHi :: [f6989586621680303741]) = ZipWith6 t_a5qHc t_a5qHd t_a5qHe t_a5qHf t_a5qHg t_a5qHh t_a5qHi
data ZipWith7Sym0 (l_a5qFJ :: TyFun (TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621680303728] (TyFun [b6989586621680303729] (TyFun [c6989586621680303730] (TyFun [d6989586621680303731] (TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a5qFM :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qFL :: TyFun [a6989586621680303728] (TyFun [b6989586621680303729] (TyFun [c6989586621680303730] (TyFun [d6989586621680303731] (TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a5qFP :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qFQ :: [a6989586621680303728]) (l_a5qFO :: TyFun [b6989586621680303729] (TyFun [c6989586621680303730] (TyFun [d6989586621680303731] (TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a5qFT :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qFU :: [a6989586621680303728]) (l_a5qFV :: [b6989586621680303729]) (l_a5qFS :: TyFun [c6989586621680303730] (TyFun [d6989586621680303731] (TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a5qFY :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qFZ :: [a6989586621680303728]) (l_a5qG0 :: [b6989586621680303729]) (l_a5qG1 :: [c6989586621680303730]) (l_a5qFX :: TyFun [d6989586621680303731] (TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a5qG4 :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qG5 :: [a6989586621680303728]) (l_a5qG6 :: [b6989586621680303729]) (l_a5qG7 :: [c6989586621680303730]) (l_a5qG8 :: [d6989586621680303731]) (l_a5qG3 :: TyFun [e6989586621680303732] (TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type) -> Type))
data ZipWith7Sym6 (l_a5qGb :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qGc :: [a6989586621680303728]) (l_a5qGd :: [b6989586621680303729]) (l_a5qGe :: [c6989586621680303730]) (l_a5qGf :: [d6989586621680303731]) (l_a5qGg :: [e6989586621680303732]) (l_a5qGa :: TyFun [f6989586621680303733] (TyFun [g6989586621680303734] [h6989586621680303735] -> Type))
data ZipWith7Sym7 (l_a5qGj :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a5qGk :: [a6989586621680303728]) (l_a5qGl :: [b6989586621680303729]) (l_a5qGm :: [c6989586621680303730]) (l_a5qGn :: [d6989586621680303731]) (l_a5qGo :: [e6989586621680303732]) (l_a5qGp :: [f6989586621680303733]) (l_a5qGi :: TyFun [g6989586621680303734] [h6989586621680303735])
type ZipWith7Sym8 (t_a5qFB :: TyFun a6989586621680303728 (TyFun b6989586621680303729 (TyFun c6989586621680303730 (TyFun d6989586621680303731 (TyFun e6989586621680303732 (TyFun f6989586621680303733 (TyFun g6989586621680303734 h6989586621680303735 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a5qFC :: [a6989586621680303728]) (t_a5qFD :: [b6989586621680303729]) (t_a5qFE :: [c6989586621680303730]) (t_a5qFF :: [d6989586621680303731]) (t_a5qFG :: [e6989586621680303732]) (t_a5qFH :: [f6989586621680303733]) (t_a5qFI :: [g6989586621680303734]) = ZipWith7 t_a5qFB t_a5qFC t_a5qFD t_a5qFE t_a5qFF t_a5qFG t_a5qFH t_a5qFI
data NubSym0 (l_a49DM :: TyFun [a6989586621679997003] [a6989586621679997003])
type NubSym1 (t_a49DL :: [a6989586621679997003]) = Nub t_a49DL
data NubBySym0 (l_a49co :: TyFun (TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (TyFun [a6989586621679997002] [a6989586621679997002] -> Type))
data NubBySym1 (l_a49cr :: TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (l_a49cq :: TyFun [a6989586621679997002] [a6989586621679997002])
type NubBySym2 (t_a49cm :: TyFun a6989586621679997002 (TyFun a6989586621679997002 Bool -> Type) -> Type) (t_a49cn :: [a6989586621679997002]) = NubBy t_a49cm t_a49cn
data UnionSym0 (l_a49tF :: TyFun [a6989586621679996999] (TyFun [a6989586621679996999] [a6989586621679996999] -> Type))
data UnionSym1 (l_a49tI :: [a6989586621679996999]) (l_a49tH :: TyFun [a6989586621679996999] [a6989586621679996999])
type UnionSym2 (t_a49tD :: [a6989586621679996999]) (t_a49tE :: [a6989586621679996999]) = Union t_a49tD t_a49tE
data UnionBySym0 (l_a49tk :: TyFun (TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (TyFun [a6989586621679997000] (TyFun [a6989586621679997000] [a6989586621679997000] -> Type) -> Type))
data UnionBySym1 (l_a49tn :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (l_a49tm :: TyFun [a6989586621679997000] (TyFun [a6989586621679997000] [a6989586621679997000] -> Type))
data UnionBySym2 (l_a49tq :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (l_a49tr :: [a6989586621679997000]) (l_a49tp :: TyFun [a6989586621679997000] [a6989586621679997000])
type UnionBySym3 (t_a49th :: TyFun a6989586621679997000 (TyFun a6989586621679997000 Bool -> Type) -> Type) (t_a49ti :: [a6989586621679997000]) (t_a49tj :: [a6989586621679997000]) = UnionBy t_a49th t_a49ti t_a49tj
data GenericLengthSym0 (l_a49bQ :: TyFun [a6989586621679996998] i6989586621679996997)
type GenericLengthSym1 (t_a49bP :: [a6989586621679996998]) = GenericLength t_a49bP
data GenericTakeSym0 (l_a5qFs :: TyFun i6989586621680303726 (TyFun [a6989586621680303727] [a6989586621680303727] -> Type))
data GenericTakeSym1 (l_a5qFv :: i6989586621680303726) (l_a5qFu :: TyFun [a6989586621680303727] [a6989586621680303727])
type GenericTakeSym2 (t_a5qFq :: i6989586621680303726) (t_a5qFr :: [a6989586621680303727]) = GenericTake t_a5qFq t_a5qFr
data GenericDropSym0 (l_a5qFd :: TyFun i6989586621680303724 (TyFun [a6989586621680303725] [a6989586621680303725] -> Type))
data GenericDropSym1 (l_a5qFg :: i6989586621680303724) (l_a5qFf :: TyFun [a6989586621680303725] [a6989586621680303725])
type GenericDropSym2 (t_a5qFb :: i6989586621680303724) (t_a5qFc :: [a6989586621680303725]) = GenericDrop t_a5qFb t_a5qFc
data GenericSplitAtSym0 (l_a5qEY :: TyFun i6989586621680303722 (TyFun [a6989586621680303723] ([a6989586621680303723], [a6989586621680303723]) -> Type))
data GenericSplitAtSym1 (l_a5qF1 :: i6989586621680303722) (l_a5qF0 :: TyFun [a6989586621680303723] ([a6989586621680303723], [a6989586621680303723]))
type GenericSplitAtSym2 (t_a5qEW :: i6989586621680303722) (t_a5qEX :: [a6989586621680303723]) = GenericSplitAt t_a5qEW t_a5qEX
data GenericIndexSym0 (l_a5qEJ :: TyFun [a6989586621680303721] (TyFun i6989586621680303720 a6989586621680303721 -> Type))
data GenericIndexSym1 (l_a5qEM :: [a6989586621680303721]) (l_a5qEL :: TyFun i6989586621680303720 a6989586621680303721)
type GenericIndexSym2 (t_a5qEH :: [a6989586621680303721]) (t_a5qEI :: i6989586621680303720) = GenericIndex t_a5qEH t_a5qEI
data GenericReplicateSym0 (l_a5qEu :: TyFun i6989586621680303718 (TyFun a6989586621680303719 [a6989586621680303719] -> Type))
data GenericReplicateSym1 (l_a5qEx :: i6989586621680303718) (l_a5qEw :: TyFun a6989586621680303719 [a6989586621680303719])
type GenericReplicateSym2 (t_a5qEs :: i6989586621680303718) (t_a5qEt :: a6989586621680303719) = GenericReplicate t_a5qEs t_a5qEt
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_a2XKW :: TyFun a6989586621679716089 (TyFun a6989586621679716089 Bool -> Type))
data (:==$$) (l_a2XKZ :: a6989586621679716089) (l_a2XKY :: TyFun a6989586621679716089 Bool)
type (:==$$$) (t_a2XKU :: a6989586621679716089) (t_a2XKV :: a6989586621679716089) = (:==) t_a2XKU t_a2XKV
data (:/=$) (l_a2XL3 :: TyFun a6989586621679716089 (TyFun a6989586621679716089 Bool -> Type))
data (:/=$$) (l_a2XL6 :: a6989586621679716089) (l_a2XL5 :: TyFun a6989586621679716089 Bool)
type (:/=$$$) (t_a2XL1 :: a6989586621679716089) (t_a2XL2 :: a6989586621679716089) = (:/=) t_a2XL1 t_a2XL2


-- | Exports promoted versions of <a>Enum</a> and <a>Bounded</a>
module Data.Promotion.Prelude.Enum
class kproxy_a3E6D ~ Proxy => PBounded (kproxy_a3E6D :: Proxy a_a3E6C) where type MinBound :: a_a3E6C type MaxBound :: a_a3E6C where {
    type family MinBound :: a_a3E6C;
    type family MaxBound :: a_a3E6C;
}
class kproxy_a3FiA ~ Proxy => PEnum (kproxy_a3FiA :: Proxy a_a3Fa2) where type Succ (arg_a3FiB :: a_a3Fa2) :: a_a3Fa2 type Pred (arg_a3FiF :: a_a3Fa2) :: a_a3Fa2 type ToEnum (arg_a3FiJ :: Nat) :: a_a3Fa2 type FromEnum (arg_a3FiN :: a_a3Fa2) :: Nat type EnumFromTo (arg_a3FiR :: a_a3Fa2) (arg_a3FiS :: a_a3Fa2) :: [a_a3Fa2] type EnumFromThenTo (arg_a3Fj0 :: a_a3Fa2) (arg_a3Fj1 :: a_a3Fa2) (arg_a3Fj2 :: a_a3Fa2) :: [a_a3Fa2] type Succ a_a3Fjm = Apply Succ_6989586621679883581Sym0 a_a3Fjm type Pred a_a3Fjz = Apply Pred_6989586621679883594Sym0 a_a3Fjz type EnumFromTo a_a3FjQ a_a3FjR = Apply (Apply EnumFromTo_6989586621679883612Sym0 a_a3FjQ) a_a3FjR type EnumFromThenTo a_a3Fkj a_a3Fkk a_a3Fkl = Apply (Apply (Apply EnumFromThenTo_6989586621679883642Sym0 a_a3Fkj) a_a3Fkk) a_a3Fkl where {
    type family Succ (arg_a3FiB :: a_a3Fa2) :: a_a3Fa2;
    type family Pred (arg_a3FiF :: a_a3Fa2) :: a_a3Fa2;
    type family ToEnum (arg_a3FiJ :: Nat) :: a_a3Fa2;
    type family FromEnum (arg_a3FiN :: a_a3Fa2) :: Nat;
    type family EnumFromTo (arg_a3FiR :: a_a3Fa2)
                           (arg_a3FiS :: a_a3Fa2) :: [a_a3Fa2];
    type family EnumFromThenTo (arg_a3Fj0 :: a_a3Fa2)
                               (arg_a3Fj1 :: a_a3Fa2)
                               (arg_a3Fj2 :: a_a3Fa2) :: [a_a3Fa2];
    type Succ a_a3Fjm = Apply Succ_6989586621679883581Sym0 a_a3Fjm;
    type Pred a_a3Fjz = Apply Pred_6989586621679883594Sym0 a_a3Fjz;
    type EnumFromTo a_a3FjQ a_a3FjR =
        Apply (Apply EnumFromTo_6989586621679883612Sym0 a_a3FjQ) a_a3FjR;
    type EnumFromThenTo a_a3Fkj a_a3Fkk a_a3Fkl =
        Apply (Apply (Apply EnumFromThenTo_6989586621679883642Sym0 a_a3Fkj) a_a3Fkk) a_a3Fkl;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3FiD :: TyFun a6989586621679883002 a6989586621679883002)
type SuccSym1 (t_a3FiC :: a6989586621679883002) = Succ t_a3FiC
data PredSym0 (l_a3FiH :: TyFun a6989586621679883002 a6989586621679883002)
type PredSym1 (t_a3FiG :: a6989586621679883002) = Pred t_a3FiG
data ToEnumSym0 (l_a3FiL :: TyFun Nat a6989586621679883002)
type ToEnumSym1 (t_a3FiK :: Nat) = ToEnum t_a3FiK
data FromEnumSym0 (l_a3FiP :: TyFun a6989586621679883002 Nat)
type FromEnumSym1 (t_a3FiO :: a6989586621679883002) = FromEnum t_a3FiO
data EnumFromToSym0 (l_a3FiV :: TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type))
data EnumFromToSym1 (l_a3FiY :: a6989586621679883002) (l_a3FiX :: TyFun a6989586621679883002 [a6989586621679883002])
type EnumFromToSym2 (t_a3FiT :: a6989586621679883002) (t_a3FiU :: a6989586621679883002) = EnumFromTo t_a3FiT t_a3FiU
data EnumFromThenToSym0 (l_a3Fj6 :: TyFun a6989586621679883002 (TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3Fj9 :: a6989586621679883002) (l_a3Fj8 :: TyFun a6989586621679883002 (TyFun a6989586621679883002 [a6989586621679883002] -> Type))
data EnumFromThenToSym2 (l_a3Fjc :: a6989586621679883002) (l_a3Fjd :: a6989586621679883002) (l_a3Fjb :: TyFun a6989586621679883002 [a6989586621679883002])
type EnumFromThenToSym3 (t_a3Fj3 :: a6989586621679883002) (t_a3Fj4 :: a6989586621679883002) (t_a3Fj5 :: a6989586621679883002) = EnumFromThenTo t_a3Fj3 t_a3Fj4 t_a3Fj5


-- | 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_a3YIC c_a3YID b_a3YIE. (a_a3YIC -> c_a3YID) -> (b_a3YIE -> c_a3YID) -> Either a_a3YIC b_a3YIE -> c_a3YID
data LeftSym0 (l_a2DIy :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a2DIx :: a6989586621679054093) = Left t_a2DIx
data RightSym0 (l_a2DIB :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a2DIA :: b6989586621679054094) = Right t_a2DIA
data Either_Sym0 (l_a3YIN :: TyFun (TyFun a6989586621679958182 c6989586621679958183 -> Type) (TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type) -> Type))
data Either_Sym1 (l_a3YIQ :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIP :: TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type))
data Either_Sym2 (l_a3YIT :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIU :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (l_a3YIS :: TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183)
type Either_Sym3 (t_a3YIK :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (t_a3YIL :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (t_a3YIM :: Either a6989586621679958182 b6989586621679958184) = Either_ t_a3YIK t_a3YIL t_a3YIM
data LeftsSym0 (l_a3Z4C :: TyFun [Either a6989586621679959452 b6989586621679959453] [a6989586621679959452])
type LeftsSym1 (t_a3Z4B :: [Either a6989586621679959452 b6989586621679959453]) = Lefts t_a3Z4B
data RightsSym0 (l_a3Z4s :: TyFun [Either a6989586621679959450 b6989586621679959451] [b6989586621679959451])
type RightsSym1 (t_a3Z4r :: [Either a6989586621679959450 b6989586621679959451]) = Rights t_a3Z4r
data IsLeftSym0 (l_a3Z3C :: TyFun (Either a6989586621679959446 b6989586621679959447) Bool)
type IsLeftSym1 (t_a3Z3B :: Either a6989586621679959446 b6989586621679959447) = IsLeft t_a3Z3B
data IsRightSym0 (l_a3Z3s :: TyFun (Either a6989586621679959444 b6989586621679959445) Bool)
type IsRightSym1 (t_a3Z3r :: Either a6989586621679959444 b6989586621679959445) = IsRight t_a3Z3r


-- | 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_a2T92. a_a2T92 -> a_a2T92 -> Bool -> a_a2T92
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a2Tkv :: TyFun Bool Bool)
type NotSym1 (t_a2Tku :: Bool) = Not t_a2Tku
data (:&&$) (l_a2TkN :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2TkQ :: Bool) (l_a2TkP :: TyFun Bool Bool)
type (:&&$$$) (t_a2TkL :: Bool) (t_a2TkM :: Bool) = (:&&) t_a2TkL t_a2TkM
data (:||$) (l_a2TkA :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2TkD :: Bool) (l_a2TkC :: TyFun Bool Bool)
type (:||$$$) (t_a2Tky :: Bool) (t_a2Tkz :: Bool) = (:||) t_a2Tky t_a2Tkz
data Bool_Sym0 (l_a2T9b :: TyFun a6989586621679698428 (TyFun a6989586621679698428 (TyFun Bool a6989586621679698428 -> Type) -> Type))
data Bool_Sym1 (l_a2T9e :: a6989586621679698428) (l_a2T9d :: TyFun a6989586621679698428 (TyFun Bool a6989586621679698428 -> Type))
data Bool_Sym2 (l_a2T9h :: a6989586621679698428) (l_a2T9i :: a6989586621679698428) (l_a2T9g :: TyFun Bool a6989586621679698428)
type Bool_Sym3 (t_a2T98 :: a6989586621679698428) (t_a2T99 :: a6989586621679698428) (t_a2T9a :: Bool) = Bool_ t_a2T98 t_a2T99 t_a2T9a
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_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
type (:++$$$) (t_a2Utt :: [a6989586621679703398]) (t_a2Utu :: [a6989586621679703398]) = (:++) t_a2Utt t_a2Utu
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a2Utp :: TyFun a6989586621679703397 a6989586621679703397)
type IdSym1 (t_a2Uto :: a6989586621679703397) = Id t_a2Uto
data ConstSym0 (l_a2UsY :: TyFun a6989586621679703395 (TyFun b6989586621679703396 a6989586621679703395 -> Type))
data ConstSym1 (l_a2Ut1 :: a6989586621679703395) (l_a2Ut0 :: TyFun b6989586621679703396 a6989586621679703395)
type ConstSym2 (t_a2UsW :: a6989586621679703395) (t_a2UsX :: b6989586621679703396) = Const t_a2UsW t_a2UsX
data (:.$) (l_a2Usj :: TyFun (TyFun b6989586621679703392 c6989586621679703393 -> Type) (TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type) -> Type))
data (:.$$) (l_a2Usm :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usl :: TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type))
data (:.$$$) (l_a2Usp :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usq :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (l_a2Uso :: TyFun a6989586621679703394 c6989586621679703393)
type (:.$$$$) (t_a2Usg :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (t_a2Ush :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (t_a2Usi :: a6989586621679703394) = (:.) t_a2Usg t_a2Ush t_a2Usi
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_a2Us1 :: TyFun (TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type) -> Type))
data FlipSym1 (l_a2Us4 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us3 :: TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type))
data FlipSym2 (l_a2Us7 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us8 :: b6989586621679703390) (l_a2Us6 :: TyFun a6989586621679703389 c6989586621679703391)
type FlipSym3 (t_a2UrY :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (t_a2UrZ :: b6989586621679703390) (t_a2Us0 :: a6989586621679703389) = Flip t_a2UrY t_a2UrZ t_a2Us0
data UntilSym0 (l_a5wVH :: TyFun (TyFun a6989586621680328006 Bool -> Type) (TyFun (TyFun a6989586621680328006 a6989586621680328006 -> Type) (TyFun a6989586621680328006 a6989586621680328006 -> Type) -> Type))
data UntilSym1 (l_a5wVK :: TyFun a6989586621680328006 Bool -> Type) (l_a5wVJ :: TyFun (TyFun a6989586621680328006 a6989586621680328006 -> Type) (TyFun a6989586621680328006 a6989586621680328006 -> Type))
data UntilSym2 (l_a5wVN :: TyFun a6989586621680328006 Bool -> Type) (l_a5wVO :: TyFun a6989586621680328006 a6989586621680328006 -> Type) (l_a5wVM :: TyFun a6989586621680328006 a6989586621680328006)
type UntilSym3 (t_a5wVE :: TyFun a6989586621680328006 Bool -> Type) (t_a5wVF :: TyFun a6989586621680328006 a6989586621680328006 -> Type) (t_a5wVG :: a6989586621680328006) = Until t_a5wVE t_a5wVF t_a5wVG
data AsTypeOfSym0 (l_a2Utf :: TyFun a6989586621679703388 (TyFun a6989586621679703388 a6989586621679703388 -> Type))
data AsTypeOfSym1 (l_a2Uti :: a6989586621679703388) (l_a2Uth :: TyFun a6989586621679703388 a6989586621679703388)
type AsTypeOfSym2 (t_a2Utd :: a6989586621679703388) (t_a2Ute :: a6989586621679703388) = AsTypeOf t_a2Utd t_a2Ute
data SeqSym0 (l_a2UrN :: TyFun a6989586621679703386 (TyFun b6989586621679703387 b6989586621679703387 -> Type))
data SeqSym1 (l_a2UrQ :: a6989586621679703386) (l_a2UrP :: TyFun b6989586621679703387 b6989586621679703387)
type SeqSym2 (t_a2UrL :: a6989586621679703386) (t_a2UrM :: b6989586621679703387) = Seq t_a2UrL t_a2UrM
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680328034GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680328034GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680328034GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621680328034GoSym0
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_a41yM a_a41yN. b_a41yM -> (a_a41yN -> b_a41yM) -> Maybe a_a41yN -> b_a41yM
either_ :: forall a_a3YIC c_a3YID b_a3YIE. (a_a3YIC -> c_a3YID) -> (b_a3YIE -> c_a3YID) -> Either a_a3YIC b_a3YIE -> c_a3YID

-- | (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_a3yFb :: TyFun k06989586621679857097 k6989586621679857099)
any_ :: forall a_a4644. (a_a4644 -> Bool) -> [a_a4644] -> 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_a2Tkv :: TyFun Bool Bool)
type NotSym1 (t_a2Tku :: Bool) = Not t_a2Tku
data (:&&$) (l_a2TkN :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a2TkQ :: Bool) (l_a2TkP :: TyFun Bool Bool)
type (:&&$$$) (t_a2TkL :: Bool) (t_a2TkM :: Bool) = (:&&) t_a2TkL t_a2TkM
data (:||$) (l_a2TkA :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a2TkD :: Bool) (l_a2TkC :: TyFun Bool Bool)
type (:||$$$) (t_a2Tky :: Bool) (t_a2Tkz :: Bool) = (:||) t_a2Tky t_a2Tkz
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a2DI7 :: TyFun a3530822107858468866 (Maybe a3530822107858468866))
type JustSym1 (t_a2DI6 :: a3530822107858468866) = Just t_a2DI6
data Maybe_Sym0 (l_a41yV :: TyFun b6989586621679969104 (TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type) -> Type))
data Maybe_Sym1 (l_a41yY :: b6989586621679969104) (l_a41yX :: TyFun (TyFun a6989586621679969105 b6989586621679969104 -> Type) (TyFun (Maybe a6989586621679969105) b6989586621679969104 -> Type))
data Maybe_Sym2 (l_a41z1 :: b6989586621679969104) (l_a41z2 :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (l_a41z0 :: TyFun (Maybe a6989586621679969105) b6989586621679969104)
type Maybe_Sym3 (t_a41yS :: b6989586621679969104) (t_a41yT :: TyFun a6989586621679969105 b6989586621679969104 -> Type) (t_a41yU :: Maybe a6989586621679969105) = Maybe_ t_a41yS t_a41yT t_a41yU
data LeftSym0 (l_a2DIy :: TyFun a6989586621679054093 (Either a6989586621679054093 b6989586621679054094))
type LeftSym1 (t_a2DIx :: a6989586621679054093) = Left t_a2DIx
data RightSym0 (l_a2DIB :: TyFun b6989586621679054094 (Either a6989586621679054093 b6989586621679054094))
type RightSym1 (t_a2DIA :: b6989586621679054094) = Right t_a2DIA
data Either_Sym0 (l_a3YIN :: TyFun (TyFun a6989586621679958182 c6989586621679958183 -> Type) (TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type) -> Type))
data Either_Sym1 (l_a3YIQ :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIP :: TyFun (TyFun b6989586621679958184 c6989586621679958183 -> Type) (TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183 -> Type))
data Either_Sym2 (l_a3YIT :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (l_a3YIU :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (l_a3YIS :: TyFun (Either a6989586621679958182 b6989586621679958184) c6989586621679958183)
type Either_Sym3 (t_a3YIK :: TyFun a6989586621679958182 c6989586621679958183 -> Type) (t_a3YIL :: TyFun b6989586621679958184 c6989586621679958183 -> Type) (t_a3YIM :: Either a6989586621679958182 b6989586621679958184) = Either_ t_a3YIK t_a3YIL t_a3YIM
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a2DJ7 :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867) -> Type))
data Tuple2Sym1 (l_a2DJa :: a3530822107858468866) (l_a2DJ9 :: TyFun b3530822107858468867 (a3530822107858468866, b3530822107858468867))
type Tuple2Sym2 (t_a2DJ5 :: a3530822107858468866) (t_a2DJ6 :: b3530822107858468867) = '(t_a2DJ5, t_a2DJ6)
data Tuple3Sym0 (l_a2DJr :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type) -> Type))
data Tuple3Sym1 (l_a2DJu :: a3530822107858468866) (l_a2DJt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868) -> Type))
data Tuple3Sym2 (l_a2DJx :: a3530822107858468866) (l_a2DJy :: b3530822107858468867) (l_a2DJw :: TyFun c3530822107858468868 (a3530822107858468866, b3530822107858468867, c3530822107858468868))
type Tuple3Sym3 (t_a2DJo :: a3530822107858468866) (t_a2DJp :: b3530822107858468867) (t_a2DJq :: c3530822107858468868) = '(t_a2DJo, t_a2DJp, t_a2DJq)
data Tuple4Sym0 (l_a2DJV :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a2DJY :: a3530822107858468866) (l_a2DJX :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type) -> Type))
data Tuple4Sym2 (l_a2DK1 :: a3530822107858468866) (l_a2DK2 :: b3530822107858468867) (l_a2DK0 :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869) -> Type))
data Tuple4Sym3 (l_a2DK5 :: a3530822107858468866) (l_a2DK6 :: b3530822107858468867) (l_a2DK7 :: c3530822107858468868) (l_a2DK4 :: TyFun d3530822107858468869 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869))
type Tuple4Sym4 (t_a2DJR :: a3530822107858468866) (t_a2DJS :: b3530822107858468867) (t_a2DJT :: c3530822107858468868) (t_a2DJU :: d3530822107858468869) = '(t_a2DJR, t_a2DJS, t_a2DJT, t_a2DJU)
data Tuple5Sym0 (l_a2DKA :: TyFun a3530822107858468866 (TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a2DKD :: a3530822107858468866) (l_a2DKC :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a2DKG :: a3530822107858468866) (l_a2DKH :: b3530822107858468867) (l_a2DKF :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type) -> Type))
data Tuple5Sym3 (l_a2DKK :: a3530822107858468866) (l_a2DKL :: b3530822107858468867) (l_a2DKM :: c3530822107858468868) (l_a2DKJ :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870) -> Type))
data Tuple5Sym4 (l_a2DKP :: a3530822107858468866) (l_a2DKQ :: b3530822107858468867) (l_a2DKR :: c3530822107858468868) (l_a2DKS :: d3530822107858468869) (l_a2DKO :: TyFun e3530822107858468870 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870))
type Tuple5Sym5 (t_a2DKv :: a3530822107858468866) (t_a2DKw :: b3530822107858468867) (t_a2DKx :: c3530822107858468868) (t_a2DKy :: d3530822107858468869) (t_a2DKz :: e3530822107858468870) = '(t_a2DKv, t_a2DKw, t_a2DKx, t_a2DKy, t_a2DKz)
data Tuple6Sym0 (l_a2DLr :: 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_a2DLu :: a3530822107858468866) (l_a2DLt :: TyFun b3530822107858468867 (TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a2DLx :: a3530822107858468866) (l_a2DLy :: b3530822107858468867) (l_a2DLw :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a2DLB :: a3530822107858468866) (l_a2DLC :: b3530822107858468867) (l_a2DLD :: c3530822107858468868) (l_a2DLA :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type) -> Type))
data Tuple6Sym4 (l_a2DLG :: a3530822107858468866) (l_a2DLH :: b3530822107858468867) (l_a2DLI :: c3530822107858468868) (l_a2DLJ :: d3530822107858468869) (l_a2DLF :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871) -> Type))
data Tuple6Sym5 (l_a2DLM :: a3530822107858468866) (l_a2DLN :: b3530822107858468867) (l_a2DLO :: c3530822107858468868) (l_a2DLP :: d3530822107858468869) (l_a2DLQ :: e3530822107858468870) (l_a2DLL :: TyFun f3530822107858468871 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871))
type Tuple6Sym6 (t_a2DLl :: a3530822107858468866) (t_a2DLm :: b3530822107858468867) (t_a2DLn :: c3530822107858468868) (t_a2DLo :: d3530822107858468869) (t_a2DLp :: e3530822107858468870) (t_a2DLq :: f3530822107858468871) = '(t_a2DLl, t_a2DLm, t_a2DLn, t_a2DLo, t_a2DLp, t_a2DLq)
data Tuple7Sym0 (l_a2DMv :: 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_a2DMy :: a3530822107858468866) (l_a2DMx :: 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_a2DMB :: a3530822107858468866) (l_a2DMC :: b3530822107858468867) (l_a2DMA :: TyFun c3530822107858468868 (TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a2DMF :: a3530822107858468866) (l_a2DMG :: b3530822107858468867) (l_a2DMH :: c3530822107858468868) (l_a2DME :: TyFun d3530822107858468869 (TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a2DMK :: a3530822107858468866) (l_a2DML :: b3530822107858468867) (l_a2DMM :: c3530822107858468868) (l_a2DMN :: d3530822107858468869) (l_a2DMJ :: TyFun e3530822107858468870 (TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type) -> Type))
data Tuple7Sym5 (l_a2DMQ :: a3530822107858468866) (l_a2DMR :: b3530822107858468867) (l_a2DMS :: c3530822107858468868) (l_a2DMT :: d3530822107858468869) (l_a2DMU :: e3530822107858468870) (l_a2DMP :: TyFun f3530822107858468871 (TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872) -> Type))
data Tuple7Sym6 (l_a2DMX :: a3530822107858468866) (l_a2DMY :: b3530822107858468867) (l_a2DMZ :: c3530822107858468868) (l_a2DN0 :: d3530822107858468869) (l_a2DN1 :: e3530822107858468870) (l_a2DN2 :: f3530822107858468871) (l_a2DMW :: TyFun g3530822107858468872 (a3530822107858468866, b3530822107858468867, c3530822107858468868, d3530822107858468869, e3530822107858468870, f3530822107858468871, g3530822107858468872))
type Tuple7Sym7 (t_a2DMo :: a3530822107858468866) (t_a2DMp :: b3530822107858468867) (t_a2DMq :: c3530822107858468868) (t_a2DMr :: d3530822107858468869) (t_a2DMs :: e3530822107858468870) (t_a2DMt :: f3530822107858468871) (t_a2DMu :: g3530822107858468872) = '(t_a2DMo, t_a2DMp, t_a2DMq, t_a2DMr, t_a2DMs, t_a2DMt, t_a2DMu)
data FstSym0 (l_a44UK :: TyFun (a6989586621679981949, b6989586621679981950) a6989586621679981949)
type FstSym1 (t_a44UJ :: (a6989586621679981949, b6989586621679981950)) = Fst t_a44UJ
data SndSym0 (l_a44UC :: TyFun (a6989586621679981947, b6989586621679981948) b6989586621679981948)
type SndSym1 (t_a44UB :: (a6989586621679981947, b6989586621679981948)) = Snd t_a44UB
data CurrySym0 (l_a44Um :: TyFun (TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type) -> Type))
data CurrySym1 (l_a44Up :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Uo :: TyFun a6989586621679981944 (TyFun b6989586621679981945 c6989586621679981946 -> Type))
data CurrySym2 (l_a44Us :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (l_a44Ut :: a6989586621679981944) (l_a44Ur :: TyFun b6989586621679981945 c6989586621679981946)
type CurrySym3 (t_a44Uj :: TyFun (a6989586621679981944, b6989586621679981945) c6989586621679981946 -> Type) (t_a44Uk :: a6989586621679981944) (t_a44Ul :: b6989586621679981945) = Curry t_a44Uj t_a44Uk t_a44Ul
data UncurrySym0 (l_a44UT :: TyFun (TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943 -> Type))
data UncurrySym1 (l_a44UW :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (l_a44UV :: TyFun (a6989586621679981941, b6989586621679981942) c6989586621679981943)
type UncurrySym2 (t_a44UR :: TyFun a6989586621679981941 (TyFun b6989586621679981942 c6989586621679981943 -> Type) -> Type) (t_a44US :: (a6989586621679981941, b6989586621679981942)) = Uncurry t_a44UR t_a44US
data (:^$) l_a3yHT
data (:^$$) (l_a3yHW :: Nat) l_a3yHV
data IdSym0 (l_a2Utp :: TyFun a6989586621679703397 a6989586621679703397)
type IdSym1 (t_a2Uto :: a6989586621679703397) = Id t_a2Uto
data ConstSym0 (l_a2UsY :: TyFun a6989586621679703395 (TyFun b6989586621679703396 a6989586621679703395 -> Type))
data ConstSym1 (l_a2Ut1 :: a6989586621679703395) (l_a2Ut0 :: TyFun b6989586621679703396 a6989586621679703395)
type ConstSym2 (t_a2UsW :: a6989586621679703395) (t_a2UsX :: b6989586621679703396) = Const t_a2UsW t_a2UsX
data (:.$) (l_a2Usj :: TyFun (TyFun b6989586621679703392 c6989586621679703393 -> Type) (TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type) -> Type))
data (:.$$) (l_a2Usm :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usl :: TyFun (TyFun a6989586621679703394 b6989586621679703392 -> Type) (TyFun a6989586621679703394 c6989586621679703393 -> Type))
data (:.$$$) (l_a2Usp :: TyFun b6989586621679703392 c6989586621679703393 -> Type) (l_a2Usq :: TyFun a6989586621679703394 b6989586621679703392 -> Type) (l_a2Uso :: TyFun a6989586621679703394 c6989586621679703393)
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_a2Us1 :: TyFun (TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type) -> Type))
data FlipSym1 (l_a2Us4 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us3 :: TyFun b6989586621679703390 (TyFun a6989586621679703389 c6989586621679703391 -> Type))
data FlipSym2 (l_a2Us7 :: TyFun a6989586621679703389 (TyFun b6989586621679703390 c6989586621679703391 -> Type) -> Type) (l_a2Us8 :: b6989586621679703390) (l_a2Us6 :: TyFun a6989586621679703389 c6989586621679703391)
data AsTypeOfSym0 (l_a2Utf :: TyFun a6989586621679703388 (TyFun a6989586621679703388 a6989586621679703388 -> Type))
data AsTypeOfSym1 (l_a2Uti :: a6989586621679703388) (l_a2Uth :: TyFun a6989586621679703388 a6989586621679703388)
type AsTypeOfSym2 (t_a2Utd :: a6989586621679703388) (t_a2Ute :: a6989586621679703388) = AsTypeOf t_a2Utd t_a2Ute
data SeqSym0 (l_a2UrN :: TyFun a6989586621679703386 (TyFun b6989586621679703387 b6989586621679703387 -> Type))
data SeqSym1 (l_a2UrQ :: a6989586621679703386) (l_a2UrP :: TyFun b6989586621679703387 b6989586621679703387)
type SeqSym2 (t_a2UrL :: a6989586621679703386) (t_a2UrM :: b6989586621679703387) = Seq t_a2UrL t_a2UrM
data (:$) (l_a2DIh :: TyFun a3530822107858468866 (TyFun [a3530822107858468866] [a3530822107858468866] -> Type))
data (:$$) (l_a2DIk :: a3530822107858468866) (l_a2DIj :: TyFun [a3530822107858468866] [a3530822107858468866])
type (:$$$) (t_a2DIf :: a3530822107858468866) (t_a2DIg :: [a3530822107858468866]) = (:) t_a2DIf t_a2DIg
type NilSym0 = '[]
data MapSym0 (l_a2UtI :: TyFun (TyFun a6989586621679703399 b6989586621679703400 -> Type) (TyFun [a6989586621679703399] [b6989586621679703400] -> Type))
data MapSym1 (l_a2UtL :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (l_a2UtK :: TyFun [a6989586621679703399] [b6989586621679703400])
type MapSym2 (t_a2UtG :: TyFun a6989586621679703399 b6989586621679703400 -> Type) (t_a2UtH :: [a6989586621679703399]) = Map t_a2UtG t_a2UtH
data ReverseSym0 (l_a4a1v :: TyFun [a6989586621679997119] [a6989586621679997119])
type ReverseSym1 (t_a4a1u :: [a6989586621679997119]) = Reverse t_a4a1u
data (:++$$) (l_a2Uty :: [a6989586621679703398]) (l_a2Utx :: TyFun [a6989586621679703398] [a6989586621679703398])
data (:++$) (l_a2Utv :: TyFun [a6989586621679703398] (TyFun [a6989586621679703398] [a6989586621679703398] -> Type))
data HeadSym0 (l_a4a40 :: TyFun [a6989586621679997124] a6989586621679997124)
type HeadSym1 (t_a4a3Z :: [a6989586621679997124]) = Head t_a4a3Z
data LastSym0 (l_a4a3Q :: TyFun [a6989586621679997123] a6989586621679997123)
type LastSym1 (t_a4a3P :: [a6989586621679997123]) = Last t_a4a3P
data TailSym0 (l_a4a3I :: TyFun [a6989586621679997122] [a6989586621679997122])
type TailSym1 (t_a4a3H :: [a6989586621679997122]) = Tail t_a4a3H
data InitSym0 (l_a4a3b :: TyFun [a6989586621679997121] [a6989586621679997121])
type InitSym1 (t_a4a3a :: [a6989586621679997121]) = Init t_a4a3a
data NullSym0 (l_a4a24 :: TyFun [a6989586621679997120] Bool)
type NullSym1 (t_a4a23 :: [a6989586621679997120]) = Null t_a4a23
data FoldlSym0 (l_a2GFZ :: TyFun (TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type) -> Type))
data FoldlSym1 (l_a2GG2 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG1 :: TyFun b6989586621679650486 (TyFun [a6989586621679650485] b6989586621679650486 -> Type))
data FoldlSym2 (l_a2GG5 :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (l_a2GG6 :: b6989586621679650486) (l_a2GG4 :: TyFun [a6989586621679650485] b6989586621679650486)
type FoldlSym3 (t_a2GFW :: TyFun b6989586621679650486 (TyFun a6989586621679650485 b6989586621679650486 -> Type) -> Type) (t_a2GFX :: b6989586621679650486) (t_a2GFY :: [a6989586621679650485]) = Foldl t_a2GFW t_a2GFX t_a2GFY
data Foldl1Sym0 (l_a49Pd :: TyFun (TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (TyFun [a6989586621679997110] a6989586621679997110 -> Type))
data Foldl1Sym1 (l_a49Pg :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (l_a49Pf :: TyFun [a6989586621679997110] a6989586621679997110)
type Foldl1Sym2 (t_a49Pb :: TyFun a6989586621679997110 (TyFun a6989586621679997110 a6989586621679997110 -> Type) -> Type) (t_a49Pc :: [a6989586621679997110]) = Foldl1 t_a49Pb t_a49Pc
data FoldrSym0 (l_a2UtY :: TyFun (TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type) -> Type))
data FoldrSym1 (l_a2Uu1 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu0 :: TyFun b6989586621679703402 (TyFun [a6989586621679703401] b6989586621679703402 -> Type))
data FoldrSym2 (l_a2Uu4 :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (l_a2Uu5 :: b6989586621679703402) (l_a2Uu3 :: TyFun [a6989586621679703401] b6989586621679703402)
type FoldrSym3 (t_a2UtV :: TyFun a6989586621679703401 (TyFun b6989586621679703402 b6989586621679703402 -> Type) -> Type) (t_a2UtW :: b6989586621679703402) (t_a2UtX :: [a6989586621679703401]) = Foldr t_a2UtV t_a2UtW t_a2UtX
data Foldr1Sym0 (l_a49OA :: TyFun (TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (TyFun [a6989586621679997108] a6989586621679997108 -> Type))
data Foldr1Sym1 (l_a49OD :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (l_a49OC :: TyFun [a6989586621679997108] a6989586621679997108)
type Foldr1Sym2 (t_a49Oy :: TyFun a6989586621679997108 (TyFun a6989586621679997108 a6989586621679997108 -> Type) -> Type) (t_a49Oz :: [a6989586621679997108]) = Foldr1 t_a49Oy t_a49Oz
data ConcatSym0 (l_a49Ou :: TyFun [[a6989586621679997107]] [a6989586621679997107])
type ConcatSym1 (t_a49Ot :: [[a6989586621679997107]]) = Concat t_a49Ot
data ConcatMapSym0 (l_a49Og :: TyFun (TyFun a6989586621679997105 [b6989586621679997106] -> Type) (TyFun [a6989586621679997105] [b6989586621679997106] -> Type))
data ConcatMapSym1 (l_a49Oj :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (l_a49Oi :: TyFun [a6989586621679997105] [b6989586621679997106])
type ConcatMapSym2 (t_a49Oe :: TyFun a6989586621679997105 [b6989586621679997106] -> Type) (t_a49Of :: [a6989586621679997105]) = ConcatMap t_a49Oe t_a49Of
data MaximumBySym0 (l_a49Ps :: TyFun (TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (TyFun [a6989586621679997037] a6989586621679997037 -> Type))
data MaximumBySym1 (l_a49Pv :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (l_a49Pu :: TyFun [a6989586621679997037] a6989586621679997037)
type MaximumBySym2 (t_a49Pq :: TyFun a6989586621679997037 (TyFun a6989586621679997037 Ordering -> Type) -> Type) (t_a49Pr :: [a6989586621679997037]) = MaximumBy t_a49Pq t_a49Pr
data MinimumBySym0 (l_a49QR :: TyFun (TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (TyFun [a6989586621679997036] a6989586621679997036 -> Type))
data MinimumBySym1 (l_a49QU :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (l_a49QT :: TyFun [a6989586621679997036] a6989586621679997036)
type MinimumBySym2 (t_a49QP :: TyFun a6989586621679997036 (TyFun a6989586621679997036 Ordering -> Type) -> Type) (t_a49QQ :: [a6989586621679997036]) = MinimumBy t_a49QP t_a49QQ
data AndSym0 (l_a49O9 :: TyFun [Bool] Bool)
type AndSym1 (t_a49O8 :: [Bool]) = And t_a49O8
data OrSym0 (l_a49O3 :: TyFun [Bool] Bool)
type OrSym1 (t_a49O2 :: [Bool]) = Or t_a49O2
data Any_Sym0 (l_a464b :: TyFun (TyFun a6989586621679986420 Bool -> Type) (TyFun [a6989586621679986420] Bool -> Type))
data Any_Sym1 (l_a464e :: TyFun a6989586621679986420 Bool -> Type) (l_a464d :: TyFun [a6989586621679986420] Bool)
type Any_Sym2 (t_a4649 :: TyFun a6989586621679986420 Bool -> Type) (t_a464a :: [a6989586621679986420]) = Any_ t_a4649 t_a464a
data AllSym0 (l_a49NP :: TyFun (TyFun a6989586621679997104 Bool -> Type) (TyFun [a6989586621679997104] Bool -> Type))
data AllSym1 (l_a49NS :: TyFun a6989586621679997104 Bool -> Type) (l_a49NR :: TyFun [a6989586621679997104] Bool)
type AllSym2 (t_a49NN :: TyFun a6989586621679997104 Bool -> Type) (t_a49NO :: [a6989586621679997104]) = All t_a49NN t_a49NO
data ScanlSym0 (l_a49Ne :: TyFun (TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type) -> Type))
data ScanlSym1 (l_a49Nh :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Ng :: TyFun b6989586621679997102 (TyFun [a6989586621679997103] [b6989586621679997102] -> Type))
data ScanlSym2 (l_a49Nk :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (l_a49Nl :: b6989586621679997102) (l_a49Nj :: TyFun [a6989586621679997103] [b6989586621679997102])
type ScanlSym3 (t_a49Nb :: TyFun b6989586621679997102 (TyFun a6989586621679997103 b6989586621679997102 -> Type) -> Type) (t_a49Nc :: b6989586621679997102) (t_a49Nd :: [a6989586621679997103]) = Scanl t_a49Nb t_a49Nc t_a49Nd
data Scanl1Sym0 (l_a49NA :: TyFun (TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (TyFun [a6989586621679997101] [a6989586621679997101] -> Type))
data Scanl1Sym1 (l_a49ND :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (l_a49NC :: TyFun [a6989586621679997101] [a6989586621679997101])
type Scanl1Sym2 (t_a49Ny :: TyFun a6989586621679997101 (TyFun a6989586621679997101 a6989586621679997101 -> Type) -> Type) (t_a49Nz :: [a6989586621679997101]) = Scanl1 t_a49Ny t_a49Nz
data ScanrSym0 (l_a49Mt :: TyFun (TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type) -> Type))
data ScanrSym1 (l_a49Mw :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49Mv :: TyFun b6989586621679997100 (TyFun [a6989586621679997099] [b6989586621679997100] -> Type))
data ScanrSym2 (l_a49Mz :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (l_a49MA :: b6989586621679997100) (l_a49My :: TyFun [a6989586621679997099] [b6989586621679997100])
type ScanrSym3 (t_a49Mq :: TyFun a6989586621679997099 (TyFun b6989586621679997100 b6989586621679997100 -> Type) -> Type) (t_a49Mr :: b6989586621679997100) (t_a49Ms :: [a6989586621679997099]) = Scanr t_a49Mq t_a49Mr t_a49Ms
data Scanr1Sym0 (l_a49Lr :: TyFun (TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (TyFun [a6989586621679997098] [a6989586621679997098] -> Type))
data Scanr1Sym1 (l_a49Lu :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (l_a49Lt :: TyFun [a6989586621679997098] [a6989586621679997098])
type Scanr1Sym2 (t_a49Lp :: TyFun a6989586621679997098 (TyFun a6989586621679997098 a6989586621679997098 -> Type) -> Type) (t_a49Lq :: [a6989586621679997098]) = Scanr1 t_a49Lp t_a49Lq
data ElemSym0 (l_a49Dy :: TyFun a6989586621679997084 (TyFun [a6989586621679997084] Bool -> Type))
data ElemSym1 (l_a49DB :: a6989586621679997084) (l_a49DA :: TyFun [a6989586621679997084] Bool)
type ElemSym2 (t_a49Dw :: a6989586621679997084) (t_a49Dx :: [a6989586621679997084]) = Elem t_a49Dw t_a49Dx
data NotElemSym0 (l_a49Dj :: TyFun a6989586621679997083 (TyFun [a6989586621679997083] Bool -> Type))
data NotElemSym1 (l_a49Dm :: a6989586621679997083) (l_a49Dl :: TyFun [a6989586621679997083] Bool)
type NotElemSym2 (t_a49Dh :: a6989586621679997083) (t_a49Di :: [a6989586621679997083]) = NotElem t_a49Dh t_a49Di
data ZipSym0 (l_a49Bg :: TyFun [a6989586621679997081] (TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)] -> Type))
data ZipSym1 (l_a49Bj :: [a6989586621679997081]) (l_a49Bi :: TyFun [b6989586621679997082] [(a6989586621679997081, b6989586621679997082)])
type ZipSym2 (t_a49Be :: [a6989586621679997081]) (t_a49Bf :: [b6989586621679997082]) = Zip t_a49Be t_a49Bf
data Zip3Sym0 (l_a49A4 :: TyFun [a6989586621679997078] (TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type) -> Type))
data Zip3Sym1 (l_a49A7 :: [a6989586621679997078]) (l_a49A6 :: TyFun [b6989586621679997079] (TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)] -> Type))
data Zip3Sym2 (l_a49Aa :: [a6989586621679997078]) (l_a49Ab :: [b6989586621679997079]) (l_a49A9 :: TyFun [c6989586621679997080] [(a6989586621679997078, b6989586621679997079, c6989586621679997080)])
type Zip3Sym3 (t_a49A1 :: [a6989586621679997078]) (t_a49A2 :: [b6989586621679997079]) (t_a49A3 :: [c6989586621679997080]) = Zip3 t_a49A1 t_a49A2 t_a49A3
data ZipWithSym0 (l_a49zp :: TyFun (TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type) -> Type))
data ZipWithSym1 (l_a49zs :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zr :: TyFun [a6989586621679997075] (TyFun [b6989586621679997076] [c6989586621679997077] -> Type))
data ZipWithSym2 (l_a49zv :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (l_a49zw :: [a6989586621679997075]) (l_a49zu :: TyFun [b6989586621679997076] [c6989586621679997077])
type ZipWithSym3 (t_a49zm :: TyFun a6989586621679997075 (TyFun b6989586621679997076 c6989586621679997077 -> Type) -> Type) (t_a49zn :: [a6989586621679997075]) (t_a49zo :: [b6989586621679997076]) = ZipWith t_a49zm t_a49zn t_a49zo
data ZipWith3Sym0 (l_a49xK :: TyFun (TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a49xN :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xM :: TyFun [a6989586621679997071] (TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type) -> Type))
data ZipWith3Sym2 (l_a49xQ :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xR :: [a6989586621679997071]) (l_a49xP :: TyFun [b6989586621679997072] (TyFun [c6989586621679997073] [d6989586621679997074] -> Type))
data ZipWith3Sym3 (l_a49xU :: TyFun a6989586621679997071 (TyFun b6989586621679997072 (TyFun c6989586621679997073 d6989586621679997074 -> Type) -> Type) -> Type) (l_a49xV :: [a6989586621679997071]) (l_a49xW :: [b6989586621679997072]) (l_a49xT :: TyFun [c6989586621679997073] [d6989586621679997074])
data UnzipSym0 (l_a49xd :: TyFun [(a6989586621679997069, b6989586621679997070)] ([a6989586621679997069], [b6989586621679997070]))
type UnzipSym1 (t_a49xc :: [(a6989586621679997069, b6989586621679997070)]) = Unzip t_a49xc
data UntilSym0 (l_a5wVH :: TyFun (TyFun a6989586621680328006 Bool -> Type) (TyFun (TyFun a6989586621680328006 a6989586621680328006 -> Type) (TyFun a6989586621680328006 a6989586621680328006 -> Type) -> Type))
data UntilSym1 (l_a5wVK :: TyFun a6989586621680328006 Bool -> Type) (l_a5wVJ :: TyFun (TyFun a6989586621680328006 a6989586621680328006 -> Type) (TyFun a6989586621680328006 a6989586621680328006 -> Type))
data UntilSym2 (l_a5wVN :: TyFun a6989586621680328006 Bool -> Type) (l_a5wVO :: TyFun a6989586621680328006 a6989586621680328006 -> Type) (l_a5wVM :: TyFun a6989586621680328006 a6989586621680328006)
type UntilSym3 (t_a5wVE :: TyFun a6989586621680328006 Bool -> Type) (t_a5wVF :: TyFun a6989586621680328006 a6989586621680328006 -> Type) (t_a5wVG :: a6989586621680328006) = Until t_a5wVE t_a5wVF t_a5wVG
data LengthSym0 (l_a49ej :: TyFun [a6989586621679997007] Nat)
type LengthSym1 (t_a49ei :: [a6989586621679997007]) = Length t_a49ei
data SumSym0 (l_a49eP :: TyFun [a6989586621679997009] a6989586621679997009)
type SumSym1 (t_a49eO :: [a6989586621679997009]) = Sum t_a49eO
data ProductSym0 (l_a49er :: TyFun [a6989586621679997008] a6989586621679997008)
type ProductSym1 (t_a49eq :: [a6989586621679997008]) = Product t_a49eq
data ReplicateSym0 (l_a49dY :: TyFun Nat (TyFun a6989586621679997006 [a6989586621679997006] -> Type))
data ReplicateSym1 (l_a49e1 :: Nat) (l_a49e0 :: TyFun a6989586621679997006 [a6989586621679997006])
type ReplicateSym2 (t_a49dW :: Nat) (t_a49dX :: a6989586621679997006) = Replicate t_a49dW t_a49dX
data TakeSym0 (l_a49h9 :: TyFun Nat (TyFun [a6989586621679997022] [a6989586621679997022] -> Type))
data TakeSym1 (l_a49hc :: Nat) (l_a49hb :: TyFun [a6989586621679997022] [a6989586621679997022])
type TakeSym2 (t_a49h7 :: Nat) (t_a49h8 :: [a6989586621679997022]) = Take t_a49h7 t_a49h8
data DropSym0 (l_a49gE :: TyFun Nat (TyFun [a6989586621679997021] [a6989586621679997021] -> Type))
data DropSym1 (l_a49gH :: Nat) (l_a49gG :: TyFun [a6989586621679997021] [a6989586621679997021])
type DropSym2 (t_a49gC :: Nat) (t_a49gD :: [a6989586621679997021]) = Drop t_a49gC t_a49gD
data SplitAtSym0 (l_a49hE :: TyFun Nat (TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]) -> Type))
data SplitAtSym1 (l_a49hH :: Nat) (l_a49hG :: TyFun [a6989586621679997020] ([a6989586621679997020], [a6989586621679997020]))
type SplitAtSym2 (t_a49hC :: Nat) (t_a49hD :: [a6989586621679997020]) = SplitAt t_a49hC t_a49hD
data TakeWhileSym0 (l_a49na :: TyFun (TyFun a6989586621679997027 Bool -> Type) (TyFun [a6989586621679997027] [a6989586621679997027] -> Type))
data TakeWhileSym1 (l_a49nd :: TyFun a6989586621679997027 Bool -> Type) (l_a49nc :: TyFun [a6989586621679997027] [a6989586621679997027])
type TakeWhileSym2 (t_a49n8 :: TyFun a6989586621679997027 Bool -> Type) (t_a49n9 :: [a6989586621679997027]) = TakeWhile t_a49n8 t_a49n9
data DropWhileSym0 (l_a49ms :: TyFun (TyFun a6989586621679997026 Bool -> Type) (TyFun [a6989586621679997026] [a6989586621679997026] -> Type))
data DropWhileSym1 (l_a49mv :: TyFun a6989586621679997026 Bool -> Type) (l_a49mu :: TyFun [a6989586621679997026] [a6989586621679997026])
type DropWhileSym2 (t_a49mq :: TyFun a6989586621679997026 Bool -> Type) (t_a49mr :: [a6989586621679997026]) = DropWhile t_a49mq t_a49mr
data SpanSym0 (l_a49jw :: TyFun (TyFun a6989586621679997024 Bool -> Type) (TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]) -> Type))
data SpanSym1 (l_a49jz :: TyFun a6989586621679997024 Bool -> Type) (l_a49jy :: TyFun [a6989586621679997024] ([a6989586621679997024], [a6989586621679997024]))
type SpanSym2 (t_a49ju :: TyFun a6989586621679997024 Bool -> Type) (t_a49jv :: [a6989586621679997024]) = Span t_a49ju t_a49jv
data BreakSym0 (l_a49hP :: TyFun (TyFun a6989586621679997023 Bool -> Type) (TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]) -> Type))
data BreakSym1 (l_a49hS :: TyFun a6989586621679997023 Bool -> Type) (l_a49hR :: TyFun [a6989586621679997023] ([a6989586621679997023], [a6989586621679997023]))
type BreakSym2 (t_a49hN :: TyFun a6989586621679997023 Bool -> Type) (t_a49hO :: [a6989586621679997023]) = Break t_a49hN t_a49hO
data LookupSym0 (l_a49g4 :: TyFun a6989586621679997012 (TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013) -> Type))
data LookupSym1 (l_a49g7 :: a6989586621679997012) (l_a49g6 :: TyFun [(a6989586621679997012, b6989586621679997013)] (Maybe b6989586621679997013))
type LookupSym2 (t_a49g2 :: a6989586621679997012) (t_a49g3 :: [(a6989586621679997012, b6989586621679997013)]) = Lookup t_a49g2 t_a49g3
data FilterSym0 (l_a49nF :: TyFun (TyFun a6989586621679997035 Bool -> Type) (TyFun [a6989586621679997035] [a6989586621679997035] -> Type))
data FilterSym1 (l_a49nI :: TyFun a6989586621679997035 Bool -> Type) (l_a49nH :: TyFun [a6989586621679997035] [a6989586621679997035])
type FilterSym2 (t_a49nD :: TyFun a6989586621679997035 Bool -> Type) (t_a49nE :: [a6989586621679997035]) = Filter t_a49nD t_a49nE
data (:!!$) (l_a49dt :: TyFun [a6989586621679997004] (TyFun Nat a6989586621679997004 -> Type))
data (:!!$$) (l_a49dw :: [a6989586621679997004]) (l_a49dv :: TyFun Nat a6989586621679997004)
type (:!!$$$) (t_a49dr :: [a6989586621679997004]) (t_a49ds :: Nat) = (:!!) t_a49dr t_a49ds
