-- 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.3.1


-- | 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 the original papers presenting this library,
--   available at
--   <a>http://cs.brynmawr.edu/~rae/papers/2012/singletons/paper.pdf</a>
--   and
--   <a>http://cs.brynmawr.edu/~rae/papers/2014/promotion/promotion.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 family Demote k = (r :: *) | r -> k;
}

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

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

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

-- | Force GHC to unify the kinds of <tt>a</tt> and <tt>b</tt>. Note that
--   <tt>SameKind a b</tt> is different from <tt>KindOf a ~ KindOf b</tt>
--   in that the former makes the kinds unify immediately, whereas the
--   latter is a proposition that GHC considers as possibly false.
type SameKind (a :: k) (b :: k) = (() :: Constraint)

-- | 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 :: forall k r. SingKind k => Demote 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 k -> 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 need visible type application to get
--   this to work. For example:
--   
--   <pre>
--   falses = sMap (singFun1 @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 :: forall f. SingFunction1 f -> Sing f
singFun2 :: forall f. SingFunction2 f -> Sing f
singFun3 :: forall f. SingFunction3 f -> Sing f
singFun4 :: forall f. SingFunction4 f -> Sing f
singFun5 :: forall f. SingFunction5 f -> Sing f
singFun6 :: forall f. SingFunction6 f -> Sing f
singFun7 :: forall f. SingFunction7 f -> Sing f
singFun8 :: forall f. SingFunction8 f -> Sing f

-- | This is the inverse of <a>singFun1</a>, and likewise for the other
--   <tt>unSingFun...</tt> functions.
unSingFun1 :: forall f. Sing f -> SingFunction1 f
unSingFun2 :: forall f. Sing f -> SingFunction2 f
unSingFun3 :: forall f. Sing f -> SingFunction3 f
unSingFun4 :: forall f. Sing f -> SingFunction4 f
unSingFun5 :: forall f. Sing f -> SingFunction5 f
unSingFun6 :: forall f. Sing f -> SingFunction6 f
unSingFun7 :: forall f. Sing f -> SingFunction7 f
unSingFun8 :: forall 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 k1 (k2 :: k1) k3. Data.Singletons.Decide.SDecide k3 => Data.Type.Equality.TestEquality Data.Singletons.Sing

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 -> ()


-- | 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_a1aDk :: Bool). Sing t_a1aDk -> Sing (Apply NotSym0 t_a1aDk :: Bool)
(%:&&) :: forall (t_a1aDn :: Bool) (t_a1aDo :: Bool). Sing t_a1aDn -> Sing t_a1aDo -> Sing (Apply (Apply (:&&$) t_a1aDn) t_a1aDo :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a1aDl :: Bool) (t_a1aDm :: Bool). Sing t_a1aDl -> Sing t_a1aDm -> Sing (Apply (Apply (:||$) t_a1aDl) t_a1aDm :: Bool)
infixr 2 %:||
bool_ :: a_a1asP -> a_a1asP -> Bool -> a_a1asP
sBool_ :: forall (t_a1ate :: a_a1asP) (t_a1atf :: a_a1asP) (t_a1atg :: Bool). Sing t_a1ate -> Sing t_a1atf -> Sing t_a1atg -> Sing (Apply (Apply (Apply Bool_Sym0 t_a1ate) t_a1atf) t_a1atg :: a_a1asP)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1aCR :: TyFun Bool Bool)
type NotSym1 (t_a1aCQ :: Bool) = Not t_a1aCQ
data (:&&$) (l_a1aDc :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1aDa :: Bool) (l_a1aD9 :: TyFun Bool Bool)
type (:&&$$$) (t_a1aD7 :: Bool) (t_a1aD8 :: Bool) = (:&&) t_a1aD7 t_a1aD8
data (:||$) (l_a1aCZ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1aCX :: Bool) (l_a1aCW :: TyFun Bool Bool)
type (:||$$$) (t_a1aCU :: Bool) (t_a1aCV :: Bool) = (:||) t_a1aCU t_a1aCV
data Bool_Sym0 (l_a1at5 :: TyFun a1627668507 (TyFun a1627668507 (TyFun Bool a1627668507 -> Type) -> Type))
data Bool_Sym1 (l_a1at3 :: a1627668507) (l_a1at2 :: TyFun a1627668507 (TyFun Bool a1627668507 -> Type))
data Bool_Sym2 (l_a1asZ :: a1627668507) (l_a1at0 :: a1627668507) (l_a1asY :: TyFun Bool a1627668507)
type Bool_Sym3 (t_a1asV :: a1627668507) (t_a1asW :: a1627668507) (t_a1asX :: Bool) = Bool_ t_a1asV t_a1asW t_a1asX
type OtherwiseSym0 = Otherwise
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.NotSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym2


-- | 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_ :: a_a1asP -> a_a1asP -> Bool -> a_a1asP
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1aCR :: TyFun Bool Bool)
type NotSym1 (t_a1aCQ :: Bool) = Not t_a1aCQ
data (:&&$) (l_a1aDc :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1aDa :: Bool) (l_a1aD9 :: TyFun Bool Bool)
type (:&&$$$) (t_a1aD7 :: Bool) (t_a1aD8 :: Bool) = (:&&) t_a1aD7 t_a1aD8
data (:||$) (l_a1aCZ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1aCX :: Bool) (l_a1aCW :: TyFun Bool Bool)
type (:||$$$) (t_a1aCU :: Bool) (t_a1aCV :: Bool) = (:||) t_a1aCU t_a1aCV
data Bool_Sym0 (l_a1at5 :: TyFun a1627668507 (TyFun a1627668507 (TyFun Bool a1627668507 -> Type) -> Type))
data Bool_Sym1 (l_a1at3 :: a1627668507) (l_a1at2 :: TyFun a1627668507 (TyFun Bool a1627668507 -> Type))
data Bool_Sym2 (l_a1asZ :: a1627668507) (l_a1at0 :: a1627668507) (l_a1asY :: TyFun Bool a1627668507)
type Bool_Sym3 (t_a1asV :: a1627668507) (t_a1asW :: a1627668507) (t_a1asX :: Bool) = Bool_ t_a1asV t_a1asW t_a1asX
type OtherwiseSym0 = Otherwise


-- | 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_a1byx :: TyFun a_a1buU (TyFun b_a1buV b_a1buV -> Type) -> Type) (t_a1byy :: b_a1buV) (t_a1byz :: [a_a1buU]). Sing t_a1byx -> Sing t_a1byy -> Sing t_a1byz -> Sing (Apply (Apply (Apply FoldrSym0 t_a1byx) t_a1byy) t_a1byz :: b_a1buV)
sMap :: forall (t_a1byv :: TyFun a_a1buS b_a1buT -> Type) (t_a1byw :: [a_a1buS]). Sing t_a1byv -> Sing t_a1byw -> Sing (Apply (Apply MapSym0 t_a1byv) t_a1byw :: [b_a1buT])
(%:++) :: forall (t_a1byt :: [a_a1buR]) (t_a1byu :: [a_a1buR]). Sing t_a1byt -> Sing t_a1byu -> Sing (Apply (Apply (:++$) t_a1byt) t_a1byu :: [a_a1buR])
infixr 5 %:++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a1bys :: a_a1buQ). Sing t_a1bys -> Sing (Apply IdSym0 t_a1bys :: a_a1buQ)
sConst :: forall (t_a1byo :: a_a1buO) (t_a1byp :: b_a1buP). Sing t_a1byo -> Sing t_a1byp -> Sing (Apply (Apply ConstSym0 t_a1byo) t_a1byp :: a_a1buO)
(%:.) :: forall (t_a1byl :: TyFun b_a1buL c_a1buM -> Type) (t_a1bym :: TyFun a_a1buN b_a1buL -> Type) (t_a1byn :: a_a1buN). Sing t_a1byl -> Sing t_a1bym -> Sing t_a1byn -> Sing (Apply (Apply (Apply (:.$) t_a1byl) t_a1bym) t_a1byn :: c_a1buM)
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_a1byi :: TyFun a_a1buI (TyFun b_a1buJ c_a1buK -> Type) -> Type) (t_a1byj :: b_a1buJ) (t_a1byk :: a_a1buI). Sing t_a1byi -> Sing t_a1byj -> Sing t_a1byk -> Sing (Apply (Apply (Apply FlipSym0 t_a1byi) t_a1byj) t_a1byk :: c_a1buK)
sAsTypeOf :: forall (t_a1byq :: a_a1buH) (t_a1byr :: a_a1buH). Sing t_a1byq -> Sing t_a1byr -> Sing (Apply (Apply AsTypeOfSym0 t_a1byq) t_a1byr :: a_a1buH)
sSeq :: forall (t_a1byg :: a_a1buF) (t_a1byh :: b_a1buG). Sing t_a1byg -> Sing t_a1byh -> Sing (Apply (Apply SeqSym0 t_a1byg) t_a1byh :: b_a1buG)
infixr 0 `sSeq`
data FoldrSym0 (l_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
type (:++$$$) (t_a1bx8 :: [a1627672477]) (t_a1bx9 :: [a1627672477]) = (:++) t_a1bx8 t_a1bx9
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
type (:.$$$$) (t_a1bvV :: TyFun b1627672471 c1627672472 -> Type) (t_a1bvW :: TyFun a1627672473 b1627672471 -> Type) (t_a1bvX :: a1627672473) = (:.) t_a1bvV t_a1bvW t_a1bvX
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_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
type FlipSym3 (t_a1bvD :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (t_a1bvE :: b1627672469) (t_a1bvF :: a1627672468) = Flip t_a1bvD t_a1bvE t_a1bvF
data AsTypeOfSym0 (l_a1bwX :: TyFun a1627672467 (TyFun a1627672467 a1627672467 -> Type))
data AsTypeOfSym1 (l_a1bwV :: a1627672467) (l_a1bwU :: TyFun a1627672467 a1627672467)
type AsTypeOfSym2 (t_a1bwS :: a1627672467) (t_a1bwT :: a1627672467) = AsTypeOf t_a1bwS t_a1bwT
data SeqSym0 (l_a1bvv :: TyFun a1627672465 (TyFun b1627672466 b1627672466 -> Type))
data SeqSym1 (l_a1bvt :: a1627672465) (l_a1bvs :: TyFun b1627672466 b1627672466)
type SeqSym2 (t_a1bvq :: a1627672465) (t_a1bvr :: b1627672466) = Seq t_a1bvq t_a1bvr
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FoldrSym2
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.:++$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Base.:++$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.IdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.AsTypeOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.AsTypeOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.ConstSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.ConstSym1
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.FlipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FlipSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.FlipSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.SeqSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.SeqSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let1627672666GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let1627672666GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let1627672666GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let1627672666GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_1627672563Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_1627672563Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_1627672563Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_1627672563Sym3


-- | Defines singleton versions of the definitions in
--   <tt>Data.Function</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.Function</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Singletons.Prelude.Function
sId :: forall (t_a1bys :: a_a1buQ). Sing t_a1bys -> Sing (Apply IdSym0 t_a1bys :: a_a1buQ)
sConst :: forall (t_a1byo :: a_a1buO) (t_a1byp :: b_a1buP). Sing t_a1byo -> Sing t_a1byp -> Sing (Apply (Apply ConstSym0 t_a1byo) t_a1byp :: a_a1buO)
(%:.) :: forall (t_a1byl :: TyFun b_a1buL c_a1buM -> Type) (t_a1bym :: TyFun a_a1buN b_a1buL -> Type) (t_a1byn :: a_a1buN). Sing t_a1byl -> Sing t_a1bym -> Sing t_a1byn -> Sing (Apply (Apply (Apply (:.$) t_a1byl) t_a1bym) t_a1byn :: c_a1buM)
infixr 9 %:.
sFlip :: forall (t_a1byi :: TyFun a_a1buI (TyFun b_a1buJ c_a1buK -> Type) -> Type) (t_a1byj :: b_a1buJ) (t_a1byk :: a_a1buI). Sing t_a1byi -> Sing t_a1byj -> Sing t_a1byk -> Sing (Apply (Apply (Apply FlipSym0 t_a1byi) t_a1byj) t_a1byk :: c_a1buK)
(%$) :: forall (f :: TyFun a b -> *) (x :: a). Sing f -> Sing x -> Sing ((($$) @@ f) @@ x)
infixr 0 %$
(%:&) :: forall (t_a1eFK :: a_a1eEf) (t_a1eFL :: TyFun a_a1eEf b_a1eEg -> Type). Sing t_a1eFK -> Sing t_a1eFL -> Sing (Apply (Apply (:&$) t_a1eFK) t_a1eFL :: b_a1eEg)
sOn :: forall (t_a1eFM :: TyFun b_a1eEh (TyFun b_a1eEh c_a1eEi -> Type) -> Type) (t_a1eFN :: TyFun a_a1eEj b_a1eEh -> Type) (t_a1eFO :: a_a1eEj) (t_a1eFP :: a_a1eEj). Sing t_a1eFM -> Sing t_a1eFN -> Sing t_a1eFO -> Sing t_a1eFP -> Sing (Apply (Apply (Apply (Apply OnSym0 t_a1eFM) t_a1eFN) t_a1eFO) t_a1eFP :: c_a1eEi)
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
type (:.$$$$) (t_a1bvV :: TyFun b1627672471 c1627672472 -> Type) (t_a1bvW :: TyFun a1627672473 b1627672471 -> Type) (t_a1bvX :: a1627672473) = (:.) t_a1bvV t_a1bvW t_a1bvX
data FlipSym0 (l_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
type FlipSym3 (t_a1bvD :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (t_a1bvE :: b1627672469) (t_a1bvF :: a1627672468) = Flip t_a1bvD t_a1bvE t_a1bvF
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data (:&$) (l_a1eEx :: TyFun a1627684591 (TyFun (TyFun a1627684591 b1627684592 -> Type) b1627684592 -> Type))
data (:&$$) (l_a1eEv :: a1627684591) (l_a1eEu :: TyFun (TyFun a1627684591 b1627684592 -> Type) b1627684592)
type (:&$$$) (t_a1eEs :: a1627684591) (t_a1eEt :: TyFun a1627684591 b1627684592 -> Type) = (:&) t_a1eEs t_a1eEt
data OnSym0 (l_a1eET :: TyFun (TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (TyFun (TyFun a1627684595 b1627684593 -> Type) (TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type) -> Type) -> Type))
data OnSym1 (l_a1eER :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEQ :: TyFun (TyFun a1627684595 b1627684593 -> Type) (TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type) -> Type))
data OnSym2 (l_a1eEN :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEO :: TyFun a1627684595 b1627684593 -> Type) (l_a1eEM :: TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type))
data OnSym3 (l_a1eEI :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEJ :: TyFun a1627684595 b1627684593 -> Type) (l_a1eEK :: a1627684595) (l_a1eEH :: TyFun a1627684595 c1627684594)
type OnSym4 (t_a1eED :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (t_a1eEE :: TyFun a1627684595 b1627684593 -> Type) (t_a1eEF :: a1627684595) (t_a1eEG :: a1627684595) = On t_a1eED t_a1eEE t_a1eEF t_a1eEG
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.OnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.OnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.OnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.OnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Function.:&$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Function.:&$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_1627684645Sym5


-- | Defines promoted functions from <tt>Data.Function</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.Function</tt>. Also, please
--   excuse the apparent repeated variable names. This is due to an
--   interaction between Template Haskell and Haddock.
module Data.Promotion.Prelude.Function
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
type (:.$$$$) (t_a1bvV :: TyFun b1627672471 c1627672472 -> Type) (t_a1bvW :: TyFun a1627672473 b1627672471 -> Type) (t_a1bvX :: a1627672473) = (:.) t_a1bvV t_a1bvW t_a1bvX
data FlipSym0 (l_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
type FlipSym3 (t_a1bvD :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (t_a1bvE :: b1627672469) (t_a1bvF :: a1627672468) = Flip t_a1bvD t_a1bvE t_a1bvF
data ($$) :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *
data ($$$) :: (TyFun a b -> *) -> TyFun a b -> *
type ($$$$) a b = ($) a b
data (:&$) (l_a1eEx :: TyFun a1627684591 (TyFun (TyFun a1627684591 b1627684592 -> Type) b1627684592 -> Type))
data (:&$$) (l_a1eEv :: a1627684591) (l_a1eEu :: TyFun (TyFun a1627684591 b1627684592 -> Type) b1627684592)
type (:&$$$) (t_a1eEs :: a1627684591) (t_a1eEt :: TyFun a1627684591 b1627684592 -> Type) = (:&) t_a1eEs t_a1eEt
data OnSym0 (l_a1eET :: TyFun (TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (TyFun (TyFun a1627684595 b1627684593 -> Type) (TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type) -> Type) -> Type))
data OnSym1 (l_a1eER :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEQ :: TyFun (TyFun a1627684595 b1627684593 -> Type) (TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type) -> Type))
data OnSym2 (l_a1eEN :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEO :: TyFun a1627684595 b1627684593 -> Type) (l_a1eEM :: TyFun a1627684595 (TyFun a1627684595 c1627684594 -> Type))
data OnSym3 (l_a1eEI :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (l_a1eEJ :: TyFun a1627684595 b1627684593 -> Type) (l_a1eEK :: a1627684595) (l_a1eEH :: TyFun a1627684595 c1627684594)
type OnSym4 (t_a1eED :: TyFun b1627684593 (TyFun b1627684593 c1627684594 -> Type) -> Type) (t_a1eEE :: TyFun a1627684595 b1627684593 -> Type) (t_a1eEF :: a1627684595) (t_a1eEG :: a1627684595) = On t_a1eED t_a1eEE t_a1eEF t_a1eEG


-- | 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 PEq a 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

-- | 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_a1fY6 :: TyFun a1627689599 (TyFun a1627689599 Bool -> Type))
data (:==$$) (l_a1fY4 :: a1627689599) (l_a1fY3 :: TyFun a1627689599 Bool)
type (:==$$$) (t_a1fY1 :: a1627689599) (t_a1fY2 :: a1627689599) = (:==) t_a1fY1 t_a1fY2
data (:/=$) (l_a1fYd :: TyFun a1627689599 (TyFun a1627689599 Bool -> Type))
data (:/=$$) (l_a1fYb :: a1627689599) (l_a1fYa :: TyFun a1627689599 Bool)
type (:/=$$$) (t_a1fY8 :: a1627689599) (t_a1fY9 :: a1627689599) = (:/=) t_a1fY8 t_a1fY9
instance Data.Singletons.Prelude.Eq.PEq ()
instance Data.Singletons.Prelude.Eq.PEq GHC.Types.Ordering
instance Data.Singletons.Prelude.Eq.PEq GHC.Types.Bool
instance Data.Singletons.Prelude.Eq.PEq (k1, k2, k3, k4, k5, k6, k7)
instance Data.Singletons.Prelude.Eq.PEq (k1, k2, k3, k4, k5, k6)
instance Data.Singletons.Prelude.Eq.PEq (k1, k2, k3, k4, k5)
instance Data.Singletons.Prelude.Eq.PEq (k1, k2, k3, k4)
instance Data.Singletons.Prelude.Eq.PEq (k1, k2, k3)
instance Data.Singletons.Prelude.Eq.PEq (k1, k2)
instance Data.Singletons.Prelude.Eq.PEq (Data.List.NonEmpty.NonEmpty k)
instance Data.Singletons.Prelude.Eq.PEq (Data.Either.Either k1 k2)
instance Data.Singletons.Prelude.Eq.PEq [k]
instance Data.Singletons.Prelude.Eq.PEq (GHC.Base.Maybe k)
instance Data.Singletons.Prelude.Eq.SEq a => Data.Singletons.Prelude.Eq.SEq (GHC.Base.Maybe a)
instance Data.Singletons.Prelude.Eq.SEq a => Data.Singletons.Prelude.Eq.SEq [a]
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b) => Data.Singletons.Prelude.Eq.SEq (Data.Either.Either a b)
instance Data.Singletons.Prelude.Eq.SEq a => Data.Singletons.Prelude.Eq.SEq (Data.List.NonEmpty.NonEmpty a)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b) => Data.Singletons.Prelude.Eq.SEq (a, b)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b, Data.Singletons.Prelude.Eq.SEq c) => Data.Singletons.Prelude.Eq.SEq (a, b, c)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b, Data.Singletons.Prelude.Eq.SEq c, Data.Singletons.Prelude.Eq.SEq d) => Data.Singletons.Prelude.Eq.SEq (a, b, c, d)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b, Data.Singletons.Prelude.Eq.SEq c, Data.Singletons.Prelude.Eq.SEq d, Data.Singletons.Prelude.Eq.SEq e) => Data.Singletons.Prelude.Eq.SEq (a, b, c, d, e)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b, Data.Singletons.Prelude.Eq.SEq c, Data.Singletons.Prelude.Eq.SEq d, Data.Singletons.Prelude.Eq.SEq e, Data.Singletons.Prelude.Eq.SEq f) => Data.Singletons.Prelude.Eq.SEq (a, b, c, d, e, f)
instance (Data.Singletons.Prelude.Eq.SEq a, Data.Singletons.Prelude.Eq.SEq b, Data.Singletons.Prelude.Eq.SEq c, Data.Singletons.Prelude.Eq.SEq d, Data.Singletons.Prelude.Eq.SEq e, Data.Singletons.Prelude.Eq.SEq f, Data.Singletons.Prelude.Eq.SEq g) => Data.Singletons.Prelude.Eq.SEq (a, b, c, d, e, f, g)
instance Data.Singletons.Prelude.Eq.SEq GHC.Types.Bool
instance Data.Singletons.Prelude.Eq.SEq GHC.Types.Ordering
instance Data.Singletons.Prelude.Eq.SEq ()
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 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 *
instance Data.Singletons.Prelude.Eq.PEq *
instance Data.Singletons.Prelude.Eq.SEq *
instance Data.Singletons.Decide.SDecide *
instance Data.Type.Coercion.TestCoercion Data.Singletons.Sing


-- | Defines the promoted version of Ord, <a>POrd</a>, and the singleton
--   version, <a>SOrd</a>.
module Data.Singletons.Prelude.Ord
class PEq a_a1jVW => POrd (a_a1jVW :: Type) where {
    type family Compare (arg_a1kho :: a_a1jVW) (arg_a1khp :: a_a1jVW) :: Ordering;
    type family (:<) (arg_a1khx :: a_a1jVW) (arg_a1khy :: a_a1jVW) :: Bool;
    type family (:<=) (arg_a1khG :: a_a1jVW) (arg_a1khH :: a_a1jVW) :: Bool;
    type family (:>) (arg_a1khP :: a_a1jVW) (arg_a1khQ :: a_a1jVW) :: Bool;
    type family (:>=) (arg_a1khY :: a_a1jVW) (arg_a1khZ :: a_a1jVW) :: Bool;
    type family Max (arg_a1ki7 :: a_a1jVW) (arg_a1ki8 :: a_a1jVW) :: a_a1jVW;
    type family Min (arg_a1kig :: a_a1jVW) (arg_a1kih :: a_a1jVW) :: a_a1jVW;
    type Compare a_a1kiW a_a1kiX =
        Apply (Apply Compare_1627706336Sym0 a_a1kiW) a_a1kiX;
    type (:<) a_a1kjt a_a1kju =
        Apply (Apply TFHelper_1627706369Sym0 a_a1kjt) a_a1kju;
    type (:<=) a_a1kk0 a_a1kk1 =
        Apply (Apply TFHelper_1627706402Sym0 a_a1kk0) a_a1kk1;
    type (:>) a_a1kkx a_a1kky =
        Apply (Apply TFHelper_1627706435Sym0 a_a1kkx) a_a1kky;
    type (:>=) a_a1kl4 a_a1kl5 =
        Apply (Apply TFHelper_1627706468Sym0 a_a1kl4) a_a1kl5;
    type Max a_a1klB a_a1klC =
        Apply (Apply Max_1627706501Sym0 a_a1klB) a_a1klC;
    type Min a_a1km8 a_a1km9 =
        Apply (Apply Min_1627706534Sym0 a_a1km8) a_a1km9;
}
class SEq a_a1jVW => SOrd a_a1jVW
sCompare :: forall (t_a1kmp :: a_a1jVW) (t_a1kmq :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmp -> Sing t_a1kmq -> Sing (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering)
(%:<) :: forall (t_a1kmr :: a_a1jVW) (t_a1kms :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmr -> Sing t_a1kms -> Sing (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool)
(%:<=) :: forall (t_a1kmt :: a_a1jVW) (t_a1kmu :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmt -> Sing t_a1kmu -> Sing (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool)
(%:>) :: forall (t_a1kmv :: a_a1jVW) (t_a1kmw :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmv -> Sing t_a1kmw -> Sing (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool)
(%:>=) :: forall (t_a1kmx :: a_a1jVW) (t_a1kmy :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmx -> Sing t_a1kmy -> Sing (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool)
sMax :: forall (t_a1kmz :: a_a1jVW) (t_a1kmA :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmz -> Sing t_a1kmA -> Sing (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW)
sMin :: forall (t_a1kmB :: a_a1jVW) (t_a1kmC :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmB -> Sing t_a1kmC -> Sing (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW)
sCompare :: forall (t_a1kmp :: a_a1jVW) (t_a1kmq :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering) ~ Apply (Apply Compare_1627706336Sym0 t_a1kmp) t_a1kmq) => Sing t_a1kmp -> Sing t_a1kmq -> Sing (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering)
(%:<) :: forall (t_a1kmr :: a_a1jVW) (t_a1kms :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool) ~ Apply (Apply TFHelper_1627706369Sym0 t_a1kmr) t_a1kms) => Sing t_a1kmr -> Sing t_a1kms -> Sing (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool)
(%:<=) :: forall (t_a1kmt :: a_a1jVW) (t_a1kmu :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool) ~ Apply (Apply TFHelper_1627706402Sym0 t_a1kmt) t_a1kmu) => Sing t_a1kmt -> Sing t_a1kmu -> Sing (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool)
(%:>) :: forall (t_a1kmv :: a_a1jVW) (t_a1kmw :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool) ~ Apply (Apply TFHelper_1627706435Sym0 t_a1kmv) t_a1kmw) => Sing t_a1kmv -> Sing t_a1kmw -> Sing (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool)
(%:>=) :: forall (t_a1kmx :: a_a1jVW) (t_a1kmy :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool) ~ Apply (Apply TFHelper_1627706468Sym0 t_a1kmx) t_a1kmy) => Sing t_a1kmx -> Sing t_a1kmy -> Sing (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool)
sMax :: forall (t_a1kmz :: a_a1jVW) (t_a1kmA :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW) ~ Apply (Apply Max_1627706501Sym0 t_a1kmz) t_a1kmA) => Sing t_a1kmz -> Sing t_a1kmA -> Sing (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW)
sMin :: forall (t_a1kmB :: a_a1jVW) (t_a1kmC :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW) ~ Apply (Apply Min_1627706534Sym0 t_a1kmB) t_a1kmC) => Sing t_a1kmB -> Sing t_a1kmC -> Sing (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW)
sComparing :: forall (t_a1kmj :: TyFun b_a1jVM a_a1jVL -> Type) (t_a1kmk :: b_a1jVM) (t_a1kml :: b_a1jVM). SOrd a_a1jVL => Sing t_a1kmj -> Sing t_a1kmk -> Sing t_a1kml -> Sing (Apply (Apply (Apply ComparingSym0 t_a1kmj) t_a1kmk) t_a1kml :: Ordering)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a1m63 :: Ordering) (t_a1m64 :: Ordering). Sing t_a1m63 -> Sing t_a1m64 -> Sing (Apply (Apply ThenCmpSym0 t_a1m63) t_a1m64 :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a1m5S :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1m5Q :: Ordering) (l_a1m5P :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1m5N :: Ordering) (t_a1m5O :: Ordering) = ThenCmp t_a1m5N t_a1m5O
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1khv :: TyFun a1627704908 (TyFun a1627704908 Ordering -> Type))
data CompareSym1 (l_a1kht :: a1627704908) (l_a1khs :: TyFun a1627704908 Ordering)
type CompareSym2 (t_a1khq :: a1627704908) (t_a1khr :: a1627704908) = Compare t_a1khq t_a1khr
data (:<$) (l_a1khE :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:<$$) (l_a1khC :: a1627704908) (l_a1khB :: TyFun a1627704908 Bool)
type (:<$$$) (t_a1khz :: a1627704908) (t_a1khA :: a1627704908) = (:<) t_a1khz t_a1khA
data (:<=$) (l_a1khN :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:<=$$) (l_a1khL :: a1627704908) (l_a1khK :: TyFun a1627704908 Bool)
type (:<=$$$) (t_a1khI :: a1627704908) (t_a1khJ :: a1627704908) = (:<=) t_a1khI t_a1khJ
data (:>$) (l_a1khW :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:>$$) (l_a1khU :: a1627704908) (l_a1khT :: TyFun a1627704908 Bool)
type (:>$$$) (t_a1khR :: a1627704908) (t_a1khS :: a1627704908) = (:>) t_a1khR t_a1khS
data (:>=$) (l_a1ki5 :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:>=$$) (l_a1ki3 :: a1627704908) (l_a1ki2 :: TyFun a1627704908 Bool)
type (:>=$$$) (t_a1ki0 :: a1627704908) (t_a1ki1 :: a1627704908) = (:>=) t_a1ki0 t_a1ki1
data MaxSym0 (l_a1kie :: TyFun a1627704908 (TyFun a1627704908 a1627704908 -> Type))
data MaxSym1 (l_a1kic :: a1627704908) (l_a1kib :: TyFun a1627704908 a1627704908)
type MaxSym2 (t_a1ki9 :: a1627704908) (t_a1kia :: a1627704908) = Max t_a1ki9 t_a1kia
data MinSym0 (l_a1kin :: TyFun a1627704908 (TyFun a1627704908 a1627704908 -> Type))
data MinSym1 (l_a1kil :: a1627704908) (l_a1kik :: TyFun a1627704908 a1627704908)
type MinSym2 (t_a1kii :: a1627704908) (t_a1kij :: a1627704908) = Min t_a1kii t_a1kij
data ComparingSym0 (l_a1khg :: TyFun (TyFun b1627704898 a1627704897 -> Type) (TyFun b1627704898 (TyFun b1627704898 Ordering -> Type) -> Type))
data ComparingSym1 (l_a1khe :: TyFun b1627704898 a1627704897 -> Type) (l_a1khd :: TyFun b1627704898 (TyFun b1627704898 Ordering -> Type))
data ComparingSym2 (l_a1kha :: TyFun b1627704898 a1627704897 -> Type) (l_a1khb :: b1627704898) (l_a1kh9 :: TyFun b1627704898 Ordering)
type ComparingSym3 (t_a1kh6 :: TyFun b1627704898 a1627704897 -> Type) (t_a1kh7 :: b1627704898) (t_a1kh8 :: b1627704898) = Comparing t_a1kh6 t_a1kh7 t_a1kh8
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627714002Sym0
instance Data.Singletons.Prelude.Ord.POrd ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627714002Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713982Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713982Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713962Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713962Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713928Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713928Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713854Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713854Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713788Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713788Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713730Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713730Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713680Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713680Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713638Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713638Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713602Sym0
instance Data.Singletons.Prelude.Ord.POrd (Data.List.NonEmpty.NonEmpty a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713602Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713566Sym0
instance Data.Singletons.Prelude.Ord.POrd (Data.Either.Either a b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713566Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713518Sym0
instance Data.Singletons.Prelude.Ord.POrd [a]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713518Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713472Sym0
instance Data.Singletons.Prelude.Ord.POrd (GHC.Base.Maybe a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627713472Sym1
instance Data.Singletons.Prelude.Ord.SOrd a => Data.Singletons.Prelude.Ord.SOrd (GHC.Base.Maybe a)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd [a]) => Data.Singletons.Prelude.Ord.SOrd [a]
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b) => Data.Singletons.Prelude.Ord.SOrd (Data.Either.Either a b)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd [a]) => Data.Singletons.Prelude.Ord.SOrd (Data.List.NonEmpty.NonEmpty a)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b) => Data.Singletons.Prelude.Ord.SOrd (a, b)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b, Data.Singletons.Prelude.Ord.SOrd c) => Data.Singletons.Prelude.Ord.SOrd (a, b, c)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b, Data.Singletons.Prelude.Ord.SOrd c, Data.Singletons.Prelude.Ord.SOrd d) => Data.Singletons.Prelude.Ord.SOrd (a, b, c, d)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b, Data.Singletons.Prelude.Ord.SOrd c, Data.Singletons.Prelude.Ord.SOrd d, Data.Singletons.Prelude.Ord.SOrd e) => Data.Singletons.Prelude.Ord.SOrd (a, b, c, d, e)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b, Data.Singletons.Prelude.Ord.SOrd c, Data.Singletons.Prelude.Ord.SOrd d, Data.Singletons.Prelude.Ord.SOrd e, Data.Singletons.Prelude.Ord.SOrd f) => Data.Singletons.Prelude.Ord.SOrd (a, b, c, d, e, f)
instance (Data.Singletons.Prelude.Ord.SOrd a, Data.Singletons.Prelude.Ord.SOrd b, Data.Singletons.Prelude.Ord.SOrd c, Data.Singletons.Prelude.Ord.SOrd d, Data.Singletons.Prelude.Ord.SOrd e, Data.Singletons.Prelude.Ord.SOrd f, Data.Singletons.Prelude.Ord.SOrd g) => Data.Singletons.Prelude.Ord.SOrd (a, b, c, d, e, f, g)
instance Data.Singletons.Prelude.Ord.SOrd GHC.Types.Bool
instance Data.Singletons.Prelude.Ord.SOrd GHC.Types.Ordering
instance Data.Singletons.Prelude.Ord.SOrd ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ThenCmpSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ThenCmpSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ComparingSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ComparingSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.ComparingSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706356Scrutinee_1627704930Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706356Scrutinee_1627704930Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706389Scrutinee_1627704932Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706389Scrutinee_1627704932Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706422Scrutinee_1627704934Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706422Scrutinee_1627704934Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706455Scrutinee_1627704936Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706455Scrutinee_1627704936Sym1
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.Let1627706322Scrutinee_1627704928Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706322Scrutinee_1627704928Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706488Scrutinee_1627704938Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706488Scrutinee_1627704938Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706521Scrutinee_1627704940Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706521Scrutinee_1627704940Sym1
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.MaxSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MaxSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MinSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.MinSym1
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.Compare_1627706336Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_1627706336Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706369Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706369Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706402Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706402Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706435Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706435Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706468Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_1627706468Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_1627706501Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_1627706501Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_1627706534Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_1627706534Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706312Scrutinee_1627704926Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let1627706312Scrutinee_1627704926Sym1


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Singletons.Prelude.Num
class PNum (a_a1KAC :: Type) where {
    type family (:+) (arg_a1KAG :: a_a1KAC) (arg_a1KAH :: a_a1KAC) :: a_a1KAC;
    type family (:-) (arg_a1KAP :: a_a1KAC) (arg_a1KAQ :: a_a1KAC) :: a_a1KAC;
    type family (:*) (arg_a1KAY :: a_a1KAC) (arg_a1KAZ :: a_a1KAC) :: a_a1KAC;
    type family Negate (arg_a1KB7 :: a_a1KAC) :: a_a1KAC;
    type family Abs (arg_a1KBb :: a_a1KAC) :: a_a1KAC;
    type family Signum (arg_a1KBf :: a_a1KAC) :: a_a1KAC;
    type family FromInteger (arg_a1KBj :: Nat) :: a_a1KAC;
    type (:-) a_a1KBy a_a1KBz =
        Apply (Apply TFHelper_1627807434Sym0 a_a1KBy) a_a1KBz;
    type Negate a_a1KBO = Apply Negate_1627807449Sym0 a_a1KBO;
}
class SNum a_a1KAC
(%:+) :: forall (t_a1KBU :: a_a1KAC) (t_a1KBV :: a_a1KAC). SNum a_a1KAC => Sing t_a1KBU -> Sing t_a1KBV -> Sing (Apply (Apply (:+$) t_a1KBU) t_a1KBV :: a_a1KAC)
(%:-) :: forall (t_a1KBW :: a_a1KAC) (t_a1KBX :: a_a1KAC). SNum a_a1KAC => Sing t_a1KBW -> Sing t_a1KBX -> Sing (Apply (Apply (:-$) t_a1KBW) t_a1KBX :: a_a1KAC)
(%:*) :: forall (t_a1KBY :: a_a1KAC) (t_a1KBZ :: a_a1KAC). SNum a_a1KAC => Sing t_a1KBY -> Sing t_a1KBZ -> Sing (Apply (Apply (:*$) t_a1KBY) t_a1KBZ :: a_a1KAC)
sNegate :: forall (t_a1KC0 :: a_a1KAC). SNum a_a1KAC => Sing t_a1KC0 -> Sing (Apply NegateSym0 t_a1KC0 :: a_a1KAC)
sAbs :: forall (t_a1KC1 :: a_a1KAC). SNum a_a1KAC => Sing t_a1KC1 -> Sing (Apply AbsSym0 t_a1KC1 :: a_a1KAC)
sSignum :: forall (t_a1KC2 :: a_a1KAC). SNum a_a1KAC => Sing t_a1KC2 -> Sing (Apply SignumSym0 t_a1KC2 :: a_a1KAC)
sFromInteger :: forall (t_a1KC3 :: Nat). SNum a_a1KAC => Sing t_a1KC3 -> Sing (Apply FromIntegerSym0 t_a1KC3 :: a_a1KAC)
(%:-) :: forall (t_a1KBW :: a_a1KAC) (t_a1KBX :: a_a1KAC). (SNum a_a1KAC, (Apply (Apply (:-$) t_a1KBW) t_a1KBX :: a_a1KAC) ~ Apply (Apply TFHelper_1627807434Sym0 t_a1KBW) t_a1KBX) => Sing t_a1KBW -> Sing t_a1KBX -> Sing (Apply (Apply (:-$) t_a1KBW) t_a1KBX :: a_a1KAC)
sNegate :: forall (t_a1KC0 :: a_a1KAC). (SNum a_a1KAC, (Apply NegateSym0 t_a1KC0 :: a_a1KAC) ~ Apply Negate_1627807449Sym0 t_a1KC0) => Sing t_a1KC0 -> Sing (Apply NegateSym0 t_a1KC0 :: a_a1KAC)
sSubtract :: forall (t_a1Lcj :: a_a1Lbz) (t_a1Lck :: a_a1Lbz). SNum a_a1Lbz => Sing t_a1Lcj -> Sing t_a1Lck -> Sing (Apply (Apply SubtractSym0 t_a1Lcj) t_a1Lck :: a_a1Lbz)
data (:+$) (l_a1KAN :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:+$$) (l_a1KAL :: a1627807374) (l_a1KAK :: TyFun a1627807374 a1627807374)
type (:+$$$) (t_a1KAI :: a1627807374) (t_a1KAJ :: a1627807374) = (:+) t_a1KAI t_a1KAJ
data (:-$) (l_a1KAW :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:-$$) (l_a1KAU :: a1627807374) (l_a1KAT :: TyFun a1627807374 a1627807374)
type (:-$$$) (t_a1KAR :: a1627807374) (t_a1KAS :: a1627807374) = (:-) t_a1KAR t_a1KAS
data (:*$) (l_a1KB5 :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:*$$) (l_a1KB3 :: a1627807374) (l_a1KB2 :: TyFun a1627807374 a1627807374)
type (:*$$$) (t_a1KB0 :: a1627807374) (t_a1KB1 :: a1627807374) = (:*) t_a1KB0 t_a1KB1
data NegateSym0 (l_a1KB9 :: TyFun a1627807374 a1627807374)
type NegateSym1 (t_a1KB8 :: a1627807374) = Negate t_a1KB8
data AbsSym0 (l_a1KBd :: TyFun a1627807374 a1627807374)
type AbsSym1 (t_a1KBc :: a1627807374) = Abs t_a1KBc
data SignumSym0 (l_a1KBh :: TyFun a1627807374 a1627807374)
type SignumSym1 (t_a1KBg :: a1627807374) = Signum t_a1KBg
data FromIntegerSym0 (l_a1KBl :: TyFun Nat a1627807374)
type FromIntegerSym1 (t_a1KBk :: Nat) = FromInteger t_a1KBk
data SubtractSym0 (l_a1Lcd :: TyFun a1627809665 (TyFun a1627809665 a1627809665 -> Type))
data SubtractSym1 (l_a1Lcb :: a1627809665) (l_a1Lca :: TyFun a1627809665 a1627809665)
type SubtractSym2 (t_a1Lc8 :: a1627809665) (t_a1Lc9 :: a1627809665) = Subtract t_a1Lc8 t_a1Lc9
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.SubtractSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.SubtractSym1
instance Data.Singletons.Prelude.Num.PNum GHC.Types.Nat
instance Data.Singletons.Prelude.Num.SNum GHC.Types.Nat
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.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.:+$$)
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.TFHelper_1627807434Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_1627807434Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_1627807449Sym0


-- | Defines and exports singletons useful for the Nat and Symbol kinds.
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_a1IEA :: TyFun k01627798799 k1627798801)
type ErrorSym1 (t_a1IEz :: k01627798799) = Error t_a1IEz

-- | 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)
data KnownNatSym0 (l_a1MKA :: TyFun Nat Constraint)
type KnownNatSym1 (t_a1MKz :: Nat) = KnownNat t_a1MKz

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)
data KnownSymbolSym0 (l_a1MKD :: TyFun Symbol Constraint)
type KnownSymbolSym1 (t_a1MKC :: Symbol) = KnownSymbol t_a1MKC

symbolVal :: KnownSymbol n => proxy n -> String
type a :^ b = a ^ b
data (:^$) l_a1IHo
data (:^$$) (l_a1IHm :: Nat) l_a1IHl
type (:^$$$) (t_a1IHj :: Nat) (t_a1IHk :: Nat) = (:^) t_a1IHj t_a1IHk
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.KnownSymbolSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.KnownNatSym0
instance GHC.Num.Num GHC.Types.Nat
instance GHC.Classes.Eq GHC.Types.Nat
instance GHC.Classes.Ord GHC.Types.Nat
instance GHC.Classes.Eq GHC.Types.Symbol
instance GHC.Classes.Ord GHC.Types.Symbol


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class PNum (a_a1KAC :: Type) where {
    type family (:+) (arg_a1KAG :: a_a1KAC) (arg_a1KAH :: a_a1KAC) :: a_a1KAC;
    type family (:-) (arg_a1KAP :: a_a1KAC) (arg_a1KAQ :: a_a1KAC) :: a_a1KAC;
    type family (:*) (arg_a1KAY :: a_a1KAC) (arg_a1KAZ :: a_a1KAC) :: a_a1KAC;
    type family Negate (arg_a1KB7 :: a_a1KAC) :: a_a1KAC;
    type family Abs (arg_a1KBb :: a_a1KAC) :: a_a1KAC;
    type family Signum (arg_a1KBf :: a_a1KAC) :: a_a1KAC;
    type family FromInteger (arg_a1KBj :: Nat) :: a_a1KAC;
    type (:-) a_a1KBy a_a1KBz =
        Apply (Apply TFHelper_1627807434Sym0 a_a1KBy) a_a1KBz;
    type Negate a_a1KBO = Apply Negate_1627807449Sym0 a_a1KBO;
}
data (:+$) (l_a1KAN :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:+$$) (l_a1KAL :: a1627807374) (l_a1KAK :: TyFun a1627807374 a1627807374)
type (:+$$$) (t_a1KAI :: a1627807374) (t_a1KAJ :: a1627807374) = (:+) t_a1KAI t_a1KAJ
data (:-$) (l_a1KAW :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:-$$) (l_a1KAU :: a1627807374) (l_a1KAT :: TyFun a1627807374 a1627807374)
type (:-$$$) (t_a1KAR :: a1627807374) (t_a1KAS :: a1627807374) = (:-) t_a1KAR t_a1KAS
data (:*$) (l_a1KB5 :: TyFun a1627807374 (TyFun a1627807374 a1627807374 -> Type))
data (:*$$) (l_a1KB3 :: a1627807374) (l_a1KB2 :: TyFun a1627807374 a1627807374)
type (:*$$$) (t_a1KB0 :: a1627807374) (t_a1KB1 :: a1627807374) = (:*) t_a1KB0 t_a1KB1
data NegateSym0 (l_a1KB9 :: TyFun a1627807374 a1627807374)
type NegateSym1 (t_a1KB8 :: a1627807374) = Negate t_a1KB8
data AbsSym0 (l_a1KBd :: TyFun a1627807374 a1627807374)
type AbsSym1 (t_a1KBc :: a1627807374) = Abs t_a1KBc
data SignumSym0 (l_a1KBh :: TyFun a1627807374 a1627807374)
type SignumSym1 (t_a1KBg :: a1627807374) = Signum t_a1KBg
data FromIntegerSym0 (l_a1KBl :: TyFun Nat a1627807374)
type FromIntegerSym1 (t_a1KBk :: Nat) = FromInteger t_a1KBk
data SubtractSym0 (l_a1Lcd :: TyFun a1627809665 (TyFun a1627809665 a1627809665 -> Type))
data SubtractSym1 (l_a1Lcb :: a1627809665) (l_a1Lca :: TyFun a1627809665 a1627809665)
type SubtractSym2 (t_a1Lc8 :: a1627809665) (t_a1Lc9 :: a1627809665) = Subtract t_a1Lc8 t_a1Lc9


-- | 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>https://github.com/goldfirere/singletons/blob/master/README.md</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 PEq a 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

-- | 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 a_a1jVW => POrd (a_a1jVW :: Type) where {
    type family Compare (arg_a1kho :: a_a1jVW) (arg_a1khp :: a_a1jVW) :: Ordering;
    type family (:<) (arg_a1khx :: a_a1jVW) (arg_a1khy :: a_a1jVW) :: Bool;
    type family (:<=) (arg_a1khG :: a_a1jVW) (arg_a1khH :: a_a1jVW) :: Bool;
    type family (:>) (arg_a1khP :: a_a1jVW) (arg_a1khQ :: a_a1jVW) :: Bool;
    type family (:>=) (arg_a1khY :: a_a1jVW) (arg_a1khZ :: a_a1jVW) :: Bool;
    type family Max (arg_a1ki7 :: a_a1jVW) (arg_a1ki8 :: a_a1jVW) :: a_a1jVW;
    type family Min (arg_a1kig :: a_a1jVW) (arg_a1kih :: a_a1jVW) :: a_a1jVW;
    type Compare a_a1kiW a_a1kiX =
        Apply (Apply Compare_1627706336Sym0 a_a1kiW) a_a1kiX;
    type (:<) a_a1kjt a_a1kju =
        Apply (Apply TFHelper_1627706369Sym0 a_a1kjt) a_a1kju;
    type (:<=) a_a1kk0 a_a1kk1 =
        Apply (Apply TFHelper_1627706402Sym0 a_a1kk0) a_a1kk1;
    type (:>) a_a1kkx a_a1kky =
        Apply (Apply TFHelper_1627706435Sym0 a_a1kkx) a_a1kky;
    type (:>=) a_a1kl4 a_a1kl5 =
        Apply (Apply TFHelper_1627706468Sym0 a_a1kl4) a_a1kl5;
    type Max a_a1klB a_a1klC =
        Apply (Apply Max_1627706501Sym0 a_a1klB) a_a1klC;
    type Min a_a1km8 a_a1km9 =
        Apply (Apply Min_1627706534Sym0 a_a1km8) a_a1km9;
}
class SEq a_a1jVW => SOrd a_a1jVW
sCompare :: forall (t_a1kmp :: a_a1jVW) (t_a1kmq :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmp -> Sing t_a1kmq -> Sing (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering)
(%:<) :: forall (t_a1kmr :: a_a1jVW) (t_a1kms :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmr -> Sing t_a1kms -> Sing (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool)
(%:<=) :: forall (t_a1kmt :: a_a1jVW) (t_a1kmu :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmt -> Sing t_a1kmu -> Sing (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool)
(%:>) :: forall (t_a1kmv :: a_a1jVW) (t_a1kmw :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmv -> Sing t_a1kmw -> Sing (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool)
(%:>=) :: forall (t_a1kmx :: a_a1jVW) (t_a1kmy :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmx -> Sing t_a1kmy -> Sing (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool)
sMax :: forall (t_a1kmz :: a_a1jVW) (t_a1kmA :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmz -> Sing t_a1kmA -> Sing (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW)
sMin :: forall (t_a1kmB :: a_a1jVW) (t_a1kmC :: a_a1jVW). SOrd a_a1jVW => Sing t_a1kmB -> Sing t_a1kmC -> Sing (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW)
sCompare :: forall (t_a1kmp :: a_a1jVW) (t_a1kmq :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering) ~ Apply (Apply Compare_1627706336Sym0 t_a1kmp) t_a1kmq) => Sing t_a1kmp -> Sing t_a1kmq -> Sing (Apply (Apply CompareSym0 t_a1kmp) t_a1kmq :: Ordering)
(%:<) :: forall (t_a1kmr :: a_a1jVW) (t_a1kms :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool) ~ Apply (Apply TFHelper_1627706369Sym0 t_a1kmr) t_a1kms) => Sing t_a1kmr -> Sing t_a1kms -> Sing (Apply (Apply (:<$) t_a1kmr) t_a1kms :: Bool)
(%:<=) :: forall (t_a1kmt :: a_a1jVW) (t_a1kmu :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool) ~ Apply (Apply TFHelper_1627706402Sym0 t_a1kmt) t_a1kmu) => Sing t_a1kmt -> Sing t_a1kmu -> Sing (Apply (Apply (:<=$) t_a1kmt) t_a1kmu :: Bool)
(%:>) :: forall (t_a1kmv :: a_a1jVW) (t_a1kmw :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool) ~ Apply (Apply TFHelper_1627706435Sym0 t_a1kmv) t_a1kmw) => Sing t_a1kmv -> Sing t_a1kmw -> Sing (Apply (Apply (:>$) t_a1kmv) t_a1kmw :: Bool)
(%:>=) :: forall (t_a1kmx :: a_a1jVW) (t_a1kmy :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool) ~ Apply (Apply TFHelper_1627706468Sym0 t_a1kmx) t_a1kmy) => Sing t_a1kmx -> Sing t_a1kmy -> Sing (Apply (Apply (:>=$) t_a1kmx) t_a1kmy :: Bool)
sMax :: forall (t_a1kmz :: a_a1jVW) (t_a1kmA :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW) ~ Apply (Apply Max_1627706501Sym0 t_a1kmz) t_a1kmA) => Sing t_a1kmz -> Sing t_a1kmA -> Sing (Apply (Apply MaxSym0 t_a1kmz) t_a1kmA :: a_a1jVW)
sMin :: forall (t_a1kmB :: a_a1jVW) (t_a1kmC :: a_a1jVW). (SOrd a_a1jVW, (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW) ~ Apply (Apply Min_1627706534Sym0 t_a1kmB) t_a1kmC) => Sing t_a1kmB -> Sing t_a1kmC -> Sing (Apply (Apply MinSym0 t_a1kmB) t_a1kmC :: a_a1jVW)
sThenCmp :: forall (t_a1m63 :: Ordering) (t_a1m64 :: Ordering). Sing t_a1m63 -> Sing t_a1m64 -> Sing (Apply (Apply ThenCmpSym0 t_a1m63) t_a1m64 :: Ordering)
sFoldl :: forall (t_a10ZT :: TyFun b_a10YV (TyFun a_a10YU b_a10YV -> Type) -> Type) (t_a10ZU :: b_a10YV) (t_a10ZV :: [a_a10YU]). Sing t_a10ZT -> Sing t_a10ZU -> Sing t_a10ZV -> Sing (Apply (Apply (Apply FoldlSym0 t_a10ZT) t_a10ZU) t_a10ZV :: b_a10YV)

-- | The type constructor <a>Any</a> is type to which you can unsafely
--   coerce any lifted type, and back. More concretely, for a lifted type
--   <tt>t</tt> and value <tt>x :: t</tt>, -- <tt>unsafeCoerce
--   (unsafeCoerce x :: Any) :: t</tt> is equivalent to <tt>x</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

-- | 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_a1IEA :: TyFun k01627798799 k1627798801)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data CompareSym0 (l_a1khv :: TyFun a1627704908 (TyFun a1627704908 Ordering -> Type))
data ThenCmpSym0 (l_a1m5S :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> 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 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_11, b_12) -> Type)
type STuple3 = (Sing :: (a_11, b_12, c_13) -> Type)
type STuple4 = (Sing :: (a_11, b_12, c_13, d_14) -> Type)
type STuple5 = (Sing :: (a_11, b_12, c_13, d_14, e_15) -> Type)
type STuple6 = (Sing :: (a_11, b_12, c_13, d_14, e_15, f_16) -> Type)
type STuple7 = (Sing :: (a_11, b_12, c_13, d_14, e_15, f_16, g_17) -> Type)
sFst :: forall (t_a1NR3 :: (a_a1NPT, b_a1NPU)). Sing t_a1NR3 -> Sing (Apply FstSym0 t_a1NR3 :: a_a1NPT)
sSnd :: forall (t_a1NR2 :: (a_a1NPR, b_a1NPS)). Sing t_a1NR2 -> Sing (Apply SndSym0 t_a1NR2 :: b_a1NPS)
sCurry :: forall (t_a1NQZ :: TyFun (a_a1NPO, b_a1NPP) c_a1NPQ -> Type) (t_a1NR0 :: a_a1NPO) (t_a1NR1 :: b_a1NPP). Sing t_a1NQZ -> Sing t_a1NR0 -> Sing t_a1NR1 -> Sing (Apply (Apply (Apply CurrySym0 t_a1NQZ) t_a1NR0) t_a1NR1 :: c_a1NPQ)
sUncurry :: forall (t_a1NR4 :: TyFun a_a1NPL (TyFun b_a1NPM c_a1NPN -> Type) -> Type) (t_a1NR5 :: (a_a1NPL, b_a1NPM)). Sing t_a1NR4 -> Sing t_a1NR5 -> Sing (Apply (Apply UncurrySym0 t_a1NR4) t_a1NR5 :: c_a1NPN)
sSwap :: forall (t_a1NQY :: (a_a1NPJ, b_a1NPK)). Sing t_a1NQY -> Sing (Apply SwapSym0 t_a1NQY :: (b_a1NPK, a_a1NPJ))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data FstSym0 (l_a1NQG :: TyFun (a1627819853, b1627819854) a1627819853)
type FstSym1 (t_a1NQF :: (a1627819853, b1627819854)) = Fst t_a1NQF
data SndSym0 (l_a1NQy :: TyFun (a1627819851, b1627819852) b1627819852)
type SndSym1 (t_a1NQx :: (a1627819851, b1627819852)) = Snd t_a1NQx
data CurrySym0 (l_a1NQp :: TyFun (TyFun (a1627819848, b1627819849) c1627819850 -> Type) (TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type) -> Type))
data CurrySym1 (l_a1NQn :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQm :: TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type))
data CurrySym2 (l_a1NQj :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQk :: a1627819848) (l_a1NQi :: TyFun b1627819849 c1627819850)
type CurrySym3 (t_a1NQf :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (t_a1NQg :: a1627819848) (t_a1NQh :: b1627819849) = Curry t_a1NQf t_a1NQg t_a1NQh
data UncurrySym0 (l_a1NQS :: TyFun (TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (TyFun (a1627819845, b1627819846) c1627819847 -> Type))
data UncurrySym1 (l_a1NQQ :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (l_a1NQP :: TyFun (a1627819845, b1627819846) c1627819847)
type UncurrySym2 (t_a1NQN :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (t_a1NQO :: (a1627819845, b1627819846)) = Uncurry t_a1NQN t_a1NQO
data SwapSym0 (l_a1NQa :: TyFun (a1627819843, b1627819844) (b1627819844, a1627819843))
type SwapSym1 (t_a1NQ9 :: (a1627819843, b1627819844)) = Swap t_a1NQ9
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.UncurrySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.UncurrySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.FstSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.SndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.CurrySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Tuple.SwapSym0


-- | 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_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data FstSym0 (l_a1NQG :: TyFun (a1627819853, b1627819854) a1627819853)
type FstSym1 (t_a1NQF :: (a1627819853, b1627819854)) = Fst t_a1NQF
data SndSym0 (l_a1NQy :: TyFun (a1627819851, b1627819852) b1627819852)
type SndSym1 (t_a1NQx :: (a1627819851, b1627819852)) = Snd t_a1NQx
data CurrySym0 (l_a1NQp :: TyFun (TyFun (a1627819848, b1627819849) c1627819850 -> Type) (TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type) -> Type))
data CurrySym1 (l_a1NQn :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQm :: TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type))
data CurrySym2 (l_a1NQj :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQk :: a1627819848) (l_a1NQi :: TyFun b1627819849 c1627819850)
type CurrySym3 (t_a1NQf :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (t_a1NQg :: a1627819848) (t_a1NQh :: b1627819849) = Curry t_a1NQf t_a1NQg t_a1NQh
data UncurrySym0 (l_a1NQS :: TyFun (TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (TyFun (a1627819845, b1627819846) c1627819847 -> Type))
data UncurrySym1 (l_a1NQQ :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (l_a1NQP :: TyFun (a1627819845, b1627819846) c1627819847)
type UncurrySym2 (t_a1NQN :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (t_a1NQO :: (a1627819845, b1627819846)) = Uncurry t_a1NQN t_a1NQO
data SwapSym0 (l_a1NQa :: TyFun (a1627819843, b1627819844) (b1627819844, a1627819843))
type SwapSym1 (t_a1NQ9 :: (a1627819843, b1627819844)) = Swap t_a1NQ9


-- | 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_11 -> Type)
maybe_ :: b_a1OSZ -> (a_a1OT0 -> b_a1OSZ) -> Maybe a_a1OT0 -> b_a1OSZ
sMaybe_ :: forall (t_a1OTt :: b_a1OSZ) (t_a1OTu :: TyFun a_a1OT0 b_a1OSZ -> Type) (t_a1OTv :: Maybe a_a1OT0). Sing t_a1OTt -> Sing t_a1OTu -> Sing t_a1OTv -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1OTt) t_a1OTu) t_a1OTv :: b_a1OSZ)
sIsJust :: forall (t_a1Pd5 :: Maybe a_a1PaW). Sing t_a1Pd5 -> Sing (Apply IsJustSym0 t_a1Pd5 :: Bool)
sIsNothing :: forall (t_a1Pd4 :: Maybe a_a1PaV). Sing t_a1Pd4 -> Sing (Apply IsNothingSym0 t_a1Pd4 :: Bool)
sFromJust :: forall (t_a1Pd3 :: Maybe a_a1PaU). Sing t_a1Pd3 -> Sing (Apply FromJustSym0 t_a1Pd3 :: a_a1PaU)
sFromMaybe :: forall (t_a1Pd1 :: a_a1PaT) (t_a1Pd2 :: Maybe a_a1PaT). Sing t_a1Pd1 -> Sing t_a1Pd2 -> Sing (Apply (Apply FromMaybeSym0 t_a1Pd1) t_a1Pd2 :: a_a1PaT)
sListToMaybe :: forall (t_a1PcZ :: [a_a1PaR]). Sing t_a1PcZ -> Sing (Apply ListToMaybeSym0 t_a1PcZ :: Maybe a_a1PaR)
sMaybeToList :: forall (t_a1Pd0 :: Maybe a_a1PaS). Sing t_a1Pd0 -> Sing (Apply MaybeToListSym0 t_a1Pd0 :: [a_a1PaS])
sCatMaybes :: forall (t_a1PcY :: [Maybe a_a1PaQ]). Sing t_a1PcY -> Sing (Apply CatMaybesSym0 t_a1PcY :: [a_a1PaQ])
sMapMaybe :: forall (t_a1PcW :: TyFun a_a1PaO (Maybe b_a1PaP) -> Type) (t_a1PcX :: [a_a1PaO]). Sing t_a1PcW -> Sing t_a1PcX -> Sing (Apply (Apply MapMaybeSym0 t_a1PcW) t_a1PcX :: [b_a1PaP])
type NothingSym0 = Nothing
data JustSym0 (l_aXZf :: TyFun a822083585 (Maybe a822083585))
type JustSym1 (t_aXZe :: a822083585) = Just t_aXZe
data Maybe_Sym0 (l_a1OTf :: TyFun b1627823889 (TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type) -> Type))
data Maybe_Sym1 (l_a1OTd :: b1627823889) (l_a1OTc :: TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type))
data Maybe_Sym2 (l_a1OT9 :: b1627823889) (l_a1OTa :: TyFun a1627823890 b1627823889 -> Type) (l_a1OT8 :: TyFun (Maybe a1627823890) b1627823889)
type Maybe_Sym3 (t_a1OT5 :: b1627823889) (t_a1OT6 :: TyFun a1627823890 b1627823889 -> Type) (t_a1OT7 :: Maybe a1627823890) = Maybe_ t_a1OT5 t_a1OT6 t_a1OT7
data IsJustSym0 (l_a1PcQ :: TyFun (Maybe a1627825002) Bool)
type IsJustSym1 (t_a1PcP :: Maybe a1627825002) = IsJust t_a1PcP
data IsNothingSym0 (l_a1PcJ :: TyFun (Maybe a1627825001) Bool)
type IsNothingSym1 (t_a1PcI :: Maybe a1627825001) = IsNothing t_a1PcI
data FromJustSym0 (l_a1PcE :: TyFun (Maybe a1627825000) a1627825000)
type FromJustSym1 (t_a1PcD :: Maybe a1627825000) = FromJust t_a1PcD
data FromMaybeSym0 (l_a1Pct :: TyFun a1627824999 (TyFun (Maybe a1627824999) a1627824999 -> Type))
data FromMaybeSym1 (l_a1Pcr :: a1627824999) (l_a1Pcq :: TyFun (Maybe a1627824999) a1627824999)
type FromMaybeSym2 (t_a1Pco :: a1627824999) (t_a1Pcp :: Maybe a1627824999) = FromMaybe t_a1Pco t_a1Pcp
data ListToMaybeSym0 (l_a1Pcc :: TyFun [a1627824997] (Maybe a1627824997))
type ListToMaybeSym1 (t_a1Pcb :: [a1627824997]) = ListToMaybe t_a1Pcb
data MaybeToListSym0 (l_a1Pck :: TyFun (Maybe a1627824998) [a1627824998])
type MaybeToListSym1 (t_a1Pcj :: Maybe a1627824998) = MaybeToList t_a1Pcj
data CatMaybesSym0 (l_a1Pc5 :: TyFun [Maybe a1627824996] [a1627824996])
type CatMaybesSym1 (t_a1Pc4 :: [Maybe a1627824996]) = CatMaybes t_a1Pc4
data MapMaybeSym0 (l_a1Pbq :: TyFun (TyFun a1627824994 (Maybe b1627824995) -> Type) (TyFun [a1627824994] [b1627824995] -> Type))
data MapMaybeSym1 (l_a1Pbo :: TyFun a1627824994 (Maybe b1627824995) -> Type) (l_a1Pbn :: TyFun [a1627824994] [b1627824995])
type MapMaybeSym2 (t_a1Pbl :: TyFun a1627824994 (Maybe b1627824995) -> Type) (t_a1Pbm :: [a1627824994]) = MapMaybe t_a1Pbl t_a1Pbm
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.IsJustSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.IsNothingSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromJustSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromMaybeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.FromMaybeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.MaybeToListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.ListToMaybeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.CatMaybesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let1627825042RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let1627825042RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let1627825042RsSym2
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.Let1627825055Scrutinee_1627825025Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let1627825055Scrutinee_1627825025Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let1627825055Scrutinee_1627825025Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Maybe_Sym2


-- | 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_ :: b_a1OSZ -> (a_a1OT0 -> b_a1OSZ) -> Maybe a_a1OT0 -> b_a1OSZ
type NothingSym0 = Nothing
data JustSym0 (l_aXZf :: TyFun a822083585 (Maybe a822083585))
type JustSym1 (t_aXZe :: a822083585) = Just t_aXZe
data Maybe_Sym0 (l_a1OTf :: TyFun b1627823889 (TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type) -> Type))
data Maybe_Sym1 (l_a1OTd :: b1627823889) (l_a1OTc :: TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type))
data Maybe_Sym2 (l_a1OT9 :: b1627823889) (l_a1OTa :: TyFun a1627823890 b1627823889 -> Type) (l_a1OT8 :: TyFun (Maybe a1627823890) b1627823889)
type Maybe_Sym3 (t_a1OT5 :: b1627823889) (t_a1OT6 :: TyFun a1627823890 b1627823889 -> Type) (t_a1OT7 :: Maybe a1627823890) = Maybe_ t_a1OT5 t_a1OT6 t_a1OT7
data IsJustSym0 (l_a1PcQ :: TyFun (Maybe a1627825002) Bool)
type IsJustSym1 (t_a1PcP :: Maybe a1627825002) = IsJust t_a1PcP
data IsNothingSym0 (l_a1PcJ :: TyFun (Maybe a1627825001) Bool)
type IsNothingSym1 (t_a1PcI :: Maybe a1627825001) = IsNothing t_a1PcI
data FromJustSym0 (l_a1PcE :: TyFun (Maybe a1627825000) a1627825000)
type FromJustSym1 (t_a1PcD :: Maybe a1627825000) = FromJust t_a1PcD
data FromMaybeSym0 (l_a1Pct :: TyFun a1627824999 (TyFun (Maybe a1627824999) a1627824999 -> Type))
data FromMaybeSym1 (l_a1Pcr :: a1627824999) (l_a1Pcq :: TyFun (Maybe a1627824999) a1627824999)
type FromMaybeSym2 (t_a1Pco :: a1627824999) (t_a1Pcp :: Maybe a1627824999) = FromMaybe t_a1Pco t_a1Pcp
data MaybeToListSym0 (l_a1Pck :: TyFun (Maybe a1627824998) [a1627824998])
type MaybeToListSym1 (t_a1Pcj :: Maybe a1627824998) = MaybeToList t_a1Pcj
data ListToMaybeSym0 (l_a1Pcc :: TyFun [a1627824997] (Maybe a1627824997))
type ListToMaybeSym1 (t_a1Pcb :: [a1627824997]) = ListToMaybe t_a1Pcb
data CatMaybesSym0 (l_a1Pc5 :: TyFun [Maybe a1627824996] [a1627824996])
type CatMaybesSym1 (t_a1Pc4 :: [Maybe a1627824996]) = CatMaybes t_a1Pc4
data MapMaybeSym0 (l_a1Pbq :: TyFun (TyFun a1627824994 (Maybe b1627824995) -> Type) (TyFun [a1627824994] [b1627824995] -> Type))
data MapMaybeSym1 (l_a1Pbo :: TyFun a1627824994 (Maybe b1627824995) -> Type) (l_a1Pbn :: TyFun [a1627824994] [b1627824995])
type MapMaybeSym2 (t_a1Pbl :: TyFun a1627824994 (Maybe b1627824995) -> Type) (t_a1Pbm :: [a1627824994]) = MapMaybe t_a1Pbl t_a1Pbm


-- | 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_ah9H b_ah9I -> Type)
either_ :: (a_a1RvN -> c_a1RvO) -> (b_a1RvP -> c_a1RvO) -> Either a_a1RvN b_a1RvP -> c_a1RvO
sEither_ :: forall (t_a1Rwk :: TyFun a_a1RvN c_a1RvO -> Type) (t_a1Rwl :: TyFun b_a1RvP c_a1RvO -> Type) (t_a1Rwm :: Either a_a1RvN b_a1RvP). Sing t_a1Rwk -> Sing t_a1Rwl -> Sing t_a1Rwm -> Sing (Apply (Apply (Apply Either_Sym0 t_a1Rwk) t_a1Rwl) t_a1Rwm :: c_a1RvO)
sLefts :: forall (t_a1RPs :: [Either a_a1RNJ b_a1RNK]). Sing t_a1RPs -> Sing (Apply LeftsSym0 t_a1RPs :: [a_a1RNJ])
sRights :: forall (t_a1RPr :: [Either a_a1RNH b_a1RNI]). Sing t_a1RPr -> Sing (Apply RightsSym0 t_a1RPr :: [b_a1RNI])
sPartitionEithers :: forall (t_a1RPq :: [Either a_a1RNF b_a1RNG]). Sing t_a1RPq -> Sing (Apply PartitionEithersSym0 t_a1RPq :: ([a_a1RNF], [b_a1RNG]))
sIsLeft :: forall (t_a1RPp :: Either a_a1RND b_a1RNE). Sing t_a1RPp -> Sing (Apply IsLeftSym0 t_a1RPp :: Bool)
sIsRight :: forall (t_a1RPo :: Either a_a1RNB b_a1RNC). Sing t_a1RPo -> Sing (Apply IsRightSym0 t_a1RPo :: Bool)
data LeftSym0 (l_aXZG :: TyFun a1627455901 (Either a1627455901 b1627455902))
type LeftSym1 (t_aXZF :: a1627455901) = Left t_aXZF
data RightSym0 (l_aXZJ :: TyFun b1627455902 (Either a1627455901 b1627455902))
type RightSym1 (t_aXZI :: b1627455902) = Right t_aXZI
data Either_Sym0 (l_a1Rw5 :: TyFun (TyFun a1627833983 c1627833984 -> Type) (TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type) -> Type))
data Either_Sym1 (l_a1Rw3 :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw2 :: TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type))
data Either_Sym2 (l_a1RvZ :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw0 :: TyFun b1627833985 c1627833984 -> Type) (l_a1RvY :: TyFun (Either a1627833983 b1627833985) c1627833984)
type Either_Sym3 (t_a1RvV :: TyFun a1627833983 c1627833984 -> Type) (t_a1RvW :: TyFun b1627833985 c1627833984 -> Type) (t_a1RvX :: Either a1627833983 b1627833985) = Either_ t_a1RvV t_a1RvW t_a1RvX
data LeftsSym0 (l_a1RPf :: TyFun [Either a1627835095 b1627835096] [a1627835095])
type LeftsSym1 (t_a1RPe :: [Either a1627835095 b1627835096]) = Lefts t_a1RPe
data RightsSym0 (l_a1RP5 :: TyFun [Either a1627835093 b1627835094] [b1627835094])
type RightsSym1 (t_a1RP4 :: [Either a1627835093 b1627835094]) = Rights t_a1RP4
data IsLeftSym0 (l_a1ROf :: TyFun (Either a1627835089 b1627835090) Bool)
type IsLeftSym1 (t_a1ROe :: Either a1627835089 b1627835090) = IsLeft t_a1ROe
data IsRightSym0 (l_a1RO5 :: TyFun (Either a1627835087 b1627835088) Bool)
type IsRightSym1 (t_a1RO4 :: Either a1627835087 b1627835088) = IsRight t_a1RO4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.LeftsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.RightsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.PartitionEithersSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.IsLeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.IsRightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143LeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let1627835143RightSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Either_Sym2


-- | 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_ :: (a_a1RvN -> c_a1RvO) -> (b_a1RvP -> c_a1RvO) -> Either a_a1RvN b_a1RvP -> c_a1RvO
data LeftSym0 (l_aXZG :: TyFun a1627455901 (Either a1627455901 b1627455902))
type LeftSym1 (t_aXZF :: a1627455901) = Left t_aXZF
data RightSym0 (l_aXZJ :: TyFun b1627455902 (Either a1627455901 b1627455902))
type RightSym1 (t_aXZI :: b1627455902) = Right t_aXZI
data Either_Sym0 (l_a1Rw5 :: TyFun (TyFun a1627833983 c1627833984 -> Type) (TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type) -> Type))
data Either_Sym1 (l_a1Rw3 :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw2 :: TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type))
data Either_Sym2 (l_a1RvZ :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw0 :: TyFun b1627833985 c1627833984 -> Type) (l_a1RvY :: TyFun (Either a1627833983 b1627833985) c1627833984)
type Either_Sym3 (t_a1RvV :: TyFun a1627833983 c1627833984 -> Type) (t_a1RvW :: TyFun b1627833985 c1627833984 -> Type) (t_a1RvX :: Either a1627833983 b1627833985) = Either_ t_a1RvV t_a1RvW t_a1RvX
data LeftsSym0 (l_a1RPf :: TyFun [Either a1627835095 b1627835096] [a1627835095])
type LeftsSym1 (t_a1RPe :: [Either a1627835095 b1627835096]) = Lefts t_a1RPe
data RightsSym0 (l_a1RP5 :: TyFun [Either a1627835093 b1627835094] [b1627835094])
type RightsSym1 (t_a1RP4 :: [Either a1627835093 b1627835094]) = Rights t_a1RP4
data IsLeftSym0 (l_a1ROf :: TyFun (Either a1627835089 b1627835090) Bool)
type IsLeftSym1 (t_a1ROe :: Either a1627835089 b1627835090) = IsLeft t_a1ROe
data IsRightSym0 (l_a1RO5 :: TyFun (Either a1627835087 b1627835088) Bool)
type IsRightSym1 (t_a1RO4 :: Either a1627835087 b1627835088) = IsRight t_a1RO4


-- | 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_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
type (:++$$$) (t_a1bx8 :: [a1627672477]) (t_a1bx9 :: [a1627672477]) = (:++) t_a1bx8 t_a1bx9
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
type (:.$$$$) (t_a1bvV :: TyFun b1627672471 c1627672472 -> Type) (t_a1bvW :: TyFun a1627672473 b1627672471 -> Type) (t_a1bvX :: a1627672473) = (:.) t_a1bvV t_a1bvW t_a1bvX
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_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
type FlipSym3 (t_a1bvD :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (t_a1bvE :: b1627672469) (t_a1bvF :: a1627672468) = Flip t_a1bvD t_a1bvE t_a1bvF
data UntilSym0 (l_a1U1P :: TyFun (TyFun a1627843639 Bool -> Type) (TyFun (TyFun a1627843639 a1627843639 -> Type) (TyFun a1627843639 a1627843639 -> Type) -> Type))
data UntilSym1 (l_a1U1N :: TyFun a1627843639 Bool -> Type) (l_a1U1M :: TyFun (TyFun a1627843639 a1627843639 -> Type) (TyFun a1627843639 a1627843639 -> Type))
data UntilSym2 (l_a1U1J :: TyFun a1627843639 Bool -> Type) (l_a1U1K :: TyFun a1627843639 a1627843639 -> Type) (l_a1U1I :: TyFun a1627843639 a1627843639)
type UntilSym3 (t_a1U1F :: TyFun a1627843639 Bool -> Type) (t_a1U1G :: TyFun a1627843639 a1627843639 -> Type) (t_a1U1H :: a1627843639) = Until t_a1U1F t_a1U1G t_a1U1H
data AsTypeOfSym0 (l_a1bwX :: TyFun a1627672467 (TyFun a1627672467 a1627672467 -> Type))
data AsTypeOfSym1 (l_a1bwV :: a1627672467) (l_a1bwU :: TyFun a1627672467 a1627672467)
type AsTypeOfSym2 (t_a1bwS :: a1627672467) (t_a1bwT :: a1627672467) = AsTypeOf t_a1bwS t_a1bwT
data SeqSym0 (l_a1bvv :: TyFun a1627672465 (TyFun b1627672466 b1627672466 -> Type))
data SeqSym1 (l_a1bvt :: a1627672465) (l_a1bvs :: TyFun b1627672466 b1627672466)
type SeqSym2 (t_a1bvq :: a1627672465) (t_a1bvr :: b1627672466) = Seq t_a1bvq t_a1bvr
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.UntilSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let1627843667GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let1627843667GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let1627843667GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let1627843667GoSym3


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class PEq a_a1jVW => POrd (a_a1jVW :: Type) where {
    type family Compare (arg_a1kho :: a_a1jVW) (arg_a1khp :: a_a1jVW) :: Ordering;
    type family (:<) (arg_a1khx :: a_a1jVW) (arg_a1khy :: a_a1jVW) :: Bool;
    type family (:<=) (arg_a1khG :: a_a1jVW) (arg_a1khH :: a_a1jVW) :: Bool;
    type family (:>) (arg_a1khP :: a_a1jVW) (arg_a1khQ :: a_a1jVW) :: Bool;
    type family (:>=) (arg_a1khY :: a_a1jVW) (arg_a1khZ :: a_a1jVW) :: Bool;
    type family Max (arg_a1ki7 :: a_a1jVW) (arg_a1ki8 :: a_a1jVW) :: a_a1jVW;
    type family Min (arg_a1kig :: a_a1jVW) (arg_a1kih :: a_a1jVW) :: a_a1jVW;
    type Compare a_a1kiW a_a1kiX =
        Apply (Apply Compare_1627706336Sym0 a_a1kiW) a_a1kiX;
    type (:<) a_a1kjt a_a1kju =
        Apply (Apply TFHelper_1627706369Sym0 a_a1kjt) a_a1kju;
    type (:<=) a_a1kk0 a_a1kk1 =
        Apply (Apply TFHelper_1627706402Sym0 a_a1kk0) a_a1kk1;
    type (:>) a_a1kkx a_a1kky =
        Apply (Apply TFHelper_1627706435Sym0 a_a1kkx) a_a1kky;
    type (:>=) a_a1kl4 a_a1kl5 =
        Apply (Apply TFHelper_1627706468Sym0 a_a1kl4) a_a1kl5;
    type Max a_a1klB a_a1klC =
        Apply (Apply Max_1627706501Sym0 a_a1klB) a_a1klC;
    type Min a_a1km8 a_a1km9 =
        Apply (Apply Min_1627706534Sym0 a_a1km8) a_a1km9;
}
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1khv :: TyFun a1627704908 (TyFun a1627704908 Ordering -> Type))
data CompareSym1 (l_a1kht :: a1627704908) (l_a1khs :: TyFun a1627704908 Ordering)
type CompareSym2 (t_a1khq :: a1627704908) (t_a1khr :: a1627704908) = Compare t_a1khq t_a1khr
data (:<$) (l_a1khE :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:<$$) (l_a1khC :: a1627704908) (l_a1khB :: TyFun a1627704908 Bool)
type (:<$$$) (t_a1khz :: a1627704908) (t_a1khA :: a1627704908) = (:<) t_a1khz t_a1khA
data (:<=$) (l_a1khN :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:<=$$) (l_a1khL :: a1627704908) (l_a1khK :: TyFun a1627704908 Bool)
type (:<=$$$) (t_a1khI :: a1627704908) (t_a1khJ :: a1627704908) = (:<=) t_a1khI t_a1khJ
data (:>$) (l_a1khW :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:>$$) (l_a1khU :: a1627704908) (l_a1khT :: TyFun a1627704908 Bool)
type (:>$$$) (t_a1khR :: a1627704908) (t_a1khS :: a1627704908) = (:>) t_a1khR t_a1khS
data (:>=$) (l_a1ki5 :: TyFun a1627704908 (TyFun a1627704908 Bool -> Type))
data (:>=$$) (l_a1ki3 :: a1627704908) (l_a1ki2 :: TyFun a1627704908 Bool)
type (:>=$$$) (t_a1ki0 :: a1627704908) (t_a1ki1 :: a1627704908) = (:>=) t_a1ki0 t_a1ki1
data MaxSym0 (l_a1kie :: TyFun a1627704908 (TyFun a1627704908 a1627704908 -> Type))
data MaxSym1 (l_a1kic :: a1627704908) (l_a1kib :: TyFun a1627704908 a1627704908)
type MaxSym2 (t_a1ki9 :: a1627704908) (t_a1kia :: a1627704908) = Max t_a1ki9 t_a1kia
data MinSym0 (l_a1kin :: TyFun a1627704908 (TyFun a1627704908 a1627704908 -> Type))
data MinSym1 (l_a1kil :: a1627704908) (l_a1kik :: TyFun a1627704908 a1627704908)
type MinSym2 (t_a1kii :: a1627704908) (t_a1kij :: a1627704908) = Min t_a1kii t_a1kij


-- | 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_11] -> Type)
(%:++) :: forall (t_a1byt :: [a_a1buR]) (t_a1byu :: [a_a1buR]). Sing t_a1byt -> Sing t_a1byu -> Sing (Apply (Apply (:++$) t_a1byt) t_a1byu :: [a_a1buR])
infixr 5 %:++
sHead :: forall (t_a1YmC :: [a_a1Xib]). Sing t_a1YmC -> Sing (Apply HeadSym0 t_a1YmC :: a_a1Xib)
sLast :: forall (t_a1YmB :: [a_a1Xia]). Sing t_a1YmB -> Sing (Apply LastSym0 t_a1YmB :: a_a1Xia)
sTail :: forall (t_a1YmA :: [a_a1Xi9]). Sing t_a1YmA -> Sing (Apply TailSym0 t_a1YmA :: [a_a1Xi9])
sInit :: forall (t_a1Ymz :: [a_a1Xi8]). Sing t_a1Ymz -> Sing (Apply InitSym0 t_a1Ymz :: [a_a1Xi8])
sNull :: forall (t_a1Ymw :: [a_a1Xi7]). Sing t_a1Ymw -> Sing (Apply NullSym0 t_a1Ymw :: Bool)
sLength :: forall (t_a1Yk8 :: [a_a1Xgi]). Sing t_a1Yk8 -> Sing (Apply LengthSym0 t_a1Yk8 :: Nat)
sMap :: forall (t_a1byv :: TyFun a_a1buS b_a1buT -> Type) (t_a1byw :: [a_a1buS]). Sing t_a1byv -> Sing t_a1byw -> Sing (Apply (Apply MapSym0 t_a1byv) t_a1byw :: [b_a1buT])
sReverse :: forall (t_a1Ymt :: [a_a1Xi6]). Sing t_a1Ymt -> Sing (Apply ReverseSym0 t_a1Ymt :: [a_a1Xi6])
sIntersperse :: forall (t_a1Ymp :: a_a1Xi5) (t_a1Ymq :: [a_a1Xi5]). Sing t_a1Ymp -> Sing t_a1Ymq -> Sing (Apply (Apply IntersperseSym0 t_a1Ymp) t_a1Ymq :: [a_a1Xi5])
sIntercalate :: forall (t_a1Ymr :: [a_a1Xi4]) (t_a1Yms :: [[a_a1Xi4]]). Sing t_a1Ymr -> Sing t_a1Yms -> Sing (Apply (Apply IntercalateSym0 t_a1Ymr) t_a1Yms :: [a_a1Xi4])
sTranspose :: forall (t_a1YmD :: [[a_a1Xgg]]). Sing t_a1YmD -> Sing (Apply TransposeSym0 t_a1YmD :: [[a_a1Xgg]])
sSubsequences :: forall (t_a1Ymo :: [a_a1Xi3]). Sing t_a1Ymo -> Sing (Apply SubsequencesSym0 t_a1Ymo :: [[a_a1Xi3]])
sPermutations :: forall (t_a1Ymk :: [a_a1Xi0]). Sing t_a1Ymk -> Sing (Apply PermutationsSym0 t_a1Ymk :: [[a_a1Xi0]])
sFoldl :: forall (t_a10ZT :: TyFun b_a10YV (TyFun a_a10YU b_a10YV -> Type) -> Type) (t_a10ZU :: b_a10YV) (t_a10ZV :: [a_a10YU]). Sing t_a10ZT -> Sing t_a10ZU -> Sing t_a10ZV -> Sing (Apply (Apply (Apply FoldlSym0 t_a10ZT) t_a10ZU) t_a10ZV :: b_a10YV)
sFoldl' :: forall (t_a1Ymf :: TyFun b_a1XhZ (TyFun a_a1XhY b_a1XhZ -> Type) -> Type) (t_a1Ymg :: b_a1XhZ) (t_a1Ymh :: [a_a1XhY]). Sing t_a1Ymf -> Sing t_a1Ymg -> Sing t_a1Ymh -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a1Ymf) t_a1Ymg) t_a1Ymh :: b_a1XhZ)
sFoldl1 :: forall (t_a1Ym7 :: TyFun a_a1XhX (TyFun a_a1XhX a_a1XhX -> Type) -> Type) (t_a1Ym8 :: [a_a1XhX]). Sing t_a1Ym7 -> Sing t_a1Ym8 -> Sing (Apply (Apply Foldl1Sym0 t_a1Ym7) t_a1Ym8 :: a_a1XhX)
sFoldl1' :: forall (t_a1Ymi :: TyFun a_a1XhW (TyFun a_a1XhW a_a1XhW -> Type) -> Type) (t_a1Ymj :: [a_a1XhW]). Sing t_a1Ymi -> Sing t_a1Ymj -> Sing (Apply (Apply Foldl1'Sym0 t_a1Ymi) t_a1Ymj :: a_a1XhW)
sFoldr :: forall (t_a1byx :: TyFun a_a1buU (TyFun b_a1buV b_a1buV -> Type) -> Type) (t_a1byy :: b_a1buV) (t_a1byz :: [a_a1buU]). Sing t_a1byx -> Sing t_a1byy -> Sing t_a1byz -> Sing (Apply (Apply (Apply FoldrSym0 t_a1byx) t_a1byy) t_a1byz :: b_a1buV)
sFoldr1 :: forall (t_a1Ym5 :: TyFun a_a1XhV (TyFun a_a1XhV a_a1XhV -> Type) -> Type) (t_a1Ym6 :: [a_a1XhV]). Sing t_a1Ym5 -> Sing t_a1Ym6 -> Sing (Apply (Apply Foldr1Sym0 t_a1Ym5) t_a1Ym6 :: a_a1XhV)
sConcat :: forall (t_a1Ym4 :: [[a_a1XhU]]). Sing t_a1Ym4 -> Sing (Apply ConcatSym0 t_a1Ym4 :: [a_a1XhU])
sConcatMap :: forall (t_a1Ym2 :: TyFun a_a1XhS [b_a1XhT] -> Type) (t_a1Ym3 :: [a_a1XhS]). Sing t_a1Ym2 -> Sing t_a1Ym3 -> Sing (Apply (Apply ConcatMapSym0 t_a1Ym2) t_a1Ym3 :: [b_a1XhT])
sAnd :: forall (t_a1Ym1 :: [Bool]). Sing t_a1Ym1 -> Sing (Apply AndSym0 t_a1Ym1 :: Bool)
sOr :: forall (t_a1Ym0 :: [Bool]). Sing t_a1Ym0 -> Sing (Apply OrSym0 t_a1Ym0 :: Bool)
sAny_ :: forall (t_a1UDp :: TyFun a_a1UD5 Bool -> Type) (t_a1UDq :: [a_a1UD5]). Sing t_a1UDp -> Sing t_a1UDq -> Sing (Apply (Apply Any_Sym0 t_a1UDp) t_a1UDq :: Bool)
sAll :: forall (t_a1YlY :: TyFun a_a1XhR Bool -> Type) (t_a1YlZ :: [a_a1XhR]). Sing t_a1YlY -> Sing t_a1YlZ -> Sing (Apply (Apply AllSym0 t_a1YlY) t_a1YlZ :: Bool)
sSum :: forall (t_a1Yka :: [a_a1Xgk]). SNum a_a1Xgk => Sing t_a1Yka -> Sing (Apply SumSym0 t_a1Yka :: a_a1Xgk)
sProduct :: forall (t_a1Yk9 :: [a_a1Xgj]). SNum a_a1Xgj => Sing t_a1Yk9 -> Sing (Apply ProductSym0 t_a1Yk9 :: a_a1Xgj)
sMaximum :: forall (t_a1Ymd :: [a_a1Xgt]). SOrd a_a1Xgt => Sing t_a1Ymd -> Sing (Apply MaximumSym0 t_a1Ymd :: a_a1Xgt)
sMinimum :: forall (t_a1Yme :: [a_a1Xgs]). SOrd a_a1Xgs => Sing t_a1Yme -> Sing (Apply MinimumSym0 t_a1Yme :: a_a1Xgs)
any_ :: (a_a1UD5 -> Bool) -> [a_a1UD5] -> Bool
sScanl :: forall (t_a1YlT :: TyFun b_a1XhP (TyFun a_a1XhQ b_a1XhP -> Type) -> Type) (t_a1YlU :: b_a1XhP) (t_a1YlV :: [a_a1XhQ]). Sing t_a1YlT -> Sing t_a1YlU -> Sing t_a1YlV -> Sing (Apply (Apply (Apply ScanlSym0 t_a1YlT) t_a1YlU) t_a1YlV :: [b_a1XhP])
sScanl1 :: forall (t_a1YlW :: TyFun a_a1XhO (TyFun a_a1XhO a_a1XhO -> Type) -> Type) (t_a1YlX :: [a_a1XhO]). Sing t_a1YlW -> Sing t_a1YlX -> Sing (Apply (Apply Scanl1Sym0 t_a1YlW) t_a1YlX :: [a_a1XhO])
sScanr :: forall (t_a1YlQ :: TyFun a_a1XhM (TyFun b_a1XhN b_a1XhN -> Type) -> Type) (t_a1YlR :: b_a1XhN) (t_a1YlS :: [a_a1XhM]). Sing t_a1YlQ -> Sing t_a1YlR -> Sing t_a1YlS -> Sing (Apply (Apply (Apply ScanrSym0 t_a1YlQ) t_a1YlR) t_a1YlS :: [b_a1XhN])
sScanr1 :: forall (t_a1YlO :: TyFun a_a1XhL (TyFun a_a1XhL a_a1XhL -> Type) -> Type) (t_a1YlP :: [a_a1XhL]). Sing t_a1YlO -> Sing t_a1YlP -> Sing (Apply (Apply Scanr1Sym0 t_a1YlO) t_a1YlP :: [a_a1XhL])
sMapAccumL :: forall (t_a1YlL :: TyFun acc_a1XhI (TyFun x_a1XhJ (acc_a1XhI, y_a1XhK) -> Type) -> Type) (t_a1YlM :: acc_a1XhI) (t_a1YlN :: [x_a1XhJ]). Sing t_a1YlL -> Sing t_a1YlM -> Sing t_a1YlN -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a1YlL) t_a1YlM) t_a1YlN :: (acc_a1XhI, [y_a1XhK]))
sMapAccumR :: forall (t_a1YlI :: TyFun acc_a1XhF (TyFun x_a1XhG (acc_a1XhF, y_a1XhH) -> Type) -> Type) (t_a1YlJ :: acc_a1XhF) (t_a1YlK :: [x_a1XhG]). Sing t_a1YlI -> Sing t_a1YlJ -> Sing t_a1YlK -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a1YlI) t_a1YlJ) t_a1YlK :: (acc_a1XhF, [y_a1XhH]))
sReplicate :: forall (t_a1Yk6 :: Nat) (t_a1Yk7 :: a_a1Xgh). Sing t_a1Yk6 -> Sing t_a1Yk7 -> Sing (Apply (Apply ReplicateSym0 t_a1Yk6) t_a1Yk7 :: [a_a1Xgh])
sUnfoldr :: forall (t_a1YlG :: TyFun b_a1XhD (Maybe (a_a1XhE, b_a1XhD)) -> Type) (t_a1YlH :: b_a1XhD). Sing t_a1YlG -> Sing t_a1YlH -> Sing (Apply (Apply UnfoldrSym0 t_a1YlG) t_a1YlH :: [a_a1XhE])
sTake :: forall (t_a1Ykk :: Nat) (t_a1Ykl :: [a_a1Xgx]). Sing t_a1Ykk -> Sing t_a1Ykl -> Sing (Apply (Apply TakeSym0 t_a1Ykk) t_a1Ykl :: [a_a1Xgx])
sDrop :: forall (t_a1Yki :: Nat) (t_a1Ykj :: [a_a1Xgw]). Sing t_a1Yki -> Sing t_a1Ykj -> Sing (Apply (Apply DropSym0 t_a1Yki) t_a1Ykj :: [a_a1Xgw])
sSplitAt :: forall (t_a1Ykm :: Nat) (t_a1Ykn :: [a_a1Xgv]). Sing t_a1Ykm -> Sing t_a1Ykn -> Sing (Apply (Apply SplitAtSym0 t_a1Ykm) t_a1Ykn :: ([a_a1Xgv], [a_a1Xgv]))
sTakeWhile :: forall (t_a1Ykx :: TyFun a_a1XgC Bool -> Type) (t_a1Yky :: [a_a1XgC]). Sing t_a1Ykx -> Sing t_a1Yky -> Sing (Apply (Apply TakeWhileSym0 t_a1Ykx) t_a1Yky :: [a_a1XgC])
sDropWhile :: forall (t_a1Ykv :: TyFun a_a1XgB Bool -> Type) (t_a1Ykw :: [a_a1XgB]). Sing t_a1Ykv -> Sing t_a1Ykw -> Sing (Apply (Apply DropWhileSym0 t_a1Ykv) t_a1Ykw :: [a_a1XgB])
sDropWhileEnd :: forall (t_a1Ymx :: TyFun a_a1XgA Bool -> Type) (t_a1Ymy :: [a_a1XgA]). Sing t_a1Ymx -> Sing t_a1Ymy -> Sing (Apply (Apply DropWhileEndSym0 t_a1Ymx) t_a1Ymy :: [a_a1XgA])
sSpan :: forall (t_a1Ykq :: TyFun a_a1Xgz Bool -> Type) (t_a1Ykr :: [a_a1Xgz]). Sing t_a1Ykq -> Sing t_a1Ykr -> Sing (Apply (Apply SpanSym0 t_a1Ykq) t_a1Ykr :: ([a_a1Xgz], [a_a1Xgz]))
sBreak :: forall (t_a1Yko :: TyFun a_a1Xgy Bool -> Type) (t_a1Ykp :: [a_a1Xgy]). Sing t_a1Yko -> Sing t_a1Ykp -> Sing (Apply (Apply BreakSym0 t_a1Yko) t_a1Ykp :: ([a_a1Xgy], [a_a1Xgy]))
sGroup :: forall (t_a1Yku :: [a_a1Xgu]). SEq a_a1Xgu => Sing t_a1Yku -> Sing (Apply GroupSym0 t_a1Yku :: [[a_a1Xgu]])
sInits :: forall (t_a1YlF :: [a_a1XhC]). Sing t_a1YlF -> Sing (Apply InitsSym0 t_a1YlF :: [[a_a1XhC]])
sTails :: forall (t_a1YlC :: [a_a1XhB]). Sing t_a1YlC -> Sing (Apply TailsSym0 t_a1YlC :: [[a_a1XhB]])
sIsPrefixOf :: forall (t_a1YlA :: [a_a1XhA]) (t_a1YlB :: [a_a1XhA]). SEq a_a1XhA => Sing t_a1YlA -> Sing t_a1YlB -> Sing (Apply (Apply IsPrefixOfSym0 t_a1YlA) t_a1YlB :: Bool)
sIsSuffixOf :: forall (t_a1Ymu :: [a_a1Xhz]) (t_a1Ymv :: [a_a1Xhz]). SEq a_a1Xhz => Sing t_a1Ymu -> Sing t_a1Ymv -> Sing (Apply (Apply IsSuffixOfSym0 t_a1Ymu) t_a1Ymv :: Bool)
sIsInfixOf :: forall (t_a1YlD :: [a_a1Xhy]) (t_a1YlE :: [a_a1Xhy]). SEq a_a1Xhy => Sing t_a1YlD -> Sing t_a1YlE -> Sing (Apply (Apply IsInfixOfSym0 t_a1YlD) t_a1YlE :: Bool)
sElem :: forall (t_a1Ylx :: a_a1Xhx) (t_a1Yly :: [a_a1Xhx]). SEq a_a1Xhx => Sing t_a1Ylx -> Sing t_a1Yly -> Sing (Apply (Apply ElemSym0 t_a1Ylx) t_a1Yly :: Bool)
sNotElem :: forall (t_a1Ylv :: a_a1Xhw) (t_a1Ylw :: [a_a1Xhw]). SEq a_a1Xhw => Sing t_a1Ylv -> Sing t_a1Ylw -> Sing (Apply (Apply NotElemSym0 t_a1Ylv) t_a1Ylw :: Bool)
sLookup :: forall (t_a1Ykg :: a_a1Xgn) (t_a1Ykh :: [(a_a1Xgn, b_a1Xgo)]). SEq a_a1Xgn => Sing t_a1Ykg -> Sing t_a1Ykh -> Sing (Apply (Apply LookupSym0 t_a1Ykg) t_a1Ykh :: Maybe b_a1Xgo)
sFind :: forall (t_a1YkB :: TyFun a_a1XgJ Bool -> Type) (t_a1YkC :: [a_a1XgJ]). Sing t_a1YkB -> Sing t_a1YkC -> Sing (Apply (Apply FindSym0 t_a1YkB) t_a1YkC :: Maybe a_a1XgJ)
sFilter :: forall (t_a1Ykz :: TyFun a_a1XgK Bool -> Type) (t_a1YkA :: [a_a1XgK]). Sing t_a1Ykz -> Sing t_a1YkA -> Sing (Apply (Apply FilterSym0 t_a1Ykz) t_a1YkA :: [a_a1XgK])
sPartition :: forall (t_a1Yke :: TyFun a_a1Xgm Bool -> Type) (t_a1Ykf :: [a_a1Xgm]). Sing t_a1Yke -> Sing t_a1Ykf -> Sing (Apply (Apply PartitionSym0 t_a1Yke) t_a1Ykf :: ([a_a1Xgm], [a_a1Xgm]))
(%:!!) :: forall (t_a1Yk4 :: [a_a1Xgf]) (t_a1Yk5 :: Nat). Sing t_a1Yk4 -> Sing t_a1Yk5 -> Sing (Apply (Apply (:!!$) t_a1Yk4) t_a1Yk5 :: a_a1Xgf)
sElemIndex :: forall (t_a1Ylt :: a_a1XgI) (t_a1Ylu :: [a_a1XgI]). SEq a_a1XgI => Sing t_a1Ylt -> Sing t_a1Ylu -> Sing (Apply (Apply ElemIndexSym0 t_a1Ylt) t_a1Ylu :: Maybe Nat)
sElemIndices :: forall (t_a1Ylp :: a_a1XgH) (t_a1Ylq :: [a_a1XgH]). SEq a_a1XgH => Sing t_a1Ylp -> Sing t_a1Ylq -> Sing (Apply (Apply ElemIndicesSym0 t_a1Ylp) t_a1Ylq :: [Nat])
sFindIndex :: forall (t_a1Ylr :: TyFun a_a1XgG Bool -> Type) (t_a1Yls :: [a_a1XgG]). Sing t_a1Ylr -> Sing t_a1Yls -> Sing (Apply (Apply FindIndexSym0 t_a1Ylr) t_a1Yls :: Maybe Nat)
sFindIndices :: forall (t_a1Yln :: TyFun a_a1XgF Bool -> Type) (t_a1Ylo :: [a_a1XgF]). Sing t_a1Yln -> Sing t_a1Ylo -> Sing (Apply (Apply FindIndicesSym0 t_a1Yln) t_a1Ylo :: [Nat])
sZip :: forall (t_a1Yll :: [a_a1Xhu]) (t_a1Ylm :: [b_a1Xhv]). Sing t_a1Yll -> Sing t_a1Ylm -> Sing (Apply (Apply ZipSym0 t_a1Yll) t_a1Ylm :: [(a_a1Xhu, b_a1Xhv)])
sZip3 :: forall (t_a1Yli :: [a_a1Xhr]) (t_a1Ylj :: [b_a1Xhs]) (t_a1Ylk :: [c_a1Xht]). Sing t_a1Yli -> Sing t_a1Ylj -> Sing t_a1Ylk -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1Yli) t_a1Ylj) t_a1Ylk :: [(a_a1Xhr, b_a1Xhs, c_a1Xht)])
sZipWith :: forall (t_a1Ylf :: TyFun a_a1Xho (TyFun b_a1Xhp c_a1Xhq -> Type) -> Type) (t_a1Ylg :: [a_a1Xho]) (t_a1Ylh :: [b_a1Xhp]). Sing t_a1Ylf -> Sing t_a1Ylg -> Sing t_a1Ylh -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1Ylf) t_a1Ylg) t_a1Ylh :: [c_a1Xhq])
sZipWith3 :: forall (t_a1Ylb :: TyFun a_a1Xhk (TyFun b_a1Xhl (TyFun c_a1Xhm d_a1Xhn -> Type) -> Type) -> Type) (t_a1Ylc :: [a_a1Xhk]) (t_a1Yld :: [b_a1Xhl]) (t_a1Yle :: [c_a1Xhm]). Sing t_a1Ylb -> Sing t_a1Ylc -> Sing t_a1Yld -> Sing t_a1Yle -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1Ylb) t_a1Ylc) t_a1Yld) t_a1Yle :: [d_a1Xhn])
sUnzip :: forall (t_a1Yla :: [(a_a1Xhi, b_a1Xhj)]). Sing t_a1Yla -> Sing (Apply UnzipSym0 t_a1Yla :: ([a_a1Xhi], [b_a1Xhj]))
sUnzip3 :: forall (t_a1Yl9 :: [(a_a1Xhf, b_a1Xhg, c_a1Xhh)]). Sing t_a1Yl9 -> Sing (Apply Unzip3Sym0 t_a1Yl9 :: ([a_a1Xhf], [b_a1Xhg], [c_a1Xhh]))
sUnzip4 :: forall (t_a1Yl8 :: [(a_a1Xhb, b_a1Xhc, c_a1Xhd, d_a1Xhe)]). Sing t_a1Yl8 -> Sing (Apply Unzip4Sym0 t_a1Yl8 :: ([a_a1Xhb], [b_a1Xhc], [c_a1Xhd], [d_a1Xhe]))
sUnzip5 :: forall (t_a1Yl7 :: [(a_a1Xh6, b_a1Xh7, c_a1Xh8, d_a1Xh9, e_a1Xha)]). Sing t_a1Yl7 -> Sing (Apply Unzip5Sym0 t_a1Yl7 :: ([a_a1Xh6], [b_a1Xh7], [c_a1Xh8], [d_a1Xh9], [e_a1Xha]))
sUnzip6 :: forall (t_a1Yl6 :: [(a_a1Xh0, b_a1Xh1, c_a1Xh2, d_a1Xh3, e_a1Xh4, f_a1Xh5)]). Sing t_a1Yl6 -> Sing (Apply Unzip6Sym0 t_a1Yl6 :: ([a_a1Xh0], [b_a1Xh1], [c_a1Xh2], [d_a1Xh3], [e_a1Xh4], [f_a1Xh5]))
sUnzip7 :: forall (t_a1Yl5 :: [(a_a1XgT, b_a1XgU, c_a1XgV, d_a1XgW, e_a1XgX, f_a1XgY, g_a1XgZ)]). Sing t_a1Yl5 -> Sing (Apply Unzip7Sym0 t_a1Yl5 :: ([a_a1XgT], [b_a1XgU], [c_a1XgV], [d_a1XgW], [e_a1XgX], [f_a1XgY], [g_a1XgZ]))
sNub :: forall (t_a1Ylz :: [a_a1Xge]). SEq a_a1Xge => Sing t_a1Ylz -> Sing (Apply NubSym0 t_a1Ylz :: [a_a1Xge])
sDelete :: forall (t_a1Yl1 :: a_a1XgS) (t_a1Yl2 :: [a_a1XgS]). SEq a_a1XgS => Sing t_a1Yl1 -> Sing t_a1Yl2 -> Sing (Apply (Apply DeleteSym0 t_a1Yl1) t_a1Yl2 :: [a_a1XgS])
(%:\\) :: forall (t_a1Yl3 :: [a_a1XgR]) (t_a1Yl4 :: [a_a1XgR]). SEq a_a1XgR => Sing t_a1Yl3 -> Sing t_a1Yl4 -> Sing (Apply (Apply (:\\$) t_a1Yl3) t_a1Yl4 :: [a_a1XgR])
infix 5 %:\\
sUnion :: forall (t_a1YkZ :: [a_a1Xga]) (t_a1Yl0 :: [a_a1Xga]). SEq a_a1Xga => Sing t_a1YkZ -> Sing t_a1Yl0 -> Sing (Apply (Apply UnionSym0 t_a1YkZ) t_a1Yl0 :: [a_a1Xga])
sIntersect :: forall (t_a1YkG :: [a_a1XgE]) (t_a1YkH :: [a_a1XgE]). SEq a_a1XgE => Sing t_a1YkG -> Sing t_a1YkH -> Sing (Apply (Apply IntersectSym0 t_a1YkG) t_a1YkH :: [a_a1XgE])
sInsert :: forall (t_a1YkL :: a_a1Xgr) (t_a1YkM :: [a_a1Xgr]). SOrd a_a1Xgr => Sing t_a1YkL -> Sing t_a1YkM -> Sing (Apply (Apply InsertSym0 t_a1YkL) t_a1YkM :: [a_a1Xgr])
sSort :: forall (t_a1YkP :: [a_a1Xgq]). SOrd a_a1Xgq => Sing t_a1YkP -> Sing (Apply SortSym0 t_a1YkP :: [a_a1Xgq])
sNubBy :: forall (t_a1Yk2 :: TyFun a_a1Xgd (TyFun a_a1Xgd Bool -> Type) -> Type) (t_a1Yk3 :: [a_a1Xgd]). Sing t_a1Yk2 -> Sing t_a1Yk3 -> Sing (Apply (Apply NubBySym0 t_a1Yk2) t_a1Yk3 :: [a_a1Xgd])
sDeleteBy :: forall (t_a1YkQ :: TyFun a_a1XgQ (TyFun a_a1XgQ Bool -> Type) -> Type) (t_a1YkR :: a_a1XgQ) (t_a1YkS :: [a_a1XgQ]). Sing t_a1YkQ -> Sing t_a1YkR -> Sing t_a1YkS -> Sing (Apply (Apply (Apply DeleteBySym0 t_a1YkQ) t_a1YkR) t_a1YkS :: [a_a1XgQ])
sDeleteFirstsBy :: forall (t_a1YkT :: TyFun a_a1XgP (TyFun a_a1XgP Bool -> Type) -> Type) (t_a1YkU :: [a_a1XgP]) (t_a1YkV :: [a_a1XgP]). Sing t_a1YkT -> Sing t_a1YkU -> Sing t_a1YkV -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a1YkT) t_a1YkU) t_a1YkV :: [a_a1XgP])
sUnionBy :: forall (t_a1YkW :: TyFun a_a1Xgb (TyFun a_a1Xgb Bool -> Type) -> Type) (t_a1YkX :: [a_a1Xgb]) (t_a1YkY :: [a_a1Xgb]). Sing t_a1YkW -> Sing t_a1YkX -> Sing t_a1YkY -> Sing (Apply (Apply (Apply UnionBySym0 t_a1YkW) t_a1YkX) t_a1YkY :: [a_a1Xgb])
sIntersectBy :: forall (t_a1YkD :: TyFun a_a1XgD (TyFun a_a1XgD Bool -> Type) -> Type) (t_a1YkE :: [a_a1XgD]) (t_a1YkF :: [a_a1XgD]). Sing t_a1YkD -> Sing t_a1YkE -> Sing t_a1YkF -> Sing (Apply (Apply (Apply IntersectBySym0 t_a1YkD) t_a1YkE) t_a1YkF :: [a_a1XgD])
sGroupBy :: forall (t_a1Yks :: TyFun a_a1Xgp (TyFun a_a1Xgp Bool -> Type) -> Type) (t_a1Ykt :: [a_a1Xgp]). Sing t_a1Yks -> Sing t_a1Ykt -> Sing (Apply (Apply GroupBySym0 t_a1Yks) t_a1Ykt :: [[a_a1Xgp]])
sSortBy :: forall (t_a1YkN :: TyFun a_a1XgO (TyFun a_a1XgO Ordering -> Type) -> Type) (t_a1YkO :: [a_a1XgO]). Sing t_a1YkN -> Sing t_a1YkO -> Sing (Apply (Apply SortBySym0 t_a1YkN) t_a1YkO :: [a_a1XgO])
sInsertBy :: forall (t_a1YkI :: TyFun a_a1XgN (TyFun a_a1XgN Ordering -> Type) -> Type) (t_a1YkJ :: a_a1XgN) (t_a1YkK :: [a_a1XgN]). Sing t_a1YkI -> Sing t_a1YkJ -> Sing t_a1YkK -> Sing (Apply (Apply (Apply InsertBySym0 t_a1YkI) t_a1YkJ) t_a1YkK :: [a_a1XgN])
sMaximumBy :: forall (t_a1Ym9 :: TyFun a_a1XgM (TyFun a_a1XgM Ordering -> Type) -> Type) (t_a1Yma :: [a_a1XgM]). Sing t_a1Ym9 -> Sing t_a1Yma -> Sing (Apply (Apply MaximumBySym0 t_a1Ym9) t_a1Yma :: a_a1XgM)
sMinimumBy :: forall (t_a1Ymb :: TyFun a_a1XgL (TyFun a_a1XgL Ordering -> Type) -> Type) (t_a1Ymc :: [a_a1XgL]). Sing t_a1Ymb -> Sing t_a1Ymc -> Sing (Apply (Apply MinimumBySym0 t_a1Ymb) t_a1Ymc :: a_a1XgL)
sGenericLength :: forall (t_a1YjY :: [a_a1Xg9]). SNum i_a1Xg8 => Sing t_a1YjY -> Sing (Apply GenericLengthSym0 t_a1YjY :: i_a1Xg8)
type NilSym0 = '[]
data (:$) (l_aXZs :: TyFun a822083585 (TyFun [a822083585] [a822083585] -> Type))
data (:$$) (l_aXZq :: a822083585) (l_aXZp :: TyFun [a822083585] [a822083585])
type (:$$$) (t_aXZn :: a822083585) (t_aXZo :: [a822083585]) = (:) t_aXZn t_aXZo
type (:++$$$) (t_a1bx8 :: [a1627672477]) (t_a1bx9 :: [a1627672477]) = (:++) t_a1bx8 t_a1bx9
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data HeadSym0 (l_a1YjJ :: TyFun [a1627856203] a1627856203)
type HeadSym1 (t_a1YjI :: [a1627856203]) = Head t_a1YjI
data LastSym0 (l_a1Yjz :: TyFun [a1627856202] a1627856202)
type LastSym1 (t_a1Yjy :: [a1627856202]) = Last t_a1Yjy
data TailSym0 (l_a1Yjr :: TyFun [a1627856201] [a1627856201])
type TailSym1 (t_a1Yjq :: [a1627856201]) = Tail t_a1Yjq
data InitSym0 (l_a1YiU :: TyFun [a1627856200] [a1627856200])
type InitSym1 (t_a1YiT :: [a1627856200]) = Init t_a1YiT
data NullSym0 (l_a1YhN :: TyFun [a1627856199] Bool)
type NullSym1 (t_a1YhM :: [a1627856199]) = Null t_a1YhM
data LengthSym0 (l_a1Xu8 :: TyFun [a1627856086] Nat)
type LengthSym1 (t_a1Xu7 :: [a1627856086]) = Length t_a1Xu7
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data ReverseSym0 (l_a1Yhe :: TyFun [a1627856198] [a1627856198])
type ReverseSym1 (t_a1Yhd :: [a1627856198]) = Reverse t_a1Yhd
data IntersperseSym0 (l_a1YgS :: TyFun a1627856197 (TyFun [a1627856197] [a1627856197] -> Type))
data IntersperseSym1 (l_a1YgQ :: a1627856197) (l_a1YgP :: TyFun [a1627856197] [a1627856197])
type IntersperseSym2 (t_a1YgN :: a1627856197) (t_a1YgO :: [a1627856197]) = Intersperse t_a1YgN t_a1YgO
data IntercalateSym0 (l_a1Yh7 :: TyFun [a1627856196] (TyFun [[a1627856196]] [a1627856196] -> Type))
data IntercalateSym1 (l_a1Yh5 :: [a1627856196]) (l_a1Yh4 :: TyFun [[a1627856196]] [a1627856196])
type IntercalateSym2 (t_a1Yh2 :: [a1627856196]) (t_a1Yh3 :: [[a1627856196]]) = Intercalate t_a1Yh2 t_a1Yh3
data TransposeSym0 (l_a1YjR :: TyFun [[a1627856084]] [[a1627856084]])
type TransposeSym1 (t_a1YjQ :: [[a1627856084]]) = Transpose t_a1YjQ
data SubsequencesSym0 (l_a1YgJ :: TyFun [a1627856195] [[a1627856195]])
type SubsequencesSym1 (t_a1YgI :: [a1627856195]) = Subsequences t_a1YgI
data PermutationsSym0 (l_a1Ya1 :: TyFun [a1627856192] [[a1627856192]])
type PermutationsSym1 (t_a1Ya0 :: [a1627856192]) = Permutations t_a1Ya0
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type) -> Type))
data FoldlSym1 (l_a10Zd :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Zc :: TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type))
data FoldlSym2 (l_a10Z9 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Za :: b1627632057) (l_a10Z8 :: TyFun [a1627632056] b1627632057)
type FoldlSym3 (t_a10Z5 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (t_a10Z6 :: b1627632057) (t_a10Z7 :: [a1627632056]) = Foldl t_a10Z5 t_a10Z6 t_a10Z7
data Foldl'Sym0 (l_a1Y8z :: TyFun (TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (TyFun b1627856191 (TyFun [a1627856190] b1627856191 -> Type) -> Type))
data Foldl'Sym1 (l_a1Y8x :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (l_a1Y8w :: TyFun b1627856191 (TyFun [a1627856190] b1627856191 -> Type))
data Foldl'Sym2 (l_a1Y8t :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (l_a1Y8u :: b1627856191) (l_a1Y8s :: TyFun [a1627856190] b1627856191)
type Foldl'Sym3 (t_a1Y8p :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (t_a1Y8q :: b1627856191) (t_a1Y8r :: [a1627856190]) = Foldl' t_a1Y8p t_a1Y8q t_a1Y8r
data Foldl1Sym0 (l_a1Y4Z :: TyFun (TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (TyFun [a1627856189] a1627856189 -> Type))
data Foldl1Sym1 (l_a1Y4X :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (l_a1Y4W :: TyFun [a1627856189] a1627856189)
type Foldl1Sym2 (t_a1Y4U :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (t_a1Y4V :: [a1627856189]) = Foldl1 t_a1Y4U t_a1Y4V
data Foldl1'Sym0 (l_a1Y9Q :: TyFun (TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (TyFun [a1627856188] a1627856188 -> Type))
data Foldl1'Sym1 (l_a1Y9O :: TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (l_a1Y9N :: TyFun [a1627856188] a1627856188)
type Foldl1'Sym2 (t_a1Y9L :: TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (t_a1Y9M :: [a1627856188]) = Foldl1' t_a1Y9L t_a1Y9M
data FoldrSym0 (l_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data Foldr1Sym0 (l_a1Y4m :: TyFun (TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (TyFun [a1627856187] a1627856187 -> Type))
data Foldr1Sym1 (l_a1Y4k :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (l_a1Y4j :: TyFun [a1627856187] a1627856187)
type Foldr1Sym2 (t_a1Y4h :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (t_a1Y4i :: [a1627856187]) = Foldr1 t_a1Y4h t_a1Y4i
data ConcatSym0 (l_a1Y4d :: TyFun [[a1627856186]] [a1627856186])
type ConcatSym1 (t_a1Y4c :: [[a1627856186]]) = Concat t_a1Y4c
data ConcatMapSym0 (l_a1Y42 :: TyFun (TyFun a1627856184 [b1627856185] -> Type) (TyFun [a1627856184] [b1627856185] -> Type))
data ConcatMapSym1 (l_a1Y40 :: TyFun a1627856184 [b1627856185] -> Type) (l_a1Y3Z :: TyFun [a1627856184] [b1627856185])
type ConcatMapSym2 (t_a1Y3X :: TyFun a1627856184 [b1627856185] -> Type) (t_a1Y3Y :: [a1627856184]) = ConcatMap t_a1Y3X t_a1Y3Y
data AndSym0 (l_a1Y3S :: TyFun [Bool] Bool)
type AndSym1 (t_a1Y3R :: [Bool]) = And t_a1Y3R
data OrSym0 (l_a1Y3M :: TyFun [Bool] Bool)
type OrSym1 (t_a1Y3L :: [Bool]) = Or t_a1Y3L
data Any_Sym0 (l_a1UDf :: TyFun (TyFun a1627845967 Bool -> Type) (TyFun [a1627845967] Bool -> Type))
data Any_Sym1 (l_a1UDd :: TyFun a1627845967 Bool -> Type) (l_a1UDc :: TyFun [a1627845967] Bool)
type Any_Sym2 (t_a1UDa :: TyFun a1627845967 Bool -> Type) (t_a1UDb :: [a1627845967]) = Any_ t_a1UDa t_a1UDb
data AllSym0 (l_a1Y3B :: TyFun (TyFun a1627856183 Bool -> Type) (TyFun [a1627856183] Bool -> Type))
data AllSym1 (l_a1Y3z :: TyFun a1627856183 Bool -> Type) (l_a1Y3y :: TyFun [a1627856183] Bool)
type AllSym2 (t_a1Y3w :: TyFun a1627856183 Bool -> Type) (t_a1Y3x :: [a1627856183]) = All t_a1Y3w t_a1Y3x
data SumSym0 (l_a1XuE :: TyFun [a1627856088] a1627856088)
type SumSym1 (t_a1XuD :: [a1627856088]) = Sum t_a1XuD
data ProductSym0 (l_a1Xug :: TyFun [a1627856087] a1627856087)
type ProductSym1 (t_a1Xuf :: [a1627856087]) = Product t_a1Xuf
data MaximumSym0 (l_a1Y7Y :: TyFun [a1627856097] a1627856097)
type MaximumSym1 (t_a1Y7X :: [a1627856097]) = Maximum t_a1Y7X
data MinimumSym0 (l_a1Y8c :: TyFun [a1627856096] a1627856096)
type MinimumSym1 (t_a1Y8b :: [a1627856096]) = Minimum t_a1Y8b
data ScanlSym0 (l_a1Y34 :: TyFun (TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type) -> Type))
data ScanlSym1 (l_a1Y32 :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y31 :: TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type))
data ScanlSym2 (l_a1Y2Y :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y2Z :: b1627856181) (l_a1Y2X :: TyFun [a1627856182] [b1627856181])
type ScanlSym3 (t_a1Y2U :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (t_a1Y2V :: b1627856181) (t_a1Y2W :: [a1627856182]) = Scanl t_a1Y2U t_a1Y2V t_a1Y2W
data Scanl1Sym0 (l_a1Y3m :: TyFun (TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (TyFun [a1627856180] [a1627856180] -> Type))
data Scanl1Sym1 (l_a1Y3k :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (l_a1Y3j :: TyFun [a1627856180] [a1627856180])
type Scanl1Sym2 (t_a1Y3h :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (t_a1Y3i :: [a1627856180]) = Scanl1 t_a1Y3h t_a1Y3i
data ScanrSym0 (l_a1Y2j :: TyFun (TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type) -> Type))
data ScanrSym1 (l_a1Y2h :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2g :: TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type))
data ScanrSym2 (l_a1Y2d :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2e :: b1627856179) (l_a1Y2c :: TyFun [a1627856178] [b1627856179])
type ScanrSym3 (t_a1Y29 :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (t_a1Y2a :: b1627856179) (t_a1Y2b :: [a1627856178]) = Scanr t_a1Y29 t_a1Y2a t_a1Y2b
data Scanr1Sym0 (l_a1Y1d :: TyFun (TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (TyFun [a1627856177] [a1627856177] -> Type))
data Scanr1Sym1 (l_a1Y1b :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (l_a1Y1a :: TyFun [a1627856177] [a1627856177])
type Scanr1Sym2 (t_a1Y18 :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (t_a1Y19 :: [a1627856177]) = Scanr1 t_a1Y18 t_a1Y19
data MapAccumLSym0 (l_a1XYw :: TyFun (TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (TyFun acc1627856174 (TyFun [x1627856175] (acc1627856174, [y1627856176]) -> Type) -> Type))
data MapAccumLSym1 (l_a1XYu :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (l_a1XYt :: TyFun acc1627856174 (TyFun [x1627856175] (acc1627856174, [y1627856176]) -> Type))
data MapAccumLSym2 (l_a1XYq :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (l_a1XYr :: acc1627856174) (l_a1XYp :: TyFun [x1627856175] (acc1627856174, [y1627856176]))
type MapAccumLSym3 (t_a1XYm :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (t_a1XYn :: acc1627856174) (t_a1XYo :: [x1627856175]) = MapAccumL t_a1XYm t_a1XYn t_a1XYo
data MapAccumRSym0 (l_a1XVK :: TyFun (TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (TyFun acc1627856171 (TyFun [x1627856172] (acc1627856171, [y1627856173]) -> Type) -> Type))
data MapAccumRSym1 (l_a1XVI :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (l_a1XVH :: TyFun acc1627856171 (TyFun [x1627856172] (acc1627856171, [y1627856173]) -> Type))
data MapAccumRSym2 (l_a1XVE :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (l_a1XVF :: acc1627856171) (l_a1XVD :: TyFun [x1627856172] (acc1627856171, [y1627856173]))
type MapAccumRSym3 (t_a1XVA :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (t_a1XVB :: acc1627856171) (t_a1XVC :: [x1627856172]) = MapAccumR t_a1XVA t_a1XVB t_a1XVC
data ReplicateSym0 (l_a1XtQ :: TyFun Nat (TyFun a1627856085 [a1627856085] -> Type))
data ReplicateSym1 (l_a1XtO :: Nat) (l_a1XtN :: TyFun a1627856085 [a1627856085])
type ReplicateSym2 (t_a1XtL :: Nat) (t_a1XtM :: a1627856085) = Replicate t_a1XtL t_a1XtM
data UnfoldrSym0 (l_a1XVh :: TyFun (TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (TyFun b1627856169 [a1627856170] -> Type))
data UnfoldrSym1 (l_a1XVf :: TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (l_a1XVe :: TyFun b1627856169 [a1627856170])
type UnfoldrSym2 (t_a1XVc :: TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (t_a1XVd :: b1627856169) = Unfoldr t_a1XVc t_a1XVd
data TakeSym0 (l_a1Xx1 :: TyFun Nat (TyFun [a1627856101] [a1627856101] -> Type))
data TakeSym1 (l_a1XwZ :: Nat) (l_a1XwY :: TyFun [a1627856101] [a1627856101])
type TakeSym2 (t_a1XwW :: Nat) (t_a1XwX :: [a1627856101]) = Take t_a1XwW t_a1XwX
data DropSym0 (l_a1Xww :: TyFun Nat (TyFun [a1627856100] [a1627856100] -> Type))
data DropSym1 (l_a1Xwu :: Nat) (l_a1Xwt :: TyFun [a1627856100] [a1627856100])
type DropSym2 (t_a1Xwr :: Nat) (t_a1Xws :: [a1627856100]) = Drop t_a1Xwr t_a1Xws
data SplitAtSym0 (l_a1Xxw :: TyFun Nat (TyFun [a1627856099] ([a1627856099], [a1627856099]) -> Type))
data SplitAtSym1 (l_a1Xxu :: Nat) (l_a1Xxt :: TyFun [a1627856099] ([a1627856099], [a1627856099]))
type SplitAtSym2 (t_a1Xxr :: Nat) (t_a1Xxs :: [a1627856099]) = SplitAt t_a1Xxr t_a1Xxs
data TakeWhileSym0 (l_a1XCW :: TyFun (TyFun a1627856106 Bool -> Type) (TyFun [a1627856106] [a1627856106] -> Type))
data TakeWhileSym1 (l_a1XCU :: TyFun a1627856106 Bool -> Type) (l_a1XCT :: TyFun [a1627856106] [a1627856106])
type TakeWhileSym2 (t_a1XCR :: TyFun a1627856106 Bool -> Type) (t_a1XCS :: [a1627856106]) = TakeWhile t_a1XCR t_a1XCS
data DropWhileSym0 (l_a1XCe :: TyFun (TyFun a1627856105 Bool -> Type) (TyFun [a1627856105] [a1627856105] -> Type))
data DropWhileSym1 (l_a1XCc :: TyFun a1627856105 Bool -> Type) (l_a1XCb :: TyFun [a1627856105] [a1627856105])
type DropWhileSym2 (t_a1XC9 :: TyFun a1627856105 Bool -> Type) (t_a1XCa :: [a1627856105]) = DropWhile t_a1XC9 t_a1XCa
data DropWhileEndSym0 (l_a1Yi1 :: TyFun (TyFun a1627856104 Bool -> Type) (TyFun [a1627856104] [a1627856104] -> Type))
data DropWhileEndSym1 (l_a1YhZ :: TyFun a1627856104 Bool -> Type) (l_a1YhY :: TyFun [a1627856104] [a1627856104])
type DropWhileEndSym2 (t_a1YhW :: TyFun a1627856104 Bool -> Type) (t_a1YhX :: [a1627856104]) = DropWhileEnd t_a1YhW t_a1YhX
data SpanSym0 (l_a1Xzl :: TyFun (TyFun a1627856103 Bool -> Type) (TyFun [a1627856103] ([a1627856103], [a1627856103]) -> Type))
data SpanSym1 (l_a1Xzj :: TyFun a1627856103 Bool -> Type) (l_a1Xzi :: TyFun [a1627856103] ([a1627856103], [a1627856103]))
type SpanSym2 (t_a1Xzg :: TyFun a1627856103 Bool -> Type) (t_a1Xzh :: [a1627856103]) = Span t_a1Xzg t_a1Xzh
data BreakSym0 (l_a1XxH :: TyFun (TyFun a1627856102 Bool -> Type) (TyFun [a1627856102] ([a1627856102], [a1627856102]) -> Type))
data BreakSym1 (l_a1XxF :: TyFun a1627856102 Bool -> Type) (l_a1XxE :: TyFun [a1627856102] ([a1627856102], [a1627856102]))
type BreakSym2 (t_a1XxC :: TyFun a1627856102 Bool -> Type) (t_a1XxD :: [a1627856102]) = Break t_a1XxC t_a1XxD
data GroupSym0 (l_a1XC5 :: TyFun [a1627856098] [[a1627856098]])
type GroupSym1 (t_a1XC4 :: [a1627856098]) = Group t_a1XC4
data InitsSym0 (l_a1XV3 :: TyFun [a1627856168] [[a1627856168]])
type InitsSym1 (t_a1XV2 :: [a1627856168]) = Inits t_a1XV2
data TailsSym0 (l_a1XUG :: TyFun [a1627856167] [[a1627856167]])
type TailsSym1 (t_a1XUF :: [a1627856167]) = Tails t_a1XUF
data IsPrefixOfSym0 (l_a1XUl :: TyFun [a1627856166] (TyFun [a1627856166] Bool -> Type))
data IsPrefixOfSym1 (l_a1XUj :: [a1627856166]) (l_a1XUi :: TyFun [a1627856166] Bool)
type IsPrefixOfSym2 (t_a1XUg :: [a1627856166]) (t_a1XUh :: [a1627856166]) = IsPrefixOf t_a1XUg t_a1XUh
data IsSuffixOfSym0 (l_a1YhG :: TyFun [a1627856165] (TyFun [a1627856165] Bool -> Type))
data IsSuffixOfSym1 (l_a1YhE :: [a1627856165]) (l_a1YhD :: TyFun [a1627856165] Bool)
type IsSuffixOfSym2 (t_a1YhB :: [a1627856165]) (t_a1YhC :: [a1627856165]) = IsSuffixOf t_a1YhB t_a1YhC
data IsInfixOfSym0 (l_a1XUW :: TyFun [a1627856164] (TyFun [a1627856164] Bool -> Type))
data IsInfixOfSym1 (l_a1XUU :: [a1627856164]) (l_a1XUT :: TyFun [a1627856164] Bool)
type IsInfixOfSym2 (t_a1XUR :: [a1627856164]) (t_a1XUS :: [a1627856164]) = IsInfixOf t_a1XUR t_a1XUS
data ElemSym0 (l_a1XTk :: TyFun a1627856163 (TyFun [a1627856163] Bool -> Type))
data ElemSym1 (l_a1XTi :: a1627856163) (l_a1XTh :: TyFun [a1627856163] Bool)
type ElemSym2 (t_a1XTf :: a1627856163) (t_a1XTg :: [a1627856163]) = Elem t_a1XTf t_a1XTg
data NotElemSym0 (l_a1XT5 :: TyFun a1627856162 (TyFun [a1627856162] Bool -> Type))
data NotElemSym1 (l_a1XT3 :: a1627856162) (l_a1XT2 :: TyFun [a1627856162] Bool)
type NotElemSym2 (t_a1XT0 :: a1627856162) (t_a1XT1 :: [a1627856162]) = NotElem t_a1XT0 t_a1XT1
data LookupSym0 (l_a1XvW :: TyFun a1627856091 (TyFun [(a1627856091, b1627856092)] (Maybe b1627856092) -> Type))
data LookupSym1 (l_a1XvU :: a1627856091) (l_a1XvT :: TyFun [(a1627856091, b1627856092)] (Maybe b1627856092))
type LookupSym2 (t_a1XvR :: a1627856091) (t_a1XvS :: [(a1627856091, b1627856092)]) = Lookup t_a1XvR t_a1XvS
data FindSym0 (l_a1XDU :: TyFun (TyFun a1627856113 Bool -> Type) (TyFun [a1627856113] (Maybe a1627856113) -> Type))
data FindSym1 (l_a1XDS :: TyFun a1627856113 Bool -> Type) (l_a1XDR :: TyFun [a1627856113] (Maybe a1627856113))
type FindSym2 (t_a1XDP :: TyFun a1627856113 Bool -> Type) (t_a1XDQ :: [a1627856113]) = Find t_a1XDP t_a1XDQ
data FilterSym0 (l_a1XDr :: TyFun (TyFun a1627856114 Bool -> Type) (TyFun [a1627856114] [a1627856114] -> Type))
data FilterSym1 (l_a1XDp :: TyFun a1627856114 Bool -> Type) (l_a1XDo :: TyFun [a1627856114] [a1627856114])
type FilterSym2 (t_a1XDm :: TyFun a1627856114 Bool -> Type) (t_a1XDn :: [a1627856114]) = Filter t_a1XDm t_a1XDn
data PartitionSym0 (l_a1XvL :: TyFun (TyFun a1627856090 Bool -> Type) (TyFun [a1627856090] ([a1627856090], [a1627856090]) -> Type))
data PartitionSym1 (l_a1XvJ :: TyFun a1627856090 Bool -> Type) (l_a1XvI :: TyFun [a1627856090] ([a1627856090], [a1627856090]))
type PartitionSym2 (t_a1XvG :: TyFun a1627856090 Bool -> Type) (t_a1XvH :: [a1627856090]) = Partition t_a1XvG t_a1XvH
data (:!!$) (l_a1Xtl :: TyFun [a1627856083] (TyFun Nat a1627856083 -> Type))
data (:!!$$) (l_a1Xtj :: [a1627856083]) (l_a1Xti :: TyFun Nat a1627856083)
type (:!!$$$) (t_a1Xtg :: [a1627856083]) (t_a1Xth :: Nat) = (:!!) t_a1Xtg t_a1Xth
data ElemIndexSym0 (l_a1XSS :: TyFun a1627856112 (TyFun [a1627856112] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1XSQ :: a1627856112) (l_a1XSP :: TyFun [a1627856112] (Maybe Nat))
type ElemIndexSym2 (t_a1XSN :: a1627856112) (t_a1XSO :: [a1627856112]) = ElemIndex t_a1XSN t_a1XSO
data ElemIndicesSym0 (l_a1XSs :: TyFun a1627856111 (TyFun [a1627856111] [Nat] -> Type))
data ElemIndicesSym1 (l_a1XSq :: a1627856111) (l_a1XSp :: TyFun [a1627856111] [Nat])
type ElemIndicesSym2 (t_a1XSn :: a1627856111) (t_a1XSo :: [a1627856111]) = ElemIndices t_a1XSn t_a1XSo
data FindIndexSym0 (l_a1XSF :: TyFun (TyFun a1627856110 Bool -> Type) (TyFun [a1627856110] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1XSD :: TyFun a1627856110 Bool -> Type) (l_a1XSC :: TyFun [a1627856110] (Maybe Nat))
type FindIndexSym2 (t_a1XSA :: TyFun a1627856110 Bool -> Type) (t_a1XSB :: [a1627856110]) = FindIndex t_a1XSA t_a1XSB
data FindIndicesSym0 (l_a1XRr :: TyFun (TyFun a1627856109 Bool -> Type) (TyFun [a1627856109] [Nat] -> Type))
data FindIndicesSym1 (l_a1XRp :: TyFun a1627856109 Bool -> Type) (l_a1XRo :: TyFun [a1627856109] [Nat])
type FindIndicesSym2 (t_a1XRm :: TyFun a1627856109 Bool -> Type) (t_a1XRn :: [a1627856109]) = FindIndices t_a1XRm t_a1XRn
data ZipSym0 (l_a1XR2 :: TyFun [a1627856160] (TyFun [b1627856161] [(a1627856160, b1627856161)] -> Type))
data ZipSym1 (l_a1XR0 :: [a1627856160]) (l_a1XQZ :: TyFun [b1627856161] [(a1627856160, b1627856161)])
type ZipSym2 (t_a1XQX :: [a1627856160]) (t_a1XQY :: [b1627856161]) = Zip t_a1XQX t_a1XQY
data Zip3Sym0 (l_a1XPU :: TyFun [a1627856157] (TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type) -> Type))
data Zip3Sym1 (l_a1XPS :: [a1627856157]) (l_a1XPR :: TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type))
data Zip3Sym2 (l_a1XPO :: [a1627856157]) (l_a1XPP :: [b1627856158]) (l_a1XPN :: TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)])
type Zip3Sym3 (t_a1XPK :: [a1627856157]) (t_a1XPL :: [b1627856158]) (t_a1XPM :: [c1627856159]) = Zip3 t_a1XPK t_a1XPL t_a1XPM
data ZipWithSym0 (l_a1XPf :: TyFun (TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type) -> Type))
data ZipWithSym1 (l_a1XPd :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPc :: TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type))
data ZipWithSym2 (l_a1XP9 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPa :: [a1627856154]) (l_a1XP8 :: TyFun [b1627856155] [c1627856156])
type ZipWithSym3 (t_a1XP5 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (t_a1XP6 :: [a1627856154]) (t_a1XP7 :: [b1627856155]) = ZipWith t_a1XP5 t_a1XP6 t_a1XP7
data ZipWith3Sym0 (l_a1XNF :: TyFun (TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1XND :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNC :: TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type))
data ZipWith3Sym2 (l_a1XNz :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNA :: [a1627856150]) (l_a1XNy :: TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type))
data ZipWith3Sym3 (l_a1XNu :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNv :: [a1627856150]) (l_a1XNw :: [b1627856151]) (l_a1XNt :: TyFun [c1627856152] [d1627856153])
type ZipWith3Sym4 (t_a1XNp :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (t_a1XNq :: [a1627856150]) (t_a1XNr :: [b1627856151]) (t_a1XNs :: [c1627856152]) = ZipWith3 t_a1XNp t_a1XNq t_a1XNr t_a1XNs
data UnzipSym0 (l_a1XMW :: TyFun [(a1627856148, b1627856149)] ([a1627856148], [b1627856149]))
type UnzipSym1 (t_a1XMV :: [(a1627856148, b1627856149)]) = Unzip t_a1XMV
data Unzip3Sym0 (l_a1XMq :: TyFun [(a1627856145, b1627856146, c1627856147)] ([a1627856145], [b1627856146], [c1627856147]))
type Unzip3Sym1 (t_a1XMp :: [(a1627856145, b1627856146, c1627856147)]) = Unzip3 t_a1XMp
data Unzip4Sym0 (l_a1XLS :: TyFun [(a1627856141, b1627856142, c1627856143, d1627856144)] ([a1627856141], [b1627856142], [c1627856143], [d1627856144]))
type Unzip4Sym1 (t_a1XLR :: [(a1627856141, b1627856142, c1627856143, d1627856144)]) = Unzip4 t_a1XLR
data Unzip5Sym0 (l_a1XLi :: TyFun [(a1627856136, b1627856137, c1627856138, d1627856139, e1627856140)] ([a1627856136], [b1627856137], [c1627856138], [d1627856139], [e1627856140]))
type Unzip5Sym1 (t_a1XLh :: [(a1627856136, b1627856137, c1627856138, d1627856139, e1627856140)]) = Unzip5 t_a1XLh
data Unzip6Sym0 (l_a1XKG :: TyFun [(a1627856130, b1627856131, c1627856132, d1627856133, e1627856134, f1627856135)] ([a1627856130], [b1627856131], [c1627856132], [d1627856133], [e1627856134], [f1627856135]))
type Unzip6Sym1 (t_a1XKF :: [(a1627856130, b1627856131, c1627856132, d1627856133, e1627856134, f1627856135)]) = Unzip6 t_a1XKF
data Unzip7Sym0 (l_a1XK2 :: TyFun [(a1627856123, b1627856124, c1627856125, d1627856126, e1627856127, f1627856128, g1627856129)] ([a1627856123], [b1627856124], [c1627856125], [d1627856126], [e1627856127], [f1627856128], [g1627856129]))
type Unzip7Sym1 (t_a1XK1 :: [(a1627856123, b1627856124, c1627856125, d1627856126, e1627856127, f1627856128, g1627856129)]) = Unzip7 t_a1XK1
data NubSym0 (l_a1XTv :: TyFun [a1627856082] [a1627856082])
type NubSym1 (t_a1XTu :: [a1627856082]) = Nub t_a1XTu
data DeleteSym0 (l_a1XJG :: TyFun a1627856122 (TyFun [a1627856122] [a1627856122] -> Type))
data DeleteSym1 (l_a1XJE :: a1627856122) (l_a1XJD :: TyFun [a1627856122] [a1627856122])
type DeleteSym2 (t_a1XJB :: a1627856122) (t_a1XJC :: [a1627856122]) = Delete t_a1XJB t_a1XJC
data (:\\$) (l_a1XJV :: TyFun [a1627856121] (TyFun [a1627856121] [a1627856121] -> Type))
data (:\\$$) (l_a1XJT :: [a1627856121]) (l_a1XJS :: TyFun [a1627856121] [a1627856121])
type (:\\$$$) (t_a1XJQ :: [a1627856121]) (t_a1XJR :: [a1627856121]) = (:\\) t_a1XJQ t_a1XJR
data UnionSym0 (l_a1XJr :: TyFun [a1627856078] (TyFun [a1627856078] [a1627856078] -> Type))
data UnionSym1 (l_a1XJp :: [a1627856078]) (l_a1XJo :: TyFun [a1627856078] [a1627856078])
type UnionSym2 (t_a1XJm :: [a1627856078]) (t_a1XJn :: [a1627856078]) = Union t_a1XJm t_a1XJn
data IntersectSym0 (l_a1XGg :: TyFun [a1627856108] (TyFun [a1627856108] [a1627856108] -> Type))
data IntersectSym1 (l_a1XGe :: [a1627856108]) (l_a1XGd :: TyFun [a1627856108] [a1627856108])
type IntersectSym2 (t_a1XGb :: [a1627856108]) (t_a1XGc :: [a1627856108]) = Intersect t_a1XGb t_a1XGc
data InsertSym0 (l_a1XHt :: TyFun a1627856095 (TyFun [a1627856095] [a1627856095] -> Type))
data InsertSym1 (l_a1XHr :: a1627856095) (l_a1XHq :: TyFun [a1627856095] [a1627856095])
type InsertSym2 (t_a1XHo :: a1627856095) (t_a1XHp :: [a1627856095]) = Insert t_a1XHo t_a1XHp
data SortSym0 (l_a1XHP :: TyFun [a1627856094] [a1627856094])
type SortSym1 (t_a1XHO :: [a1627856094]) = Sort t_a1XHO
data NubBySym0 (l_a1Xsg :: TyFun (TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (TyFun [a1627856081] [a1627856081] -> Type))
data NubBySym1 (l_a1Xse :: TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (l_a1Xsd :: TyFun [a1627856081] [a1627856081])
type NubBySym2 (t_a1Xsb :: TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (t_a1Xsc :: [a1627856081]) = NubBy t_a1Xsb t_a1Xsc
data DeleteBySym0 (l_a1XI3 :: TyFun (TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (TyFun a1627856120 (TyFun [a1627856120] [a1627856120] -> Type) -> Type))
data DeleteBySym1 (l_a1XI1 :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (l_a1XI0 :: TyFun a1627856120 (TyFun [a1627856120] [a1627856120] -> Type))
data DeleteBySym2 (l_a1XHX :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (l_a1XHY :: a1627856120) (l_a1XHW :: TyFun [a1627856120] [a1627856120])
type DeleteBySym3 (t_a1XHT :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (t_a1XHU :: a1627856120) (t_a1XHV :: [a1627856120]) = DeleteBy t_a1XHT t_a1XHU t_a1XHV
data DeleteFirstsBySym0 (l_a1XIO :: TyFun (TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (TyFun [a1627856119] (TyFun [a1627856119] [a1627856119] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1XIM :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (l_a1XIL :: TyFun [a1627856119] (TyFun [a1627856119] [a1627856119] -> Type))
data DeleteFirstsBySym2 (l_a1XII :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (l_a1XIJ :: [a1627856119]) (l_a1XIH :: TyFun [a1627856119] [a1627856119])
type DeleteFirstsBySym3 (t_a1XIE :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (t_a1XIF :: [a1627856119]) (t_a1XIG :: [a1627856119]) = DeleteFirstsBy t_a1XIE t_a1XIF t_a1XIG
data UnionBySym0 (l_a1XJa :: TyFun (TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (TyFun [a1627856079] (TyFun [a1627856079] [a1627856079] -> Type) -> Type))
data UnionBySym1 (l_a1XJ8 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (l_a1XJ7 :: TyFun [a1627856079] (TyFun [a1627856079] [a1627856079] -> Type))
data UnionBySym2 (l_a1XJ4 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (l_a1XJ5 :: [a1627856079]) (l_a1XJ3 :: TyFun [a1627856079] [a1627856079])
type UnionBySym3 (t_a1XJ0 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (t_a1XJ1 :: [a1627856079]) (t_a1XJ2 :: [a1627856079]) = UnionBy t_a1XJ0 t_a1XJ1 t_a1XJ2
data IntersectBySym0 (l_a1XEc :: TyFun (TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (TyFun [a1627856107] (TyFun [a1627856107] [a1627856107] -> Type) -> Type))
data IntersectBySym1 (l_a1XEa :: TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (l_a1XE9 :: TyFun [a1627856107] (TyFun [a1627856107] [a1627856107] -> Type))
data IntersectBySym2 (l_a1XE6 :: TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (l_a1XE7 :: [a1627856107]) (l_a1XE5 :: TyFun [a1627856107] [a1627856107])
type IntersectBySym3 (t_a1XE2 :: TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (t_a1XE3 :: [a1627856107]) (t_a1XE4 :: [a1627856107]) = IntersectBy t_a1XE2 t_a1XE3 t_a1XE4
data GroupBySym0 (l_a1XAZ :: TyFun (TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (TyFun [a1627856093] [[a1627856093]] -> Type))
data GroupBySym1 (l_a1XAX :: TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (l_a1XAW :: TyFun [a1627856093] [[a1627856093]])
type GroupBySym2 (t_a1XAU :: TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (t_a1XAV :: [a1627856093]) = GroupBy t_a1XAU t_a1XAV
data SortBySym0 (l_a1XHE :: TyFun (TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (TyFun [a1627856118] [a1627856118] -> Type))
data SortBySym1 (l_a1XHC :: TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (l_a1XHB :: TyFun [a1627856118] [a1627856118])
type SortBySym2 (t_a1XHz :: TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (t_a1XHA :: [a1627856118]) = SortBy t_a1XHz t_a1XHA
data InsertBySym0 (l_a1XGw :: TyFun (TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (TyFun a1627856117 (TyFun [a1627856117] [a1627856117] -> Type) -> Type))
data InsertBySym1 (l_a1XGu :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (l_a1XGt :: TyFun a1627856117 (TyFun [a1627856117] [a1627856117] -> Type))
data InsertBySym2 (l_a1XGq :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (l_a1XGr :: a1627856117) (l_a1XGp :: TyFun [a1627856117] [a1627856117])
type InsertBySym3 (t_a1XGm :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (t_a1XGn :: a1627856117) (t_a1XGo :: [a1627856117]) = InsertBy t_a1XGm t_a1XGn t_a1XGo
data MaximumBySym0 (l_a1Y5e :: TyFun (TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (TyFun [a1627856116] a1627856116 -> Type))
data MaximumBySym1 (l_a1Y5c :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (l_a1Y5b :: TyFun [a1627856116] a1627856116)
type MaximumBySym2 (t_a1Y59 :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (t_a1Y5a :: [a1627856116]) = MaximumBy t_a1Y59 t_a1Y5a
data MinimumBySym0 (l_a1Y6D :: TyFun (TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (TyFun [a1627856115] a1627856115 -> Type))
data MinimumBySym1 (l_a1Y6B :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (l_a1Y6A :: TyFun [a1627856115] a1627856115)
type MinimumBySym2 (t_a1Y6y :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (t_a1Y6z :: [a1627856115]) = MinimumBy t_a1Y6y t_a1Y6z
data GenericLengthSym0 (l_a1XrF :: TyFun [a1627856077] i1627856076)
type GenericLengthSym1 (t_a1XrE :: [a1627856077]) = GenericLength t_a1XrE
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TransposeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.HeadSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LastSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropWhileEndSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860049Scrutinee_1627856721Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860049Scrutinee_1627856721Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860049Scrutinee_1627856721Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860049Scrutinee_1627856721Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627860045Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627860045Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627860045Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627860045Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NullSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsSuffixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ReverseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntercalateSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersperseSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SubsequencesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmptySubsequencesSym0
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.Let1627859545PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859545PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859545PermsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PermutationsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MinimumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.MaximumBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Foldl1Sym1
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.ConcatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ConcatMapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AndSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.OrSym0
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.Scanl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Scanl1Sym1
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.Let1627859076Scrutinee_1627856655Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859076Scrutinee_1627856655Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859076Scrutinee_1627856655Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859076Scrutinee_1627856655Sym3
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.Let1627859029Scrutinee_1627856657Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859029Scrutinee_1627856657Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859029Scrutinee_1627856657Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859029Scrutinee_1627856657Sym3
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.Let1627858841X_1627858848Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858848Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858848Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858848Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YsSym3
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.Let1627858669X_1627858676Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858676Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858676Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858676Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858670Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858670Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858670Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669X_1627858670Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858669YsSym3
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.UnfoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnfoldrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InitsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TailsSym0
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.NubSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858542Scrutinee_1627856747Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858542Scrutinee_1627856747Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858542Scrutinee_1627856747Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858542Scrutinee_1627856747Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858521Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858521Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858521Nub'Sym1
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.NotElemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NotElemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ElemIndicesSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindIndicesSym1
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.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.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.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.UnzipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip3Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Unzip7Sym0
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.DeleteSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnionBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DeleteFirstsBySym2
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.SortSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SortBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.InsertSym1
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.IntersectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IntersectBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.FindSym1
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.TakeWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.TakeWhileSym0
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.GroupSym0
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.Let1627857306X_1627857307Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306X_1627857307Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306X_1627857307Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857306ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379X_1627857380Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379X_1627857380Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379X_1627857380Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857379ZsSym2
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.Let1627857204X_1627857205Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204X_1627857205Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204X_1627857205Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857204ZsSym2
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.SplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SplitAtSym1
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.DropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.DropSym0
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.PartitionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.PartitionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SelectSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.SumSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.ProductSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.LengthSym0
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.:!!$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.:!!$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NubBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856861Scrutinee_1627856749Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856861Scrutinee_1627856749Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856861Scrutinee_1627856749Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856861Scrutinee_1627856749Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856861Scrutinee_1627856749Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856834NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856834NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856834NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856834NubBy'Sym2
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.GenericLengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860097Init'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860097Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860097Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627860097Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859992RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859992RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859992RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859933FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859933FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859933FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859933FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620X_1627859621Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859620ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834X_1627859835Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859834ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859566Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859459LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859459LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859459LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859459LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859459LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859491Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859433XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859433XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859419XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859419XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859354MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859354MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859354MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859354MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859354MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859384Scrutinee_1627856699Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859384Scrutinee_1627856699Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859384Scrutinee_1627856699Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859384Scrutinee_1627856699Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859384Scrutinee_1627856699Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859341XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859341XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859341XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859267MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859267MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859267MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859267MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859267MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859297Scrutinee_1627856693Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859297Scrutinee_1627856693Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859297Scrutinee_1627856693Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859297Scrutinee_1627856693Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859297Scrutinee_1627856693Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859254XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859254XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859254XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859202XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859202XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859202XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859202XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859010XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859010XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859010XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627859010XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858842Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858842Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858842Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841X_1627858842Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858841YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858633Scrutinee_1627856663Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858633Scrutinee_1627856663Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858424Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858424Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858424Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858395BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858395BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858395BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627858395BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858114Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858114Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858114Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858082Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858082Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858082Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858048Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858048Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858048Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858012Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858012Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627858012Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857974Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857974Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857974Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857934Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857934Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857934Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857822Scrutinee_1627856689Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857822Scrutinee_1627856689Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857822Scrutinee_1627856689Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857822Scrutinee_1627856689Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857744Scrutinee_1627856691Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857744Scrutinee_1627856691Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857744Scrutinee_1627856691Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857744Scrutinee_1627856691Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857725YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857725YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857725YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857725YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_1627857650Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857599XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857529Scrutinee_1627856705Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857529Scrutinee_1627856705Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857529Scrutinee_1627856705Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857500Scrutinee_1627856717Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857500Scrutinee_1627856717Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857500Scrutinee_1627856717Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857469Scrutinee_1627856719Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857469Scrutinee_1627856719Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857469Scrutinee_1627856719Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857456XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857456XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857456XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857291Scrutinee_1627856723Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857291Scrutinee_1627856723Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857291Scrutinee_1627856723Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857278XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857278XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857278XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857189Scrutinee_1627856725Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857189Scrutinee_1627856725Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857189Scrutinee_1627856725Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857176XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857176XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857176XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857133Scrutinee_1627856727Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857133Scrutinee_1627856727Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857133Scrutinee_1627856727Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857102Scrutinee_1627856729Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857102Scrutinee_1627856729Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857102Scrutinee_1627856729Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857065Scrutinee_1627856739Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857065Scrutinee_1627856739Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857065Scrutinee_1627856739Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857065Scrutinee_1627856739Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857018Scrutinee_1627856741Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857018Scrutinee_1627856741Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857018Scrutinee_1627856741Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627857018Scrutinee_1627856741Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856980Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856980Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856980Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856956ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856956ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856956ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856932Scrutinee_1627856743Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856932Scrutinee_1627856743Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856905Scrutinee_1627856745Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856905Scrutinee_1627856745Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let1627856905Scrutinee_1627856745Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Any_Sym0


-- | Defines functions and datatypes relating to the singleton for
--   <a>NonEmpty</a>, including a singletons version of all the definitions
--   in <tt>Data.List.NonEmpty</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.NonEmpty</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.NonEmpty

-- | The singleton kind-indexed data family.
type SNonEmpty = (Sing :: NonEmpty a_ah9Q -> Type)
sMap :: forall (t_a38nI :: TyFun a_a384y b_a384z -> Type) (t_a38nJ :: NonEmpty a_a384y). Sing t_a38nI -> Sing t_a38nJ -> Sing (Apply (Apply MapSym0 t_a38nI) t_a38nJ :: NonEmpty b_a384z)
sIntersperse :: forall (t_a38nG :: a_a384o) (t_a38nH :: NonEmpty a_a384o). Sing t_a38nG -> Sing t_a38nH -> Sing (Apply (Apply IntersperseSym0 t_a38nG) t_a38nH :: NonEmpty a_a384o)
sScanl :: forall (t_a38oh :: TyFun b_a384t (TyFun a_a384u b_a384t -> Type) -> Type) (t_a38oi :: b_a384t) (t_a38oj :: [a_a384u]). Sing t_a38oh -> Sing t_a38oi -> Sing t_a38oj -> Sing (Apply (Apply (Apply ScanlSym0 t_a38oh) t_a38oi) t_a38oj :: NonEmpty b_a384t)
sScanr :: forall (t_a38ok :: TyFun a_a384r (TyFun b_a384s b_a384s -> Type) -> Type) (t_a38ol :: b_a384s) (t_a38om :: [a_a384r]). Sing t_a38ok -> Sing t_a38ol -> Sing t_a38om -> Sing (Apply (Apply (Apply ScanrSym0 t_a38ok) t_a38ol) t_a38om :: NonEmpty b_a384s)
sScanl1 :: forall (t_a38on :: TyFun a_a384q (TyFun a_a384q a_a384q -> Type) -> Type) (t_a38oo :: NonEmpty a_a384q). Sing t_a38on -> Sing t_a38oo -> Sing (Apply (Apply Scanl1Sym0 t_a38on) t_a38oo :: NonEmpty a_a384q)
sScanr1 :: forall (t_a38op :: TyFun a_a384p (TyFun a_a384p a_a384p -> Type) -> Type) (t_a38oq :: NonEmpty a_a384p). Sing t_a38op -> Sing t_a38oq -> Sing (Apply (Apply Scanr1Sym0 t_a38op) t_a38oq :: NonEmpty a_a384p)
sTranspose :: forall (t_a38oK :: NonEmpty (NonEmpty a_a383Q)). Sing t_a38oK -> Sing (Apply TransposeSym0 t_a38oK :: NonEmpty (NonEmpty a_a383Q))
sSortBy :: forall (t_a38o7 :: TyFun a_a383P (TyFun a_a383P Ordering -> Type) -> Type) (t_a38o8 :: NonEmpty a_a383P). Sing t_a38o7 -> Sing t_a38o8 -> Sing (Apply (Apply SortBySym0 t_a38o7) t_a38o8 :: NonEmpty a_a383P)
sSortWith :: forall (t_a38o9 :: TyFun a_a383O o_a383N -> Type) (t_a38oa :: NonEmpty a_a383O). SOrd o_a383N => Sing t_a38o9 -> Sing t_a38oa -> Sing (Apply (Apply SortWithSym0 t_a38o9) t_a38oa :: NonEmpty a_a383O)
sLength :: forall (t_a38oH :: NonEmpty a_a384R). Sing t_a38oH -> Sing (Apply LengthSym0 t_a38oH :: Nat)
sHead :: forall (t_a38oz :: NonEmpty a_a384K). Sing t_a38oz -> Sing (Apply HeadSym0 t_a38oz :: a_a384K)
sTail :: forall (t_a38oy :: NonEmpty a_a384J). Sing t_a38oy -> Sing (Apply TailSym0 t_a38oy :: [a_a384J])
sLast :: forall (t_a38ox :: NonEmpty a_a384I). Sing t_a38ox -> Sing (Apply LastSym0 t_a38ox :: a_a384I)
sInit :: forall (t_a38ow :: NonEmpty a_a384H). Sing t_a38ow -> Sing (Apply InitSym0 t_a38ow :: [a_a384H])
(%:<|) :: forall (t_a38os :: a_a384G) (t_a38ot :: NonEmpty a_a384G). Sing t_a38os -> Sing t_a38ot -> Sing (Apply (Apply (:<|$) t_a38os) t_a38ot :: NonEmpty a_a384G)
sCons :: forall (t_a38ou :: a_a384F) (t_a38ov :: NonEmpty a_a384F). Sing t_a38ou -> Sing t_a38ov -> Sing (Apply (Apply ConsSym0 t_a38ou) t_a38ov :: NonEmpty a_a384F)
sUncons :: forall (t_a38oD :: NonEmpty a_a384N). Sing t_a38oD -> Sing (Apply UnconsSym0 t_a38oD :: (a_a384N, Maybe (NonEmpty a_a384N)))
sUnfoldr :: forall (t_a38oA :: TyFun a_a384L (b_a384M, Maybe a_a384L) -> Type) (t_a38oB :: a_a384L). Sing t_a38oA -> Sing t_a38oB -> Sing (Apply (Apply UnfoldrSym0 t_a38oA) t_a38oB :: NonEmpty b_a384M)
sSort :: forall (t_a38or :: NonEmpty a_a384E). SOrd a_a384E => Sing t_a38or -> Sing (Apply SortSym0 t_a38or :: NonEmpty a_a384E)
sReverse :: forall (t_a38o6 :: NonEmpty a_a384n). Sing t_a38o6 -> Sing (Apply ReverseSym0 t_a38o6 :: NonEmpty a_a384n)
sInits :: forall (t_a38od :: [a_a384x]). Sing t_a38od -> Sing (Apply InitsSym0 t_a38od :: NonEmpty [a_a384x])
sTails :: forall (t_a38oe :: [a_a384w]). Sing t_a38oe -> Sing (Apply TailsSym0 t_a38oe :: NonEmpty [a_a384w])
sUnfold :: forall (t_a38oE :: TyFun a_a384P (b_a384Q, Maybe a_a384P) -> Type) (t_a38oF :: a_a384P). Sing t_a38oE -> Sing t_a38oF -> Sing (Apply (Apply UnfoldSym0 t_a38oE) t_a38oF :: NonEmpty b_a384Q)
sInsert :: forall (t_a38of :: a_a384v) (t_a38og :: [a_a384v]). SOrd a_a384v => Sing t_a38of -> Sing t_a38og -> Sing (Apply (Apply InsertSym0 t_a38of) t_a38og :: NonEmpty a_a384v)
sTake :: forall (t_a38nL :: Nat) (t_a38nM :: NonEmpty a_a384m). Sing t_a38nL -> Sing t_a38nM -> Sing (Apply (Apply TakeSym0 t_a38nL) t_a38nM :: [a_a384m])
sDrop :: forall (t_a38nN :: Nat) (t_a38nO :: NonEmpty a_a384l). Sing t_a38nN -> Sing t_a38nO -> Sing (Apply (Apply DropSym0 t_a38nN) t_a38nO :: [a_a384l])
sSplitAt :: forall (t_a38nP :: Nat) (t_a38nQ :: NonEmpty a_a384k). Sing t_a38nP -> Sing t_a38nQ -> Sing (Apply (Apply SplitAtSym0 t_a38nP) t_a38nQ :: ([a_a384k], [a_a384k]))
sTakeWhile :: forall (t_a38nR :: TyFun a_a384j Bool -> Type) (t_a38nS :: NonEmpty a_a384j). Sing t_a38nR -> Sing t_a38nS -> Sing (Apply (Apply TakeWhileSym0 t_a38nR) t_a38nS :: [a_a384j])
sDropWhile :: forall (t_a38nT :: TyFun a_a384i Bool -> Type) (t_a38nU :: NonEmpty a_a384i). Sing t_a38nT -> Sing t_a38nU -> Sing (Apply (Apply DropWhileSym0 t_a38nT) t_a38nU :: [a_a384i])
sSpan :: forall (t_a38nV :: TyFun a_a384h Bool -> Type) (t_a38nW :: NonEmpty a_a384h). Sing t_a38nV -> Sing t_a38nW -> Sing (Apply (Apply SpanSym0 t_a38nV) t_a38nW :: ([a_a384h], [a_a384h]))
sBreak :: forall (t_a38nX :: TyFun a_a384g Bool -> Type) (t_a38nY :: NonEmpty a_a384g). Sing t_a38nX -> Sing t_a38nY -> Sing (Apply (Apply BreakSym0 t_a38nX) t_a38nY :: ([a_a384g], [a_a384g]))
sFilter :: forall (t_a38nZ :: TyFun a_a384f Bool -> Type) (t_a38o0 :: NonEmpty a_a384f). Sing t_a38nZ -> Sing t_a38o0 -> Sing (Apply (Apply FilterSym0 t_a38nZ) t_a38o0 :: [a_a384f])
sPartition :: forall (t_a38o1 :: TyFun a_a384e Bool -> Type) (t_a38o2 :: NonEmpty a_a384e). Sing t_a38o1 -> Sing t_a38o2 -> Sing (Apply (Apply PartitionSym0 t_a38o1) t_a38o2 :: ([a_a384e], [a_a384e]))
sGroup :: forall (t_a38nF :: [a_a384d]). SEq a_a384d => Sing t_a38nF -> Sing (Apply GroupSym0 t_a38nF :: [NonEmpty a_a384d])
sGroupBy :: forall (t_a38nu :: TyFun a_a384c (TyFun a_a384c Bool -> Type) -> Type) (t_a38nv :: [a_a384c]). Sing t_a38nu -> Sing t_a38nv -> Sing (Apply (Apply GroupBySym0 t_a38nu) t_a38nv :: [NonEmpty a_a384c])
sGroupWith :: forall (t_a38nw :: TyFun a_a384b b_a384a -> Type) (t_a38nx :: [a_a384b]). SEq b_a384a => Sing t_a38nw -> Sing t_a38nx -> Sing (Apply (Apply GroupWithSym0 t_a38nw) t_a38nx :: [NonEmpty a_a384b])
sGroupAllWith :: forall (t_a38ny :: TyFun a_a3849 b_a3848 -> Type) (t_a38nz :: [a_a3849]). SOrd b_a3848 => Sing t_a38ny -> Sing t_a38nz -> Sing (Apply (Apply GroupAllWithSym0 t_a38ny) t_a38nz :: [NonEmpty a_a3849])
sGroup1 :: forall (t_a38nC :: NonEmpty a_a3847). SEq a_a3847 => Sing t_a38nC -> Sing (Apply Group1Sym0 t_a38nC :: NonEmpty (NonEmpty a_a3847))
sGroupBy1 :: forall (t_a38nA :: TyFun a_a3846 (TyFun a_a3846 Bool -> Type) -> Type) (t_a38nB :: NonEmpty a_a3846). Sing t_a38nA -> Sing t_a38nB -> Sing (Apply (Apply GroupBy1Sym0 t_a38nA) t_a38nB :: NonEmpty (NonEmpty a_a3846))
sGroupWith1 :: forall (t_a38nD :: TyFun a_a3845 b_a3844 -> Type) (t_a38nE :: NonEmpty a_a3845). SEq b_a3844 => Sing t_a38nD -> Sing t_a38nE -> Sing (Apply (Apply GroupWith1Sym0 t_a38nD) t_a38nE :: NonEmpty (NonEmpty a_a3845))
sGroupAllWith1 :: forall (t_a38ob :: TyFun a_a3843 b_a3842 -> Type) (t_a38oc :: NonEmpty a_a3843). SOrd b_a3842 => Sing t_a38ob -> Sing t_a38oc -> Sing (Apply (Apply GroupAllWith1Sym0 t_a38ob) t_a38oc :: NonEmpty (NonEmpty a_a3843))
sIsPrefixOf :: forall (t_a38ns :: [a_a3841]) (t_a38nt :: NonEmpty a_a3841). SEq a_a3841 => Sing t_a38ns -> Sing t_a38nt -> Sing (Apply (Apply IsPrefixOfSym0 t_a38ns) t_a38nt :: Bool)
sNub :: forall (t_a38nj :: NonEmpty a_a383S). SEq a_a383S => Sing t_a38nj -> Sing (Apply NubSym0 t_a38nj :: NonEmpty a_a383S)
sNubBy :: forall (t_a38nh :: TyFun a_a383R (TyFun a_a383R Bool -> Type) -> Type) (t_a38ni :: NonEmpty a_a383R). Sing t_a38nh -> Sing t_a38ni -> Sing (Apply (Apply NubBySym0 t_a38nh) t_a38ni :: NonEmpty a_a383R)
(%:!!) :: forall (t_a38nq :: NonEmpty a_a3840) (t_a38nr :: Nat). Sing t_a38nq -> Sing t_a38nr -> Sing (Apply (Apply (:!!$) t_a38nq) t_a38nr :: a_a3840)
sZip :: forall (t_a38no :: NonEmpty a_a383Y) (t_a38np :: NonEmpty b_a383Z). Sing t_a38no -> Sing t_a38np -> Sing (Apply (Apply ZipSym0 t_a38no) t_a38np :: NonEmpty (a_a383Y, b_a383Z))
sZipWith :: forall (t_a38nl :: TyFun a_a383V (TyFun b_a383W c_a383X -> Type) -> Type) (t_a38nm :: NonEmpty a_a383V) (t_a38nn :: NonEmpty b_a383W). Sing t_a38nl -> Sing t_a38nm -> Sing t_a38nn -> Sing (Apply (Apply (Apply ZipWithSym0 t_a38nl) t_a38nm) t_a38nn :: NonEmpty c_a383X)
sUnzip :: forall (t_a38nk :: NonEmpty (a_a383T, b_a383U)). Sing t_a38nk -> Sing (Apply UnzipSym0 t_a38nk :: (NonEmpty a_a383T, NonEmpty b_a383U))
sFromList :: forall (t_a38o3 :: [a_a384D]). Sing t_a38o3 -> Sing (Apply FromListSym0 t_a38o3 :: NonEmpty a_a384D)
sToList :: forall (t_a38nK :: NonEmpty a_a384C). Sing t_a38nK -> Sing (Apply ToListSym0 t_a38nK :: [a_a384C])
sNonEmpty_ :: forall (t_a38oC :: [a_a384O]). Sing t_a38oC -> Sing (Apply NonEmpty_Sym0 t_a38oC :: Maybe (NonEmpty a_a384O))
sXor :: forall (t_a38oG :: NonEmpty Bool). Sing t_a38oG -> Sing (Apply XorSym0 t_a38oG :: Bool)
data (:|$) (l_aY00 :: TyFun a1627455910 (TyFun [a1627455910] (NonEmpty a1627455910) -> Type))
data (:|$$) (l_aXZY :: a1627455910) (l_aXZX :: TyFun [a1627455910] (NonEmpty a1627455910))
type (:|$$$) (t_aXZV :: a1627455910) (t_aXZW :: [a1627455910]) = (:|) t_aXZV t_aXZW
data MapSym0 (l_a38fd :: TyFun (TyFun a1628135970 b1628135971 -> Type) (TyFun (NonEmpty a1628135970) (NonEmpty b1628135971) -> Type))
data MapSym1 (l_a38fb :: TyFun a1628135970 b1628135971 -> Type) (l_a38fa :: TyFun (NonEmpty a1628135970) (NonEmpty b1628135971))
type MapSym2 (t_a38f8 :: TyFun a1628135970 b1628135971 -> Type) (t_a38f9 :: NonEmpty a1628135970) = Map t_a38f8 t_a38f9
data IntersperseSym0 (l_a38eS :: TyFun a1628135960 (TyFun (NonEmpty a1628135960) (NonEmpty a1628135960) -> Type))
data IntersperseSym1 (l_a38eQ :: a1628135960) (l_a38eP :: TyFun (NonEmpty a1628135960) (NonEmpty a1628135960))
type IntersperseSym2 (t_a38eN :: a1628135960) (t_a38eO :: NonEmpty a1628135960) = Intersperse t_a38eN t_a38eO
data ScanlSym0 (l_a38iZ :: TyFun (TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (TyFun b1628135965 (TyFun [a1628135966] (NonEmpty b1628135965) -> Type) -> Type))
data ScanlSym1 (l_a38iX :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (l_a38iW :: TyFun b1628135965 (TyFun [a1628135966] (NonEmpty b1628135965) -> Type))
data ScanlSym2 (l_a38iT :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (l_a38iU :: b1628135965) (l_a38iS :: TyFun [a1628135966] (NonEmpty b1628135965))
type ScanlSym3 (t_a38iP :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (t_a38iQ :: b1628135965) (t_a38iR :: [a1628135966]) = Scanl t_a38iP t_a38iQ t_a38iR
data ScanrSym0 (l_a38jj :: TyFun (TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (TyFun b1628135964 (TyFun [a1628135963] (NonEmpty b1628135964) -> Type) -> Type))
data ScanrSym1 (l_a38jh :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (l_a38jg :: TyFun b1628135964 (TyFun [a1628135963] (NonEmpty b1628135964) -> Type))
data ScanrSym2 (l_a38jd :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (l_a38je :: b1628135964) (l_a38jc :: TyFun [a1628135963] (NonEmpty b1628135964))
type ScanrSym3 (t_a38j9 :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (t_a38ja :: b1628135964) (t_a38jb :: [a1628135963]) = Scanr t_a38j9 t_a38ja t_a38jb
data Scanl1Sym0 (l_a38jy :: TyFun (TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (TyFun (NonEmpty a1628135962) (NonEmpty a1628135962) -> Type))
data Scanl1Sym1 (l_a38jw :: TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (l_a38jv :: TyFun (NonEmpty a1628135962) (NonEmpty a1628135962))
type Scanl1Sym2 (t_a38jt :: TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (t_a38ju :: NonEmpty a1628135962) = Scanl1 t_a38jt t_a38ju
data Scanr1Sym0 (l_a38jK :: TyFun (TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (TyFun (NonEmpty a1628135961) (NonEmpty a1628135961) -> Type))
data Scanr1Sym1 (l_a38jI :: TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (l_a38jH :: TyFun (NonEmpty a1628135961) (NonEmpty a1628135961))
type Scanr1Sym2 (t_a38jF :: TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (t_a38jG :: NonEmpty a1628135961) = Scanr1 t_a38jF t_a38jG
data TransposeSym0 (l_a38nd :: TyFun (NonEmpty (NonEmpty a1628135926)) (NonEmpty (NonEmpty a1628135926)))
type TransposeSym1 (t_a38nc :: NonEmpty (NonEmpty a1628135926)) = Transpose t_a38nc
data SortBySym0 (l_a38hO :: TyFun (TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (TyFun (NonEmpty a1628135925) (NonEmpty a1628135925) -> Type))
data SortBySym1 (l_a38hM :: TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (l_a38hL :: TyFun (NonEmpty a1628135925) (NonEmpty a1628135925))
type SortBySym2 (t_a38hJ :: TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (t_a38hK :: NonEmpty a1628135925) = SortBy t_a38hJ t_a38hK
data SortWithSym0 (l_a38i5 :: TyFun (TyFun a1628135924 o1628135923 -> Type) (TyFun (NonEmpty a1628135924) (NonEmpty a1628135924) -> Type))
data SortWithSym1 (l_a38i3 :: TyFun a1628135924 o1628135923 -> Type) (l_a38i2 :: TyFun (NonEmpty a1628135924) (NonEmpty a1628135924))
type SortWithSym2 (t_a38i0 :: TyFun a1628135924 o1628135923 -> Type) (t_a38i1 :: NonEmpty a1628135924) = SortWith t_a38i0 t_a38i1
data LengthSym0 (l_a38mR :: TyFun (NonEmpty a1628135989) Nat)
type LengthSym1 (t_a38mQ :: NonEmpty a1628135989) = Length t_a38mQ
data HeadSym0 (l_a38kK :: TyFun (NonEmpty a1628135982) a1628135982)
type HeadSym1 (t_a38kJ :: NonEmpty a1628135982) = Head t_a38kJ
data TailSym0 (l_a38kC :: TyFun (NonEmpty a1628135981) [a1628135981])
type TailSym1 (t_a38kB :: NonEmpty a1628135981) = Tail t_a38kB
data LastSym0 (l_a38kw :: TyFun (NonEmpty a1628135980) a1628135980)
type LastSym1 (t_a38kv :: NonEmpty a1628135980) = Last t_a38kv
data InitSym0 (l_a38kq :: TyFun (NonEmpty a1628135979) [a1628135979])
type InitSym1 (t_a38kp :: NonEmpty a1628135979) = Init t_a38kp
data (:<|$) (l_a38k3 :: TyFun a1628135978 (TyFun (NonEmpty a1628135978) (NonEmpty a1628135978) -> Type))
data (:<|$$) (l_a38k1 :: a1628135978) (l_a38k0 :: TyFun (NonEmpty a1628135978) (NonEmpty a1628135978))
type (:<|$$$) (t_a38jY :: a1628135978) (t_a38jZ :: NonEmpty a1628135978) = (:<|) t_a38jY t_a38jZ
data ConsSym0 (l_a38kj :: TyFun a1628135977 (TyFun (NonEmpty a1628135977) (NonEmpty a1628135977) -> Type))
data ConsSym1 (l_a38kh :: a1628135977) (l_a38kg :: TyFun (NonEmpty a1628135977) (NonEmpty a1628135977))
type ConsSym2 (t_a38ke :: a1628135977) (t_a38kf :: NonEmpty a1628135977) = Cons t_a38ke t_a38kf
data UnconsSym0 (l_a38lT :: TyFun (NonEmpty a1628135985) (a1628135985, Maybe (NonEmpty a1628135985)))
type UnconsSym1 (t_a38lS :: NonEmpty a1628135985) = Uncons t_a38lS
data UnfoldrSym0 (l_a38kW :: TyFun (TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (TyFun a1628135983 (NonEmpty b1628135984) -> Type))
data UnfoldrSym1 (l_a38kU :: TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (l_a38kT :: TyFun a1628135983 (NonEmpty b1628135984))
type UnfoldrSym2 (t_a38kR :: TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (t_a38kS :: a1628135983) = Unfoldr t_a38kR t_a38kS
data SortSym0 (l_a38jU :: TyFun (NonEmpty a1628135976) (NonEmpty a1628135976))
type SortSym1 (t_a38jT :: NonEmpty a1628135976) = Sort t_a38jT
data ReverseSym0 (l_a38hF :: TyFun (NonEmpty a1628135959) (NonEmpty a1628135959))
type ReverseSym1 (t_a38hE :: NonEmpty a1628135959) = Reverse t_a38hE
data InitsSym0 (l_a38ir :: TyFun [a1628135969] (NonEmpty [a1628135969]))
type InitsSym1 (t_a38iq :: [a1628135969]) = Inits t_a38iq
data TailsSym0 (l_a38iy :: TyFun [a1628135968] (NonEmpty [a1628135968]))
type TailsSym1 (t_a38ix :: [a1628135968]) = Tails t_a38ix
data UnfoldSym0 (l_a38m3 :: TyFun (TyFun a1628135987 (b1628135988, Maybe a1628135987) -> Type) (TyFun a1628135987 (NonEmpty b1628135988) -> Type))
data UnfoldSym1 (l_a38m1 :: TyFun a1628135987 (b1628135988, Maybe a1628135987) -> Type) (l_a38m0 :: TyFun a1628135987 (NonEmpty b1628135988))
data InsertSym0 (l_a38iH :: TyFun a1628135967 (TyFun [a1628135967] (NonEmpty a1628135967) -> Type))
data InsertSym1 (l_a38iF :: a1628135967) (l_a38iE :: TyFun [a1628135967] (NonEmpty a1628135967))
type InsertSym2 (t_a38iC :: a1628135967) (t_a38iD :: [a1628135967]) = Insert t_a38iC t_a38iD
data TakeSym0 (l_a38fv :: TyFun Nat (TyFun (NonEmpty a1628135958) [a1628135958] -> Type))
data TakeSym1 (l_a38ft :: Nat) (l_a38fs :: TyFun (NonEmpty a1628135958) [a1628135958])
type TakeSym2 (t_a38fq :: Nat) (t_a38fr :: NonEmpty a1628135958) = Take t_a38fq t_a38fr
data DropSym0 (l_a38fI :: TyFun Nat (TyFun (NonEmpty a1628135957) [a1628135957] -> Type))
data DropSym1 (l_a38fG :: Nat) (l_a38fF :: TyFun (NonEmpty a1628135957) [a1628135957])
type DropSym2 (t_a38fD :: Nat) (t_a38fE :: NonEmpty a1628135957) = Drop t_a38fD t_a38fE
data SplitAtSym0 (l_a38fV :: TyFun Nat (TyFun (NonEmpty a1628135956) ([a1628135956], [a1628135956]) -> Type))
data SplitAtSym1 (l_a38fT :: Nat) (l_a38fS :: TyFun (NonEmpty a1628135956) ([a1628135956], [a1628135956]))
type SplitAtSym2 (t_a38fQ :: Nat) (t_a38fR :: NonEmpty a1628135956) = SplitAt t_a38fQ t_a38fR
data TakeWhileSym0 (l_a38g8 :: TyFun (TyFun a1628135955 Bool -> Type) (TyFun (NonEmpty a1628135955) [a1628135955] -> Type))
data TakeWhileSym1 (l_a38g6 :: TyFun a1628135955 Bool -> Type) (l_a38g5 :: TyFun (NonEmpty a1628135955) [a1628135955])
type TakeWhileSym2 (t_a38g3 :: TyFun a1628135955 Bool -> Type) (t_a38g4 :: NonEmpty a1628135955) = TakeWhile t_a38g3 t_a38g4
data DropWhileSym0 (l_a38gl :: TyFun (TyFun a1628135954 Bool -> Type) (TyFun (NonEmpty a1628135954) [a1628135954] -> Type))
data DropWhileSym1 (l_a38gj :: TyFun a1628135954 Bool -> Type) (l_a38gi :: TyFun (NonEmpty a1628135954) [a1628135954])
type DropWhileSym2 (t_a38gg :: TyFun a1628135954 Bool -> Type) (t_a38gh :: NonEmpty a1628135954) = DropWhile t_a38gg t_a38gh
data SpanSym0 (l_a38gy :: TyFun (TyFun a1628135953 Bool -> Type) (TyFun (NonEmpty a1628135953) ([a1628135953], [a1628135953]) -> Type))
data SpanSym1 (l_a38gw :: TyFun a1628135953 Bool -> Type) (l_a38gv :: TyFun (NonEmpty a1628135953) ([a1628135953], [a1628135953]))
type SpanSym2 (t_a38gt :: TyFun a1628135953 Bool -> Type) (t_a38gu :: NonEmpty a1628135953) = Span t_a38gt t_a38gu
data BreakSym0 (l_a38gL :: TyFun (TyFun a1628135952 Bool -> Type) (TyFun (NonEmpty a1628135952) ([a1628135952], [a1628135952]) -> Type))
data BreakSym1 (l_a38gJ :: TyFun a1628135952 Bool -> Type) (l_a38gI :: TyFun (NonEmpty a1628135952) ([a1628135952], [a1628135952]))
type BreakSym2 (t_a38gG :: TyFun a1628135952 Bool -> Type) (t_a38gH :: NonEmpty a1628135952) = Break t_a38gG t_a38gH
data FilterSym0 (l_a38gY :: TyFun (TyFun a1628135951 Bool -> Type) (TyFun (NonEmpty a1628135951) [a1628135951] -> Type))
data FilterSym1 (l_a38gW :: TyFun a1628135951 Bool -> Type) (l_a38gV :: TyFun (NonEmpty a1628135951) [a1628135951])
type FilterSym2 (t_a38gT :: TyFun a1628135951 Bool -> Type) (t_a38gU :: NonEmpty a1628135951) = Filter t_a38gT t_a38gU
data PartitionSym0 (l_a38hb :: TyFun (TyFun a1628135950 Bool -> Type) (TyFun (NonEmpty a1628135950) ([a1628135950], [a1628135950]) -> Type))
data PartitionSym1 (l_a38h9 :: TyFun a1628135950 Bool -> Type) (l_a38h8 :: TyFun (NonEmpty a1628135950) ([a1628135950], [a1628135950]))
type PartitionSym2 (t_a38h6 :: TyFun a1628135950 Bool -> Type) (t_a38h7 :: NonEmpty a1628135950) = Partition t_a38h6 t_a38h7
data GroupSym0 (l_a38eJ :: TyFun [a1628135949] [NonEmpty a1628135949])
type GroupSym1 (t_a38eI :: [a1628135949]) = Group t_a38eI
data GroupBySym0 (l_a38aI :: TyFun (TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (TyFun [a1628135948] [NonEmpty a1628135948] -> Type))
data GroupBySym1 (l_a38aG :: TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (l_a38aF :: TyFun [a1628135948] [NonEmpty a1628135948])
type GroupBySym2 (t_a38aD :: TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (t_a38aE :: [a1628135948]) = GroupBy t_a38aD t_a38aE
data GroupWithSym0 (l_a38cU :: TyFun (TyFun a1628135947 b1628135946 -> Type) (TyFun [a1628135947] [NonEmpty a1628135947] -> Type))
data GroupWithSym1 (l_a38cS :: TyFun a1628135947 b1628135946 -> Type) (l_a38cR :: TyFun [a1628135947] [NonEmpty a1628135947])
type GroupWithSym2 (t_a38cP :: TyFun a1628135947 b1628135946 -> Type) (t_a38cQ :: [a1628135947]) = GroupWith t_a38cP t_a38cQ
data GroupAllWithSym0 (l_a38d7 :: TyFun (TyFun a1628135945 b1628135944 -> Type) (TyFun [a1628135945] [NonEmpty a1628135945] -> Type))
data GroupAllWithSym1 (l_a38d5 :: TyFun a1628135945 b1628135944 -> Type) (l_a38d4 :: TyFun [a1628135945] [NonEmpty a1628135945])
type GroupAllWithSym2 (t_a38d2 :: TyFun a1628135945 b1628135944 -> Type) (t_a38d3 :: [a1628135945]) = GroupAllWith t_a38d2 t_a38d3
data Group1Sym0 (l_a38ep :: TyFun (NonEmpty a1628135943) (NonEmpty (NonEmpty a1628135943)))
type Group1Sym1 (t_a38eo :: NonEmpty a1628135943) = Group1 t_a38eo
data GroupBy1Sym0 (l_a38dk :: TyFun (TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (TyFun (NonEmpty a1628135942) (NonEmpty (NonEmpty a1628135942)) -> Type))
data GroupBy1Sym1 (l_a38di :: TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (l_a38dh :: TyFun (NonEmpty a1628135942) (NonEmpty (NonEmpty a1628135942)))
type GroupBy1Sym2 (t_a38df :: TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (t_a38dg :: NonEmpty a1628135942) = GroupBy1 t_a38df t_a38dg
data GroupWith1Sym0 (l_a38ey :: TyFun (TyFun a1628135941 b1628135940 -> Type) (TyFun (NonEmpty a1628135941) (NonEmpty (NonEmpty a1628135941)) -> Type))
data GroupWith1Sym1 (l_a38ew :: TyFun a1628135941 b1628135940 -> Type) (l_a38ev :: TyFun (NonEmpty a1628135941) (NonEmpty (NonEmpty a1628135941)))
type GroupWith1Sym2 (t_a38et :: TyFun a1628135941 b1628135940 -> Type) (t_a38eu :: NonEmpty a1628135941) = GroupWith1 t_a38et t_a38eu
data GroupAllWith1Sym0 (l_a38ig :: TyFun (TyFun a1628135939 b1628135938 -> Type) (TyFun (NonEmpty a1628135939) (NonEmpty (NonEmpty a1628135939)) -> Type))
data GroupAllWith1Sym1 (l_a38ie :: TyFun a1628135939 b1628135938 -> Type) (l_a38id :: TyFun (NonEmpty a1628135939) (NonEmpty (NonEmpty a1628135939)))
type GroupAllWith1Sym2 (t_a38ib :: TyFun a1628135939 b1628135938 -> Type) (t_a38ic :: NonEmpty a1628135939) = GroupAllWith1 t_a38ib t_a38ic
data IsPrefixOfSym0 (l_a38as :: TyFun [a1628135937] (TyFun (NonEmpty a1628135937) Bool -> Type))
data IsPrefixOfSym1 (l_a38aq :: [a1628135937]) (l_a38ap :: TyFun (NonEmpty a1628135937) Bool)
type IsPrefixOfSym2 (t_a38an :: [a1628135937]) (t_a38ao :: NonEmpty a1628135937) = IsPrefixOf t_a38an t_a38ao
data NubSym0 (l_a388n :: TyFun (NonEmpty a1628135928) (NonEmpty a1628135928))
type NubSym1 (t_a388m :: NonEmpty a1628135928) = Nub t_a388m
data NubBySym0 (l_a387R :: TyFun (TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (TyFun (NonEmpty a1628135927) (NonEmpty a1628135927) -> Type))
data NubBySym1 (l_a387P :: TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (l_a387O :: TyFun (NonEmpty a1628135927) (NonEmpty a1628135927))
type NubBySym2 (t_a387M :: TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (t_a387N :: NonEmpty a1628135927) = NubBy t_a387M t_a387N
data (:!!$) (l_a38a5 :: TyFun (NonEmpty a1628135936) (TyFun Nat a1628135936 -> Type))
data (:!!$$) (l_a38a3 :: NonEmpty a1628135936) (l_a38a2 :: TyFun Nat a1628135936)
type (:!!$$$) (t_a38a0 :: NonEmpty a1628135936) (t_a38a1 :: Nat) = (:!!) t_a38a0 t_a38a1
data ZipSym0 (l_a389S :: TyFun (NonEmpty a1628135934) (TyFun (NonEmpty b1628135935) (NonEmpty (a1628135934, b1628135935)) -> Type))
data ZipSym1 (l_a389Q :: NonEmpty a1628135934) (l_a389P :: TyFun (NonEmpty b1628135935) (NonEmpty (a1628135934, b1628135935)))
type ZipSym2 (t_a389N :: NonEmpty a1628135934) (t_a389O :: NonEmpty b1628135935) = Zip t_a389N t_a389O
data ZipWithSym0 (l_a389D :: TyFun (TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (TyFun (NonEmpty a1628135931) (TyFun (NonEmpty b1628135932) (NonEmpty c1628135933) -> Type) -> Type))
data ZipWithSym1 (l_a389B :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (l_a389A :: TyFun (NonEmpty a1628135931) (TyFun (NonEmpty b1628135932) (NonEmpty c1628135933) -> Type))
data ZipWithSym2 (l_a389x :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (l_a389y :: NonEmpty a1628135931) (l_a389w :: TyFun (NonEmpty b1628135932) (NonEmpty c1628135933))
type ZipWithSym3 (t_a389t :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (t_a389u :: NonEmpty a1628135931) (t_a389v :: NonEmpty b1628135932) = ZipWith t_a389t t_a389u t_a389v
data UnzipSym0 (l_a388s :: TyFun (NonEmpty (a1628135929, b1628135930)) (NonEmpty a1628135929, NonEmpty b1628135930))
type UnzipSym1 (t_a388r :: NonEmpty (a1628135929, b1628135930)) = Unzip t_a388r
data FromListSym0 (l_a38hk :: TyFun [a1628135975] (NonEmpty a1628135975))
type FromListSym1 (t_a38hj :: [a1628135975]) = FromList t_a38hj
data ToListSym0 (l_a38fl :: TyFun (NonEmpty a1628135974) [a1628135974])
type ToListSym1 (t_a38fk :: NonEmpty a1628135974) = ToList t_a38fk
data NonEmpty_Sym0 (l_a38lN :: TyFun [a1628135986] (Maybe (NonEmpty a1628135986)))
type NonEmpty_Sym1 (t_a38lM :: [a1628135986]) = NonEmpty_ t_a38lM
data XorSym0 (l_a38mo :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a38mn :: NonEmpty Bool) = Xor t_a38mn
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TransposeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.FmapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.FmapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.LengthSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.XorSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnfoldSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnfoldSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnconsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.NonEmpty_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnfoldrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnfoldrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.HeadSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TailSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.LastSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.InitSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ConsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ConsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.NonEmpty.:<|$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.NonEmpty.:<|$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SortSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Scanr1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Scanr1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Scanl1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Scanl1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanrSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanrSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanrSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanlSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanlSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ScanlSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.InsertSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.InsertSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TailsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.InitsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupAllWith1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupAllWith1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SortWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SortWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SortBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SortBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ReverseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.LiftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.LiftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.FromListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.PartitionSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.PartitionSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.FilterSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.FilterSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.BreakSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.BreakSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SpanSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SpanSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.DropWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.DropWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TakeWhileSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TakeWhileSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.SplitAtSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.DropSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.DropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TakeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.TakeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ToListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.MapSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.MapSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.IntersperseSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.IntersperseSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupWith1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupWith1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Group1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupBy1Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupBy1Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupAllWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupAllWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136360GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136360GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136360GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136360GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.GroupBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.IsPrefixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.IsPrefixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.NonEmpty.:!!$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.List.NonEmpty.:!!$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ZipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ZipSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ZipWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ZipWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.ZipWithSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.UnzipSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.NubSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.NubBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.NubBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137081Xor'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137081Xor'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137081Xor'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137081Xor'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137061Scrutinee_1628136154Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137061Scrutinee_1628136154Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137025Scrutinee_1628136156Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137025Scrutinee_1628136156Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136992GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136992GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136992GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137007Scrutinee_1628136158Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137007Scrutinee_1628136158Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628137007Scrutinee_1628136158Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521X_1628136522Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521X_1628136522Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521X_1628136522Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136521ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387X_1628136388Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387X_1628136388Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387X_1628136388Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387X_1628136388Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387X_1628136388Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136387ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218X_1628136219Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218X_1628136219Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218X_1628136219Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218AsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218AsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218AsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218BsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218BsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let1628136218BsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_1628136182Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_1628136182Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_1628136182Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_1628136182Sym3


-- | Defines functions and datatypes relating to promoting
--   <tt>NonEmpty</tt>, including promoted versions of many of the
--   definitions in <tt>Data.List.NonEmpty</tt>.
module Data.Promotion.Prelude.List.NonEmpty
data (:|$) (l_aY00 :: TyFun a1627455910 (TyFun [a1627455910] (NonEmpty a1627455910) -> Type))
data (:|$$) (l_aXZY :: a1627455910) (l_aXZX :: TyFun [a1627455910] (NonEmpty a1627455910))
type (:|$$$) (t_aXZV :: a1627455910) (t_aXZW :: [a1627455910]) = (:|) t_aXZV t_aXZW
data MapSym0 (l_a38fd :: TyFun (TyFun a1628135970 b1628135971 -> Type) (TyFun (NonEmpty a1628135970) (NonEmpty b1628135971) -> Type))
data MapSym1 (l_a38fb :: TyFun a1628135970 b1628135971 -> Type) (l_a38fa :: TyFun (NonEmpty a1628135970) (NonEmpty b1628135971))
type MapSym2 (t_a38f8 :: TyFun a1628135970 b1628135971 -> Type) (t_a38f9 :: NonEmpty a1628135970) = Map t_a38f8 t_a38f9
data IntersperseSym0 (l_a38eS :: TyFun a1628135960 (TyFun (NonEmpty a1628135960) (NonEmpty a1628135960) -> Type))
data IntersperseSym1 (l_a38eQ :: a1628135960) (l_a38eP :: TyFun (NonEmpty a1628135960) (NonEmpty a1628135960))
type IntersperseSym2 (t_a38eN :: a1628135960) (t_a38eO :: NonEmpty a1628135960) = Intersperse t_a38eN t_a38eO
data ScanlSym0 (l_a38iZ :: TyFun (TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (TyFun b1628135965 (TyFun [a1628135966] (NonEmpty b1628135965) -> Type) -> Type))
data ScanlSym1 (l_a38iX :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (l_a38iW :: TyFun b1628135965 (TyFun [a1628135966] (NonEmpty b1628135965) -> Type))
data ScanlSym2 (l_a38iT :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (l_a38iU :: b1628135965) (l_a38iS :: TyFun [a1628135966] (NonEmpty b1628135965))
type ScanlSym3 (t_a38iP :: TyFun b1628135965 (TyFun a1628135966 b1628135965 -> Type) -> Type) (t_a38iQ :: b1628135965) (t_a38iR :: [a1628135966]) = Scanl t_a38iP t_a38iQ t_a38iR
data ScanrSym0 (l_a38jj :: TyFun (TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (TyFun b1628135964 (TyFun [a1628135963] (NonEmpty b1628135964) -> Type) -> Type))
data ScanrSym1 (l_a38jh :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (l_a38jg :: TyFun b1628135964 (TyFun [a1628135963] (NonEmpty b1628135964) -> Type))
data ScanrSym2 (l_a38jd :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (l_a38je :: b1628135964) (l_a38jc :: TyFun [a1628135963] (NonEmpty b1628135964))
type ScanrSym3 (t_a38j9 :: TyFun a1628135963 (TyFun b1628135964 b1628135964 -> Type) -> Type) (t_a38ja :: b1628135964) (t_a38jb :: [a1628135963]) = Scanr t_a38j9 t_a38ja t_a38jb
data Scanl1Sym0 (l_a38jy :: TyFun (TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (TyFun (NonEmpty a1628135962) (NonEmpty a1628135962) -> Type))
data Scanl1Sym1 (l_a38jw :: TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (l_a38jv :: TyFun (NonEmpty a1628135962) (NonEmpty a1628135962))
type Scanl1Sym2 (t_a38jt :: TyFun a1628135962 (TyFun a1628135962 a1628135962 -> Type) -> Type) (t_a38ju :: NonEmpty a1628135962) = Scanl1 t_a38jt t_a38ju
data Scanr1Sym0 (l_a38jK :: TyFun (TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (TyFun (NonEmpty a1628135961) (NonEmpty a1628135961) -> Type))
data Scanr1Sym1 (l_a38jI :: TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (l_a38jH :: TyFun (NonEmpty a1628135961) (NonEmpty a1628135961))
type Scanr1Sym2 (t_a38jF :: TyFun a1628135961 (TyFun a1628135961 a1628135961 -> Type) -> Type) (t_a38jG :: NonEmpty a1628135961) = Scanr1 t_a38jF t_a38jG
data TransposeSym0 (l_a38nd :: TyFun (NonEmpty (NonEmpty a1628135926)) (NonEmpty (NonEmpty a1628135926)))
type TransposeSym1 (t_a38nc :: NonEmpty (NonEmpty a1628135926)) = Transpose t_a38nc
data SortBySym0 (l_a38hO :: TyFun (TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (TyFun (NonEmpty a1628135925) (NonEmpty a1628135925) -> Type))
data SortBySym1 (l_a38hM :: TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (l_a38hL :: TyFun (NonEmpty a1628135925) (NonEmpty a1628135925))
type SortBySym2 (t_a38hJ :: TyFun a1628135925 (TyFun a1628135925 Ordering -> Type) -> Type) (t_a38hK :: NonEmpty a1628135925) = SortBy t_a38hJ t_a38hK
data SortWithSym0 (l_a38i5 :: TyFun (TyFun a1628135924 o1628135923 -> Type) (TyFun (NonEmpty a1628135924) (NonEmpty a1628135924) -> Type))
data SortWithSym1 (l_a38i3 :: TyFun a1628135924 o1628135923 -> Type) (l_a38i2 :: TyFun (NonEmpty a1628135924) (NonEmpty a1628135924))
type SortWithSym2 (t_a38i0 :: TyFun a1628135924 o1628135923 -> Type) (t_a38i1 :: NonEmpty a1628135924) = SortWith t_a38i0 t_a38i1
data LengthSym0 (l_a38mR :: TyFun (NonEmpty a1628135989) Nat)
type LengthSym1 (t_a38mQ :: NonEmpty a1628135989) = Length t_a38mQ
data HeadSym0 (l_a38kK :: TyFun (NonEmpty a1628135982) a1628135982)
type HeadSym1 (t_a38kJ :: NonEmpty a1628135982) = Head t_a38kJ
data TailSym0 (l_a38kC :: TyFun (NonEmpty a1628135981) [a1628135981])
type TailSym1 (t_a38kB :: NonEmpty a1628135981) = Tail t_a38kB
data LastSym0 (l_a38kw :: TyFun (NonEmpty a1628135980) a1628135980)
type LastSym1 (t_a38kv :: NonEmpty a1628135980) = Last t_a38kv
data InitSym0 (l_a38kq :: TyFun (NonEmpty a1628135979) [a1628135979])
type InitSym1 (t_a38kp :: NonEmpty a1628135979) = Init t_a38kp
data (:<|$) (l_a38k3 :: TyFun a1628135978 (TyFun (NonEmpty a1628135978) (NonEmpty a1628135978) -> Type))
data (:<|$$) (l_a38k1 :: a1628135978) (l_a38k0 :: TyFun (NonEmpty a1628135978) (NonEmpty a1628135978))
type (:<|$$$) (t_a38jY :: a1628135978) (t_a38jZ :: NonEmpty a1628135978) = (:<|) t_a38jY t_a38jZ
data ConsSym0 (l_a38kj :: TyFun a1628135977 (TyFun (NonEmpty a1628135977) (NonEmpty a1628135977) -> Type))
data ConsSym1 (l_a38kh :: a1628135977) (l_a38kg :: TyFun (NonEmpty a1628135977) (NonEmpty a1628135977))
type ConsSym2 (t_a38ke :: a1628135977) (t_a38kf :: NonEmpty a1628135977) = Cons t_a38ke t_a38kf
data UnconsSym0 (l_a38lT :: TyFun (NonEmpty a1628135985) (a1628135985, Maybe (NonEmpty a1628135985)))
type UnconsSym1 (t_a38lS :: NonEmpty a1628135985) = Uncons t_a38lS
data UnfoldrSym0 (l_a38kW :: TyFun (TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (TyFun a1628135983 (NonEmpty b1628135984) -> Type))
data UnfoldrSym1 (l_a38kU :: TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (l_a38kT :: TyFun a1628135983 (NonEmpty b1628135984))
type UnfoldrSym2 (t_a38kR :: TyFun a1628135983 (b1628135984, Maybe a1628135983) -> Type) (t_a38kS :: a1628135983) = Unfoldr t_a38kR t_a38kS
data SortSym0 (l_a38jU :: TyFun (NonEmpty a1628135976) (NonEmpty a1628135976))
type SortSym1 (t_a38jT :: NonEmpty a1628135976) = Sort t_a38jT
data ReverseSym0 (l_a38hF :: TyFun (NonEmpty a1628135959) (NonEmpty a1628135959))
type ReverseSym1 (t_a38hE :: NonEmpty a1628135959) = Reverse t_a38hE
data InitsSym0 (l_a38ir :: TyFun [a1628135969] (NonEmpty [a1628135969]))
type InitsSym1 (t_a38iq :: [a1628135969]) = Inits t_a38iq
data TailsSym0 (l_a38iy :: TyFun [a1628135968] (NonEmpty [a1628135968]))
type TailsSym1 (t_a38ix :: [a1628135968]) = Tails t_a38ix
data UnfoldSym0 (l_a38m3 :: TyFun (TyFun a1628135987 (b1628135988, Maybe a1628135987) -> Type) (TyFun a1628135987 (NonEmpty b1628135988) -> Type))
data UnfoldSym1 (l_a38m1 :: TyFun a1628135987 (b1628135988, Maybe a1628135987) -> Type) (l_a38m0 :: TyFun a1628135987 (NonEmpty b1628135988))
data InsertSym0 (l_a38iH :: TyFun a1628135967 (TyFun [a1628135967] (NonEmpty a1628135967) -> Type))
data InsertSym1 (l_a38iF :: a1628135967) (l_a38iE :: TyFun [a1628135967] (NonEmpty a1628135967))
type InsertSym2 (t_a38iC :: a1628135967) (t_a38iD :: [a1628135967]) = Insert t_a38iC t_a38iD
data TakeSym0 (l_a38fv :: TyFun Nat (TyFun (NonEmpty a1628135958) [a1628135958] -> Type))
data TakeSym1 (l_a38ft :: Nat) (l_a38fs :: TyFun (NonEmpty a1628135958) [a1628135958])
type TakeSym2 (t_a38fq :: Nat) (t_a38fr :: NonEmpty a1628135958) = Take t_a38fq t_a38fr
data DropSym0 (l_a38fI :: TyFun Nat (TyFun (NonEmpty a1628135957) [a1628135957] -> Type))
data DropSym1 (l_a38fG :: Nat) (l_a38fF :: TyFun (NonEmpty a1628135957) [a1628135957])
type DropSym2 (t_a38fD :: Nat) (t_a38fE :: NonEmpty a1628135957) = Drop t_a38fD t_a38fE
data SplitAtSym0 (l_a38fV :: TyFun Nat (TyFun (NonEmpty a1628135956) ([a1628135956], [a1628135956]) -> Type))
data SplitAtSym1 (l_a38fT :: Nat) (l_a38fS :: TyFun (NonEmpty a1628135956) ([a1628135956], [a1628135956]))
type SplitAtSym2 (t_a38fQ :: Nat) (t_a38fR :: NonEmpty a1628135956) = SplitAt t_a38fQ t_a38fR
data TakeWhileSym0 (l_a38g8 :: TyFun (TyFun a1628135955 Bool -> Type) (TyFun (NonEmpty a1628135955) [a1628135955] -> Type))
data TakeWhileSym1 (l_a38g6 :: TyFun a1628135955 Bool -> Type) (l_a38g5 :: TyFun (NonEmpty a1628135955) [a1628135955])
type TakeWhileSym2 (t_a38g3 :: TyFun a1628135955 Bool -> Type) (t_a38g4 :: NonEmpty a1628135955) = TakeWhile t_a38g3 t_a38g4
data DropWhileSym0 (l_a38gl :: TyFun (TyFun a1628135954 Bool -> Type) (TyFun (NonEmpty a1628135954) [a1628135954] -> Type))
data DropWhileSym1 (l_a38gj :: TyFun a1628135954 Bool -> Type) (l_a38gi :: TyFun (NonEmpty a1628135954) [a1628135954])
type DropWhileSym2 (t_a38gg :: TyFun a1628135954 Bool -> Type) (t_a38gh :: NonEmpty a1628135954) = DropWhile t_a38gg t_a38gh
data SpanSym0 (l_a38gy :: TyFun (TyFun a1628135953 Bool -> Type) (TyFun (NonEmpty a1628135953) ([a1628135953], [a1628135953]) -> Type))
data SpanSym1 (l_a38gw :: TyFun a1628135953 Bool -> Type) (l_a38gv :: TyFun (NonEmpty a1628135953) ([a1628135953], [a1628135953]))
type SpanSym2 (t_a38gt :: TyFun a1628135953 Bool -> Type) (t_a38gu :: NonEmpty a1628135953) = Span t_a38gt t_a38gu
data BreakSym0 (l_a38gL :: TyFun (TyFun a1628135952 Bool -> Type) (TyFun (NonEmpty a1628135952) ([a1628135952], [a1628135952]) -> Type))
data BreakSym1 (l_a38gJ :: TyFun a1628135952 Bool -> Type) (l_a38gI :: TyFun (NonEmpty a1628135952) ([a1628135952], [a1628135952]))
type BreakSym2 (t_a38gG :: TyFun a1628135952 Bool -> Type) (t_a38gH :: NonEmpty a1628135952) = Break t_a38gG t_a38gH
data FilterSym0 (l_a38gY :: TyFun (TyFun a1628135951 Bool -> Type) (TyFun (NonEmpty a1628135951) [a1628135951] -> Type))
data FilterSym1 (l_a38gW :: TyFun a1628135951 Bool -> Type) (l_a38gV :: TyFun (NonEmpty a1628135951) [a1628135951])
type FilterSym2 (t_a38gT :: TyFun a1628135951 Bool -> Type) (t_a38gU :: NonEmpty a1628135951) = Filter t_a38gT t_a38gU
data PartitionSym0 (l_a38hb :: TyFun (TyFun a1628135950 Bool -> Type) (TyFun (NonEmpty a1628135950) ([a1628135950], [a1628135950]) -> Type))
data PartitionSym1 (l_a38h9 :: TyFun a1628135950 Bool -> Type) (l_a38h8 :: TyFun (NonEmpty a1628135950) ([a1628135950], [a1628135950]))
type PartitionSym2 (t_a38h6 :: TyFun a1628135950 Bool -> Type) (t_a38h7 :: NonEmpty a1628135950) = Partition t_a38h6 t_a38h7
data GroupSym0 (l_a38eJ :: TyFun [a1628135949] [NonEmpty a1628135949])
type GroupSym1 (t_a38eI :: [a1628135949]) = Group t_a38eI
data GroupBySym0 (l_a38aI :: TyFun (TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (TyFun [a1628135948] [NonEmpty a1628135948] -> Type))
data GroupBySym1 (l_a38aG :: TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (l_a38aF :: TyFun [a1628135948] [NonEmpty a1628135948])
type GroupBySym2 (t_a38aD :: TyFun a1628135948 (TyFun a1628135948 Bool -> Type) -> Type) (t_a38aE :: [a1628135948]) = GroupBy t_a38aD t_a38aE
data GroupWithSym0 (l_a38cU :: TyFun (TyFun a1628135947 b1628135946 -> Type) (TyFun [a1628135947] [NonEmpty a1628135947] -> Type))
data GroupWithSym1 (l_a38cS :: TyFun a1628135947 b1628135946 -> Type) (l_a38cR :: TyFun [a1628135947] [NonEmpty a1628135947])
type GroupWithSym2 (t_a38cP :: TyFun a1628135947 b1628135946 -> Type) (t_a38cQ :: [a1628135947]) = GroupWith t_a38cP t_a38cQ
data GroupAllWithSym0 (l_a38d7 :: TyFun (TyFun a1628135945 b1628135944 -> Type) (TyFun [a1628135945] [NonEmpty a1628135945] -> Type))
data GroupAllWithSym1 (l_a38d5 :: TyFun a1628135945 b1628135944 -> Type) (l_a38d4 :: TyFun [a1628135945] [NonEmpty a1628135945])
type GroupAllWithSym2 (t_a38d2 :: TyFun a1628135945 b1628135944 -> Type) (t_a38d3 :: [a1628135945]) = GroupAllWith t_a38d2 t_a38d3
data Group1Sym0 (l_a38ep :: TyFun (NonEmpty a1628135943) (NonEmpty (NonEmpty a1628135943)))
type Group1Sym1 (t_a38eo :: NonEmpty a1628135943) = Group1 t_a38eo
data GroupBy1Sym0 (l_a38dk :: TyFun (TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (TyFun (NonEmpty a1628135942) (NonEmpty (NonEmpty a1628135942)) -> Type))
data GroupBy1Sym1 (l_a38di :: TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (l_a38dh :: TyFun (NonEmpty a1628135942) (NonEmpty (NonEmpty a1628135942)))
type GroupBy1Sym2 (t_a38df :: TyFun a1628135942 (TyFun a1628135942 Bool -> Type) -> Type) (t_a38dg :: NonEmpty a1628135942) = GroupBy1 t_a38df t_a38dg
data GroupWith1Sym0 (l_a38ey :: TyFun (TyFun a1628135941 b1628135940 -> Type) (TyFun (NonEmpty a1628135941) (NonEmpty (NonEmpty a1628135941)) -> Type))
data GroupWith1Sym1 (l_a38ew :: TyFun a1628135941 b1628135940 -> Type) (l_a38ev :: TyFun (NonEmpty a1628135941) (NonEmpty (NonEmpty a1628135941)))
type GroupWith1Sym2 (t_a38et :: TyFun a1628135941 b1628135940 -> Type) (t_a38eu :: NonEmpty a1628135941) = GroupWith1 t_a38et t_a38eu
data GroupAllWith1Sym0 (l_a38ig :: TyFun (TyFun a1628135939 b1628135938 -> Type) (TyFun (NonEmpty a1628135939) (NonEmpty (NonEmpty a1628135939)) -> Type))
data GroupAllWith1Sym1 (l_a38ie :: TyFun a1628135939 b1628135938 -> Type) (l_a38id :: TyFun (NonEmpty a1628135939) (NonEmpty (NonEmpty a1628135939)))
type GroupAllWith1Sym2 (t_a38ib :: TyFun a1628135939 b1628135938 -> Type) (t_a38ic :: NonEmpty a1628135939) = GroupAllWith1 t_a38ib t_a38ic
data IsPrefixOfSym0 (l_a38as :: TyFun [a1628135937] (TyFun (NonEmpty a1628135937) Bool -> Type))
data IsPrefixOfSym1 (l_a38aq :: [a1628135937]) (l_a38ap :: TyFun (NonEmpty a1628135937) Bool)
type IsPrefixOfSym2 (t_a38an :: [a1628135937]) (t_a38ao :: NonEmpty a1628135937) = IsPrefixOf t_a38an t_a38ao
data NubSym0 (l_a388n :: TyFun (NonEmpty a1628135928) (NonEmpty a1628135928))
type NubSym1 (t_a388m :: NonEmpty a1628135928) = Nub t_a388m
data NubBySym0 (l_a387R :: TyFun (TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (TyFun (NonEmpty a1628135927) (NonEmpty a1628135927) -> Type))
data NubBySym1 (l_a387P :: TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (l_a387O :: TyFun (NonEmpty a1628135927) (NonEmpty a1628135927))
type NubBySym2 (t_a387M :: TyFun a1628135927 (TyFun a1628135927 Bool -> Type) -> Type) (t_a387N :: NonEmpty a1628135927) = NubBy t_a387M t_a387N
data (:!!$) (l_a38a5 :: TyFun (NonEmpty a1628135936) (TyFun Nat a1628135936 -> Type))
data (:!!$$) (l_a38a3 :: NonEmpty a1628135936) (l_a38a2 :: TyFun Nat a1628135936)
type (:!!$$$) (t_a38a0 :: NonEmpty a1628135936) (t_a38a1 :: Nat) = (:!!) t_a38a0 t_a38a1
data ZipSym0 (l_a389S :: TyFun (NonEmpty a1628135934) (TyFun (NonEmpty b1628135935) (NonEmpty (a1628135934, b1628135935)) -> Type))
data ZipSym1 (l_a389Q :: NonEmpty a1628135934) (l_a389P :: TyFun (NonEmpty b1628135935) (NonEmpty (a1628135934, b1628135935)))
type ZipSym2 (t_a389N :: NonEmpty a1628135934) (t_a389O :: NonEmpty b1628135935) = Zip t_a389N t_a389O
data ZipWithSym0 (l_a389D :: TyFun (TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (TyFun (NonEmpty a1628135931) (TyFun (NonEmpty b1628135932) (NonEmpty c1628135933) -> Type) -> Type))
data ZipWithSym1 (l_a389B :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (l_a389A :: TyFun (NonEmpty a1628135931) (TyFun (NonEmpty b1628135932) (NonEmpty c1628135933) -> Type))
data ZipWithSym2 (l_a389x :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (l_a389y :: NonEmpty a1628135931) (l_a389w :: TyFun (NonEmpty b1628135932) (NonEmpty c1628135933))
type ZipWithSym3 (t_a389t :: TyFun a1628135931 (TyFun b1628135932 c1628135933 -> Type) -> Type) (t_a389u :: NonEmpty a1628135931) (t_a389v :: NonEmpty b1628135932) = ZipWith t_a389t t_a389u t_a389v
data UnzipSym0 (l_a388s :: TyFun (NonEmpty (a1628135929, b1628135930)) (NonEmpty a1628135929, NonEmpty b1628135930))
type UnzipSym1 (t_a388r :: NonEmpty (a1628135929, b1628135930)) = Unzip t_a388r
data FromListSym0 (l_a38hk :: TyFun [a1628135975] (NonEmpty a1628135975))
type FromListSym1 (t_a38hj :: [a1628135975]) = FromList t_a38hj
data ToListSym0 (l_a38fl :: TyFun (NonEmpty a1628135974) [a1628135974])
type ToListSym1 (t_a38fk :: NonEmpty a1628135974) = ToList t_a38fk
data NonEmpty_Sym0 (l_a38lN :: TyFun [a1628135986] (Maybe (NonEmpty a1628135986)))
type NonEmpty_Sym1 (t_a38lM :: [a1628135986]) = NonEmpty_ t_a38lM
data XorSym0 (l_a38mo :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a38mn :: NonEmpty Bool) = Xor t_a38mn


-- | Defines the promoted and singleton version of Bounded, <a>PBounded</a>
--   and <a>SBounded</a>
module Data.Singletons.Prelude.Enum
class PBounded (a_a3smd :: Type) where {
    type family MinBound :: a_a3smd;
    type family MaxBound :: a_a3smd;
}
class SBounded a_a3smd
sMinBound :: SBounded a_a3smd => Sing (MinBoundSym0 :: a_a3smd)
sMaxBound :: SBounded a_a3smd => Sing (MaxBoundSym0 :: a_a3smd)
class PEnum (a_a3tpj :: Type) where {
    type family Succ (arg_a3txT :: a_a3tpj) :: a_a3tpj;
    type family Pred (arg_a3txX :: a_a3tpj) :: a_a3tpj;
    type family ToEnum (arg_a3ty1 :: Nat) :: a_a3tpj;
    type family FromEnum (arg_a3ty5 :: a_a3tpj) :: Nat;
    type family EnumFromTo (arg_a3ty9 :: a_a3tpj) (arg_a3tya :: a_a3tpj) :: [a_a3tpj];
    type family EnumFromThenTo (arg_a3tyi :: a_a3tpj) (arg_a3tyj :: a_a3tpj) (arg_a3tyk :: a_a3tpj) :: [a_a3tpj];
    type Succ a_a3tyP = Apply Succ_1628218572Sym0 a_a3tyP;
    type Pred a_a3tz2 = Apply Pred_1628218585Sym0 a_a3tz2;
    type EnumFromTo a_a3tzj a_a3tzk =
        Apply (Apply EnumFromTo_1628218603Sym0 a_a3tzj) a_a3tzk;
    type EnumFromThenTo a_a3tzM a_a3tzN a_a3tzO =
        Apply (Apply (Apply EnumFromThenTo_1628218633Sym0 a_a3tzM) a_a3tzN) a_a3tzO;
}
class SEnum a_a3tpj
sSucc :: forall (t_a3tCm :: a_a3tpj). SEnum a_a3tpj => Sing t_a3tCm -> Sing (Apply SuccSym0 t_a3tCm :: a_a3tpj)
sPred :: forall (t_a3tCn :: a_a3tpj). SEnum a_a3tpj => Sing t_a3tCn -> Sing (Apply PredSym0 t_a3tCn :: a_a3tpj)
sToEnum :: forall (t_a3tCo :: Nat). SEnum a_a3tpj => Sing t_a3tCo -> Sing (Apply ToEnumSym0 t_a3tCo :: a_a3tpj)
sFromEnum :: forall (t_a3tCp :: a_a3tpj). SEnum a_a3tpj => Sing t_a3tCp -> Sing (Apply FromEnumSym0 t_a3tCp :: Nat)
sEnumFromTo :: forall (t_a3tCq :: a_a3tpj) (t_a3tCr :: a_a3tpj). SEnum a_a3tpj => Sing t_a3tCq -> Sing t_a3tCr -> Sing (Apply (Apply EnumFromToSym0 t_a3tCq) t_a3tCr :: [a_a3tpj])
sEnumFromThenTo :: forall (t_a3tCs :: a_a3tpj) (t_a3tCt :: a_a3tpj) (t_a3tCu :: a_a3tpj). SEnum a_a3tpj => Sing t_a3tCs -> Sing t_a3tCt -> Sing t_a3tCu -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3tCs) t_a3tCt) t_a3tCu :: [a_a3tpj])
sSucc :: forall (t_a3tCm :: a_a3tpj). (SEnum a_a3tpj, (Apply SuccSym0 t_a3tCm :: a_a3tpj) ~ Apply Succ_1628218572Sym0 t_a3tCm) => Sing t_a3tCm -> Sing (Apply SuccSym0 t_a3tCm :: a_a3tpj)
sPred :: forall (t_a3tCn :: a_a3tpj). (SEnum a_a3tpj, (Apply PredSym0 t_a3tCn :: a_a3tpj) ~ Apply Pred_1628218585Sym0 t_a3tCn) => Sing t_a3tCn -> Sing (Apply PredSym0 t_a3tCn :: a_a3tpj)
sEnumFromTo :: forall (t_a3tCq :: a_a3tpj) (t_a3tCr :: a_a3tpj). (SEnum a_a3tpj, (Apply (Apply EnumFromToSym0 t_a3tCq) t_a3tCr :: [a_a3tpj]) ~ Apply (Apply EnumFromTo_1628218603Sym0 t_a3tCq) t_a3tCr) => Sing t_a3tCq -> Sing t_a3tCr -> Sing (Apply (Apply EnumFromToSym0 t_a3tCq) t_a3tCr :: [a_a3tpj])
sEnumFromThenTo :: forall (t_a3tCs :: a_a3tpj) (t_a3tCt :: a_a3tpj) (t_a3tCu :: a_a3tpj). (SEnum a_a3tpj, (Apply (Apply (Apply EnumFromThenToSym0 t_a3tCs) t_a3tCt) t_a3tCu :: [a_a3tpj]) ~ Apply (Apply (Apply EnumFromThenTo_1628218633Sym0 t_a3tCs) t_a3tCt) t_a3tCu) => Sing t_a3tCs -> Sing t_a3tCt -> Sing t_a3tCu -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3tCs) t_a3tCt) t_a3tCu :: [a_a3tpj])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3txV :: TyFun a1628217981 a1628217981)
type SuccSym1 (t_a3txU :: a1628217981) = Succ t_a3txU
data PredSym0 (l_a3txZ :: TyFun a1628217981 a1628217981)
type PredSym1 (t_a3txY :: a1628217981) = Pred t_a3txY
data ToEnumSym0 (l_a3ty3 :: TyFun Nat a1628217981)
type ToEnumSym1 (t_a3ty2 :: Nat) = ToEnum t_a3ty2
data FromEnumSym0 (l_a3ty7 :: TyFun a1628217981 Nat)
type FromEnumSym1 (t_a3ty6 :: a1628217981) = FromEnum t_a3ty6
data EnumFromToSym0 (l_a3tyg :: TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type))
data EnumFromToSym1 (l_a3tye :: a1628217981) (l_a3tyd :: TyFun a1628217981 [a1628217981])
type EnumFromToSym2 (t_a3tyb :: a1628217981) (t_a3tyc :: a1628217981) = EnumFromTo t_a3tyb t_a3tyc
data EnumFromThenToSym0 (l_a3tyv :: TyFun a1628217981 (TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3tyt :: a1628217981) (l_a3tys :: TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type))
data EnumFromThenToSym2 (l_a3typ :: a1628217981) (l_a3tyq :: a1628217981) (l_a3tyo :: TyFun a1628217981 [a1628217981])
type EnumFromThenToSym3 (t_a3tyl :: a1628217981) (t_a3tym :: a1628217981) (t_a3tyn :: a1628217981) = EnumFromThenTo t_a3tyl t_a3tym t_a3tyn
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_1628237091Sym0
instance Data.Singletons.Prelude.Enum.PEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_1628237081Sym0
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_1628237066Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_1628237056Sym0
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_1628237034Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_1628237024Sym0
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Bool
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Nat
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218744Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Nat
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218744Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218744Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_1628218708Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_1628218708Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_1628218686Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_1628218675Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_1628218664Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_1628218653Sym0
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_1628218572Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_1628218585Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_1628218603Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_1628218603Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218633Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218633Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_1628218633Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_1628218560Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_1628218560Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EftNatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EftNatSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatUpSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EfdtNatDnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218452GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218452GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218452GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218452GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218452GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218480Scrutinee_1628218018Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218480Scrutinee_1628218018Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218480Scrutinee_1628218018Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218480Scrutinee_1628218018Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218480Scrutinee_1628218018Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218290DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218253Scrutinee_1628218032Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218108DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let1628218071Scrutinee_1628218042Sym5
instance Data.Singletons.Prelude.Enum.PBounded ()
instance Data.Singletons.Prelude.Enum.PBounded GHC.Types.Ordering
instance Data.Singletons.Prelude.Enum.PBounded GHC.Types.Bool
instance Data.Singletons.Prelude.Enum.PBounded (a, b, c, d, e, f, g)
instance Data.Singletons.Prelude.Enum.PBounded (a, b, c, d, e, f)
instance Data.Singletons.Prelude.Enum.PBounded (a, b, c, d, e)
instance Data.Singletons.Prelude.Enum.PBounded (a, b, c, d)
instance Data.Singletons.Prelude.Enum.PBounded (a, b, c)
instance Data.Singletons.Prelude.Enum.PBounded (a, b)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b) => Data.Singletons.Prelude.Enum.SBounded (a, b)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b, Data.Singletons.Prelude.Enum.SBounded c) => Data.Singletons.Prelude.Enum.SBounded (a, b, c)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b, Data.Singletons.Prelude.Enum.SBounded c, Data.Singletons.Prelude.Enum.SBounded d) => Data.Singletons.Prelude.Enum.SBounded (a, b, c, d)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b, Data.Singletons.Prelude.Enum.SBounded c, Data.Singletons.Prelude.Enum.SBounded d, Data.Singletons.Prelude.Enum.SBounded e) => Data.Singletons.Prelude.Enum.SBounded (a, b, c, d, e)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b, Data.Singletons.Prelude.Enum.SBounded c, Data.Singletons.Prelude.Enum.SBounded d, Data.Singletons.Prelude.Enum.SBounded e, Data.Singletons.Prelude.Enum.SBounded f) => Data.Singletons.Prelude.Enum.SBounded (a, b, c, d, e, f)
instance (Data.Singletons.Prelude.Enum.SBounded a, Data.Singletons.Prelude.Enum.SBounded b, Data.Singletons.Prelude.Enum.SBounded c, Data.Singletons.Prelude.Enum.SBounded d, Data.Singletons.Prelude.Enum.SBounded e, Data.Singletons.Prelude.Enum.SBounded f, Data.Singletons.Prelude.Enum.SBounded g) => Data.Singletons.Prelude.Enum.SBounded (a, b, c, d, e, f, g)
instance Data.Singletons.Prelude.Enum.SBounded GHC.Types.Bool
instance Data.Singletons.Prelude.Enum.SBounded GHC.Types.Ordering
instance Data.Singletons.Prelude.Enum.SBounded ()


-- | Exports promoted versions of <a>Enum</a> and <a>Bounded</a>
module Data.Promotion.Prelude.Enum
class PBounded (a_a3smd :: Type) where {
    type family MinBound :: a_a3smd;
    type family MaxBound :: a_a3smd;
}
class PEnum (a_a3tpj :: Type) where {
    type family Succ (arg_a3txT :: a_a3tpj) :: a_a3tpj;
    type family Pred (arg_a3txX :: a_a3tpj) :: a_a3tpj;
    type family ToEnum (arg_a3ty1 :: Nat) :: a_a3tpj;
    type family FromEnum (arg_a3ty5 :: a_a3tpj) :: Nat;
    type family EnumFromTo (arg_a3ty9 :: a_a3tpj) (arg_a3tya :: a_a3tpj) :: [a_a3tpj];
    type family EnumFromThenTo (arg_a3tyi :: a_a3tpj) (arg_a3tyj :: a_a3tpj) (arg_a3tyk :: a_a3tpj) :: [a_a3tpj];
    type Succ a_a3tyP = Apply Succ_1628218572Sym0 a_a3tyP;
    type Pred a_a3tz2 = Apply Pred_1628218585Sym0 a_a3tz2;
    type EnumFromTo a_a3tzj a_a3tzk =
        Apply (Apply EnumFromTo_1628218603Sym0 a_a3tzj) a_a3tzk;
    type EnumFromThenTo a_a3tzM a_a3tzN a_a3tzO =
        Apply (Apply (Apply EnumFromThenTo_1628218633Sym0 a_a3tzM) a_a3tzN) a_a3tzO;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3txV :: TyFun a1628217981 a1628217981)
type SuccSym1 (t_a3txU :: a1628217981) = Succ t_a3txU
data PredSym0 (l_a3txZ :: TyFun a1628217981 a1628217981)
type PredSym1 (t_a3txY :: a1628217981) = Pred t_a3txY
data ToEnumSym0 (l_a3ty3 :: TyFun Nat a1628217981)
type ToEnumSym1 (t_a3ty2 :: Nat) = ToEnum t_a3ty2
data FromEnumSym0 (l_a3ty7 :: TyFun a1628217981 Nat)
type FromEnumSym1 (t_a3ty6 :: a1628217981) = FromEnum t_a3ty6
data EnumFromToSym0 (l_a3tyg :: TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type))
data EnumFromToSym1 (l_a3tye :: a1628217981) (l_a3tyd :: TyFun a1628217981 [a1628217981])
type EnumFromToSym2 (t_a3tyb :: a1628217981) (t_a3tyc :: a1628217981) = EnumFromTo t_a3tyb t_a3tyc
data EnumFromThenToSym0 (l_a3tyv :: TyFun a1628217981 (TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3tyt :: a1628217981) (l_a3tys :: TyFun a1628217981 (TyFun a1628217981 [a1628217981] -> Type))
data EnumFromThenToSym2 (l_a3typ :: a1628217981) (l_a3tyq :: a1628217981) (l_a3tyo :: TyFun a1628217981 [a1628217981])
type EnumFromThenToSym3 (t_a3tyl :: a1628217981) (t_a3tym :: a1628217981) (t_a3tyn :: a1628217981) = EnumFromThenTo t_a3tyl t_a3tym t_a3tyn


-- | 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_11] -> Type)
type SMaybe = (Sing :: Maybe a_11 -> Type)
type SEither = (Sing :: Either a_ah9H b_ah9I -> Type)
type SOrdering = (Sing :: Ordering -> Type)
type STuple0 = (Sing :: () -> Type)
type STuple2 = (Sing :: (a_11, b_12) -> Type)
type STuple3 = (Sing :: (a_11, b_12, c_13) -> Type)
type STuple4 = (Sing :: (a_11, b_12, c_13, d_14) -> Type)
type STuple5 = (Sing :: (a_11, b_12, c_13, d_14, e_15) -> Type)
type STuple6 = (Sing :: (a_11, b_12, c_13, d_14, e_15, f_16) -> Type)
type STuple7 = (Sing :: (a_11, b_12, c_13, d_14, e_15, f_16, g_17) -> 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_a1aDk :: Bool). Sing t_a1aDk -> Sing (Apply NotSym0 t_a1aDk :: Bool)
(%:&&) :: forall (t_a1aDn :: Bool) (t_a1aDo :: Bool). Sing t_a1aDn -> Sing t_a1aDo -> Sing (Apply (Apply (:&&$) t_a1aDn) t_a1aDo :: Bool)
infixr 3 %:&&
(%:||) :: forall (t_a1aDl :: Bool) (t_a1aDm :: Bool). Sing t_a1aDl -> Sing t_a1aDm -> Sing (Apply (Apply (:||$) t_a1aDl) t_a1aDm :: 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_a1IEA :: TyFun k01627798799 k1627798801)

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a
sId :: forall (t_a1bys :: a_a1buQ). Sing t_a1bys -> Sing (Apply IdSym0 t_a1bys :: a_a1buQ)
sConst :: forall (t_a1byo :: a_a1buO) (t_a1byp :: b_a1buP). Sing t_a1byo -> Sing t_a1byp -> Sing (Apply (Apply ConstSym0 t_a1byo) t_a1byp :: a_a1buO)
(%:.) :: forall (t_a1byl :: TyFun b_a1buL c_a1buM -> Type) (t_a1bym :: TyFun a_a1buN b_a1buL -> Type) (t_a1byn :: a_a1buN). Sing t_a1byl -> Sing t_a1bym -> Sing t_a1byn -> Sing (Apply (Apply (Apply (:.$) t_a1byl) t_a1bym) t_a1byn :: c_a1buM)
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_a1byi :: TyFun a_a1buI (TyFun b_a1buJ c_a1buK -> Type) -> Type) (t_a1byj :: b_a1buJ) (t_a1byk :: a_a1buI). Sing t_a1byi -> Sing t_a1byj -> Sing t_a1byk -> Sing (Apply (Apply (Apply FlipSym0 t_a1byi) t_a1byj) t_a1byk :: c_a1buK)
sAsTypeOf :: forall (t_a1byq :: a_a1buH) (t_a1byr :: a_a1buH). Sing t_a1byq -> Sing t_a1byr -> Sing (Apply (Apply AsTypeOfSym0 t_a1byq) t_a1byr :: a_a1buH)
sSeq :: forall (t_a1byg :: a_a1buF) (t_a1byh :: b_a1buG). Sing t_a1byg -> Sing t_a1byh -> Sing (Apply (Apply SeqSym0 t_a1byg) t_a1byh :: b_a1buG)
infixr 0 `sSeq`
sMap :: forall (t_a1byv :: TyFun a_a1buS b_a1buT -> Type) (t_a1byw :: [a_a1buS]). Sing t_a1byv -> Sing t_a1byw -> Sing (Apply (Apply MapSym0 t_a1byv) t_a1byw :: [b_a1buT])
(%:++) :: forall (t_a1byt :: [a_a1buR]) (t_a1byu :: [a_a1buR]). Sing t_a1byt -> Sing t_a1byu -> Sing (Apply (Apply (:++$) t_a1byt) t_a1byu :: [a_a1buR])
infixr 5 %:++
sHead :: forall (t_a1YmC :: [a_a1Xib]). Sing t_a1YmC -> Sing (Apply HeadSym0 t_a1YmC :: a_a1Xib)
sLast :: forall (t_a1YmB :: [a_a1Xia]). Sing t_a1YmB -> Sing (Apply LastSym0 t_a1YmB :: a_a1Xia)
sTail :: forall (t_a1YmA :: [a_a1Xi9]). Sing t_a1YmA -> Sing (Apply TailSym0 t_a1YmA :: [a_a1Xi9])
sInit :: forall (t_a1Ymz :: [a_a1Xi8]). Sing t_a1Ymz -> Sing (Apply InitSym0 t_a1Ymz :: [a_a1Xi8])
sNull :: forall (t_a1Ymw :: [a_a1Xi7]). Sing t_a1Ymw -> Sing (Apply NullSym0 t_a1Ymw :: Bool)
sReverse :: forall (t_a1Ymt :: [a_a1Xi6]). Sing t_a1Ymt -> Sing (Apply ReverseSym0 t_a1Ymt :: [a_a1Xi6])
sFoldl :: forall (t_a10ZT :: TyFun b_a10YV (TyFun a_a10YU b_a10YV -> Type) -> Type) (t_a10ZU :: b_a10YV) (t_a10ZV :: [a_a10YU]). Sing t_a10ZT -> Sing t_a10ZU -> Sing t_a10ZV -> Sing (Apply (Apply (Apply FoldlSym0 t_a10ZT) t_a10ZU) t_a10ZV :: b_a10YV)
sFoldl1 :: forall (t_a1Ym7 :: TyFun a_a1XhX (TyFun a_a1XhX a_a1XhX -> Type) -> Type) (t_a1Ym8 :: [a_a1XhX]). Sing t_a1Ym7 -> Sing t_a1Ym8 -> Sing (Apply (Apply Foldl1Sym0 t_a1Ym7) t_a1Ym8 :: a_a1XhX)
sFoldr :: forall (t_a1byx :: TyFun a_a1buU (TyFun b_a1buV b_a1buV -> Type) -> Type) (t_a1byy :: b_a1buV) (t_a1byz :: [a_a1buU]). Sing t_a1byx -> Sing t_a1byy -> Sing t_a1byz -> Sing (Apply (Apply (Apply FoldrSym0 t_a1byx) t_a1byy) t_a1byz :: b_a1buV)
sFoldr1 :: forall (t_a1Ym5 :: TyFun a_a1XhV (TyFun a_a1XhV a_a1XhV -> Type) -> Type) (t_a1Ym6 :: [a_a1XhV]). Sing t_a1Ym5 -> Sing t_a1Ym6 -> Sing (Apply (Apply Foldr1Sym0 t_a1Ym5) t_a1Ym6 :: a_a1XhV)
sAnd :: forall (t_a1Ym1 :: [Bool]). Sing t_a1Ym1 -> Sing (Apply AndSym0 t_a1Ym1 :: Bool)
sOr :: forall (t_a1Ym0 :: [Bool]). Sing t_a1Ym0 -> Sing (Apply OrSym0 t_a1Ym0 :: Bool)
sAny_ :: forall (t_a1UDp :: TyFun a_a1UD5 Bool -> Type) (t_a1UDq :: [a_a1UD5]). Sing t_a1UDp -> Sing t_a1UDq -> Sing (Apply (Apply Any_Sym0 t_a1UDp) t_a1UDq :: Bool)
sAll :: forall (t_a1YlY :: TyFun a_a1XhR Bool -> Type) (t_a1YlZ :: [a_a1XhR]). Sing t_a1YlY -> Sing t_a1YlZ -> Sing (Apply (Apply AllSym0 t_a1YlY) t_a1YlZ :: Bool)
sConcat :: forall (t_a1Ym4 :: [[a_a1XhU]]). Sing t_a1Ym4 -> Sing (Apply ConcatSym0 t_a1Ym4 :: [a_a1XhU])
sConcatMap :: forall (t_a1Ym2 :: TyFun a_a1XhS [b_a1XhT] -> Type) (t_a1Ym3 :: [a_a1XhS]). Sing t_a1Ym2 -> Sing t_a1Ym3 -> Sing (Apply (Apply ConcatMapSym0 t_a1Ym2) t_a1Ym3 :: [b_a1XhT])
sScanl :: forall (t_a1YlT :: TyFun b_a1XhP (TyFun a_a1XhQ b_a1XhP -> Type) -> Type) (t_a1YlU :: b_a1XhP) (t_a1YlV :: [a_a1XhQ]). Sing t_a1YlT -> Sing t_a1YlU -> Sing t_a1YlV -> Sing (Apply (Apply (Apply ScanlSym0 t_a1YlT) t_a1YlU) t_a1YlV :: [b_a1XhP])
sScanl1 :: forall (t_a1YlW :: TyFun a_a1XhO (TyFun a_a1XhO a_a1XhO -> Type) -> Type) (t_a1YlX :: [a_a1XhO]). Sing t_a1YlW -> Sing t_a1YlX -> Sing (Apply (Apply Scanl1Sym0 t_a1YlW) t_a1YlX :: [a_a1XhO])
sScanr :: forall (t_a1YlQ :: TyFun a_a1XhM (TyFun b_a1XhN b_a1XhN -> Type) -> Type) (t_a1YlR :: b_a1XhN) (t_a1YlS :: [a_a1XhM]). Sing t_a1YlQ -> Sing t_a1YlR -> Sing t_a1YlS -> Sing (Apply (Apply (Apply ScanrSym0 t_a1YlQ) t_a1YlR) t_a1YlS :: [b_a1XhN])
sScanr1 :: forall (t_a1YlO :: TyFun a_a1XhL (TyFun a_a1XhL a_a1XhL -> Type) -> Type) (t_a1YlP :: [a_a1XhL]). Sing t_a1YlO -> Sing t_a1YlP -> Sing (Apply (Apply Scanr1Sym0 t_a1YlO) t_a1YlP :: [a_a1XhL])
sElem :: forall (t_a1Ylx :: a_a1Xhx) (t_a1Yly :: [a_a1Xhx]). SEq a_a1Xhx => Sing t_a1Ylx -> Sing t_a1Yly -> Sing (Apply (Apply ElemSym0 t_a1Ylx) t_a1Yly :: Bool)
sNotElem :: forall (t_a1Ylv :: a_a1Xhw) (t_a1Ylw :: [a_a1Xhw]). SEq a_a1Xhw => Sing t_a1Ylv -> Sing t_a1Ylw -> Sing (Apply (Apply NotElemSym0 t_a1Ylv) t_a1Ylw :: Bool)
sLookup :: forall (t_a1Ykg :: a_a1Xgn) (t_a1Ykh :: [(a_a1Xgn, b_a1Xgo)]). SEq a_a1Xgn => Sing t_a1Ykg -> Sing t_a1Ykh -> Sing (Apply (Apply LookupSym0 t_a1Ykg) t_a1Ykh :: Maybe b_a1Xgo)
sZip :: forall (t_a1Yll :: [a_a1Xhu]) (t_a1Ylm :: [b_a1Xhv]). Sing t_a1Yll -> Sing t_a1Ylm -> Sing (Apply (Apply ZipSym0 t_a1Yll) t_a1Ylm :: [(a_a1Xhu, b_a1Xhv)])
sZip3 :: forall (t_a1Yli :: [a_a1Xhr]) (t_a1Ylj :: [b_a1Xhs]) (t_a1Ylk :: [c_a1Xht]). Sing t_a1Yli -> Sing t_a1Ylj -> Sing t_a1Ylk -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1Yli) t_a1Ylj) t_a1Ylk :: [(a_a1Xhr, b_a1Xhs, c_a1Xht)])
sZipWith :: forall (t_a1Ylf :: TyFun a_a1Xho (TyFun b_a1Xhp c_a1Xhq -> Type) -> Type) (t_a1Ylg :: [a_a1Xho]) (t_a1Ylh :: [b_a1Xhp]). Sing t_a1Ylf -> Sing t_a1Ylg -> Sing t_a1Ylh -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1Ylf) t_a1Ylg) t_a1Ylh :: [c_a1Xhq])
sZipWith3 :: forall (t_a1Ylb :: TyFun a_a1Xhk (TyFun b_a1Xhl (TyFun c_a1Xhm d_a1Xhn -> Type) -> Type) -> Type) (t_a1Ylc :: [a_a1Xhk]) (t_a1Yld :: [b_a1Xhl]) (t_a1Yle :: [c_a1Xhm]). Sing t_a1Ylb -> Sing t_a1Ylc -> Sing t_a1Yld -> Sing t_a1Yle -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1Ylb) t_a1Ylc) t_a1Yld) t_a1Yle :: [d_a1Xhn])
sUnzip :: forall (t_a1Yla :: [(a_a1Xhi, b_a1Xhj)]). Sing t_a1Yla -> Sing (Apply UnzipSym0 t_a1Yla :: ([a_a1Xhi], [b_a1Xhj]))
sUnzip3 :: forall (t_a1Yl9 :: [(a_a1Xhf, b_a1Xhg, c_a1Xhh)]). Sing t_a1Yl9 -> Sing (Apply Unzip3Sym0 t_a1Yl9 :: ([a_a1Xhf], [b_a1Xhg], [c_a1Xhh]))
sMaybe_ :: forall (t_a1OTt :: b_a1OSZ) (t_a1OTu :: TyFun a_a1OT0 b_a1OSZ -> Type) (t_a1OTv :: Maybe a_a1OT0). Sing t_a1OTt -> Sing t_a1OTu -> Sing t_a1OTv -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1OTt) t_a1OTu) t_a1OTv :: b_a1OSZ)
sEither_ :: forall (t_a1Rwk :: TyFun a_a1RvN c_a1RvO -> Type) (t_a1Rwl :: TyFun b_a1RvP c_a1RvO -> Type) (t_a1Rwm :: Either a_a1RvN b_a1RvP). Sing t_a1Rwk -> Sing t_a1Rwl -> Sing t_a1Rwm -> Sing (Apply (Apply (Apply Either_Sym0 t_a1Rwk) t_a1Rwl) t_a1Rwm :: c_a1RvO)
sFst :: forall (t_a1NR3 :: (a_a1NPT, b_a1NPU)). Sing t_a1NR3 -> Sing (Apply FstSym0 t_a1NR3 :: a_a1NPT)
sSnd :: forall (t_a1NR2 :: (a_a1NPR, b_a1NPS)). Sing t_a1NR2 -> Sing (Apply SndSym0 t_a1NR2 :: b_a1NPS)
sCurry :: forall (t_a1NQZ :: TyFun (a_a1NPO, b_a1NPP) c_a1NPQ -> Type) (t_a1NR0 :: a_a1NPO) (t_a1NR1 :: b_a1NPP). Sing t_a1NQZ -> Sing t_a1NR0 -> Sing t_a1NR1 -> Sing (Apply (Apply (Apply CurrySym0 t_a1NQZ) t_a1NR0) t_a1NR1 :: c_a1NPQ)
sUncurry :: forall (t_a1NR4 :: TyFun a_a1NPL (TyFun b_a1NPM c_a1NPN -> Type) -> Type) (t_a1NR5 :: (a_a1NPL, b_a1NPM)). Sing t_a1NR4 -> Sing t_a1NR5 -> Sing (Apply (Apply UncurrySym0 t_a1NR4) t_a1NR5 :: c_a1NPN)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol :: *
either_ :: (a_a1RvN -> c_a1RvO) -> (b_a1RvP -> c_a1RvO) -> Either a_a1RvN b_a1RvP -> c_a1RvO
maybe_ :: b_a1OSZ -> (a_a1OT0 -> b_a1OSZ) -> Maybe a_a1OT0 -> b_a1OSZ
bool_ :: a_a1asP -> a_a1asP -> Bool -> a_a1asP
any_ :: (a_a1UD5 -> Bool) -> [a_a1UD5] -> Bool
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a1aCR :: TyFun Bool Bool)
type NotSym1 (t_a1aCQ :: Bool) = Not t_a1aCQ
data (:&&$) (l_a1aDc :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1aDa :: Bool) (l_a1aD9 :: TyFun Bool Bool)
type (:&&$$$) (t_a1aD7 :: Bool) (t_a1aD8 :: Bool) = (:&&) t_a1aD7 t_a1aD8
data (:||$) (l_a1aCZ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1aCX :: Bool) (l_a1aCW :: TyFun Bool Bool)
type (:||$$$) (t_a1aCU :: Bool) (t_a1aCV :: Bool) = (:||) t_a1aCU t_a1aCV
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_aXZf :: TyFun a822083585 (Maybe a822083585))
type JustSym1 (t_aXZe :: a822083585) = Just t_aXZe
data Maybe_Sym0 (l_a1OTf :: TyFun b1627823889 (TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type) -> Type))
data Maybe_Sym1 (l_a1OTd :: b1627823889) (l_a1OTc :: TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type))
data Maybe_Sym2 (l_a1OT9 :: b1627823889) (l_a1OTa :: TyFun a1627823890 b1627823889 -> Type) (l_a1OT8 :: TyFun (Maybe a1627823890) b1627823889)
type Maybe_Sym3 (t_a1OT5 :: b1627823889) (t_a1OT6 :: TyFun a1627823890 b1627823889 -> Type) (t_a1OT7 :: Maybe a1627823890) = Maybe_ t_a1OT5 t_a1OT6 t_a1OT7
data LeftSym0 (l_aXZG :: TyFun a1627455901 (Either a1627455901 b1627455902))
type LeftSym1 (t_aXZF :: a1627455901) = Left t_aXZF
data RightSym0 (l_aXZJ :: TyFun b1627455902 (Either a1627455901 b1627455902))
type RightSym1 (t_aXZI :: b1627455902) = Right t_aXZI
data Either_Sym0 (l_a1Rw5 :: TyFun (TyFun a1627833983 c1627833984 -> Type) (TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type) -> Type))
data Either_Sym1 (l_a1Rw3 :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw2 :: TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type))
data Either_Sym2 (l_a1RvZ :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw0 :: TyFun b1627833985 c1627833984 -> Type) (l_a1RvY :: TyFun (Either a1627833983 b1627833985) c1627833984)
type Either_Sym3 (t_a1RvV :: TyFun a1627833983 c1627833984 -> Type) (t_a1RvW :: TyFun b1627833985 c1627833984 -> Type) (t_a1RvX :: Either a1627833983 b1627833985) = Either_ t_a1RvV t_a1RvW t_a1RvX
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data FstSym0 (l_a1NQG :: TyFun (a1627819853, b1627819854) a1627819853)
type FstSym1 (t_a1NQF :: (a1627819853, b1627819854)) = Fst t_a1NQF
data SndSym0 (l_a1NQy :: TyFun (a1627819851, b1627819852) b1627819852)
type SndSym1 (t_a1NQx :: (a1627819851, b1627819852)) = Snd t_a1NQx
data CurrySym0 (l_a1NQp :: TyFun (TyFun (a1627819848, b1627819849) c1627819850 -> Type) (TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type) -> Type))
data CurrySym1 (l_a1NQn :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQm :: TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type))
data CurrySym2 (l_a1NQj :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQk :: a1627819848) (l_a1NQi :: TyFun b1627819849 c1627819850)
type CurrySym3 (t_a1NQf :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (t_a1NQg :: a1627819848) (t_a1NQh :: b1627819849) = Curry t_a1NQf t_a1NQg t_a1NQh
data UncurrySym0 (l_a1NQS :: TyFun (TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (TyFun (a1627819845, b1627819846) c1627819847 -> Type))
data UncurrySym1 (l_a1NQQ :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (l_a1NQP :: TyFun (a1627819845, b1627819846) c1627819847)
type UncurrySym2 (t_a1NQN :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (t_a1NQO :: (a1627819845, b1627819846)) = Uncurry t_a1NQN t_a1NQO
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
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_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
data AsTypeOfSym0 (l_a1bwX :: TyFun a1627672467 (TyFun a1627672467 a1627672467 -> Type))
data AsTypeOfSym1 (l_a1bwV :: a1627672467) (l_a1bwU :: TyFun a1627672467 a1627672467)
type AsTypeOfSym2 (t_a1bwS :: a1627672467) (t_a1bwT :: a1627672467) = AsTypeOf t_a1bwS t_a1bwT
data SeqSym0 (l_a1bvv :: TyFun a1627672465 (TyFun b1627672466 b1627672466 -> Type))
data SeqSym1 (l_a1bvt :: a1627672465) (l_a1bvs :: TyFun b1627672466 b1627672466)
type SeqSym2 (t_a1bvq :: a1627672465) (t_a1bvr :: b1627672466) = Seq t_a1bvq t_a1bvr
data (:$) (l_aXZs :: TyFun a822083585 (TyFun [a822083585] [a822083585] -> Type))
data (:$$) (l_aXZq :: a822083585) (l_aXZp :: TyFun [a822083585] [a822083585])
type (:$$$) (t_aXZn :: a822083585) (t_aXZo :: [a822083585]) = (:) t_aXZn t_aXZo
type NilSym0 = '[]
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data ReverseSym0 (l_a1Yhe :: TyFun [a1627856198] [a1627856198])
type ReverseSym1 (t_a1Yhd :: [a1627856198]) = Reverse t_a1Yhd
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data HeadSym0 (l_a1YjJ :: TyFun [a1627856203] a1627856203)
type HeadSym1 (t_a1YjI :: [a1627856203]) = Head t_a1YjI
data LastSym0 (l_a1Yjz :: TyFun [a1627856202] a1627856202)
type LastSym1 (t_a1Yjy :: [a1627856202]) = Last t_a1Yjy
data TailSym0 (l_a1Yjr :: TyFun [a1627856201] [a1627856201])
type TailSym1 (t_a1Yjq :: [a1627856201]) = Tail t_a1Yjq
data InitSym0 (l_a1YiU :: TyFun [a1627856200] [a1627856200])
type InitSym1 (t_a1YiT :: [a1627856200]) = Init t_a1YiT
data NullSym0 (l_a1YhN :: TyFun [a1627856199] Bool)
type NullSym1 (t_a1YhM :: [a1627856199]) = Null t_a1YhM
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type) -> Type))
data FoldlSym1 (l_a10Zd :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Zc :: TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type))
data FoldlSym2 (l_a10Z9 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Za :: b1627632057) (l_a10Z8 :: TyFun [a1627632056] b1627632057)
type FoldlSym3 (t_a10Z5 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (t_a10Z6 :: b1627632057) (t_a10Z7 :: [a1627632056]) = Foldl t_a10Z5 t_a10Z6 t_a10Z7
data Foldl1Sym0 (l_a1Y4Z :: TyFun (TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (TyFun [a1627856189] a1627856189 -> Type))
data Foldl1Sym1 (l_a1Y4X :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (l_a1Y4W :: TyFun [a1627856189] a1627856189)
type Foldl1Sym2 (t_a1Y4U :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (t_a1Y4V :: [a1627856189]) = Foldl1 t_a1Y4U t_a1Y4V
data FoldrSym0 (l_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data Foldr1Sym0 (l_a1Y4m :: TyFun (TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (TyFun [a1627856187] a1627856187 -> Type))
data Foldr1Sym1 (l_a1Y4k :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (l_a1Y4j :: TyFun [a1627856187] a1627856187)
type Foldr1Sym2 (t_a1Y4h :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (t_a1Y4i :: [a1627856187]) = Foldr1 t_a1Y4h t_a1Y4i
data ConcatSym0 (l_a1Y4d :: TyFun [[a1627856186]] [a1627856186])
type ConcatSym1 (t_a1Y4c :: [[a1627856186]]) = Concat t_a1Y4c
data ConcatMapSym0 (l_a1Y42 :: TyFun (TyFun a1627856184 [b1627856185] -> Type) (TyFun [a1627856184] [b1627856185] -> Type))
data ConcatMapSym1 (l_a1Y40 :: TyFun a1627856184 [b1627856185] -> Type) (l_a1Y3Z :: TyFun [a1627856184] [b1627856185])
type ConcatMapSym2 (t_a1Y3X :: TyFun a1627856184 [b1627856185] -> Type) (t_a1Y3Y :: [a1627856184]) = ConcatMap t_a1Y3X t_a1Y3Y
data AndSym0 (l_a1Y3S :: TyFun [Bool] Bool)
type AndSym1 (t_a1Y3R :: [Bool]) = And t_a1Y3R
data OrSym0 (l_a1Y3M :: TyFun [Bool] Bool)
type OrSym1 (t_a1Y3L :: [Bool]) = Or t_a1Y3L
data Any_Sym0 (l_a1UDf :: TyFun (TyFun a1627845967 Bool -> Type) (TyFun [a1627845967] Bool -> Type))
data Any_Sym1 (l_a1UDd :: TyFun a1627845967 Bool -> Type) (l_a1UDc :: TyFun [a1627845967] Bool)
type Any_Sym2 (t_a1UDa :: TyFun a1627845967 Bool -> Type) (t_a1UDb :: [a1627845967]) = Any_ t_a1UDa t_a1UDb
data AllSym0 (l_a1Y3B :: TyFun (TyFun a1627856183 Bool -> Type) (TyFun [a1627856183] Bool -> Type))
data AllSym1 (l_a1Y3z :: TyFun a1627856183 Bool -> Type) (l_a1Y3y :: TyFun [a1627856183] Bool)
type AllSym2 (t_a1Y3w :: TyFun a1627856183 Bool -> Type) (t_a1Y3x :: [a1627856183]) = All t_a1Y3w t_a1Y3x
data ScanlSym0 (l_a1Y34 :: TyFun (TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type) -> Type))
data ScanlSym1 (l_a1Y32 :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y31 :: TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type))
data ScanlSym2 (l_a1Y2Y :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y2Z :: b1627856181) (l_a1Y2X :: TyFun [a1627856182] [b1627856181])
type ScanlSym3 (t_a1Y2U :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (t_a1Y2V :: b1627856181) (t_a1Y2W :: [a1627856182]) = Scanl t_a1Y2U t_a1Y2V t_a1Y2W
data Scanl1Sym0 (l_a1Y3m :: TyFun (TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (TyFun [a1627856180] [a1627856180] -> Type))
data Scanl1Sym1 (l_a1Y3k :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (l_a1Y3j :: TyFun [a1627856180] [a1627856180])
type Scanl1Sym2 (t_a1Y3h :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (t_a1Y3i :: [a1627856180]) = Scanl1 t_a1Y3h t_a1Y3i
data ScanrSym0 (l_a1Y2j :: TyFun (TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type) -> Type))
data ScanrSym1 (l_a1Y2h :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2g :: TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type))
data ScanrSym2 (l_a1Y2d :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2e :: b1627856179) (l_a1Y2c :: TyFun [a1627856178] [b1627856179])
type ScanrSym3 (t_a1Y29 :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (t_a1Y2a :: b1627856179) (t_a1Y2b :: [a1627856178]) = Scanr t_a1Y29 t_a1Y2a t_a1Y2b
data Scanr1Sym0 (l_a1Y1d :: TyFun (TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (TyFun [a1627856177] [a1627856177] -> Type))
data Scanr1Sym1 (l_a1Y1b :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (l_a1Y1a :: TyFun [a1627856177] [a1627856177])
type Scanr1Sym2 (t_a1Y18 :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (t_a1Y19 :: [a1627856177]) = Scanr1 t_a1Y18 t_a1Y19
data ElemSym0 (l_a1XTk :: TyFun a1627856163 (TyFun [a1627856163] Bool -> Type))
data ElemSym1 (l_a1XTi :: a1627856163) (l_a1XTh :: TyFun [a1627856163] Bool)
type ElemSym2 (t_a1XTf :: a1627856163) (t_a1XTg :: [a1627856163]) = Elem t_a1XTf t_a1XTg
data NotElemSym0 (l_a1XT5 :: TyFun a1627856162 (TyFun [a1627856162] Bool -> Type))
data NotElemSym1 (l_a1XT3 :: a1627856162) (l_a1XT2 :: TyFun [a1627856162] Bool)
type NotElemSym2 (t_a1XT0 :: a1627856162) (t_a1XT1 :: [a1627856162]) = NotElem t_a1XT0 t_a1XT1
data ZipSym0 (l_a1XR2 :: TyFun [a1627856160] (TyFun [b1627856161] [(a1627856160, b1627856161)] -> Type))
data ZipSym1 (l_a1XR0 :: [a1627856160]) (l_a1XQZ :: TyFun [b1627856161] [(a1627856160, b1627856161)])
type ZipSym2 (t_a1XQX :: [a1627856160]) (t_a1XQY :: [b1627856161]) = Zip t_a1XQX t_a1XQY
data Zip3Sym0 (l_a1XPU :: TyFun [a1627856157] (TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type) -> Type))
data Zip3Sym1 (l_a1XPS :: [a1627856157]) (l_a1XPR :: TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type))
data Zip3Sym2 (l_a1XPO :: [a1627856157]) (l_a1XPP :: [b1627856158]) (l_a1XPN :: TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)])
type Zip3Sym3 (t_a1XPK :: [a1627856157]) (t_a1XPL :: [b1627856158]) (t_a1XPM :: [c1627856159]) = Zip3 t_a1XPK t_a1XPL t_a1XPM
data ZipWithSym0 (l_a1XPf :: TyFun (TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type) -> Type))
data ZipWithSym1 (l_a1XPd :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPc :: TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type))
data ZipWithSym2 (l_a1XP9 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPa :: [a1627856154]) (l_a1XP8 :: TyFun [b1627856155] [c1627856156])
type ZipWithSym3 (t_a1XP5 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (t_a1XP6 :: [a1627856154]) (t_a1XP7 :: [b1627856155]) = ZipWith t_a1XP5 t_a1XP6 t_a1XP7
data ZipWith3Sym0 (l_a1XNF :: TyFun (TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1XND :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNC :: TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type))
data ZipWith3Sym2 (l_a1XNz :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNA :: [a1627856150]) (l_a1XNy :: TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type))
data ZipWith3Sym3 (l_a1XNu :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNv :: [a1627856150]) (l_a1XNw :: [b1627856151]) (l_a1XNt :: TyFun [c1627856152] [d1627856153])
data UnzipSym0 (l_a1XMW :: TyFun [(a1627856148, b1627856149)] ([a1627856148], [b1627856149]))
type UnzipSym1 (t_a1XMV :: [(a1627856148, b1627856149)]) = Unzip t_a1XMV


-- | 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_ :: (a_a1UD5 -> Bool) -> [a_a1UD5] -> Bool
type NilSym0 = '[]
data (:$) (l_aXZs :: TyFun a822083585 (TyFun [a822083585] [a822083585] -> Type))
data (:$$) (l_aXZq :: a822083585) (l_aXZp :: TyFun [a822083585] [a822083585])
type (:$$$) (t_aXZn :: a822083585) (t_aXZo :: [a822083585]) = (:) t_aXZn t_aXZo
type (:++$$$) (t_a1bx8 :: [a1627672477]) (t_a1bx9 :: [a1627672477]) = (:++) t_a1bx8 t_a1bx9
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data HeadSym0 (l_a1YjJ :: TyFun [a1627856203] a1627856203)
type HeadSym1 (t_a1YjI :: [a1627856203]) = Head t_a1YjI
data LastSym0 (l_a1Yjz :: TyFun [a1627856202] a1627856202)
type LastSym1 (t_a1Yjy :: [a1627856202]) = Last t_a1Yjy
data TailSym0 (l_a1Yjr :: TyFun [a1627856201] [a1627856201])
type TailSym1 (t_a1Yjq :: [a1627856201]) = Tail t_a1Yjq
data InitSym0 (l_a1YiU :: TyFun [a1627856200] [a1627856200])
type InitSym1 (t_a1YiT :: [a1627856200]) = Init t_a1YiT
data NullSym0 (l_a1YhN :: TyFun [a1627856199] Bool)
type NullSym1 (t_a1YhM :: [a1627856199]) = Null t_a1YhM
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data ReverseSym0 (l_a1Yhe :: TyFun [a1627856198] [a1627856198])
type ReverseSym1 (t_a1Yhd :: [a1627856198]) = Reverse t_a1Yhd
data IntersperseSym0 (l_a1YgS :: TyFun a1627856197 (TyFun [a1627856197] [a1627856197] -> Type))
data IntersperseSym1 (l_a1YgQ :: a1627856197) (l_a1YgP :: TyFun [a1627856197] [a1627856197])
type IntersperseSym2 (t_a1YgN :: a1627856197) (t_a1YgO :: [a1627856197]) = Intersperse t_a1YgN t_a1YgO
data IntercalateSym0 (l_a1Yh7 :: TyFun [a1627856196] (TyFun [[a1627856196]] [a1627856196] -> Type))
data IntercalateSym1 (l_a1Yh5 :: [a1627856196]) (l_a1Yh4 :: TyFun [[a1627856196]] [a1627856196])
type IntercalateSym2 (t_a1Yh2 :: [a1627856196]) (t_a1Yh3 :: [[a1627856196]]) = Intercalate t_a1Yh2 t_a1Yh3
data SubsequencesSym0 (l_a1YgJ :: TyFun [a1627856195] [[a1627856195]])
type SubsequencesSym1 (t_a1YgI :: [a1627856195]) = Subsequences t_a1YgI
data PermutationsSym0 (l_a1Ya1 :: TyFun [a1627856192] [[a1627856192]])
type PermutationsSym1 (t_a1Ya0 :: [a1627856192]) = Permutations t_a1Ya0
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type) -> Type))
data FoldlSym1 (l_a10Zd :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Zc :: TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type))
data FoldlSym2 (l_a10Z9 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Za :: b1627632057) (l_a10Z8 :: TyFun [a1627632056] b1627632057)
type FoldlSym3 (t_a10Z5 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (t_a10Z6 :: b1627632057) (t_a10Z7 :: [a1627632056]) = Foldl t_a10Z5 t_a10Z6 t_a10Z7
data Foldl'Sym0 (l_a1Y8z :: TyFun (TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (TyFun b1627856191 (TyFun [a1627856190] b1627856191 -> Type) -> Type))
data Foldl'Sym1 (l_a1Y8x :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (l_a1Y8w :: TyFun b1627856191 (TyFun [a1627856190] b1627856191 -> Type))
data Foldl'Sym2 (l_a1Y8t :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (l_a1Y8u :: b1627856191) (l_a1Y8s :: TyFun [a1627856190] b1627856191)
type Foldl'Sym3 (t_a1Y8p :: TyFun b1627856191 (TyFun a1627856190 b1627856191 -> Type) -> Type) (t_a1Y8q :: b1627856191) (t_a1Y8r :: [a1627856190]) = Foldl' t_a1Y8p t_a1Y8q t_a1Y8r
data Foldl1Sym0 (l_a1Y4Z :: TyFun (TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (TyFun [a1627856189] a1627856189 -> Type))
data Foldl1Sym1 (l_a1Y4X :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (l_a1Y4W :: TyFun [a1627856189] a1627856189)
type Foldl1Sym2 (t_a1Y4U :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (t_a1Y4V :: [a1627856189]) = Foldl1 t_a1Y4U t_a1Y4V
data Foldl1'Sym0 (l_a1Y9Q :: TyFun (TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (TyFun [a1627856188] a1627856188 -> Type))
data Foldl1'Sym1 (l_a1Y9O :: TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (l_a1Y9N :: TyFun [a1627856188] a1627856188)
type Foldl1'Sym2 (t_a1Y9L :: TyFun a1627856188 (TyFun a1627856188 a1627856188 -> Type) -> Type) (t_a1Y9M :: [a1627856188]) = Foldl1' t_a1Y9L t_a1Y9M
data FoldrSym0 (l_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data Foldr1Sym0 (l_a1Y4m :: TyFun (TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (TyFun [a1627856187] a1627856187 -> Type))
data Foldr1Sym1 (l_a1Y4k :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (l_a1Y4j :: TyFun [a1627856187] a1627856187)
type Foldr1Sym2 (t_a1Y4h :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (t_a1Y4i :: [a1627856187]) = Foldr1 t_a1Y4h t_a1Y4i
data ConcatSym0 (l_a1Y4d :: TyFun [[a1627856186]] [a1627856186])
type ConcatSym1 (t_a1Y4c :: [[a1627856186]]) = Concat t_a1Y4c
data ConcatMapSym0 (l_a1Y42 :: TyFun (TyFun a1627856184 [b1627856185] -> Type) (TyFun [a1627856184] [b1627856185] -> Type))
data ConcatMapSym1 (l_a1Y40 :: TyFun a1627856184 [b1627856185] -> Type) (l_a1Y3Z :: TyFun [a1627856184] [b1627856185])
type ConcatMapSym2 (t_a1Y3X :: TyFun a1627856184 [b1627856185] -> Type) (t_a1Y3Y :: [a1627856184]) = ConcatMap t_a1Y3X t_a1Y3Y
data AndSym0 (l_a1Y3S :: TyFun [Bool] Bool)
type AndSym1 (t_a1Y3R :: [Bool]) = And t_a1Y3R
data OrSym0 (l_a1Y3M :: TyFun [Bool] Bool)
type OrSym1 (t_a1Y3L :: [Bool]) = Or t_a1Y3L
data Any_Sym0 (l_a1UDf :: TyFun (TyFun a1627845967 Bool -> Type) (TyFun [a1627845967] Bool -> Type))
data Any_Sym1 (l_a1UDd :: TyFun a1627845967 Bool -> Type) (l_a1UDc :: TyFun [a1627845967] Bool)
type Any_Sym2 (t_a1UDa :: TyFun a1627845967 Bool -> Type) (t_a1UDb :: [a1627845967]) = Any_ t_a1UDa t_a1UDb
data AllSym0 (l_a1Y3B :: TyFun (TyFun a1627856183 Bool -> Type) (TyFun [a1627856183] Bool -> Type))
data AllSym1 (l_a1Y3z :: TyFun a1627856183 Bool -> Type) (l_a1Y3y :: TyFun [a1627856183] Bool)
type AllSym2 (t_a1Y3w :: TyFun a1627856183 Bool -> Type) (t_a1Y3x :: [a1627856183]) = All t_a1Y3w t_a1Y3x
data ScanlSym0 (l_a1Y34 :: TyFun (TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type) -> Type))
data ScanlSym1 (l_a1Y32 :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y31 :: TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type))
data ScanlSym2 (l_a1Y2Y :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y2Z :: b1627856181) (l_a1Y2X :: TyFun [a1627856182] [b1627856181])
type ScanlSym3 (t_a1Y2U :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (t_a1Y2V :: b1627856181) (t_a1Y2W :: [a1627856182]) = Scanl t_a1Y2U t_a1Y2V t_a1Y2W
data Scanl1Sym0 (l_a1Y3m :: TyFun (TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (TyFun [a1627856180] [a1627856180] -> Type))
data Scanl1Sym1 (l_a1Y3k :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (l_a1Y3j :: TyFun [a1627856180] [a1627856180])
type Scanl1Sym2 (t_a1Y3h :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (t_a1Y3i :: [a1627856180]) = Scanl1 t_a1Y3h t_a1Y3i
data ScanrSym0 (l_a1Y2j :: TyFun (TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type) -> Type))
data ScanrSym1 (l_a1Y2h :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2g :: TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type))
data ScanrSym2 (l_a1Y2d :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2e :: b1627856179) (l_a1Y2c :: TyFun [a1627856178] [b1627856179])
type ScanrSym3 (t_a1Y29 :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (t_a1Y2a :: b1627856179) (t_a1Y2b :: [a1627856178]) = Scanr t_a1Y29 t_a1Y2a t_a1Y2b
data Scanr1Sym0 (l_a1Y1d :: TyFun (TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (TyFun [a1627856177] [a1627856177] -> Type))
data Scanr1Sym1 (l_a1Y1b :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (l_a1Y1a :: TyFun [a1627856177] [a1627856177])
type Scanr1Sym2 (t_a1Y18 :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (t_a1Y19 :: [a1627856177]) = Scanr1 t_a1Y18 t_a1Y19
data MapAccumLSym0 (l_a1XYw :: TyFun (TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (TyFun acc1627856174 (TyFun [x1627856175] (acc1627856174, [y1627856176]) -> Type) -> Type))
data MapAccumLSym1 (l_a1XYu :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (l_a1XYt :: TyFun acc1627856174 (TyFun [x1627856175] (acc1627856174, [y1627856176]) -> Type))
data MapAccumLSym2 (l_a1XYq :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (l_a1XYr :: acc1627856174) (l_a1XYp :: TyFun [x1627856175] (acc1627856174, [y1627856176]))
type MapAccumLSym3 (t_a1XYm :: TyFun acc1627856174 (TyFun x1627856175 (acc1627856174, y1627856176) -> Type) -> Type) (t_a1XYn :: acc1627856174) (t_a1XYo :: [x1627856175]) = MapAccumL t_a1XYm t_a1XYn t_a1XYo
data MapAccumRSym0 (l_a1XVK :: TyFun (TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (TyFun acc1627856171 (TyFun [x1627856172] (acc1627856171, [y1627856173]) -> Type) -> Type))
data MapAccumRSym1 (l_a1XVI :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (l_a1XVH :: TyFun acc1627856171 (TyFun [x1627856172] (acc1627856171, [y1627856173]) -> Type))
data MapAccumRSym2 (l_a1XVE :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (l_a1XVF :: acc1627856171) (l_a1XVD :: TyFun [x1627856172] (acc1627856171, [y1627856173]))
type MapAccumRSym3 (t_a1XVA :: TyFun acc1627856171 (TyFun x1627856172 (acc1627856171, y1627856173) -> Type) -> Type) (t_a1XVB :: acc1627856171) (t_a1XVC :: [x1627856172]) = MapAccumR t_a1XVA t_a1XVB t_a1XVC
data UnfoldrSym0 (l_a1XVh :: TyFun (TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (TyFun b1627856169 [a1627856170] -> Type))
data UnfoldrSym1 (l_a1XVf :: TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (l_a1XVe :: TyFun b1627856169 [a1627856170])
type UnfoldrSym2 (t_a1XVc :: TyFun b1627856169 (Maybe (a1627856170, b1627856169)) -> Type) (t_a1XVd :: b1627856169) = Unfoldr t_a1XVc t_a1XVd
data InitsSym0 (l_a1XV3 :: TyFun [a1627856168] [[a1627856168]])
type InitsSym1 (t_a1XV2 :: [a1627856168]) = Inits t_a1XV2
data TailsSym0 (l_a1XUG :: TyFun [a1627856167] [[a1627856167]])
type TailsSym1 (t_a1XUF :: [a1627856167]) = Tails t_a1XUF
data IsPrefixOfSym0 (l_a1XUl :: TyFun [a1627856166] (TyFun [a1627856166] Bool -> Type))
data IsPrefixOfSym1 (l_a1XUj :: [a1627856166]) (l_a1XUi :: TyFun [a1627856166] Bool)
type IsPrefixOfSym2 (t_a1XUg :: [a1627856166]) (t_a1XUh :: [a1627856166]) = IsPrefixOf t_a1XUg t_a1XUh
data IsSuffixOfSym0 (l_a1YhG :: TyFun [a1627856165] (TyFun [a1627856165] Bool -> Type))
data IsSuffixOfSym1 (l_a1YhE :: [a1627856165]) (l_a1YhD :: TyFun [a1627856165] Bool)
type IsSuffixOfSym2 (t_a1YhB :: [a1627856165]) (t_a1YhC :: [a1627856165]) = IsSuffixOf t_a1YhB t_a1YhC
data IsInfixOfSym0 (l_a1XUW :: TyFun [a1627856164] (TyFun [a1627856164] Bool -> Type))
data IsInfixOfSym1 (l_a1XUU :: [a1627856164]) (l_a1XUT :: TyFun [a1627856164] Bool)
type IsInfixOfSym2 (t_a1XUR :: [a1627856164]) (t_a1XUS :: [a1627856164]) = IsInfixOf t_a1XUR t_a1XUS
data ElemSym0 (l_a1XTk :: TyFun a1627856163 (TyFun [a1627856163] Bool -> Type))
data ElemSym1 (l_a1XTi :: a1627856163) (l_a1XTh :: TyFun [a1627856163] Bool)
type ElemSym2 (t_a1XTf :: a1627856163) (t_a1XTg :: [a1627856163]) = Elem t_a1XTf t_a1XTg
data NotElemSym0 (l_a1XT5 :: TyFun a1627856162 (TyFun [a1627856162] Bool -> Type))
data NotElemSym1 (l_a1XT3 :: a1627856162) (l_a1XT2 :: TyFun [a1627856162] Bool)
type NotElemSym2 (t_a1XT0 :: a1627856162) (t_a1XT1 :: [a1627856162]) = NotElem t_a1XT0 t_a1XT1
data ZipSym0 (l_a1XR2 :: TyFun [a1627856160] (TyFun [b1627856161] [(a1627856160, b1627856161)] -> Type))
data ZipSym1 (l_a1XR0 :: [a1627856160]) (l_a1XQZ :: TyFun [b1627856161] [(a1627856160, b1627856161)])
type ZipSym2 (t_a1XQX :: [a1627856160]) (t_a1XQY :: [b1627856161]) = Zip t_a1XQX t_a1XQY
data Zip3Sym0 (l_a1XPU :: TyFun [a1627856157] (TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type) -> Type))
data Zip3Sym1 (l_a1XPS :: [a1627856157]) (l_a1XPR :: TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type))
data Zip3Sym2 (l_a1XPO :: [a1627856157]) (l_a1XPP :: [b1627856158]) (l_a1XPN :: TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)])
type Zip3Sym3 (t_a1XPK :: [a1627856157]) (t_a1XPL :: [b1627856158]) (t_a1XPM :: [c1627856159]) = Zip3 t_a1XPK t_a1XPL t_a1XPM
data ZipWithSym0 (l_a1XPf :: TyFun (TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type) -> Type))
data ZipWithSym1 (l_a1XPd :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPc :: TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type))
data ZipWithSym2 (l_a1XP9 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPa :: [a1627856154]) (l_a1XP8 :: TyFun [b1627856155] [c1627856156])
type ZipWithSym3 (t_a1XP5 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (t_a1XP6 :: [a1627856154]) (t_a1XP7 :: [b1627856155]) = ZipWith t_a1XP5 t_a1XP6 t_a1XP7
data ZipWith3Sym0 (l_a1XNF :: TyFun (TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1XND :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNC :: TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type))
data ZipWith3Sym2 (l_a1XNz :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNA :: [a1627856150]) (l_a1XNy :: TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type))
data ZipWith3Sym3 (l_a1XNu :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNv :: [a1627856150]) (l_a1XNw :: [b1627856151]) (l_a1XNt :: TyFun [c1627856152] [d1627856153])
type ZipWith3Sym4 (t_a1XNp :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (t_a1XNq :: [a1627856150]) (t_a1XNr :: [b1627856151]) (t_a1XNs :: [c1627856152]) = ZipWith3 t_a1XNp t_a1XNq t_a1XNr t_a1XNs
data UnzipSym0 (l_a1XMW :: TyFun [(a1627856148, b1627856149)] ([a1627856148], [b1627856149]))
type UnzipSym1 (t_a1XMV :: [(a1627856148, b1627856149)]) = Unzip t_a1XMV
data Unzip3Sym0 (l_a1XMq :: TyFun [(a1627856145, b1627856146, c1627856147)] ([a1627856145], [b1627856146], [c1627856147]))
type Unzip3Sym1 (t_a1XMp :: [(a1627856145, b1627856146, c1627856147)]) = Unzip3 t_a1XMp
data Unzip4Sym0 (l_a1XLS :: TyFun [(a1627856141, b1627856142, c1627856143, d1627856144)] ([a1627856141], [b1627856142], [c1627856143], [d1627856144]))
type Unzip4Sym1 (t_a1XLR :: [(a1627856141, b1627856142, c1627856143, d1627856144)]) = Unzip4 t_a1XLR
data Unzip5Sym0 (l_a1XLi :: TyFun [(a1627856136, b1627856137, c1627856138, d1627856139, e1627856140)] ([a1627856136], [b1627856137], [c1627856138], [d1627856139], [e1627856140]))
type Unzip5Sym1 (t_a1XLh :: [(a1627856136, b1627856137, c1627856138, d1627856139, e1627856140)]) = Unzip5 t_a1XLh
data Unzip6Sym0 (l_a1XKG :: TyFun [(a1627856130, b1627856131, c1627856132, d1627856133, e1627856134, f1627856135)] ([a1627856130], [b1627856131], [c1627856132], [d1627856133], [e1627856134], [f1627856135]))
type Unzip6Sym1 (t_a1XKF :: [(a1627856130, b1627856131, c1627856132, d1627856133, e1627856134, f1627856135)]) = Unzip6 t_a1XKF
data Unzip7Sym0 (l_a1XK2 :: TyFun [(a1627856123, b1627856124, c1627856125, d1627856126, e1627856127, f1627856128, g1627856129)] ([a1627856123], [b1627856124], [c1627856125], [d1627856126], [e1627856127], [f1627856128], [g1627856129]))
type Unzip7Sym1 (t_a1XK1 :: [(a1627856123, b1627856124, c1627856125, d1627856126, e1627856127, f1627856128, g1627856129)]) = Unzip7 t_a1XK1
data DeleteSym0 (l_a1XJG :: TyFun a1627856122 (TyFun [a1627856122] [a1627856122] -> Type))
data DeleteSym1 (l_a1XJE :: a1627856122) (l_a1XJD :: TyFun [a1627856122] [a1627856122])
type DeleteSym2 (t_a1XJB :: a1627856122) (t_a1XJC :: [a1627856122]) = Delete t_a1XJB t_a1XJC
data (:\\$) (l_a1XJV :: TyFun [a1627856121] (TyFun [a1627856121] [a1627856121] -> Type))
data (:\\$$) (l_a1XJT :: [a1627856121]) (l_a1XJS :: TyFun [a1627856121] [a1627856121])
type (:\\$$$) (t_a1XJQ :: [a1627856121]) (t_a1XJR :: [a1627856121]) = (:\\) t_a1XJQ t_a1XJR
data IntersectSym0 (l_a1XGg :: TyFun [a1627856108] (TyFun [a1627856108] [a1627856108] -> Type))
data IntersectSym1 (l_a1XGe :: [a1627856108]) (l_a1XGd :: TyFun [a1627856108] [a1627856108])
type IntersectSym2 (t_a1XGb :: [a1627856108]) (t_a1XGc :: [a1627856108]) = Intersect t_a1XGb t_a1XGc
data InsertSym0 (l_a1XHt :: TyFun a1627856095 (TyFun [a1627856095] [a1627856095] -> Type))
data InsertSym1 (l_a1XHr :: a1627856095) (l_a1XHq :: TyFun [a1627856095] [a1627856095])
type InsertSym2 (t_a1XHo :: a1627856095) (t_a1XHp :: [a1627856095]) = Insert t_a1XHo t_a1XHp
data SortSym0 (l_a1XHP :: TyFun [a1627856094] [a1627856094])
type SortSym1 (t_a1XHO :: [a1627856094]) = Sort t_a1XHO
data DeleteBySym0 (l_a1XI3 :: TyFun (TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (TyFun a1627856120 (TyFun [a1627856120] [a1627856120] -> Type) -> Type))
data DeleteBySym1 (l_a1XI1 :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (l_a1XI0 :: TyFun a1627856120 (TyFun [a1627856120] [a1627856120] -> Type))
data DeleteBySym2 (l_a1XHX :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (l_a1XHY :: a1627856120) (l_a1XHW :: TyFun [a1627856120] [a1627856120])
type DeleteBySym3 (t_a1XHT :: TyFun a1627856120 (TyFun a1627856120 Bool -> Type) -> Type) (t_a1XHU :: a1627856120) (t_a1XHV :: [a1627856120]) = DeleteBy t_a1XHT t_a1XHU t_a1XHV
data DeleteFirstsBySym0 (l_a1XIO :: TyFun (TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (TyFun [a1627856119] (TyFun [a1627856119] [a1627856119] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1XIM :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (l_a1XIL :: TyFun [a1627856119] (TyFun [a1627856119] [a1627856119] -> Type))
data DeleteFirstsBySym2 (l_a1XII :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (l_a1XIJ :: [a1627856119]) (l_a1XIH :: TyFun [a1627856119] [a1627856119])
type DeleteFirstsBySym3 (t_a1XIE :: TyFun a1627856119 (TyFun a1627856119 Bool -> Type) -> Type) (t_a1XIF :: [a1627856119]) (t_a1XIG :: [a1627856119]) = DeleteFirstsBy t_a1XIE t_a1XIF t_a1XIG
data IntersectBySym0 (l_a1XEc :: TyFun (TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (TyFun [a1627856107] (TyFun [a1627856107] [a1627856107] -> Type) -> Type))
data IntersectBySym1 (l_a1XEa :: TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (l_a1XE9 :: TyFun [a1627856107] (TyFun [a1627856107] [a1627856107] -> Type))
data IntersectBySym2 (l_a1XE6 :: TyFun a1627856107 (TyFun a1627856107 Bool -> Type) -> Type) (l_a1XE7 :: [a1627856107]) (l_a1XE5 :: TyFun [a1627856107] [a1627856107])
data SortBySym0 (l_a1XHE :: TyFun (TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (TyFun [a1627856118] [a1627856118] -> Type))
data SortBySym1 (l_a1XHC :: TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (l_a1XHB :: TyFun [a1627856118] [a1627856118])
type SortBySym2 (t_a1XHz :: TyFun a1627856118 (TyFun a1627856118 Ordering -> Type) -> Type) (t_a1XHA :: [a1627856118]) = SortBy t_a1XHz t_a1XHA
data InsertBySym0 (l_a1XGw :: TyFun (TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (TyFun a1627856117 (TyFun [a1627856117] [a1627856117] -> Type) -> Type))
data InsertBySym1 (l_a1XGu :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (l_a1XGt :: TyFun a1627856117 (TyFun [a1627856117] [a1627856117] -> Type))
data InsertBySym2 (l_a1XGq :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (l_a1XGr :: a1627856117) (l_a1XGp :: TyFun [a1627856117] [a1627856117])
type InsertBySym3 (t_a1XGm :: TyFun a1627856117 (TyFun a1627856117 Ordering -> Type) -> Type) (t_a1XGn :: a1627856117) (t_a1XGo :: [a1627856117]) = InsertBy t_a1XGm t_a1XGn t_a1XGo
data MaximumBySym0 (l_a1Y5e :: TyFun (TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (TyFun [a1627856116] a1627856116 -> Type))
data MaximumBySym1 (l_a1Y5c :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (l_a1Y5b :: TyFun [a1627856116] a1627856116)
type MaximumBySym2 (t_a1Y59 :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (t_a1Y5a :: [a1627856116]) = MaximumBy t_a1Y59 t_a1Y5a
data MinimumBySym0 (l_a1Y6D :: TyFun (TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (TyFun [a1627856115] a1627856115 -> Type))
data MinimumBySym1 (l_a1Y6B :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (l_a1Y6A :: TyFun [a1627856115] a1627856115)
type MinimumBySym2 (t_a1Y6y :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (t_a1Y6z :: [a1627856115]) = MinimumBy t_a1Y6y t_a1Y6z
data LengthSym0 (l_a1Xu8 :: TyFun [a1627856086] Nat)
type LengthSym1 (t_a1Xu7 :: [a1627856086]) = Length t_a1Xu7
data SumSym0 (l_a1XuE :: TyFun [a1627856088] a1627856088)
type SumSym1 (t_a1XuD :: [a1627856088]) = Sum t_a1XuD
data ProductSym0 (l_a1Xug :: TyFun [a1627856087] a1627856087)
type ProductSym1 (t_a1Xuf :: [a1627856087]) = Product t_a1Xuf
data ReplicateSym0 (l_a1XtQ :: TyFun Nat (TyFun a1627856085 [a1627856085] -> Type))
data ReplicateSym1 (l_a1XtO :: Nat) (l_a1XtN :: TyFun a1627856085 [a1627856085])
type ReplicateSym2 (t_a1XtL :: Nat) (t_a1XtM :: a1627856085) = Replicate t_a1XtL t_a1XtM
data TransposeSym0 (l_a1YjR :: TyFun [[a1627856084]] [[a1627856084]])
type TransposeSym1 (t_a1YjQ :: [[a1627856084]]) = Transpose t_a1YjQ
data TakeSym0 (l_a1Xx1 :: TyFun Nat (TyFun [a1627856101] [a1627856101] -> Type))
data TakeSym1 (l_a1XwZ :: Nat) (l_a1XwY :: TyFun [a1627856101] [a1627856101])
type TakeSym2 (t_a1XwW :: Nat) (t_a1XwX :: [a1627856101]) = Take t_a1XwW t_a1XwX
data DropSym0 (l_a1Xww :: TyFun Nat (TyFun [a1627856100] [a1627856100] -> Type))
data DropSym1 (l_a1Xwu :: Nat) (l_a1Xwt :: TyFun [a1627856100] [a1627856100])
type DropSym2 (t_a1Xwr :: Nat) (t_a1Xws :: [a1627856100]) = Drop t_a1Xwr t_a1Xws
data SplitAtSym0 (l_a1Xxw :: TyFun Nat (TyFun [a1627856099] ([a1627856099], [a1627856099]) -> Type))
data SplitAtSym1 (l_a1Xxu :: Nat) (l_a1Xxt :: TyFun [a1627856099] ([a1627856099], [a1627856099]))
type SplitAtSym2 (t_a1Xxr :: Nat) (t_a1Xxs :: [a1627856099]) = SplitAt t_a1Xxr t_a1Xxs
data TakeWhileSym0 (l_a1XCW :: TyFun (TyFun a1627856106 Bool -> Type) (TyFun [a1627856106] [a1627856106] -> Type))
data TakeWhileSym1 (l_a1XCU :: TyFun a1627856106 Bool -> Type) (l_a1XCT :: TyFun [a1627856106] [a1627856106])
type TakeWhileSym2 (t_a1XCR :: TyFun a1627856106 Bool -> Type) (t_a1XCS :: [a1627856106]) = TakeWhile t_a1XCR t_a1XCS
data DropWhileSym0 (l_a1XCe :: TyFun (TyFun a1627856105 Bool -> Type) (TyFun [a1627856105] [a1627856105] -> Type))
data DropWhileSym1 (l_a1XCc :: TyFun a1627856105 Bool -> Type) (l_a1XCb :: TyFun [a1627856105] [a1627856105])
type DropWhileSym2 (t_a1XC9 :: TyFun a1627856105 Bool -> Type) (t_a1XCa :: [a1627856105]) = DropWhile t_a1XC9 t_a1XCa
data DropWhileEndSym0 (l_a1Yi1 :: TyFun (TyFun a1627856104 Bool -> Type) (TyFun [a1627856104] [a1627856104] -> Type))
data DropWhileEndSym1 (l_a1YhZ :: TyFun a1627856104 Bool -> Type) (l_a1YhY :: TyFun [a1627856104] [a1627856104])
type DropWhileEndSym2 (t_a1YhW :: TyFun a1627856104 Bool -> Type) (t_a1YhX :: [a1627856104]) = DropWhileEnd t_a1YhW t_a1YhX
data SpanSym0 (l_a1Xzl :: TyFun (TyFun a1627856103 Bool -> Type) (TyFun [a1627856103] ([a1627856103], [a1627856103]) -> Type))
data SpanSym1 (l_a1Xzj :: TyFun a1627856103 Bool -> Type) (l_a1Xzi :: TyFun [a1627856103] ([a1627856103], [a1627856103]))
type SpanSym2 (t_a1Xzg :: TyFun a1627856103 Bool -> Type) (t_a1Xzh :: [a1627856103]) = Span t_a1Xzg t_a1Xzh
data BreakSym0 (l_a1XxH :: TyFun (TyFun a1627856102 Bool -> Type) (TyFun [a1627856102] ([a1627856102], [a1627856102]) -> Type))
data BreakSym1 (l_a1XxF :: TyFun a1627856102 Bool -> Type) (l_a1XxE :: TyFun [a1627856102] ([a1627856102], [a1627856102]))
type BreakSym2 (t_a1XxC :: TyFun a1627856102 Bool -> Type) (t_a1XxD :: [a1627856102]) = Break t_a1XxC t_a1XxD
data StripPrefixSym0 (l_a3LMq :: TyFun [a1628287934] (TyFun [a1628287934] (Maybe [a1628287934]) -> Type))
data StripPrefixSym1 (l_a3LMo :: [a1628287934]) (l_a3LMn :: TyFun [a1628287934] (Maybe [a1628287934]))
type StripPrefixSym2 (t_a3LMl :: [a1628287934]) (t_a3LMm :: [a1628287934]) = StripPrefix t_a3LMl t_a3LMm
data MaximumSym0 (l_a1Y7Y :: TyFun [a1627856097] a1627856097)
type MaximumSym1 (t_a1Y7X :: [a1627856097]) = Maximum t_a1Y7X
data MinimumSym0 (l_a1Y8c :: TyFun [a1627856096] a1627856096)
type MinimumSym1 (t_a1Y8b :: [a1627856096]) = Minimum t_a1Y8b
data GroupSym0 (l_a1XC5 :: TyFun [a1627856098] [[a1627856098]])
type GroupSym1 (t_a1XC4 :: [a1627856098]) = Group t_a1XC4
data GroupBySym0 (l_a1XAZ :: TyFun (TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (TyFun [a1627856093] [[a1627856093]] -> Type))
data GroupBySym1 (l_a1XAX :: TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (l_a1XAW :: TyFun [a1627856093] [[a1627856093]])
type GroupBySym2 (t_a1XAU :: TyFun a1627856093 (TyFun a1627856093 Bool -> Type) -> Type) (t_a1XAV :: [a1627856093]) = GroupBy t_a1XAU t_a1XAV
data LookupSym0 (l_a1XvW :: TyFun a1627856091 (TyFun [(a1627856091, b1627856092)] (Maybe b1627856092) -> Type))
data LookupSym1 (l_a1XvU :: a1627856091) (l_a1XvT :: TyFun [(a1627856091, b1627856092)] (Maybe b1627856092))
type LookupSym2 (t_a1XvR :: a1627856091) (t_a1XvS :: [(a1627856091, b1627856092)]) = Lookup t_a1XvR t_a1XvS
data FindSym0 (l_a1XDU :: TyFun (TyFun a1627856113 Bool -> Type) (TyFun [a1627856113] (Maybe a1627856113) -> Type))
data FindSym1 (l_a1XDS :: TyFun a1627856113 Bool -> Type) (l_a1XDR :: TyFun [a1627856113] (Maybe a1627856113))
type FindSym2 (t_a1XDP :: TyFun a1627856113 Bool -> Type) (t_a1XDQ :: [a1627856113]) = Find t_a1XDP t_a1XDQ
data FilterSym0 (l_a1XDr :: TyFun (TyFun a1627856114 Bool -> Type) (TyFun [a1627856114] [a1627856114] -> Type))
data FilterSym1 (l_a1XDp :: TyFun a1627856114 Bool -> Type) (l_a1XDo :: TyFun [a1627856114] [a1627856114])
type FilterSym2 (t_a1XDm :: TyFun a1627856114 Bool -> Type) (t_a1XDn :: [a1627856114]) = Filter t_a1XDm t_a1XDn
data PartitionSym0 (l_a1XvL :: TyFun (TyFun a1627856090 Bool -> Type) (TyFun [a1627856090] ([a1627856090], [a1627856090]) -> Type))
data PartitionSym1 (l_a1XvJ :: TyFun a1627856090 Bool -> Type) (l_a1XvI :: TyFun [a1627856090] ([a1627856090], [a1627856090]))
type PartitionSym2 (t_a1XvG :: TyFun a1627856090 Bool -> Type) (t_a1XvH :: [a1627856090]) = Partition t_a1XvG t_a1XvH
data (:!!$) (l_a1Xtl :: TyFun [a1627856083] (TyFun Nat a1627856083 -> Type))
data (:!!$$) (l_a1Xtj :: [a1627856083]) (l_a1Xti :: TyFun Nat a1627856083)
type (:!!$$$) (t_a1Xtg :: [a1627856083]) (t_a1Xth :: Nat) = (:!!) t_a1Xtg t_a1Xth
data ElemIndexSym0 (l_a1XSS :: TyFun a1627856112 (TyFun [a1627856112] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1XSQ :: a1627856112) (l_a1XSP :: TyFun [a1627856112] (Maybe Nat))
type ElemIndexSym2 (t_a1XSN :: a1627856112) (t_a1XSO :: [a1627856112]) = ElemIndex t_a1XSN t_a1XSO
data ElemIndicesSym0 (l_a1XSs :: TyFun a1627856111 (TyFun [a1627856111] [Nat] -> Type))
data ElemIndicesSym1 (l_a1XSq :: a1627856111) (l_a1XSp :: TyFun [a1627856111] [Nat])
type ElemIndicesSym2 (t_a1XSn :: a1627856111) (t_a1XSo :: [a1627856111]) = ElemIndices t_a1XSn t_a1XSo
data FindIndexSym0 (l_a1XSF :: TyFun (TyFun a1627856110 Bool -> Type) (TyFun [a1627856110] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1XSD :: TyFun a1627856110 Bool -> Type) (l_a1XSC :: TyFun [a1627856110] (Maybe Nat))
type FindIndexSym2 (t_a1XSA :: TyFun a1627856110 Bool -> Type) (t_a1XSB :: [a1627856110]) = FindIndex t_a1XSA t_a1XSB
data FindIndicesSym0 (l_a1XRr :: TyFun (TyFun a1627856109 Bool -> Type) (TyFun [a1627856109] [Nat] -> Type))
data FindIndicesSym1 (l_a1XRp :: TyFun a1627856109 Bool -> Type) (l_a1XRo :: TyFun [a1627856109] [Nat])
type FindIndicesSym2 (t_a1XRm :: TyFun a1627856109 Bool -> Type) (t_a1XRn :: [a1627856109]) = FindIndices t_a1XRm t_a1XRn
data Zip4Sym0 (l_a3LMb :: TyFun [a1628287930] (TyFun [b1628287931] (TyFun [c1628287932] (TyFun [d1628287933] [(a1628287930, b1628287931, c1628287932, d1628287933)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a3LM9 :: [a1628287930]) (l_a3LM8 :: TyFun [b1628287931] (TyFun [c1628287932] (TyFun [d1628287933] [(a1628287930, b1628287931, c1628287932, d1628287933)] -> Type) -> Type))
data Zip4Sym2 (l_a3LM5 :: [a1628287930]) (l_a3LM6 :: [b1628287931]) (l_a3LM4 :: TyFun [c1628287932] (TyFun [d1628287933] [(a1628287930, b1628287931, c1628287932, d1628287933)] -> Type))
data Zip4Sym3 (l_a3LM0 :: [a1628287930]) (l_a3LM1 :: [b1628287931]) (l_a3LM2 :: [c1628287932]) (l_a3LLZ :: TyFun [d1628287933] [(a1628287930, b1628287931, c1628287932, d1628287933)])
type Zip4Sym4 (t_a3LLV :: [a1628287930]) (t_a3LLW :: [b1628287931]) (t_a3LLX :: [c1628287932]) (t_a3LLY :: [d1628287933]) = Zip4 t_a3LLV t_a3LLW t_a3LLX t_a3LLY
data Zip5Sym0 (l_a3LLB :: TyFun [a1628287925] (TyFun [b1628287926] (TyFun [c1628287927] (TyFun [d1628287928] (TyFun [e1628287929] [(a1628287925, b1628287926, c1628287927, d1628287928, e1628287929)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a3LLz :: [a1628287925]) (l_a3LLy :: TyFun [b1628287926] (TyFun [c1628287927] (TyFun [d1628287928] (TyFun [e1628287929] [(a1628287925, b1628287926, c1628287927, d1628287928, e1628287929)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a3LLv :: [a1628287925]) (l_a3LLw :: [b1628287926]) (l_a3LLu :: TyFun [c1628287927] (TyFun [d1628287928] (TyFun [e1628287929] [(a1628287925, b1628287926, c1628287927, d1628287928, e1628287929)] -> Type) -> Type))
data Zip5Sym3 (l_a3LLq :: [a1628287925]) (l_a3LLr :: [b1628287926]) (l_a3LLs :: [c1628287927]) (l_a3LLp :: TyFun [d1628287928] (TyFun [e1628287929] [(a1628287925, b1628287926, c1628287927, d1628287928, e1628287929)] -> Type))
data Zip5Sym4 (l_a3LLk :: [a1628287925]) (l_a3LLl :: [b1628287926]) (l_a3LLm :: [c1628287927]) (l_a3LLn :: [d1628287928]) (l_a3LLj :: TyFun [e1628287929] [(a1628287925, b1628287926, c1628287927, d1628287928, e1628287929)])
type Zip5Sym5 (t_a3LLe :: [a1628287925]) (t_a3LLf :: [b1628287926]) (t_a3LLg :: [c1628287927]) (t_a3LLh :: [d1628287928]) (t_a3LLi :: [e1628287929]) = Zip5 t_a3LLe t_a3LLf t_a3LLg t_a3LLh t_a3LLi
data Zip6Sym0 (l_a3LKQ :: TyFun [a1628287919] (TyFun [b1628287920] (TyFun [c1628287921] (TyFun [d1628287922] (TyFun [e1628287923] (TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a3LKO :: [a1628287919]) (l_a3LKN :: TyFun [b1628287920] (TyFun [c1628287921] (TyFun [d1628287922] (TyFun [e1628287923] (TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a3LKK :: [a1628287919]) (l_a3LKL :: [b1628287920]) (l_a3LKJ :: TyFun [c1628287921] (TyFun [d1628287922] (TyFun [e1628287923] (TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a3LKF :: [a1628287919]) (l_a3LKG :: [b1628287920]) (l_a3LKH :: [c1628287921]) (l_a3LKE :: TyFun [d1628287922] (TyFun [e1628287923] (TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)] -> Type) -> Type))
data Zip6Sym4 (l_a3LKz :: [a1628287919]) (l_a3LKA :: [b1628287920]) (l_a3LKB :: [c1628287921]) (l_a3LKC :: [d1628287922]) (l_a3LKy :: TyFun [e1628287923] (TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)] -> Type))
data Zip6Sym5 (l_a3LKs :: [a1628287919]) (l_a3LKt :: [b1628287920]) (l_a3LKu :: [c1628287921]) (l_a3LKv :: [d1628287922]) (l_a3LKw :: [e1628287923]) (l_a3LKr :: TyFun [f1628287924] [(a1628287919, b1628287920, c1628287921, d1628287922, e1628287923, f1628287924)])
type Zip6Sym6 (t_a3LKl :: [a1628287919]) (t_a3LKm :: [b1628287920]) (t_a3LKn :: [c1628287921]) (t_a3LKo :: [d1628287922]) (t_a3LKp :: [e1628287923]) (t_a3LKq :: [f1628287924]) = Zip6 t_a3LKl t_a3LKm t_a3LKn t_a3LKo t_a3LKp t_a3LKq
data Zip7Sym0 (l_a3LJT :: TyFun [a1628287912] (TyFun [b1628287913] (TyFun [c1628287914] (TyFun [d1628287915] (TyFun [e1628287916] (TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a3LJR :: [a1628287912]) (l_a3LJQ :: TyFun [b1628287913] (TyFun [c1628287914] (TyFun [d1628287915] (TyFun [e1628287916] (TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a3LJN :: [a1628287912]) (l_a3LJO :: [b1628287913]) (l_a3LJM :: TyFun [c1628287914] (TyFun [d1628287915] (TyFun [e1628287916] (TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a3LJI :: [a1628287912]) (l_a3LJJ :: [b1628287913]) (l_a3LJK :: [c1628287914]) (l_a3LJH :: TyFun [d1628287915] (TyFun [e1628287916] (TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a3LJC :: [a1628287912]) (l_a3LJD :: [b1628287913]) (l_a3LJE :: [c1628287914]) (l_a3LJF :: [d1628287915]) (l_a3LJB :: TyFun [e1628287916] (TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type) -> Type))
data Zip7Sym5 (l_a3LJv :: [a1628287912]) (l_a3LJw :: [b1628287913]) (l_a3LJx :: [c1628287914]) (l_a3LJy :: [d1628287915]) (l_a3LJz :: [e1628287916]) (l_a3LJu :: TyFun [f1628287917] (TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)] -> Type))
data Zip7Sym6 (l_a3LJn :: [a1628287912]) (l_a3LJo :: [b1628287913]) (l_a3LJp :: [c1628287914]) (l_a3LJq :: [d1628287915]) (l_a3LJr :: [e1628287916]) (l_a3LJs :: [f1628287917]) (l_a3LJm :: TyFun [g1628287918] [(a1628287912, b1628287913, c1628287914, d1628287915, e1628287916, f1628287917, g1628287918)])
type Zip7Sym7 (t_a3LJf :: [a1628287912]) (t_a3LJg :: [b1628287913]) (t_a3LJh :: [c1628287914]) (t_a3LJi :: [d1628287915]) (t_a3LJj :: [e1628287916]) (t_a3LJk :: [f1628287917]) (t_a3LJl :: [g1628287918]) = Zip7 t_a3LJf t_a3LJg t_a3LJh t_a3LJi t_a3LJj t_a3LJk t_a3LJl
data ZipWith4Sym0 (l_a3LIw :: TyFun (TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (TyFun [a1628287907] (TyFun [b1628287908] (TyFun [c1628287909] (TyFun [d1628287910] [e1628287911] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a3LIu :: TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (l_a3LIt :: TyFun [a1628287907] (TyFun [b1628287908] (TyFun [c1628287909] (TyFun [d1628287910] [e1628287911] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a3LIq :: TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (l_a3LIr :: [a1628287907]) (l_a3LIp :: TyFun [b1628287908] (TyFun [c1628287909] (TyFun [d1628287910] [e1628287911] -> Type) -> Type))
data ZipWith4Sym3 (l_a3LIl :: TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (l_a3LIm :: [a1628287907]) (l_a3LIn :: [b1628287908]) (l_a3LIk :: TyFun [c1628287909] (TyFun [d1628287910] [e1628287911] -> Type))
data ZipWith4Sym4 (l_a3LIf :: TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (l_a3LIg :: [a1628287907]) (l_a3LIh :: [b1628287908]) (l_a3LIi :: [c1628287909]) (l_a3LIe :: TyFun [d1628287910] [e1628287911])
type ZipWith4Sym5 (t_a3LI9 :: TyFun a1628287907 (TyFun b1628287908 (TyFun c1628287909 (TyFun d1628287910 e1628287911 -> Type) -> Type) -> Type) -> Type) (t_a3LIa :: [a1628287907]) (t_a3LIb :: [b1628287908]) (t_a3LIc :: [c1628287909]) (t_a3LId :: [d1628287910]) = ZipWith4 t_a3LI9 t_a3LIa t_a3LIb t_a3LIc t_a3LId
data ZipWith5Sym0 (l_a3LHy :: TyFun (TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a1628287901] (TyFun [b1628287902] (TyFun [c1628287903] (TyFun [d1628287904] (TyFun [e1628287905] [f1628287906] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a3LHw :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LHv :: TyFun [a1628287901] (TyFun [b1628287902] (TyFun [c1628287903] (TyFun [d1628287904] (TyFun [e1628287905] [f1628287906] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a3LHs :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LHt :: [a1628287901]) (l_a3LHr :: TyFun [b1628287902] (TyFun [c1628287903] (TyFun [d1628287904] (TyFun [e1628287905] [f1628287906] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a3LHn :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LHo :: [a1628287901]) (l_a3LHp :: [b1628287902]) (l_a3LHm :: TyFun [c1628287903] (TyFun [d1628287904] (TyFun [e1628287905] [f1628287906] -> Type) -> Type))
data ZipWith5Sym4 (l_a3LHh :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LHi :: [a1628287901]) (l_a3LHj :: [b1628287902]) (l_a3LHk :: [c1628287903]) (l_a3LHg :: TyFun [d1628287904] (TyFun [e1628287905] [f1628287906] -> Type))
data ZipWith5Sym5 (l_a3LHa :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LHb :: [a1628287901]) (l_a3LHc :: [b1628287902]) (l_a3LHd :: [c1628287903]) (l_a3LHe :: [d1628287904]) (l_a3LH9 :: TyFun [e1628287905] [f1628287906])
type ZipWith5Sym6 (t_a3LH3 :: TyFun a1628287901 (TyFun b1628287902 (TyFun c1628287903 (TyFun d1628287904 (TyFun e1628287905 f1628287906 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3LH4 :: [a1628287901]) (t_a3LH5 :: [b1628287902]) (t_a3LH6 :: [c1628287903]) (t_a3LH7 :: [d1628287904]) (t_a3LH8 :: [e1628287905]) = ZipWith5 t_a3LH3 t_a3LH4 t_a3LH5 t_a3LH6 t_a3LH7 t_a3LH8
data ZipWith6Sym0 (l_a3LGm :: TyFun (TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a1628287894] (TyFun [b1628287895] (TyFun [c1628287896] (TyFun [d1628287897] (TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a3LGk :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LGj :: TyFun [a1628287894] (TyFun [b1628287895] (TyFun [c1628287896] (TyFun [d1628287897] (TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a3LGg :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LGh :: [a1628287894]) (l_a3LGf :: TyFun [b1628287895] (TyFun [c1628287896] (TyFun [d1628287897] (TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a3LGb :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LGc :: [a1628287894]) (l_a3LGd :: [b1628287895]) (l_a3LGa :: TyFun [c1628287896] (TyFun [d1628287897] (TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a3LG5 :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LG6 :: [a1628287894]) (l_a3LG7 :: [b1628287895]) (l_a3LG8 :: [c1628287896]) (l_a3LG4 :: TyFun [d1628287897] (TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type) -> Type))
data ZipWith6Sym5 (l_a3LFY :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LFZ :: [a1628287894]) (l_a3LG0 :: [b1628287895]) (l_a3LG1 :: [c1628287896]) (l_a3LG2 :: [d1628287897]) (l_a3LFX :: TyFun [e1628287898] (TyFun [f1628287899] [g1628287900] -> Type))
data ZipWith6Sym6 (l_a3LFQ :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LFR :: [a1628287894]) (l_a3LFS :: [b1628287895]) (l_a3LFT :: [c1628287896]) (l_a3LFU :: [d1628287897]) (l_a3LFV :: [e1628287898]) (l_a3LFP :: TyFun [f1628287899] [g1628287900])
type ZipWith6Sym7 (t_a3LFI :: TyFun a1628287894 (TyFun b1628287895 (TyFun c1628287896 (TyFun d1628287897 (TyFun e1628287898 (TyFun f1628287899 g1628287900 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3LFJ :: [a1628287894]) (t_a3LFK :: [b1628287895]) (t_a3LFL :: [c1628287896]) (t_a3LFM :: [d1628287897]) (t_a3LFN :: [e1628287898]) (t_a3LFO :: [f1628287899]) = ZipWith6 t_a3LFI t_a3LFJ t_a3LFK t_a3LFL t_a3LFM t_a3LFN t_a3LFO
data ZipWith7Sym0 (l_a3LEV :: TyFun (TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a1628287886] (TyFun [b1628287887] (TyFun [c1628287888] (TyFun [d1628287889] (TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a3LET :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LES :: TyFun [a1628287886] (TyFun [b1628287887] (TyFun [c1628287888] (TyFun [d1628287889] (TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a3LEP :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEQ :: [a1628287886]) (l_a3LEO :: TyFun [b1628287887] (TyFun [c1628287888] (TyFun [d1628287889] (TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a3LEK :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEL :: [a1628287886]) (l_a3LEM :: [b1628287887]) (l_a3LEJ :: TyFun [c1628287888] (TyFun [d1628287889] (TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a3LEE :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEF :: [a1628287886]) (l_a3LEG :: [b1628287887]) (l_a3LEH :: [c1628287888]) (l_a3LED :: TyFun [d1628287889] (TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a3LEx :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEy :: [a1628287886]) (l_a3LEz :: [b1628287887]) (l_a3LEA :: [c1628287888]) (l_a3LEB :: [d1628287889]) (l_a3LEw :: TyFun [e1628287890] (TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type) -> Type))
data ZipWith7Sym6 (l_a3LEp :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEq :: [a1628287886]) (l_a3LEr :: [b1628287887]) (l_a3LEs :: [c1628287888]) (l_a3LEt :: [d1628287889]) (l_a3LEu :: [e1628287890]) (l_a3LEo :: TyFun [f1628287891] (TyFun [g1628287892] [h1628287893] -> Type))
data ZipWith7Sym7 (l_a3LEg :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3LEh :: [a1628287886]) (l_a3LEi :: [b1628287887]) (l_a3LEj :: [c1628287888]) (l_a3LEk :: [d1628287889]) (l_a3LEl :: [e1628287890]) (l_a3LEm :: [f1628287891]) (l_a3LEf :: TyFun [g1628287892] [h1628287893])
type ZipWith7Sym8 (t_a3LE7 :: TyFun a1628287886 (TyFun b1628287887 (TyFun c1628287888 (TyFun d1628287889 (TyFun e1628287890 (TyFun f1628287891 (TyFun g1628287892 h1628287893 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3LE8 :: [a1628287886]) (t_a3LE9 :: [b1628287887]) (t_a3LEa :: [c1628287888]) (t_a3LEb :: [d1628287889]) (t_a3LEc :: [e1628287890]) (t_a3LEd :: [f1628287891]) (t_a3LEe :: [g1628287892]) = ZipWith7 t_a3LE7 t_a3LE8 t_a3LE9 t_a3LEa t_a3LEb t_a3LEc t_a3LEd t_a3LEe
data NubSym0 (l_a1XTv :: TyFun [a1627856082] [a1627856082])
type NubSym1 (t_a1XTu :: [a1627856082]) = Nub t_a1XTu
data NubBySym0 (l_a1Xsg :: TyFun (TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (TyFun [a1627856081] [a1627856081] -> Type))
data NubBySym1 (l_a1Xse :: TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (l_a1Xsd :: TyFun [a1627856081] [a1627856081])
type NubBySym2 (t_a1Xsb :: TyFun a1627856081 (TyFun a1627856081 Bool -> Type) -> Type) (t_a1Xsc :: [a1627856081]) = NubBy t_a1Xsb t_a1Xsc
data UnionSym0 (l_a1XJr :: TyFun [a1627856078] (TyFun [a1627856078] [a1627856078] -> Type))
data UnionSym1 (l_a1XJp :: [a1627856078]) (l_a1XJo :: TyFun [a1627856078] [a1627856078])
type UnionSym2 (t_a1XJm :: [a1627856078]) (t_a1XJn :: [a1627856078]) = Union t_a1XJm t_a1XJn
data UnionBySym0 (l_a1XJa :: TyFun (TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (TyFun [a1627856079] (TyFun [a1627856079] [a1627856079] -> Type) -> Type))
data UnionBySym1 (l_a1XJ8 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (l_a1XJ7 :: TyFun [a1627856079] (TyFun [a1627856079] [a1627856079] -> Type))
data UnionBySym2 (l_a1XJ4 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (l_a1XJ5 :: [a1627856079]) (l_a1XJ3 :: TyFun [a1627856079] [a1627856079])
type UnionBySym3 (t_a1XJ0 :: TyFun a1627856079 (TyFun a1627856079 Bool -> Type) -> Type) (t_a1XJ1 :: [a1627856079]) (t_a1XJ2 :: [a1627856079]) = UnionBy t_a1XJ0 t_a1XJ1 t_a1XJ2
data GenericLengthSym0 (l_a1XrF :: TyFun [a1627856077] i1627856076)
type GenericLengthSym1 (t_a1XrE :: [a1627856077]) = GenericLength t_a1XrE
data GenericTakeSym0 (l_a3LE1 :: TyFun i1628287884 (TyFun [a1628287885] [a1628287885] -> Type))
data GenericTakeSym1 (l_a3LDZ :: i1628287884) (l_a3LDY :: TyFun [a1628287885] [a1628287885])
type GenericTakeSym2 (t_a3LDW :: i1628287884) (t_a3LDX :: [a1628287885]) = GenericTake t_a3LDW t_a3LDX
data GenericDropSym0 (l_a3LDM :: TyFun i1628287882 (TyFun [a1628287883] [a1628287883] -> Type))
data GenericDropSym1 (l_a3LDK :: i1628287882) (l_a3LDJ :: TyFun [a1628287883] [a1628287883])
type GenericDropSym2 (t_a3LDH :: i1628287882) (t_a3LDI :: [a1628287883]) = GenericDrop t_a3LDH t_a3LDI
data GenericSplitAtSym0 (l_a3LDx :: TyFun i1628287880 (TyFun [a1628287881] ([a1628287881], [a1628287881]) -> Type))
data GenericSplitAtSym1 (l_a3LDv :: i1628287880) (l_a3LDu :: TyFun [a1628287881] ([a1628287881], [a1628287881]))
type GenericSplitAtSym2 (t_a3LDs :: i1628287880) (t_a3LDt :: [a1628287881]) = GenericSplitAt t_a3LDs t_a3LDt
data GenericIndexSym0 (l_a3LDi :: TyFun [a1628287879] (TyFun i1628287878 a1628287879 -> Type))
data GenericIndexSym1 (l_a3LDg :: [a1628287879]) (l_a3LDf :: TyFun i1628287878 a1628287879)
type GenericIndexSym2 (t_a3LDd :: [a1628287879]) (t_a3LDe :: i1628287878) = GenericIndex t_a3LDd t_a3LDe
data GenericReplicateSym0 (l_a3LD3 :: TyFun i1628287876 (TyFun a1628287877 [a1628287877] -> Type))
data GenericReplicateSym1 (l_a3LD1 :: i1628287876) (l_a3LD0 :: TyFun a1628287877 [a1628287877])
type GenericReplicateSym2 (t_a3LCY :: i1628287876) (t_a3LCZ :: a1628287877) = GenericReplicate t_a3LCY t_a3LCZ
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.StripPrefixSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.StripPrefixSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip4Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip5Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip6Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.Zip7Sym6
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.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.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.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.GenericTakeSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericTakeSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericDropSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericDropSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericSplitAtSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericSplitAtSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericIndexSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericIndexSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericReplicateSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.List.GenericReplicateSym1


-- | 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 PEq a 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_a1fY6 :: TyFun a1627689599 (TyFun a1627689599 Bool -> Type))
data (:==$$) (l_a1fY4 :: a1627689599) (l_a1fY3 :: TyFun a1627689599 Bool)
type (:==$$$) (t_a1fY1 :: a1627689599) (t_a1fY2 :: a1627689599) = (:==) t_a1fY1 t_a1fY2
data (:/=$) (l_a1fYd :: TyFun a1627689599 (TyFun a1627689599 Bool -> Type))
data (:/=$$) (l_a1fYb :: a1627689599) (l_a1fYa :: TyFun a1627689599 Bool)
type (:/=$$$) (t_a1fY8 :: a1627689599) (t_a1fY9 :: a1627689599) = (:/=) t_a1fY8 t_a1fY9


-- | 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_ :: b_a1OSZ -> (a_a1OT0 -> b_a1OSZ) -> Maybe a_a1OT0 -> b_a1OSZ
either_ :: (a_a1RvN -> c_a1RvO) -> (b_a1RvP -> c_a1RvO) -> Either a_a1RvN b_a1RvP -> c_a1RvO

-- | (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_a1IEA :: TyFun k01627798799 k1627798801)
any_ :: (a_a1UD5 -> Bool) -> [a_a1UD5] -> Bool
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a1aCR :: TyFun Bool Bool)
type NotSym1 (t_a1aCQ :: Bool) = Not t_a1aCQ
data (:&&$) (l_a1aDc :: TyFun Bool (TyFun Bool Bool -> Type))
data (:&&$$) (l_a1aDa :: Bool) (l_a1aD9 :: TyFun Bool Bool)
type (:&&$$$) (t_a1aD7 :: Bool) (t_a1aD8 :: Bool) = (:&&) t_a1aD7 t_a1aD8
data (:||$) (l_a1aCZ :: TyFun Bool (TyFun Bool Bool -> Type))
data (:||$$) (l_a1aCX :: Bool) (l_a1aCW :: TyFun Bool Bool)
type (:||$$$) (t_a1aCU :: Bool) (t_a1aCV :: Bool) = (:||) t_a1aCU t_a1aCV
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_aXZf :: TyFun a822083585 (Maybe a822083585))
type JustSym1 (t_aXZe :: a822083585) = Just t_aXZe
data Maybe_Sym0 (l_a1OTf :: TyFun b1627823889 (TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type) -> Type))
data Maybe_Sym1 (l_a1OTd :: b1627823889) (l_a1OTc :: TyFun (TyFun a1627823890 b1627823889 -> Type) (TyFun (Maybe a1627823890) b1627823889 -> Type))
data Maybe_Sym2 (l_a1OT9 :: b1627823889) (l_a1OTa :: TyFun a1627823890 b1627823889 -> Type) (l_a1OT8 :: TyFun (Maybe a1627823890) b1627823889)
type Maybe_Sym3 (t_a1OT5 :: b1627823889) (t_a1OT6 :: TyFun a1627823890 b1627823889 -> Type) (t_a1OT7 :: Maybe a1627823890) = Maybe_ t_a1OT5 t_a1OT6 t_a1OT7
data LeftSym0 (l_aXZG :: TyFun a1627455901 (Either a1627455901 b1627455902))
type LeftSym1 (t_aXZF :: a1627455901) = Left t_aXZF
data RightSym0 (l_aXZJ :: TyFun b1627455902 (Either a1627455901 b1627455902))
type RightSym1 (t_aXZI :: b1627455902) = Right t_aXZI
data Either_Sym0 (l_a1Rw5 :: TyFun (TyFun a1627833983 c1627833984 -> Type) (TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type) -> Type))
data Either_Sym1 (l_a1Rw3 :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw2 :: TyFun (TyFun b1627833985 c1627833984 -> Type) (TyFun (Either a1627833983 b1627833985) c1627833984 -> Type))
data Either_Sym2 (l_a1RvZ :: TyFun a1627833983 c1627833984 -> Type) (l_a1Rw0 :: TyFun b1627833985 c1627833984 -> Type) (l_a1RvY :: TyFun (Either a1627833983 b1627833985) c1627833984)
type Either_Sym3 (t_a1RvV :: TyFun a1627833983 c1627833984 -> Type) (t_a1RvW :: TyFun b1627833985 c1627833984 -> Type) (t_a1RvX :: Either a1627833983 b1627833985) = Either_ t_a1RvV t_a1RvW t_a1RvX
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data FstSym0 (l_a1NQG :: TyFun (a1627819853, b1627819854) a1627819853)
type FstSym1 (t_a1NQF :: (a1627819853, b1627819854)) = Fst t_a1NQF
data SndSym0 (l_a1NQy :: TyFun (a1627819851, b1627819852) b1627819852)
type SndSym1 (t_a1NQx :: (a1627819851, b1627819852)) = Snd t_a1NQx
data CurrySym0 (l_a1NQp :: TyFun (TyFun (a1627819848, b1627819849) c1627819850 -> Type) (TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type) -> Type))
data CurrySym1 (l_a1NQn :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQm :: TyFun a1627819848 (TyFun b1627819849 c1627819850 -> Type))
data CurrySym2 (l_a1NQj :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (l_a1NQk :: a1627819848) (l_a1NQi :: TyFun b1627819849 c1627819850)
type CurrySym3 (t_a1NQf :: TyFun (a1627819848, b1627819849) c1627819850 -> Type) (t_a1NQg :: a1627819848) (t_a1NQh :: b1627819849) = Curry t_a1NQf t_a1NQg t_a1NQh
data UncurrySym0 (l_a1NQS :: TyFun (TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (TyFun (a1627819845, b1627819846) c1627819847 -> Type))
data UncurrySym1 (l_a1NQQ :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (l_a1NQP :: TyFun (a1627819845, b1627819846) c1627819847)
type UncurrySym2 (t_a1NQN :: TyFun a1627819845 (TyFun b1627819846 c1627819847 -> Type) -> Type) (t_a1NQO :: (a1627819845, b1627819846)) = Uncurry t_a1NQN t_a1NQO
data (:^$) l_a1IHo
data (:^$$) (l_a1IHm :: Nat) l_a1IHl
data IdSym0 (l_a1bx4 :: TyFun a1627672476 a1627672476)
type IdSym1 (t_a1bx3 :: a1627672476) = Id t_a1bx3
data ConstSym0 (l_a1bwG :: TyFun a1627672474 (TyFun b1627672475 a1627672474 -> Type))
data ConstSym1 (l_a1bwE :: a1627672474) (l_a1bwD :: TyFun b1627672475 a1627672474)
type ConstSym2 (t_a1bwB :: a1627672474) (t_a1bwC :: b1627672475) = Const t_a1bwB t_a1bwC
data (:.$) (l_a1bw5 :: TyFun (TyFun b1627672471 c1627672472 -> Type) (TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type) -> Type))
data (:.$$) (l_a1bw3 :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw2 :: TyFun (TyFun a1627672473 b1627672471 -> Type) (TyFun a1627672473 c1627672472 -> Type))
data (:.$$$) (l_a1bvZ :: TyFun b1627672471 c1627672472 -> Type) (l_a1bw0 :: TyFun a1627672473 b1627672471 -> Type) (l_a1bvY :: TyFun a1627672473 c1627672472)
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_a1bvN :: TyFun (TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type) -> Type))
data FlipSym1 (l_a1bvL :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvK :: TyFun b1627672469 (TyFun a1627672468 c1627672470 -> Type))
data FlipSym2 (l_a1bvH :: TyFun a1627672468 (TyFun b1627672469 c1627672470 -> Type) -> Type) (l_a1bvI :: b1627672469) (l_a1bvG :: TyFun a1627672468 c1627672470)
data AsTypeOfSym0 (l_a1bwX :: TyFun a1627672467 (TyFun a1627672467 a1627672467 -> Type))
data AsTypeOfSym1 (l_a1bwV :: a1627672467) (l_a1bwU :: TyFun a1627672467 a1627672467)
type AsTypeOfSym2 (t_a1bwS :: a1627672467) (t_a1bwT :: a1627672467) = AsTypeOf t_a1bwS t_a1bwT
data SeqSym0 (l_a1bvv :: TyFun a1627672465 (TyFun b1627672466 b1627672466 -> Type))
data SeqSym1 (l_a1bvt :: a1627672465) (l_a1bvs :: TyFun b1627672466 b1627672466)
type SeqSym2 (t_a1bvq :: a1627672465) (t_a1bvr :: b1627672466) = Seq t_a1bvq t_a1bvr
data (:$) (l_aXZs :: TyFun a822083585 (TyFun [a822083585] [a822083585] -> Type))
data (:$$) (l_aXZq :: a822083585) (l_aXZp :: TyFun [a822083585] [a822083585])
type (:$$$) (t_aXZn :: a822083585) (t_aXZo :: [a822083585]) = (:) t_aXZn t_aXZo
type NilSym0 = '[]
data MapSym0 (l_a1bxq :: TyFun (TyFun a1627672478 b1627672479 -> Type) (TyFun [a1627672478] [b1627672479] -> Type))
data MapSym1 (l_a1bxo :: TyFun a1627672478 b1627672479 -> Type) (l_a1bxn :: TyFun [a1627672478] [b1627672479])
type MapSym2 (t_a1bxl :: TyFun a1627672478 b1627672479 -> Type) (t_a1bxm :: [a1627672478]) = Map t_a1bxl t_a1bxm
data ReverseSym0 (l_a1Yhe :: TyFun [a1627856198] [a1627856198])
type ReverseSym1 (t_a1Yhd :: [a1627856198]) = Reverse t_a1Yhd
data (:++$$) (l_a1bxb :: [a1627672477]) (l_a1bxa :: TyFun [a1627672477] [a1627672477])
data (:++$) (l_a1bxd :: TyFun [a1627672477] (TyFun [a1627672477] [a1627672477] -> Type))
data HeadSym0 (l_a1YjJ :: TyFun [a1627856203] a1627856203)
type HeadSym1 (t_a1YjI :: [a1627856203]) = Head t_a1YjI
data LastSym0 (l_a1Yjz :: TyFun [a1627856202] a1627856202)
type LastSym1 (t_a1Yjy :: [a1627856202]) = Last t_a1Yjy
data TailSym0 (l_a1Yjr :: TyFun [a1627856201] [a1627856201])
type TailSym1 (t_a1Yjq :: [a1627856201]) = Tail t_a1Yjq
data InitSym0 (l_a1YiU :: TyFun [a1627856200] [a1627856200])
type InitSym1 (t_a1YiT :: [a1627856200]) = Init t_a1YiT
data NullSym0 (l_a1YhN :: TyFun [a1627856199] Bool)
type NullSym1 (t_a1YhM :: [a1627856199]) = Null t_a1YhM
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type) -> Type))
data FoldlSym1 (l_a10Zd :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Zc :: TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> Type))
data FoldlSym2 (l_a10Z9 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (l_a10Za :: b1627632057) (l_a10Z8 :: TyFun [a1627632056] b1627632057)
type FoldlSym3 (t_a10Z5 :: TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (t_a10Z6 :: b1627632057) (t_a10Z7 :: [a1627632056]) = Foldl t_a10Z5 t_a10Z6 t_a10Z7
data Foldl1Sym0 (l_a1Y4Z :: TyFun (TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (TyFun [a1627856189] a1627856189 -> Type))
data Foldl1Sym1 (l_a1Y4X :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (l_a1Y4W :: TyFun [a1627856189] a1627856189)
type Foldl1Sym2 (t_a1Y4U :: TyFun a1627856189 (TyFun a1627856189 a1627856189 -> Type) -> Type) (t_a1Y4V :: [a1627856189]) = Foldl1 t_a1Y4U t_a1Y4V
data FoldrSym0 (l_a1bxK :: TyFun (TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type) -> Type))
data FoldrSym1 (l_a1bxI :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxH :: TyFun b1627672481 (TyFun [a1627672480] b1627672481 -> Type))
data FoldrSym2 (l_a1bxE :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (l_a1bxF :: b1627672481) (l_a1bxD :: TyFun [a1627672480] b1627672481)
type FoldrSym3 (t_a1bxA :: TyFun a1627672480 (TyFun b1627672481 b1627672481 -> Type) -> Type) (t_a1bxB :: b1627672481) (t_a1bxC :: [a1627672480]) = Foldr t_a1bxA t_a1bxB t_a1bxC
data Foldr1Sym0 (l_a1Y4m :: TyFun (TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (TyFun [a1627856187] a1627856187 -> Type))
data Foldr1Sym1 (l_a1Y4k :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (l_a1Y4j :: TyFun [a1627856187] a1627856187)
type Foldr1Sym2 (t_a1Y4h :: TyFun a1627856187 (TyFun a1627856187 a1627856187 -> Type) -> Type) (t_a1Y4i :: [a1627856187]) = Foldr1 t_a1Y4h t_a1Y4i
data ConcatSym0 (l_a1Y4d :: TyFun [[a1627856186]] [a1627856186])
type ConcatSym1 (t_a1Y4c :: [[a1627856186]]) = Concat t_a1Y4c
data ConcatMapSym0 (l_a1Y42 :: TyFun (TyFun a1627856184 [b1627856185] -> Type) (TyFun [a1627856184] [b1627856185] -> Type))
data ConcatMapSym1 (l_a1Y40 :: TyFun a1627856184 [b1627856185] -> Type) (l_a1Y3Z :: TyFun [a1627856184] [b1627856185])
type ConcatMapSym2 (t_a1Y3X :: TyFun a1627856184 [b1627856185] -> Type) (t_a1Y3Y :: [a1627856184]) = ConcatMap t_a1Y3X t_a1Y3Y
data MaximumBySym0 (l_a1Y5e :: TyFun (TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (TyFun [a1627856116] a1627856116 -> Type))
data MaximumBySym1 (l_a1Y5c :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (l_a1Y5b :: TyFun [a1627856116] a1627856116)
type MaximumBySym2 (t_a1Y59 :: TyFun a1627856116 (TyFun a1627856116 Ordering -> Type) -> Type) (t_a1Y5a :: [a1627856116]) = MaximumBy t_a1Y59 t_a1Y5a
data MinimumBySym0 (l_a1Y6D :: TyFun (TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (TyFun [a1627856115] a1627856115 -> Type))
data MinimumBySym1 (l_a1Y6B :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (l_a1Y6A :: TyFun [a1627856115] a1627856115)
type MinimumBySym2 (t_a1Y6y :: TyFun a1627856115 (TyFun a1627856115 Ordering -> Type) -> Type) (t_a1Y6z :: [a1627856115]) = MinimumBy t_a1Y6y t_a1Y6z
data AndSym0 (l_a1Y3S :: TyFun [Bool] Bool)
type AndSym1 (t_a1Y3R :: [Bool]) = And t_a1Y3R
data OrSym0 (l_a1Y3M :: TyFun [Bool] Bool)
type OrSym1 (t_a1Y3L :: [Bool]) = Or t_a1Y3L
data Any_Sym0 (l_a1UDf :: TyFun (TyFun a1627845967 Bool -> Type) (TyFun [a1627845967] Bool -> Type))
data Any_Sym1 (l_a1UDd :: TyFun a1627845967 Bool -> Type) (l_a1UDc :: TyFun [a1627845967] Bool)
type Any_Sym2 (t_a1UDa :: TyFun a1627845967 Bool -> Type) (t_a1UDb :: [a1627845967]) = Any_ t_a1UDa t_a1UDb
data AllSym0 (l_a1Y3B :: TyFun (TyFun a1627856183 Bool -> Type) (TyFun [a1627856183] Bool -> Type))
data AllSym1 (l_a1Y3z :: TyFun a1627856183 Bool -> Type) (l_a1Y3y :: TyFun [a1627856183] Bool)
type AllSym2 (t_a1Y3w :: TyFun a1627856183 Bool -> Type) (t_a1Y3x :: [a1627856183]) = All t_a1Y3w t_a1Y3x
data ScanlSym0 (l_a1Y34 :: TyFun (TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type) -> Type))
data ScanlSym1 (l_a1Y32 :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y31 :: TyFun b1627856181 (TyFun [a1627856182] [b1627856181] -> Type))
data ScanlSym2 (l_a1Y2Y :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (l_a1Y2Z :: b1627856181) (l_a1Y2X :: TyFun [a1627856182] [b1627856181])
type ScanlSym3 (t_a1Y2U :: TyFun b1627856181 (TyFun a1627856182 b1627856181 -> Type) -> Type) (t_a1Y2V :: b1627856181) (t_a1Y2W :: [a1627856182]) = Scanl t_a1Y2U t_a1Y2V t_a1Y2W
data Scanl1Sym0 (l_a1Y3m :: TyFun (TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (TyFun [a1627856180] [a1627856180] -> Type))
data Scanl1Sym1 (l_a1Y3k :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (l_a1Y3j :: TyFun [a1627856180] [a1627856180])
type Scanl1Sym2 (t_a1Y3h :: TyFun a1627856180 (TyFun a1627856180 a1627856180 -> Type) -> Type) (t_a1Y3i :: [a1627856180]) = Scanl1 t_a1Y3h t_a1Y3i
data ScanrSym0 (l_a1Y2j :: TyFun (TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type) -> Type))
data ScanrSym1 (l_a1Y2h :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2g :: TyFun b1627856179 (TyFun [a1627856178] [b1627856179] -> Type))
data ScanrSym2 (l_a1Y2d :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (l_a1Y2e :: b1627856179) (l_a1Y2c :: TyFun [a1627856178] [b1627856179])
type ScanrSym3 (t_a1Y29 :: TyFun a1627856178 (TyFun b1627856179 b1627856179 -> Type) -> Type) (t_a1Y2a :: b1627856179) (t_a1Y2b :: [a1627856178]) = Scanr t_a1Y29 t_a1Y2a t_a1Y2b
data Scanr1Sym0 (l_a1Y1d :: TyFun (TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (TyFun [a1627856177] [a1627856177] -> Type))
data Scanr1Sym1 (l_a1Y1b :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (l_a1Y1a :: TyFun [a1627856177] [a1627856177])
type Scanr1Sym2 (t_a1Y18 :: TyFun a1627856177 (TyFun a1627856177 a1627856177 -> Type) -> Type) (t_a1Y19 :: [a1627856177]) = Scanr1 t_a1Y18 t_a1Y19
data ElemSym0 (l_a1XTk :: TyFun a1627856163 (TyFun [a1627856163] Bool -> Type))
data ElemSym1 (l_a1XTi :: a1627856163) (l_a1XTh :: TyFun [a1627856163] Bool)
type ElemSym2 (t_a1XTf :: a1627856163) (t_a1XTg :: [a1627856163]) = Elem t_a1XTf t_a1XTg
data NotElemSym0 (l_a1XT5 :: TyFun a1627856162 (TyFun [a1627856162] Bool -> Type))
data NotElemSym1 (l_a1XT3 :: a1627856162) (l_a1XT2 :: TyFun [a1627856162] Bool)
type NotElemSym2 (t_a1XT0 :: a1627856162) (t_a1XT1 :: [a1627856162]) = NotElem t_a1XT0 t_a1XT1
data ZipSym0 (l_a1XR2 :: TyFun [a1627856160] (TyFun [b1627856161] [(a1627856160, b1627856161)] -> Type))
data ZipSym1 (l_a1XR0 :: [a1627856160]) (l_a1XQZ :: TyFun [b1627856161] [(a1627856160, b1627856161)])
type ZipSym2 (t_a1XQX :: [a1627856160]) (t_a1XQY :: [b1627856161]) = Zip t_a1XQX t_a1XQY
data Zip3Sym0 (l_a1XPU :: TyFun [a1627856157] (TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type) -> Type))
data Zip3Sym1 (l_a1XPS :: [a1627856157]) (l_a1XPR :: TyFun [b1627856158] (TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)] -> Type))
data Zip3Sym2 (l_a1XPO :: [a1627856157]) (l_a1XPP :: [b1627856158]) (l_a1XPN :: TyFun [c1627856159] [(a1627856157, b1627856158, c1627856159)])
type Zip3Sym3 (t_a1XPK :: [a1627856157]) (t_a1XPL :: [b1627856158]) (t_a1XPM :: [c1627856159]) = Zip3 t_a1XPK t_a1XPL t_a1XPM
data ZipWithSym0 (l_a1XPf :: TyFun (TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type) -> Type))
data ZipWithSym1 (l_a1XPd :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPc :: TyFun [a1627856154] (TyFun [b1627856155] [c1627856156] -> Type))
data ZipWithSym2 (l_a1XP9 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (l_a1XPa :: [a1627856154]) (l_a1XP8 :: TyFun [b1627856155] [c1627856156])
type ZipWithSym3 (t_a1XP5 :: TyFun a1627856154 (TyFun b1627856155 c1627856156 -> Type) -> Type) (t_a1XP6 :: [a1627856154]) (t_a1XP7 :: [b1627856155]) = ZipWith t_a1XP5 t_a1XP6 t_a1XP7
data ZipWith3Sym0 (l_a1XNF :: TyFun (TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1XND :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNC :: TyFun [a1627856150] (TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type) -> Type))
data ZipWith3Sym2 (l_a1XNz :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNA :: [a1627856150]) (l_a1XNy :: TyFun [b1627856151] (TyFun [c1627856152] [d1627856153] -> Type))
data ZipWith3Sym3 (l_a1XNu :: TyFun a1627856150 (TyFun b1627856151 (TyFun c1627856152 d1627856153 -> Type) -> Type) -> Type) (l_a1XNv :: [a1627856150]) (l_a1XNw :: [b1627856151]) (l_a1XNt :: TyFun [c1627856152] [d1627856153])
data UnzipSym0 (l_a1XMW :: TyFun [(a1627856148, b1627856149)] ([a1627856148], [b1627856149]))
type UnzipSym1 (t_a1XMV :: [(a1627856148, b1627856149)]) = Unzip t_a1XMV
data UntilSym0 (l_a1U1P :: TyFun (TyFun a1627843639 Bool -> Type) (TyFun (TyFun a1627843639 a1627843639 -> Type) (TyFun a1627843639 a1627843639 -> Type) -> Type))
data UntilSym1 (l_a1U1N :: TyFun a1627843639 Bool -> Type) (l_a1U1M :: TyFun (TyFun a1627843639 a1627843639 -> Type) (TyFun a1627843639 a1627843639 -> Type))
data UntilSym2 (l_a1U1J :: TyFun a1627843639 Bool -> Type) (l_a1U1K :: TyFun a1627843639 a1627843639 -> Type) (l_a1U1I :: TyFun a1627843639 a1627843639)
type UntilSym3 (t_a1U1F :: TyFun a1627843639 Bool -> Type) (t_a1U1G :: TyFun a1627843639 a1627843639 -> Type) (t_a1U1H :: a1627843639) = Until t_a1U1F t_a1U1G t_a1U1H
data LengthSym0 (l_a1Xu8 :: TyFun [a1627856086] Nat)
type LengthSym1 (t_a1Xu7 :: [a1627856086]) = Length t_a1Xu7
data SumSym0 (l_a1XuE :: TyFun [a1627856088] a1627856088)
type SumSym1 (t_a1XuD :: [a1627856088]) = Sum t_a1XuD
data ProductSym0 (l_a1Xug :: TyFun [a1627856087] a1627856087)
type ProductSym1 (t_a1Xuf :: [a1627856087]) = Product t_a1Xuf
data ReplicateSym0 (l_a1XtQ :: TyFun Nat (TyFun a1627856085 [a1627856085] -> Type))
data ReplicateSym1 (l_a1XtO :: Nat) (l_a1XtN :: TyFun a1627856085 [a1627856085])
type ReplicateSym2 (t_a1XtL :: Nat) (t_a1XtM :: a1627856085) = Replicate t_a1XtL t_a1XtM
data TakeSym0 (l_a1Xx1 :: TyFun Nat (TyFun [a1627856101] [a1627856101] -> Type))
data TakeSym1 (l_a1XwZ :: Nat) (l_a1XwY :: TyFun [a1627856101] [a1627856101])
type TakeSym2 (t_a1XwW :: Nat) (t_a1XwX :: [a1627856101]) = Take t_a1XwW t_a1XwX
data DropSym0 (l_a1Xww :: TyFun Nat (TyFun [a1627856100] [a1627856100] -> Type))
data DropSym1 (l_a1Xwu :: Nat) (l_a1Xwt :: TyFun [a1627856100] [a1627856100])
type DropSym2 (t_a1Xwr :: Nat) (t_a1Xws :: [a1627856100]) = Drop t_a1Xwr t_a1Xws
data SplitAtSym0 (l_a1Xxw :: TyFun Nat (TyFun [a1627856099] ([a1627856099], [a1627856099]) -> Type))
data SplitAtSym1 (l_a1Xxu :: Nat) (l_a1Xxt :: TyFun [a1627856099] ([a1627856099], [a1627856099]))
type SplitAtSym2 (t_a1Xxr :: Nat) (t_a1Xxs :: [a1627856099]) = SplitAt t_a1Xxr t_a1Xxs
data TakeWhileSym0 (l_a1XCW :: TyFun (TyFun a1627856106 Bool -> Type) (TyFun [a1627856106] [a1627856106] -> Type))
data TakeWhileSym1 (l_a1XCU :: TyFun a1627856106 Bool -> Type) (l_a1XCT :: TyFun [a1627856106] [a1627856106])
type TakeWhileSym2 (t_a1XCR :: TyFun a1627856106 Bool -> Type) (t_a1XCS :: [a1627856106]) = TakeWhile t_a1XCR t_a1XCS
data DropWhileSym0 (l_a1XCe :: TyFun (TyFun a1627856105 Bool -> Type) (TyFun [a1627856105] [a1627856105] -> Type))
data DropWhileSym1 (l_a1XCc :: TyFun a1627856105 Bool -> Type) (l_a1XCb :: TyFun [a1627856105] [a1627856105])
type DropWhileSym2 (t_a1XC9 :: TyFun a1627856105 Bool -> Type) (t_a1XCa :: [a1627856105]) = DropWhile t_a1XC9 t_a1XCa
data SpanSym0 (l_a1Xzl :: TyFun (TyFun a1627856103 Bool -> Type) (TyFun [a1627856103] ([a1627856103], [a1627856103]) -> Type))
data SpanSym1 (l_a1Xzj :: TyFun a1627856103 Bool -> Type) (l_a1Xzi :: TyFun [a1627856103] ([a1627856103], [a1627856103]))
type SpanSym2 (t_a1Xzg :: TyFun a1627856103 Bool -> Type) (t_a1Xzh :: [a1627856103]) = Span t_a1Xzg t_a1Xzh
data BreakSym0 (l_a1XxH :: TyFun (TyFun a1627856102 Bool -> Type) (TyFun [a1627856102] ([a1627856102], [a1627856102]) -> Type))
data BreakSym1 (l_a1XxF :: TyFun a1627856102 Bool -> Type) (l_a1XxE :: TyFun [a1627856102] ([a1627856102], [a1627856102]))
type BreakSym2 (t_a1XxC :: TyFun a1627856102 Bool -> Type) (t_a1XxD :: [a1627856102]) = Break t_a1XxC t_a1XxD
data LookupSym0 (l_a1XvW :: TyFun a1627856091 (TyFun [(a1627856091, b1627856092)] (Maybe b1627856092) -> Type))
data LookupSym1 (l_a1XvU :: a1627856091) (l_a1XvT :: TyFun [(a1627856091, b1627856092)] (Maybe b1627856092))
type LookupSym2 (t_a1XvR :: a1627856091) (t_a1XvS :: [(a1627856091, b1627856092)]) = Lookup t_a1XvR t_a1XvS
data FilterSym0 (l_a1XDr :: TyFun (TyFun a1627856114 Bool -> Type) (TyFun [a1627856114] [a1627856114] -> Type))
data FilterSym1 (l_a1XDp :: TyFun a1627856114 Bool -> Type) (l_a1XDo :: TyFun [a1627856114] [a1627856114])
type FilterSym2 (t_a1XDm :: TyFun a1627856114 Bool -> Type) (t_a1XDn :: [a1627856114]) = Filter t_a1XDm t_a1XDn
data (:!!$) (l_a1Xtl :: TyFun [a1627856083] (TyFun Nat a1627856083 -> Type))
data (:!!$$) (l_a1Xtj :: [a1627856083]) (l_a1Xti :: TyFun Nat a1627856083)
type (:!!$$$) (t_a1Xtg :: [a1627856083]) (t_a1Xth :: Nat) = (:!!) t_a1Xtg t_a1Xth


-- | 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 PEq a 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 a_a1jVW => POrd (a_a1jVW :: Type) where {
    type family Compare (arg_a1kho :: a_a1jVW) (arg_a1khp :: a_a1jVW) :: Ordering;
    type family (:<) (arg_a1khx :: a_a1jVW) (arg_a1khy :: a_a1jVW) :: Bool;
    type family (:<=) (arg_a1khG :: a_a1jVW) (arg_a1khH :: a_a1jVW) :: Bool;
    type family (:>) (arg_a1khP :: a_a1jVW) (arg_a1khQ :: a_a1jVW) :: Bool;
    type family (:>=) (arg_a1khY :: a_a1jVW) (arg_a1khZ :: a_a1jVW) :: Bool;
    type family Max (arg_a1ki7 :: a_a1jVW) (arg_a1ki8 :: a_a1jVW) :: a_a1jVW;
    type family Min (arg_a1kig :: a_a1jVW) (arg_a1kih :: a_a1jVW) :: a_a1jVW;
    type Compare a_a1kiW a_a1kiX =
        Apply (Apply Compare_1627706336Sym0 a_a1kiW) a_a1kiX;
    type (:<) a_a1kjt a_a1kju =
        Apply (Apply TFHelper_1627706369Sym0 a_a1kjt) a_a1kju;
    type (:<=) a_a1kk0 a_a1kk1 =
        Apply (Apply TFHelper_1627706402Sym0 a_a1kk0) a_a1kk1;
    type (:>) a_a1kkx a_a1kky =
        Apply (Apply TFHelper_1627706435Sym0 a_a1kkx) a_a1kky;
    type (:>=) a_a1kl4 a_a1kl5 =
        Apply (Apply TFHelper_1627706468Sym0 a_a1kl4) a_a1kl5;
    type Max a_a1klB a_a1klC =
        Apply (Apply Max_1627706501Sym0 a_a1klB) a_a1klC;
    type Min a_a1km8 a_a1km9 =
        Apply (Apply Min_1627706534Sym0 a_a1km8) a_a1km9;
}

-- | The type constructor <a>Any</a> is type to which you can unsafely
--   coerce any lifted type, and back. More concretely, for a lifted type
--   <tt>t</tt> and value <tt>x :: t</tt>, -- <tt>unsafeCoerce
--   (unsafeCoerce x :: Any) :: t</tt> is equivalent to <tt>x</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_a1IEA :: TyFun k01627798799 k1627798801)
type TrueSym0 = True
type FalseSym0 = False
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_aY0i :: TyFun a822083585 (TyFun b822083586 (a822083585, b822083586) -> Type))
data Tuple2Sym1 (l_aY0g :: a822083585) (l_aY0f :: TyFun b822083586 (a822083585, b822083586))
type Tuple2Sym2 (t_aY0d :: a822083585) (t_aY0e :: b822083586) = '(t_aY0d, t_aY0e)
data Tuple3Sym0 (l_aY0G :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type) -> Type))
data Tuple3Sym1 (l_aY0E :: a822083585) (l_aY0D :: TyFun b822083586 (TyFun c822083587 (a822083585, b822083586, c822083587) -> Type))
data Tuple3Sym2 (l_aY0A :: a822083585) (l_aY0B :: b822083586) (l_aY0z :: TyFun c822083587 (a822083585, b822083586, c822083587))
type Tuple3Sym3 (t_aY0w :: a822083585) (t_aY0x :: b822083586) (t_aY0y :: c822083587) = '(t_aY0w, t_aY0x, t_aY0y)
data Tuple4Sym0 (l_aY1f :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_aY1d :: a822083585) (l_aY1c :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type) -> Type))
data Tuple4Sym2 (l_aY19 :: a822083585) (l_aY1a :: b822083586) (l_aY18 :: TyFun c822083587 (TyFun d822083588 (a822083585, b822083586, c822083587, d822083588) -> Type))
data Tuple4Sym3 (l_aY14 :: a822083585) (l_aY15 :: b822083586) (l_aY16 :: c822083587) (l_aY13 :: TyFun d822083588 (a822083585, b822083586, c822083587, d822083588))
type Tuple4Sym4 (t_aY0Z :: a822083585) (t_aY10 :: b822083586) (t_aY11 :: c822083587) (t_aY12 :: d822083588) = '(t_aY0Z, t_aY10, t_aY11, t_aY12)
data Tuple5Sym0 (l_aY20 :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_aY1Y :: a822083585) (l_aY1X :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_aY1U :: a822083585) (l_aY1V :: b822083586) (l_aY1T :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type) -> Type))
data Tuple5Sym3 (l_aY1P :: a822083585) (l_aY1Q :: b822083586) (l_aY1R :: c822083587) (l_aY1O :: TyFun d822083588 (TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589) -> Type))
data Tuple5Sym4 (l_aY1J :: a822083585) (l_aY1K :: b822083586) (l_aY1L :: c822083587) (l_aY1M :: d822083588) (l_aY1I :: TyFun e822083589 (a822083585, b822083586, c822083587, d822083588, e822083589))
type Tuple5Sym5 (t_aY1D :: a822083585) (t_aY1E :: b822083586) (t_aY1F :: c822083587) (t_aY1G :: d822083588) (t_aY1H :: e822083589) = '(t_aY1D, t_aY1E, t_aY1F, t_aY1G, t_aY1H)
data Tuple6Sym0 (l_aY2Y :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_aY2W :: a822083585) (l_aY2V :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_aY2S :: a822083585) (l_aY2T :: b822083586) (l_aY2R :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_aY2N :: a822083585) (l_aY2O :: b822083586) (l_aY2P :: c822083587) (l_aY2M :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type) -> Type))
data Tuple6Sym4 (l_aY2H :: a822083585) (l_aY2I :: b822083586) (l_aY2J :: c822083587) (l_aY2K :: d822083588) (l_aY2G :: TyFun e822083589 (TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590) -> Type))
data Tuple6Sym5 (l_aY2A :: a822083585) (l_aY2B :: b822083586) (l_aY2C :: c822083587) (l_aY2D :: d822083588) (l_aY2E :: e822083589) (l_aY2z :: TyFun f822083590 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590))
type Tuple6Sym6 (t_aY2t :: a822083585) (t_aY2u :: b822083586) (t_aY2v :: c822083587) (t_aY2w :: d822083588) (t_aY2x :: e822083589) (t_aY2y :: f822083590) = '(t_aY2t, t_aY2u, t_aY2v, t_aY2w, t_aY2x, t_aY2y)
data Tuple7Sym0 (l_aY4a :: TyFun a822083585 (TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_aY48 :: a822083585) (l_aY47 :: TyFun b822083586 (TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_aY44 :: a822083585) (l_aY45 :: b822083586) (l_aY43 :: TyFun c822083587 (TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_aY3Z :: a822083585) (l_aY40 :: b822083586) (l_aY41 :: c822083587) (l_aY3Y :: TyFun d822083588 (TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_aY3T :: a822083585) (l_aY3U :: b822083586) (l_aY3V :: c822083587) (l_aY3W :: d822083588) (l_aY3S :: TyFun e822083589 (TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type) -> Type))
data Tuple7Sym5 (l_aY3M :: a822083585) (l_aY3N :: b822083586) (l_aY3O :: c822083587) (l_aY3P :: d822083588) (l_aY3Q :: e822083589) (l_aY3L :: TyFun f822083590 (TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591) -> Type))
data Tuple7Sym6 (l_aY3E :: a822083585) (l_aY3F :: b822083586) (l_aY3G :: c822083587) (l_aY3H :: d822083588) (l_aY3I :: e822083589) (l_aY3J :: f822083590) (l_aY3D :: TyFun g822083591 (a822083585, b822083586, c822083587, d822083588, e822083589, f822083590, g822083591))
type Tuple7Sym7 (t_aY3w :: a822083585) (t_aY3x :: b822083586) (t_aY3y :: c822083587) (t_aY3z :: d822083588) (t_aY3A :: e822083589) (t_aY3B :: f822083590) (t_aY3C :: g822083591) = '(t_aY3w, t_aY3x, t_aY3y, t_aY3z, t_aY3A, t_aY3B, t_aY3C)
data ThenCmpSym0 (l_a1m5S :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data FoldlSym0 (l_a10Zf :: TyFun (TyFun b1627632057 (TyFun a1627632056 b1627632057 -> Type) -> Type) (TyFun b1627632057 (TyFun [a1627632056] b1627632057 -> 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 -> ()


-- | 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]
