-- 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>https://cs.brynmawr.edu/~rae/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>https://cs.brynmawr.edu/~rae/papers/2014/promotion/promotion.pdf</a>.
@package singletons
@version 2.4.1


-- | 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 (:~:) (a :: k) (b :: k) :: forall k. () => k -> k -> *
[Refl] :: 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 Data.Singletons.Decide.SDecide k => Data.Type.Equality.TestEquality Data.Singletons.Internal.Sing
instance Data.Singletons.Decide.SDecide k => Data.Type.Coercion.TestCoercion Data.Singletons.Internal.Sing


-- | Defines <a>Sigma</a>, a dependent pair data type, and related
--   functions.
module Data.Singletons.Sigma

-- | A dependent pair.
data Sigma (s :: Type) :: (s ~> Type) -> Type
[:&:] :: forall s t fst. Sing (fst :: s) -> t @@ fst -> Sigma s t

-- | Unicode shorthand for <a>Sigma</a>.
type Σ (s :: Type) (t :: s ~> Type) = Sigma s t

-- | Project the first element out of a dependent pair.
projSigma1 :: forall s t. SingKind s => Sigma s t -> Demote s

-- | Project the second element out of a dependent pair.
--   
--   In an ideal setting, the type of <a>projSigma2</a> would be closer to:
--   
--   <pre>
--   <a>projSigma2</a> :: <a>Sing</a> (sig :: <a>Sigma</a> s t) -&gt; t @@ ProjSigma1 sig
--   </pre>
--   
--   But promoting <a>projSigma1</a> to a type family is not a simple task.
--   Instead, we do the next-best thing, which is to use Church-style
--   elimination.
projSigma2 :: forall s t r. (forall (fst :: s). t @@ fst -> r) -> Sigma s t -> r

-- | Map across a <a>Sigma</a> value in a dependent fashion.
mapSigma :: Sing (f :: a ~> b) -> (forall (x :: a). p @@ x -> q @@ (f @@ x)) -> Sigma a p -> Sigma b q

-- | Zip two <a>Sigma</a> values together in a dependent fashion.
zipSigma :: Sing (f :: a ~> b ~> c) -> (forall (x :: a) (y :: b). p @@ x -> q @@ y -> r @@ (f @@ x @@ y)) -> Sigma a p -> Sigma b q -> Sigma c r

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


-- | Defines functions and datatypes relating to the singleton for
--   <a>Void</a>, including a singleton version of all the definitions in
--   <tt>Data.Void</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.Void</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Singletons.Prelude.Void

-- | The singleton kind-indexed data family.
type SVoid = (Sing :: Void -> Type)
sAbsurd :: forall (t_a1cDA :: Void). Sing t_a1cDA -> Sing (Apply AbsurdSym0 t_a1cDA :: a_a1cDp)
data AbsurdSym0 (l_a1cDt :: TyFun Void a6989586621679296691)
type AbsurdSym1 (t_a1cDs :: Void) = Absurd t_a1cDs
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Void.AbsurdSym0


-- | Defines promoted functions and datatypes relating to <tt>Void</tt>,
--   including a promoted version of all the definitions in
--   <tt>Data.Void</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.Void</tt>. Also, please excuse
--   the apparent repeated variable names. This is due to an interaction
--   between Template Haskell and Haddock.
module Data.Promotion.Prelude.Void
data AbsurdSym0 (l_a1cDt :: TyFun Void a6989586621679296691)
type AbsurdSym1 (t_a1cDs :: Void) = Absurd t_a1cDs


-- | 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_a1cQN :: (a_a1cOH, b_a1cOI)). Sing t_a1cQN -> Sing (Apply FstSym0 t_a1cQN :: a_a1cOH)
sSnd :: forall (t_a1cQM :: (a_a1cOF, b_a1cOG)). Sing t_a1cQM -> Sing (Apply SndSym0 t_a1cQM :: b_a1cOG)
sCurry :: forall (t_a1cQJ :: TyFun (a_a1cOC, b_a1cOD) c_a1cOE -> Type) (t_a1cQK :: a_a1cOC) (t_a1cQL :: b_a1cOD). Sing t_a1cQJ -> Sing t_a1cQK -> Sing t_a1cQL -> Sing (Apply (Apply (Apply CurrySym0 t_a1cQJ) t_a1cQK) t_a1cQL :: c_a1cOE)
sUncurry :: forall (t_a1cQO :: TyFun a_a1cOz (TyFun b_a1cOA c_a1cOB -> Type) -> Type) (t_a1cQP :: (a_a1cOz, b_a1cOA)). Sing t_a1cQO -> Sing t_a1cQP -> Sing (Apply (Apply UncurrySym0 t_a1cQO) t_a1cQP :: c_a1cOB)
sSwap :: forall (t_a1cQI :: (a_a1cOx, b_a1cOy)). Sing t_a1cQI -> Sing (Apply SwapSym0 t_a1cQI :: (b_a1cOy, a_a1cOx))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data FstSym0 (l_a1cQt :: TyFun (a6989586621679297391, b6989586621679297392) a6989586621679297391)
type FstSym1 (t_a1cQs :: (a6989586621679297391, b6989586621679297392)) = Fst t_a1cQs
data SndSym0 (l_a1cQo :: TyFun (a6989586621679297389, b6989586621679297390) b6989586621679297390)
type SndSym1 (t_a1cQn :: (a6989586621679297389, b6989586621679297390)) = Snd t_a1cQn
data CurrySym0 (l_a1cQf :: TyFun (TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type) -> Type))
data CurrySym1 (l_a1cQd :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQc :: TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type))
data CurrySym2 (l_a1cQ9 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQa :: a6989586621679297386) (l_a1cQ8 :: TyFun b6989586621679297387 c6989586621679297388)
type CurrySym3 (t_a1cQ5 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (t_a1cQ6 :: a6989586621679297386) (t_a1cQ7 :: b6989586621679297387) = Curry t_a1cQ5 t_a1cQ6 t_a1cQ7
data UncurrySym0 (l_a1cQC :: TyFun (TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385 -> Type))
data UncurrySym1 (l_a1cQA :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (l_a1cQz :: TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385)
type UncurrySym2 (t_a1cQx :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (t_a1cQy :: (a6989586621679297383, b6989586621679297384)) = Uncurry t_a1cQx t_a1cQy
data SwapSym0 (l_a1cQ0 :: TyFun (a6989586621679297381, b6989586621679297382) (b6989586621679297382, a6989586621679297381))
type SwapSym1 (t_a1cPZ :: (a6989586621679297381, b6989586621679297382)) = Swap t_a1cPZ
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_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data FstSym0 (l_a1cQt :: TyFun (a6989586621679297391, b6989586621679297392) a6989586621679297391)
type FstSym1 (t_a1cQs :: (a6989586621679297391, b6989586621679297392)) = Fst t_a1cQs
data SndSym0 (l_a1cQo :: TyFun (a6989586621679297389, b6989586621679297390) b6989586621679297390)
type SndSym1 (t_a1cQn :: (a6989586621679297389, b6989586621679297390)) = Snd t_a1cQn
data CurrySym0 (l_a1cQf :: TyFun (TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type) -> Type))
data CurrySym1 (l_a1cQd :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQc :: TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type))
data CurrySym2 (l_a1cQ9 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQa :: a6989586621679297386) (l_a1cQ8 :: TyFun b6989586621679297387 c6989586621679297388)
type CurrySym3 (t_a1cQ5 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (t_a1cQ6 :: a6989586621679297386) (t_a1cQ7 :: b6989586621679297387) = Curry t_a1cQ5 t_a1cQ6 t_a1cQ7
data UncurrySym0 (l_a1cQC :: TyFun (TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385 -> Type))
data UncurrySym1 (l_a1cQA :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (l_a1cQz :: TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385)
type UncurrySym2 (t_a1cQx :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (t_a1cQy :: (a6989586621679297383, b6989586621679297384)) = Uncurry t_a1cQx t_a1cQy
data SwapSym0 (l_a1cQ0 :: TyFun (a6989586621679297381, b6989586621679297382) (b6989586621679297382, a6989586621679297381))
type SwapSym1 (t_a1cPZ :: (a6989586621679297381, b6989586621679297382)) = Swap t_a1cPZ


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

-- | Type-level "not". An injective type family since <tt>4.10.0.0</tt>.

-- | Negation of a singleton
sNot :: Sing a -> Sing (Not a)

-- | Type-level "and"

-- | Type-level "or"

-- | Conjunction of singletons
(%&&) :: Sing a -> Sing b -> Sing (a && b)
infixr 3 %&&

-- | Disjunction of singletons
(%||) :: Sing a -> Sing b -> Sing (a || b)
infixr 2 %||
bool_ :: a_a1dOs -> a_a1dOs -> Bool -> a_a1dOs
sBool_ :: forall (t_a1dOR :: a_a1dOs) (t_a1dOS :: a_a1dOs) (t_a1dOT :: Bool). Sing t_a1dOR -> Sing t_a1dOS -> Sing t_a1dOT -> Sing (Apply (Apply (Apply Bool_Sym0 t_a1dOR) t_a1dOS) t_a1dOT :: a_a1dOs)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1e33 :: TyFun Bool Bool)
type NotSym1 (t_a1e32 :: Bool) = Not t_a1e32
data (&&@#@$) (l_a1dWX :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1dWV :: Bool) (l_a1dWU :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1dWS :: Bool) (t_a1dWT :: Bool) = (&&) t_a1dWS t_a1dWT
data (||@#@$) (l_a1e09 :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e07 :: Bool) (l_a1e06 :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e04 :: Bool) (t_a1e05 :: Bool) = (||) t_a1e04 t_a1e05
data Bool_Sym0 (l_a1dOI :: TyFun a6989586621679301220 (TyFun a6989586621679301220 (TyFun Bool a6989586621679301220 -> Type) -> Type))
data Bool_Sym1 (l_a1dOG :: a6989586621679301220) (l_a1dOF :: TyFun a6989586621679301220 (TyFun Bool a6989586621679301220 -> Type))
data Bool_Sym2 (l_a1dOC :: a6989586621679301220) (l_a1dOD :: a6989586621679301220) (l_a1dOB :: TyFun Bool a6989586621679301220)
type Bool_Sym3 (t_a1dOy :: a6989586621679301220) (t_a1dOz :: a6989586621679301220) (t_a1dOA :: Bool) = Bool_ t_a1dOy t_a1dOz t_a1dOA
type OtherwiseSym0 = Otherwise
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.NotSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.||@#@$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.||@#@$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.&&@#@$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.Prelude.Bool.&&@#@$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Bool.Bool_Sym2


-- | 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 '(DTE.==)', from
--   <a>Data.Type.Equality</a>.
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_a1euV :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (==@#@$$) (l_a1euT :: a6989586621679303786) (l_a1euS :: TyFun a6989586621679303786 Bool)
type (==@#@$$$) (t_a1euQ :: a6989586621679303786) (t_a1euR :: a6989586621679303786) = (==) t_a1euQ t_a1euR
data (/=@#@$) (l_a1ev2 :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (/=@#@$$) (l_a1ev0 :: a6989586621679303786) (l_a1euZ :: TyFun a6989586621679303786 Bool)
type (/=@#@$$$) (t_a1euX :: a6989586621679303786) (t_a1euY :: a6989586621679303786) = (/=) t_a1euX t_a1euY
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 (a, b, c, d, e, f, g)
instance Data.Singletons.Prelude.Eq.PEq (a, b, c, d, e, f)
instance Data.Singletons.Prelude.Eq.PEq (a, b, c, d, e)
instance Data.Singletons.Prelude.Eq.PEq (a, b, c, d)
instance Data.Singletons.Prelude.Eq.PEq (a, b, c)
instance Data.Singletons.Prelude.Eq.PEq (a, b)
instance Data.Singletons.Prelude.Eq.PEq Data.Void.Void
instance Data.Singletons.Prelude.Eq.PEq (GHC.Base.NonEmpty a)
instance Data.Singletons.Prelude.Eq.PEq (Data.Either.Either a b)
instance Data.Singletons.Prelude.Eq.PEq [a]
instance Data.Singletons.Prelude.Eq.PEq (GHC.Base.Maybe a)
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]) => 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 [a]) => Data.Singletons.Prelude.Eq.SEq (GHC.Base.NonEmpty a)
instance Data.Singletons.Prelude.Eq.SEq Data.Void.Void
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.==@#@$$)


-- | Defines the promoted version of Ord, <a>POrd</a>, and the singleton
--   version, <a>SOrd</a>.
module Data.Singletons.Prelude.Ord
class PEq a_a1hrt => POrd (a_a1hrt :: Type) where {
    type family Compare (arg_a1hNp :: a_a1hrt) (arg_a1hNq :: a_a1hrt) :: Ordering;
    type family (<) (arg_a1hNy :: a_a1hrt) (arg_a1hNz :: a_a1hrt) :: Bool;
    type family (<=) (arg_a1hNH :: a_a1hrt) (arg_a1hNI :: a_a1hrt) :: Bool;
    type family (>) (arg_a1hNQ :: a_a1hrt) (arg_a1hNR :: a_a1hrt) :: Bool;
    type family (>=) (arg_a1hNZ :: a_a1hrt) (arg_a1hO0 :: a_a1hrt) :: Bool;
    type family Max (arg_a1hO8 :: a_a1hrt) (arg_a1hO9 :: a_a1hrt) :: a_a1hrt;
    type family Min (arg_a1hOh :: a_a1hrt) (arg_a1hOi :: a_a1hrt) :: a_a1hrt;
    type Compare a_a1hOX a_a1hOY =
        Apply (Apply Compare_6989586621679316629Sym0 a_a1hOX) a_a1hOY;
    type (<) a_a1hPu a_a1hPv =
        Apply (Apply TFHelper_6989586621679316662Sym0 a_a1hPu) a_a1hPv;
    type (<=) a_a1hQ1 a_a1hQ2 =
        Apply (Apply TFHelper_6989586621679316695Sym0 a_a1hQ1) a_a1hQ2;
    type (>) a_a1hQy a_a1hQz =
        Apply (Apply TFHelper_6989586621679316728Sym0 a_a1hQy) a_a1hQz;
    type (>=) a_a1hR5 a_a1hR6 =
        Apply (Apply TFHelper_6989586621679316761Sym0 a_a1hR5) a_a1hR6;
    type Max a_a1hRC a_a1hRD =
        Apply (Apply Max_6989586621679316794Sym0 a_a1hRC) a_a1hRD;
    type Min a_a1hS9 a_a1hSa =
        Apply (Apply Min_6989586621679316827Sym0 a_a1hS9) a_a1hSa;
}
class SEq a_a1hrt => SOrd a_a1hrt
sCompare :: forall (t_a1hSq :: a_a1hrt) (t_a1hSr :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSq -> Sing t_a1hSr -> Sing (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering)
(%<) :: forall (t_a1hSs :: a_a1hrt) (t_a1hSt :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSs -> Sing t_a1hSt -> Sing (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool)
(%<=) :: forall (t_a1hSu :: a_a1hrt) (t_a1hSv :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSu -> Sing t_a1hSv -> Sing (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool)
(%>) :: forall (t_a1hSw :: a_a1hrt) (t_a1hSx :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSw -> Sing t_a1hSx -> Sing (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool)
(%>=) :: forall (t_a1hSy :: a_a1hrt) (t_a1hSz :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSy -> Sing t_a1hSz -> Sing (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool)
sMax :: forall (t_a1hSA :: a_a1hrt) (t_a1hSB :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSA -> Sing t_a1hSB -> Sing (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt)
sMin :: forall (t_a1hSC :: a_a1hrt) (t_a1hSD :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSC -> Sing t_a1hSD -> Sing (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt)
sCompare :: forall (t_a1hSq :: a_a1hrt) (t_a1hSr :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering) ~ Apply (Apply Compare_6989586621679316629Sym0 t_a1hSq) t_a1hSr) => Sing t_a1hSq -> Sing t_a1hSr -> Sing (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering)
(%<) :: forall (t_a1hSs :: a_a1hrt) (t_a1hSt :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool) ~ Apply (Apply TFHelper_6989586621679316662Sym0 t_a1hSs) t_a1hSt) => Sing t_a1hSs -> Sing t_a1hSt -> Sing (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool)
(%<=) :: forall (t_a1hSu :: a_a1hrt) (t_a1hSv :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool) ~ Apply (Apply TFHelper_6989586621679316695Sym0 t_a1hSu) t_a1hSv) => Sing t_a1hSu -> Sing t_a1hSv -> Sing (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool)
(%>) :: forall (t_a1hSw :: a_a1hrt) (t_a1hSx :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool) ~ Apply (Apply TFHelper_6989586621679316728Sym0 t_a1hSw) t_a1hSx) => Sing t_a1hSw -> Sing t_a1hSx -> Sing (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool)
(%>=) :: forall (t_a1hSy :: a_a1hrt) (t_a1hSz :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool) ~ Apply (Apply TFHelper_6989586621679316761Sym0 t_a1hSy) t_a1hSz) => Sing t_a1hSy -> Sing t_a1hSz -> Sing (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool)
sMax :: forall (t_a1hSA :: a_a1hrt) (t_a1hSB :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt) ~ Apply (Apply Max_6989586621679316794Sym0 t_a1hSA) t_a1hSB) => Sing t_a1hSA -> Sing t_a1hSB -> Sing (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt)
sMin :: forall (t_a1hSC :: a_a1hrt) (t_a1hSD :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt) ~ Apply (Apply Min_6989586621679316827Sym0 t_a1hSC) t_a1hSD) => Sing t_a1hSC -> Sing t_a1hSD -> Sing (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt)
sComparing :: forall (t_a1hSk :: TyFun b_a1hrj a_a1hri -> Type) (t_a1hSl :: b_a1hrj) (t_a1hSm :: b_a1hrj). SOrd a_a1hri => Sing t_a1hSk -> Sing t_a1hSl -> Sing t_a1hSm -> Sing (Apply (Apply (Apply ComparingSym0 t_a1hSk) t_a1hSl) t_a1hSm :: Ordering)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a1jBc :: Ordering) (t_a1jBd :: Ordering). Sing t_a1jBc -> Sing t_a1jBd -> Sing (Apply (Apply ThenCmpSym0 t_a1jBc) t_a1jBd :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a1jB7 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jB5 :: Ordering) (l_a1jB4 :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jB2 :: Ordering) (t_a1jB3 :: Ordering) = ThenCmp t_a1jB2 t_a1jB3
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1hNw :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Ordering -> Type))
data CompareSym1 (l_a1hNu :: a6989586621679315171) (l_a1hNt :: TyFun a6989586621679315171 Ordering)
type CompareSym2 (t_a1hNr :: a6989586621679315171) (t_a1hNs :: a6989586621679315171) = Compare t_a1hNr t_a1hNs
data (<@#@$) (l_a1hNF :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (<@#@$$) (l_a1hND :: a6989586621679315171) (l_a1hNC :: TyFun a6989586621679315171 Bool)
type (<@#@$$$) (t_a1hNA :: a6989586621679315171) (t_a1hNB :: a6989586621679315171) = (<) t_a1hNA t_a1hNB
data (<=@#@$) (l_a1hNO :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (<=@#@$$) (l_a1hNM :: a6989586621679315171) (l_a1hNL :: TyFun a6989586621679315171 Bool)
type (<=@#@$$$) (t_a1hNJ :: a6989586621679315171) (t_a1hNK :: a6989586621679315171) = (<=) t_a1hNJ t_a1hNK
data (>@#@$) (l_a1hNX :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>@#@$$) (l_a1hNV :: a6989586621679315171) (l_a1hNU :: TyFun a6989586621679315171 Bool)
type (>@#@$$$) (t_a1hNS :: a6989586621679315171) (t_a1hNT :: a6989586621679315171) = (>) t_a1hNS t_a1hNT
data (>=@#@$) (l_a1hO6 :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>=@#@$$) (l_a1hO4 :: a6989586621679315171) (l_a1hO3 :: TyFun a6989586621679315171 Bool)
type (>=@#@$$$) (t_a1hO1 :: a6989586621679315171) (t_a1hO2 :: a6989586621679315171) = (>=) t_a1hO1 t_a1hO2
data MaxSym0 (l_a1hOf :: TyFun a6989586621679315171 (TyFun a6989586621679315171 a6989586621679315171 -> Type))
data MaxSym1 (l_a1hOd :: a6989586621679315171) (l_a1hOc :: TyFun a6989586621679315171 a6989586621679315171)
type MaxSym2 (t_a1hOa :: a6989586621679315171) (t_a1hOb :: a6989586621679315171) = Max t_a1hOa t_a1hOb
data MinSym0 (l_a1hOo :: TyFun a6989586621679315171 (TyFun a6989586621679315171 a6989586621679315171 -> Type))
data MinSym1 (l_a1hOm :: a6989586621679315171) (l_a1hOl :: TyFun a6989586621679315171 a6989586621679315171)
type MinSym2 (t_a1hOj :: a6989586621679315171) (t_a1hOk :: a6989586621679315171) = Min t_a1hOj t_a1hOk
data ComparingSym0 (l_a1hNh :: TyFun (TyFun b6989586621679315161 a6989586621679315160 -> Type) (TyFun b6989586621679315161 (TyFun b6989586621679315161 Ordering -> Type) -> Type))
data ComparingSym1 (l_a1hNf :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (l_a1hNe :: TyFun b6989586621679315161 (TyFun b6989586621679315161 Ordering -> Type))
data ComparingSym2 (l_a1hNb :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (l_a1hNc :: b6989586621679315161) (l_a1hNa :: TyFun b6989586621679315161 Ordering)
type ComparingSym3 (t_a1hN7 :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (t_a1hN8 :: b6989586621679315161) (t_a1hN9 :: b6989586621679315161) = Comparing t_a1hN7 t_a1hN8 t_a1hN9
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324265Sym0
instance Data.Singletons.Prelude.Ord.POrd ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324265Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324245Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324245Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324225Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324225Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324191Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324191Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324110Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324110Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324038Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324038Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323975Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323975Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323921Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323921Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323876Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323876Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323842Sym0
instance Data.Singletons.Prelude.Ord.POrd Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323842Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323818Sym0
instance Data.Singletons.Prelude.Ord.POrd (GHC.Base.NonEmpty a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323818Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323781Sym0
instance Data.Singletons.Prelude.Ord.POrd (Data.Either.Either a b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323781Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323741Sym0
instance Data.Singletons.Prelude.Ord.POrd [a]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323741Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323705Sym0
instance Data.Singletons.Prelude.Ord.POrd (GHC.Base.Maybe a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679323705Sym1
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 (GHC.Base.NonEmpty a)
instance Data.Singletons.Prelude.Ord.SOrd Data.Void.Void
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.Let6989586621679316649Scrutinee_6989586621679315193Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316649Scrutinee_6989586621679315193Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316682Scrutinee_6989586621679315195Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316682Scrutinee_6989586621679315195Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316715Scrutinee_6989586621679315197Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316715Scrutinee_6989586621679315197Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316748Scrutinee_6989586621679315199Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316748Scrutinee_6989586621679315199Sym1
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.Let6989586621679316615Scrutinee_6989586621679315191Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316615Scrutinee_6989586621679315191Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316781Scrutinee_6989586621679315201Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316781Scrutinee_6989586621679315201Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316814Scrutinee_6989586621679315203Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316814Scrutinee_6989586621679315203Sym1
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_6989586621679316629Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679316629Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316662Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316662Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316695Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316695Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316728Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316728Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316761Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679316761Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679316794Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679316794Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679316827Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679316827Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316605Scrutinee_6989586621679315189Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679316605Scrutinee_6989586621679315189Sym1


-- | Defines the class <a>ShowSing</a>, allowing for conversion of
--   <a>Sing</a> values to readable <a>String</a>s.
module Data.Singletons.ShowSing

-- | Members of the <a>ShowSing</a> kind class can have their <a>Sing</a>
--   values converted to <a>String</a>s in a fashion similar to that of the
--   <a>Show</a> class. (In fact, this class only exists because one cannot
--   write <a>Show</a> instances for <a>Sing</a>s of the form <tt>instance
--   (forall z. Show (Sing (z :: k))) =&gt; Show (Sing (x :: [k]))</tt>.)
--   
--   This class should not be confused with the promoted or singled
--   versions of <a>Show</a> from <a>Data.Singletons.Prelude.Show</a>
--   (<tt>PShow</tt> and <tt>SShow</tt>, respectively). The output of
--   <a>ShowSing</a> is intended to reflect the singleton type, whereas the
--   output of <tt>PShow</tt> and <tt>SShow</tt> reflects the original
--   type. That is, showing <tt>SFalse</tt> with <a>ShowSing</a> would
--   yield <tt>"SFalse"</tt>, whereas <tt>PShow</tt> and <tt>SShow</tt>
--   would yield <tt>"False"</tt>.
--   
--   Instances of this class are generated alongside singleton definitions
--   for datatypes that derive a <a>Show</a> instance. Moreover, having a
--   <a>ShowSing</a> instances makes it simple to define a <a>Show</a>
--   instance. For instance:
--   
--   <pre>
--   instance <a>ShowSing</a> a =&gt; <a>ShowSing</a> [a] where
--     <a>showsSingPrec</a> = ...
--   instance <a>ShowSing</a> a =&gt; <a>Show</a> (<a>Sing</a> (x :: [a])) where
--     <a>showsPrec</a> = <a>showsSingPrec</a>
--   </pre>
--   
--   As a result, singleton definitions for datatypes that derive a
--   <a>Show</a> instance also get a <a>Show</a> instance for the singleton
--   type as well (in addition to promoted and singled <a>Show</a>
--   instances).
--   
--   To recap: <a>singletons</a> will give you all of these for a datatype
--   that derives a <a>Show</a> instance:
--   
--   <ul>
--   <li>A promoted (<tt>PShow</tt>) instance</li>
--   <li>A singled (<tt>SShow</tt>) instance</li>
--   <li>A <a>ShowSing</a> instance for the singleton type</li>
--   <li>A <a>Show</a> instance for the singleton type</li>
--   </ul>
--   
--   What a bargain!
class ShowSing k

-- | <tt><a>showsSingPrec</a> p s</tt> convert a <a>Sing</a> value
--   <tt>p</tt> to a readable <a>String</a> with precedence <tt>p</tt>.
showsSingPrec :: ShowSing k => Int -> Sing (a :: k) -> ShowS
instance Data.Singletons.ShowSing.ShowSing a => Data.Singletons.ShowSing.ShowSing (GHC.Base.Maybe a)
instance forall a (z :: GHC.Base.Maybe a). Data.Singletons.ShowSing.ShowSing a => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing [a]) => Data.Singletons.ShowSing.ShowSing [a]
instance forall a (z :: [a]). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing [a]) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b) => Data.Singletons.ShowSing.ShowSing (Data.Either.Either a b)
instance forall a b (z :: Data.Either.Either a b). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing [a]) => Data.Singletons.ShowSing.ShowSing (GHC.Base.NonEmpty a)
instance forall a (z :: GHC.Base.NonEmpty a). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing [a]) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance Data.Singletons.ShowSing.ShowSing Data.Void.Void
instance GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b) => Data.Singletons.ShowSing.ShowSing (a, b)
instance forall a b (z :: (a, b)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c) => Data.Singletons.ShowSing.ShowSing (a, b, c)
instance forall a b c (z :: (a, b, c)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d) => Data.Singletons.ShowSing.ShowSing (a, b, c, d)
instance forall a b c d (z :: (a, b, c, d)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e) => Data.Singletons.ShowSing.ShowSing (a, b, c, d, e)
instance forall a b c d e (z :: (a, b, c, d, e)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e, Data.Singletons.ShowSing.ShowSing f) => Data.Singletons.ShowSing.ShowSing (a, b, c, d, e, f)
instance forall a b c d e f (z :: (a, b, c, d, e, f)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e, Data.Singletons.ShowSing.ShowSing f) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e, Data.Singletons.ShowSing.ShowSing f, Data.Singletons.ShowSing.ShowSing g) => Data.Singletons.ShowSing.ShowSing (a, b, c, d, e, f, g)
instance forall a b c d e f g (z :: (a, b, c, d, e, f, g)). (Data.Singletons.ShowSing.ShowSing a, Data.Singletons.ShowSing.ShowSing b, Data.Singletons.ShowSing.ShowSing c, Data.Singletons.ShowSing.ShowSing d, Data.Singletons.ShowSing.ShowSing e, Data.Singletons.ShowSing.ShowSing f, Data.Singletons.ShowSing.ShowSing g) => GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance Data.Singletons.ShowSing.ShowSing GHC.Types.Bool
instance GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance Data.Singletons.ShowSing.ShowSing GHC.Types.Ordering
instance GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance Data.Singletons.ShowSing.ShowSing ()
instance GHC.Show.Show (Data.Singletons.Internal.Sing z)
instance Data.Singletons.ShowSing.ShowSing GHC.Types.Nat
instance GHC.Show.Show (Data.Singletons.TypeLits.Internal.SNat n)
instance Data.Singletons.ShowSing.ShowSing GHC.Types.Symbol
instance GHC.Show.Show (Data.Singletons.TypeLits.Internal.SSymbol s)


-- | This module defines singleton instances making <a>TypeRep</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.

-- | A variant of <a>SomeTypeRep</a> whose underlying <a>TypeRep</a> is
--   restricted to kind <tt>*</tt>.
data SomeTypeRepStar
[SomeTypeRepStar] :: forall (a :: *). !(TypeRep a) -> SomeTypeRepStar
instance GHC.Show.Show (Data.Singletons.Internal.Sing a)
instance GHC.Classes.Ord (Data.Singletons.Internal.Sing a)
instance GHC.Classes.Eq (Data.Singletons.Internal.Sing a)
instance Data.Singletons.Prelude.Eq.PEq *
instance GHC.Classes.Eq Data.Singletons.TypeRepStar.SomeTypeRepStar
instance GHC.Classes.Ord Data.Singletons.TypeRepStar.SomeTypeRepStar
instance GHC.Show.Show Data.Singletons.TypeRepStar.SomeTypeRepStar
instance Data.Singletons.Internal.SingKind *
instance Data.Typeable.Internal.Typeable a => Data.Singletons.Internal.SingI a
instance Data.Singletons.Prelude.Eq.SEq *
instance Data.Singletons.Decide.SDecide *
instance Data.Singletons.ShowSing.ShowSing *


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

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

-- | The promotion of <a>undefined</a>.

-- | The singleton for <a>undefined</a>.
sUndefined :: a

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

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

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

symbolVal :: KnownSymbol n => proxy n -> String

-- | Exponentiation of type-level naturals.

-- | The singleton analogue of '(TL.^)' for <a>Nat</a>s.
(%^) :: Sing a -> Sing b -> Sing (a ^ b)
infixr 8 %^

-- | The promoted analogue of '(&lt;&gt;)' for <a>Symbol</a>s. This uses
--   the special <a>AppendSymbol</a> type family from <a>GHC.TypeLits</a>.
type a <> b = AppendSymbol a b

-- | The singleton analogue of '(&lt;&gt;)' for <a>Symbol</a>s.
(%<>) :: Sing a -> Sing b -> Sing (a <> b)
infixr 6 %<>

-- | Log base 2 (round down) of natural numbers. <tt>Log 0</tt> is
--   undefined (i.e., it cannot be reduced).
sLog2 :: Sing x -> Sing (Log2 x)

-- | Division (round down) of natural numbers. <tt>Div x 0</tt> is
--   undefined (i.e., it cannot be reduced).
sDiv :: Sing x -> Sing y -> Sing (Div x y)
infixl 7 `sDiv`

-- | Modulus of natural numbers. <tt>Mod x 0</tt> is undefined (i.e., it
--   cannot be reduced).
sMod :: Sing x -> Sing y -> Sing (Mod x y)
infixl 7 `sMod`
sDivMod :: Sing x -> Sing y -> Sing (DivMod x y)
sQuot :: Sing x -> Sing y -> Sing (Quot x y)
infixl 7 `sQuot`
sRem :: Sing x -> Sing y -> Sing (Rem x y)
infixl 7 `sRem`
sQuotRem :: Sing x -> Sing y -> Sing (QuotRem x y)
data ErrorSym0 (l_a1BXY :: TyFun k06989586621679393131 k6989586621679393132)
type ErrorSym1 (t_a1BXX :: k06989586621679393131) = Error t_a1BXX
type UndefinedSym0 = Undefined
data KnownNatSym0 (l_a1Gyx :: TyFun Nat Constraint)
type KnownNatSym1 (t_a1Gyw :: Nat) = KnownNat t_a1Gyw
data KnownSymbolSym0 (l_a1GyA :: TyFun Symbol Constraint)
type KnownSymbolSym1 (t_a1Gyz :: Symbol) = KnownSymbol t_a1Gyz
data (^@#@$) (l_a1C2C :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1C2A :: Nat) (l_a1C2z :: TyFun Nat Nat)
type (^@#@$$$) (t_a1C2x :: Nat) (t_a1C2y :: Nat) = (^) t_a1C2x t_a1C2y
data (<>@#@$) l_a1C6v
data (<>@#@$$) (l_a1C6t :: Symbol) l_a1C6s
type (<>@#@$$$) (t_a1C6q :: Symbol) (t_a1C6r :: Symbol) = (<>) t_a1C6q t_a1C6r
data Log2Sym0 (l_a1GFm :: TyFun Nat Nat)
type Log2Sym1 (t_a1GFl :: Nat) = Log2 t_a1GFl
data DivSym0 (l_a1GHW :: TyFun Nat (TyFun Nat Nat -> Type))
data DivSym1 (l_a1GHU :: Nat) (l_a1GHT :: TyFun Nat Nat)
type DivSym2 (t_a1GHR :: Nat) (t_a1GHS :: Nat) = Div t_a1GHR t_a1GHS
data ModSym0 (l_a1GLB :: TyFun Nat (TyFun Nat Nat -> Type))
data ModSym1 (l_a1GLz :: Nat) (l_a1GLy :: TyFun Nat Nat)
type ModSym2 (t_a1GLw :: Nat) (t_a1GLx :: Nat) = Mod t_a1GLw t_a1GLx
data DivModSym0 (l_a1GRY :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type))
data DivModSym1 (l_a1GRW :: Nat) (l_a1GRV :: TyFun Nat (Nat, Nat))
type DivModSym2 (t_a1GRT :: Nat) (t_a1GRU :: Nat) = DivMod t_a1GRT t_a1GRU
data QuotSym0 (l_a1GRN :: TyFun Nat (TyFun Nat Nat -> Type))
data QuotSym1 (l_a1GRL :: Nat) (l_a1GRK :: TyFun Nat Nat)
type QuotSym2 (t_a1GRI :: Nat) (t_a1GRJ :: Nat) = Quot t_a1GRI t_a1GRJ
data RemSym0 (l_a1GRy :: TyFun Nat (TyFun Nat Nat -> Type))
data RemSym1 (l_a1GRw :: Nat) (l_a1GRv :: TyFun Nat Nat)
type RemSym2 (t_a1GRt :: Nat) (t_a1GRu :: Nat) = Rem t_a1GRt t_a1GRu
data QuotRemSym0 (l_a1GSd :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type))
data QuotRemSym1 (l_a1GSb :: Nat) (l_a1GSa :: TyFun Nat (Nat, Nat))
type QuotRemSym2 (t_a1GS8 :: Nat) (t_a1GS9 :: Nat) = QuotRem t_a1GS8 t_a1GS9
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.QuotRemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.QuotRemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.DivModSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.DivModSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.QuotSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.QuotSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.RemSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.RemSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.ModSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.ModSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.DivSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.DivSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.TypeLits.Log2Sym0
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
instance Data.String.IsString GHC.Types.Symbol


-- | 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_a1ImG -> (a_a1ImH -> b_a1ImG) -> Maybe a_a1ImH -> b_a1ImG
sMaybe_ :: forall (t_a1Ing :: b_a1ImG) (t_a1Inh :: TyFun a_a1ImH b_a1ImG -> Type) (t_a1Ini :: Maybe a_a1ImH). Sing t_a1Ing -> Sing t_a1Inh -> Sing t_a1Ini -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1Ing) t_a1Inh) t_a1Ini :: b_a1ImG)
sIsJust :: forall (t_a1IIS :: Maybe a_a1IEL). Sing t_a1IIS -> Sing (Apply IsJustSym0 t_a1IIS :: Bool)
sIsNothing :: forall (t_a1IIR :: Maybe a_a1IEK). Sing t_a1IIR -> Sing (Apply IsNothingSym0 t_a1IIR :: Bool)
sFromJust :: forall (t_a1IIQ :: Maybe a_a1IEJ). Sing t_a1IIQ -> Sing (Apply FromJustSym0 t_a1IIQ :: a_a1IEJ)
sFromMaybe :: forall (t_a1IIO :: a_a1IEI) (t_a1IIP :: Maybe a_a1IEI). Sing t_a1IIO -> Sing t_a1IIP -> Sing (Apply (Apply FromMaybeSym0 t_a1IIO) t_a1IIP :: a_a1IEI)
sListToMaybe :: forall (t_a1IIM :: [a_a1IEG]). Sing t_a1IIM -> Sing (Apply ListToMaybeSym0 t_a1IIM :: Maybe a_a1IEG)
sMaybeToList :: forall (t_a1IIN :: Maybe a_a1IEH). Sing t_a1IIN -> Sing (Apply MaybeToListSym0 t_a1IIN :: [a_a1IEH])
sCatMaybes :: forall (t_a1IIL :: [Maybe a_a1IEF]). Sing t_a1IIL -> Sing (Apply CatMaybesSym0 t_a1IIL :: [a_a1IEF])
sMapMaybe :: forall (t_a1IIJ :: TyFun a_a1IED (Maybe b_a1IEE) -> Type) (t_a1IIK :: [a_a1IED]). Sing t_a1IIJ -> Sing t_a1IIK -> Sing (Apply (Apply MapMaybeSym0 t_a1IIJ) t_a1IIK :: [b_a1IEE])
type NothingSym0 = Nothing
data JustSym0 (l_a12Fj :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Fi :: a3530822107858468865) = Just t_a12Fi
data Maybe_Sym0 (l_a1In8 :: TyFun b6989586621679418662 (TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type) -> Type))
data Maybe_Sym1 (l_a1In6 :: b6989586621679418662) (l_a1In5 :: TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type))
data Maybe_Sym2 (l_a1In2 :: b6989586621679418662) (l_a1In3 :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (l_a1In1 :: TyFun (Maybe a6989586621679418663) b6989586621679418662)
type Maybe_Sym3 (t_a1ImY :: b6989586621679418662) (t_a1ImZ :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (t_a1In0 :: Maybe a6989586621679418663) = Maybe_ t_a1ImY t_a1ImZ t_a1In0
data IsJustSym0 (l_a1IIG :: TyFun (Maybe a6989586621679419783) Bool)
type IsJustSym1 (t_a1IIF :: Maybe a6989586621679419783) = IsJust t_a1IIF
data IsNothingSym0 (l_a1IIC :: TyFun (Maybe a6989586621679419782) Bool)
type IsNothingSym1 (t_a1IIB :: Maybe a6989586621679419782) = IsNothing t_a1IIB
data FromJustSym0 (l_a1IIx :: TyFun (Maybe a6989586621679419781) a6989586621679419781)
type FromJustSym1 (t_a1IIw :: Maybe a6989586621679419781) = FromJust t_a1IIw
data FromMaybeSym0 (l_a1IIm :: TyFun a6989586621679419780 (TyFun (Maybe a6989586621679419780) a6989586621679419780 -> Type))
data FromMaybeSym1 (l_a1IIk :: a6989586621679419780) (l_a1IIj :: TyFun (Maybe a6989586621679419780) a6989586621679419780)
type FromMaybeSym2 (t_a1IIh :: a6989586621679419780) (t_a1IIi :: Maybe a6989586621679419780) = FromMaybe t_a1IIh t_a1IIi
data ListToMaybeSym0 (l_a1II8 :: TyFun [a6989586621679419778] (Maybe a6989586621679419778))
type ListToMaybeSym1 (t_a1II7 :: [a6989586621679419778]) = ListToMaybe t_a1II7
data MaybeToListSym0 (l_a1IId :: TyFun (Maybe a6989586621679419779) [a6989586621679419779])
type MaybeToListSym1 (t_a1IIc :: Maybe a6989586621679419779) = MaybeToList t_a1IIc
data CatMaybesSym0 (l_a1II1 :: TyFun [Maybe a6989586621679419777] [a6989586621679419777])
type CatMaybesSym1 (t_a1II0 :: [Maybe a6989586621679419777]) = CatMaybes t_a1II0
data MapMaybeSym0 (l_a1IHp :: TyFun (TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (TyFun [a6989586621679419775] [b6989586621679419776] -> Type))
data MapMaybeSym1 (l_a1IHn :: TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (l_a1IHm :: TyFun [a6989586621679419775] [b6989586621679419776])
type MapMaybeSym2 (t_a1IHk :: TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (t_a1IHl :: [a6989586621679419775]) = MapMaybe t_a1IHk t_a1IHl
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.Let6989586621679419954RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679419954RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679419954RsSym2
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.Let6989586621679419967Scrutinee_6989586621679419810Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679419967Scrutinee_6989586621679419810Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679419967Scrutinee_6989586621679419810Sym2
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_a1ImG -> (a_a1ImH -> b_a1ImG) -> Maybe a_a1ImH -> b_a1ImG
type NothingSym0 = Nothing
data JustSym0 (l_a12Fj :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Fi :: a3530822107858468865) = Just t_a12Fi
data Maybe_Sym0 (l_a1In8 :: TyFun b6989586621679418662 (TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type) -> Type))
data Maybe_Sym1 (l_a1In6 :: b6989586621679418662) (l_a1In5 :: TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type))
data Maybe_Sym2 (l_a1In2 :: b6989586621679418662) (l_a1In3 :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (l_a1In1 :: TyFun (Maybe a6989586621679418663) b6989586621679418662)
type Maybe_Sym3 (t_a1ImY :: b6989586621679418662) (t_a1ImZ :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (t_a1In0 :: Maybe a6989586621679418663) = Maybe_ t_a1ImY t_a1ImZ t_a1In0
data IsJustSym0 (l_a1IIG :: TyFun (Maybe a6989586621679419783) Bool)
type IsJustSym1 (t_a1IIF :: Maybe a6989586621679419783) = IsJust t_a1IIF
data IsNothingSym0 (l_a1IIC :: TyFun (Maybe a6989586621679419782) Bool)
type IsNothingSym1 (t_a1IIB :: Maybe a6989586621679419782) = IsNothing t_a1IIB
data FromJustSym0 (l_a1IIx :: TyFun (Maybe a6989586621679419781) a6989586621679419781)
type FromJustSym1 (t_a1IIw :: Maybe a6989586621679419781) = FromJust t_a1IIw
data FromMaybeSym0 (l_a1IIm :: TyFun a6989586621679419780 (TyFun (Maybe a6989586621679419780) a6989586621679419780 -> Type))
data FromMaybeSym1 (l_a1IIk :: a6989586621679419780) (l_a1IIj :: TyFun (Maybe a6989586621679419780) a6989586621679419780)
type FromMaybeSym2 (t_a1IIh :: a6989586621679419780) (t_a1IIi :: Maybe a6989586621679419780) = FromMaybe t_a1IIh t_a1IIi
data MaybeToListSym0 (l_a1IId :: TyFun (Maybe a6989586621679419779) [a6989586621679419779])
type MaybeToListSym1 (t_a1IIc :: Maybe a6989586621679419779) = MaybeToList t_a1IIc
data ListToMaybeSym0 (l_a1II8 :: TyFun [a6989586621679419778] (Maybe a6989586621679419778))
type ListToMaybeSym1 (t_a1II7 :: [a6989586621679419778]) = ListToMaybe t_a1II7
data CatMaybesSym0 (l_a1II1 :: TyFun [Maybe a6989586621679419777] [a6989586621679419777])
type CatMaybesSym1 (t_a1II0 :: [Maybe a6989586621679419777]) = CatMaybes t_a1II0
data MapMaybeSym0 (l_a1IHp :: TyFun (TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (TyFun [a6989586621679419775] [b6989586621679419776] -> Type))
data MapMaybeSym1 (l_a1IHn :: TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (l_a1IHm :: TyFun [a6989586621679419775] [b6989586621679419776])
type MapMaybeSym2 (t_a1IHk :: TyFun a6989586621679419775 (Maybe b6989586621679419776) -> Type) (t_a1IHl :: [a6989586621679419775]) = MapMaybe t_a1IHk t_a1IHl


-- | Defines and exports a promoted and singled version of the
--   <tt>IsString</tt> type class from <a>Data.String</a>.
module Data.Singletons.Prelude.IsString
class PIsString (a_a1KDi :: Type) where {
    type family FromString (arg_a1KDj :: Symbol) :: a_a1KDi;
}
class SIsString a_a1KDi
sFromString :: forall (t_a1KDn :: Symbol). SIsString a_a1KDi => Sing t_a1KDn -> Sing (Apply FromStringSym0 t_a1KDn :: a_a1KDi)
data FromStringSym0 (l_a1KDl :: TyFun Symbol a6989586621679427380)
type FromStringSym1 (t_a1KDk :: Symbol) = FromString t_a1KDk
instance Data.Singletons.Prelude.IsString.SIsString GHC.Types.Symbol
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.IsString.FromStringSym0
instance Data.Singletons.Prelude.IsString.PIsString GHC.Types.Symbol


-- | Defines and exports a promoted version of the <tt>IsString</tt> type
--   class from <a>Data.String</a>.
module Data.Promotion.Prelude.IsString
class PIsString (a_a1KDi :: Type) where {
    type family FromString (arg_a1KDj :: Symbol) :: a_a1KDi;
}
data FromStringSym0 (l_a1KDl :: TyFun Symbol a6989586621679427380)
type FromStringSym1 (t_a1KDk :: Symbol) = FromString t_a1KDk


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
--   
--   Be warned that some of the associated type families in the <a>PNum</a>
--   class (<tt>(+)</tt>, <tt>(-)</tt>, and <tt>(*)</tt>) clash with their
--   counterparts for <a>Nat</a> in the <a>GHC.TypeLits</a> module.
module Data.Singletons.Prelude.Num
class PNum (a_a1KO6 :: Type) where {
    type family (+) (arg_a1KOa :: a_a1KO6) (arg_a1KOb :: a_a1KO6) :: a_a1KO6;
    type family (-) (arg_a1KOj :: a_a1KO6) (arg_a1KOk :: a_a1KO6) :: a_a1KO6;
    type family (*) (arg_a1KOs :: a_a1KO6) (arg_a1KOt :: a_a1KO6) :: a_a1KO6;
    type family Negate (arg_a1KOB :: a_a1KO6) :: a_a1KO6;
    type family Abs (arg_a1KOF :: a_a1KO6) :: a_a1KO6;
    type family Signum (arg_a1KOJ :: a_a1KO6) :: a_a1KO6;
    type family FromInteger (arg_a1KON :: Nat) :: a_a1KO6;
    type (-) a_a1KP2 a_a1KP3 =
        Apply (Apply TFHelper_6989586621679428110Sym0 a_a1KP2) a_a1KP3;
    type Negate a_a1KPi = Apply Negate_6989586621679428125Sym0 a_a1KPi;
}
class SNum a_a1KO6
(%+) :: forall (t_a1KPo :: a_a1KO6) (t_a1KPp :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPo -> Sing t_a1KPp -> Sing (Apply (Apply (+@#@$) t_a1KPo) t_a1KPp :: a_a1KO6)
(%-) :: forall (t_a1KPq :: a_a1KO6) (t_a1KPr :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPq -> Sing t_a1KPr -> Sing (Apply (Apply (-@#@$) t_a1KPq) t_a1KPr :: a_a1KO6)
(%*) :: forall (t_a1KPs :: a_a1KO6) (t_a1KPt :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPs -> Sing t_a1KPt -> Sing (Apply (Apply (*@#@$) t_a1KPs) t_a1KPt :: a_a1KO6)
sNegate :: forall (t_a1KPu :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPu -> Sing (Apply NegateSym0 t_a1KPu :: a_a1KO6)
sAbs :: forall (t_a1KPv :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPv -> Sing (Apply AbsSym0 t_a1KPv :: a_a1KO6)
sSignum :: forall (t_a1KPw :: a_a1KO6). SNum a_a1KO6 => Sing t_a1KPw -> Sing (Apply SignumSym0 t_a1KPw :: a_a1KO6)
sFromInteger :: forall (t_a1KPx :: Nat). SNum a_a1KO6 => Sing t_a1KPx -> Sing (Apply FromIntegerSym0 t_a1KPx :: a_a1KO6)
(%-) :: forall (t_a1KPq :: a_a1KO6) (t_a1KPr :: a_a1KO6). (SNum a_a1KO6, (Apply (Apply (-@#@$) t_a1KPq) t_a1KPr :: a_a1KO6) ~ Apply (Apply TFHelper_6989586621679428110Sym0 t_a1KPq) t_a1KPr) => Sing t_a1KPq -> Sing t_a1KPr -> Sing (Apply (Apply (-@#@$) t_a1KPq) t_a1KPr :: a_a1KO6)
sNegate :: forall (t_a1KPu :: a_a1KO6). (SNum a_a1KO6, (Apply NegateSym0 t_a1KPu :: a_a1KO6) ~ Apply Negate_6989586621679428125Sym0 t_a1KPu) => Sing t_a1KPu -> Sing (Apply NegateSym0 t_a1KPu :: a_a1KO6)
sSubtract :: forall (t_a1Lpj :: a_a1LoL) (t_a1Lpk :: a_a1LoL). SNum a_a1LoL => Sing t_a1Lpj -> Sing t_a1Lpk -> Sing (Apply (Apply SubtractSym0 t_a1Lpj) t_a1Lpk :: a_a1LoL)
data (+@#@$) (l_a1KOh :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (+@#@$$) (l_a1KOf :: a6989586621679428050) (l_a1KOe :: TyFun a6989586621679428050 a6989586621679428050)
type (+@#@$$$) (t_a1KOc :: a6989586621679428050) (t_a1KOd :: a6989586621679428050) = (+) t_a1KOc t_a1KOd
data (-@#@$) (l_a1KOq :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (-@#@$$) (l_a1KOo :: a6989586621679428050) (l_a1KOn :: TyFun a6989586621679428050 a6989586621679428050)
type (-@#@$$$) (t_a1KOl :: a6989586621679428050) (t_a1KOm :: a6989586621679428050) = (-) t_a1KOl t_a1KOm
data (*@#@$) (l_a1KOz :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (*@#@$$) (l_a1KOx :: a6989586621679428050) (l_a1KOw :: TyFun a6989586621679428050 a6989586621679428050)
type (*@#@$$$) (t_a1KOu :: a6989586621679428050) (t_a1KOv :: a6989586621679428050) = (*) t_a1KOu t_a1KOv
data NegateSym0 (l_a1KOD :: TyFun a6989586621679428050 a6989586621679428050)
type NegateSym1 (t_a1KOC :: a6989586621679428050) = Negate t_a1KOC
data AbsSym0 (l_a1KOH :: TyFun a6989586621679428050 a6989586621679428050)
type AbsSym1 (t_a1KOG :: a6989586621679428050) = Abs t_a1KOG
data SignumSym0 (l_a1KOL :: TyFun a6989586621679428050 a6989586621679428050)
type SignumSym1 (t_a1KOK :: a6989586621679428050) = Signum t_a1KOK
data FromIntegerSym0 (l_a1KOP :: TyFun Nat a6989586621679428050)
type FromIntegerSym1 (t_a1KOO :: Nat) = FromInteger t_a1KOO
data SubtractSym0 (l_a1Lpd :: TyFun a6989586621679430323 (TyFun a6989586621679430323 a6989586621679430323 -> Type))
data SubtractSym1 (l_a1Lpb :: a6989586621679430323) (l_a1Lpa :: TyFun a6989586621679430323 a6989586621679430323)
type SubtractSym2 (t_a1Lp8 :: a6989586621679430323) (t_a1Lp9 :: a6989586621679430323) = Subtract t_a1Lp8 t_a1Lp9
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_6989586621679428110Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679428110Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_6989586621679428125Sym0


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class PNum (a_a1KO6 :: Type) where {
    type family (+) (arg_a1KOa :: a_a1KO6) (arg_a1KOb :: a_a1KO6) :: a_a1KO6;
    type family (-) (arg_a1KOj :: a_a1KO6) (arg_a1KOk :: a_a1KO6) :: a_a1KO6;
    type family (*) (arg_a1KOs :: a_a1KO6) (arg_a1KOt :: a_a1KO6) :: a_a1KO6;
    type family Negate (arg_a1KOB :: a_a1KO6) :: a_a1KO6;
    type family Abs (arg_a1KOF :: a_a1KO6) :: a_a1KO6;
    type family Signum (arg_a1KOJ :: a_a1KO6) :: a_a1KO6;
    type family FromInteger (arg_a1KON :: Nat) :: a_a1KO6;
    type (-) a_a1KP2 a_a1KP3 =
        Apply (Apply TFHelper_6989586621679428110Sym0 a_a1KP2) a_a1KP3;
    type Negate a_a1KPi = Apply Negate_6989586621679428125Sym0 a_a1KPi;
}
data (+@#@$) (l_a1KOh :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (+@#@$$) (l_a1KOf :: a6989586621679428050) (l_a1KOe :: TyFun a6989586621679428050 a6989586621679428050)
type (+@#@$$$) (t_a1KOc :: a6989586621679428050) (t_a1KOd :: a6989586621679428050) = (+) t_a1KOc t_a1KOd
data (-@#@$) (l_a1KOq :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (-@#@$$) (l_a1KOo :: a6989586621679428050) (l_a1KOn :: TyFun a6989586621679428050 a6989586621679428050)
type (-@#@$$$) (t_a1KOl :: a6989586621679428050) (t_a1KOm :: a6989586621679428050) = (-) t_a1KOl t_a1KOm
data (*@#@$) (l_a1KOz :: TyFun a6989586621679428050 (TyFun a6989586621679428050 a6989586621679428050 -> Type))
data (*@#@$$) (l_a1KOx :: a6989586621679428050) (l_a1KOw :: TyFun a6989586621679428050 a6989586621679428050)
type (*@#@$$$) (t_a1KOu :: a6989586621679428050) (t_a1KOv :: a6989586621679428050) = (*) t_a1KOu t_a1KOv
data NegateSym0 (l_a1KOD :: TyFun a6989586621679428050 a6989586621679428050)
type NegateSym1 (t_a1KOC :: a6989586621679428050) = Negate t_a1KOC
data AbsSym0 (l_a1KOH :: TyFun a6989586621679428050 a6989586621679428050)
type AbsSym1 (t_a1KOG :: a6989586621679428050) = Abs t_a1KOG
data SignumSym0 (l_a1KOL :: TyFun a6989586621679428050 a6989586621679428050)
type SignumSym1 (t_a1KOK :: a6989586621679428050) = Signum t_a1KOK
data FromIntegerSym0 (l_a1KOP :: TyFun Nat a6989586621679428050)
type FromIntegerSym1 (t_a1KOO :: Nat) = FromInteger t_a1KOO
data SubtractSym0 (l_a1Lpd :: TyFun a6989586621679430323 (TyFun a6989586621679430323 a6989586621679430323 -> Type))
data SubtractSym1 (l_a1Lpb :: a6989586621679430323) (l_a1Lpa :: TyFun a6989586621679430323 a6989586621679430323)
type SubtractSym2 (t_a1Lp8 :: a6989586621679430323) (t_a1Lp9 :: a6989586621679430323) = Subtract t_a1Lp8 t_a1Lp9


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class PEq a_a1hrt => POrd (a_a1hrt :: Type) where {
    type family Compare (arg_a1hNp :: a_a1hrt) (arg_a1hNq :: a_a1hrt) :: Ordering;
    type family (<) (arg_a1hNy :: a_a1hrt) (arg_a1hNz :: a_a1hrt) :: Bool;
    type family (<=) (arg_a1hNH :: a_a1hrt) (arg_a1hNI :: a_a1hrt) :: Bool;
    type family (>) (arg_a1hNQ :: a_a1hrt) (arg_a1hNR :: a_a1hrt) :: Bool;
    type family (>=) (arg_a1hNZ :: a_a1hrt) (arg_a1hO0 :: a_a1hrt) :: Bool;
    type family Max (arg_a1hO8 :: a_a1hrt) (arg_a1hO9 :: a_a1hrt) :: a_a1hrt;
    type family Min (arg_a1hOh :: a_a1hrt) (arg_a1hOi :: a_a1hrt) :: a_a1hrt;
    type Compare a_a1hOX a_a1hOY =
        Apply (Apply Compare_6989586621679316629Sym0 a_a1hOX) a_a1hOY;
    type (<) a_a1hPu a_a1hPv =
        Apply (Apply TFHelper_6989586621679316662Sym0 a_a1hPu) a_a1hPv;
    type (<=) a_a1hQ1 a_a1hQ2 =
        Apply (Apply TFHelper_6989586621679316695Sym0 a_a1hQ1) a_a1hQ2;
    type (>) a_a1hQy a_a1hQz =
        Apply (Apply TFHelper_6989586621679316728Sym0 a_a1hQy) a_a1hQz;
    type (>=) a_a1hR5 a_a1hR6 =
        Apply (Apply TFHelper_6989586621679316761Sym0 a_a1hR5) a_a1hR6;
    type Max a_a1hRC a_a1hRD =
        Apply (Apply Max_6989586621679316794Sym0 a_a1hRC) a_a1hRD;
    type Min a_a1hS9 a_a1hSa =
        Apply (Apply Min_6989586621679316827Sym0 a_a1hS9) a_a1hSa;
}
data ThenCmpSym0 (l_a1jB7 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jB5 :: Ordering) (l_a1jB4 :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jB2 :: Ordering) (t_a1jB3 :: Ordering) = ThenCmp t_a1jB2 t_a1jB3
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1hNw :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Ordering -> Type))
data CompareSym1 (l_a1hNu :: a6989586621679315171) (l_a1hNt :: TyFun a6989586621679315171 Ordering)
type CompareSym2 (t_a1hNr :: a6989586621679315171) (t_a1hNs :: a6989586621679315171) = Compare t_a1hNr t_a1hNs
data (<@#@$) (l_a1hNF :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (<@#@$$) (l_a1hND :: a6989586621679315171) (l_a1hNC :: TyFun a6989586621679315171 Bool)
type (<@#@$$$) (t_a1hNA :: a6989586621679315171) (t_a1hNB :: a6989586621679315171) = (<) t_a1hNA t_a1hNB
data (<=@#@$) (l_a1hNO :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (<=@#@$$) (l_a1hNM :: a6989586621679315171) (l_a1hNL :: TyFun a6989586621679315171 Bool)
type (<=@#@$$$) (t_a1hNJ :: a6989586621679315171) (t_a1hNK :: a6989586621679315171) = (<=) t_a1hNJ t_a1hNK
data (>@#@$) (l_a1hNX :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>@#@$$) (l_a1hNV :: a6989586621679315171) (l_a1hNU :: TyFun a6989586621679315171 Bool)
type (>@#@$$$) (t_a1hNS :: a6989586621679315171) (t_a1hNT :: a6989586621679315171) = (>) t_a1hNS t_a1hNT
data (>=@#@$) (l_a1hO6 :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>=@#@$$) (l_a1hO4 :: a6989586621679315171) (l_a1hO3 :: TyFun a6989586621679315171 Bool)
type (>=@#@$$$) (t_a1hO1 :: a6989586621679315171) (t_a1hO2 :: a6989586621679315171) = (>=) t_a1hO1 t_a1hO2
data MaxSym0 (l_a1hOf :: TyFun a6989586621679315171 (TyFun a6989586621679315171 a6989586621679315171 -> Type))
data MaxSym1 (l_a1hOd :: a6989586621679315171) (l_a1hOc :: TyFun a6989586621679315171 a6989586621679315171)
type MaxSym2 (t_a1hOa :: a6989586621679315171) (t_a1hOb :: a6989586621679315171) = Max t_a1hOa t_a1hOb
data MinSym0 (l_a1hOo :: TyFun a6989586621679315171 (TyFun a6989586621679315171 a6989586621679315171 -> Type))
data MinSym1 (l_a1hOm :: a6989586621679315171) (l_a1hOl :: TyFun a6989586621679315171 a6989586621679315171)
type MinSym2 (t_a1hOj :: a6989586621679315171) (t_a1hOk :: a6989586621679315171) = Min t_a1hOj t_a1hOk
data ComparingSym0 (l_a1hNh :: TyFun (TyFun b6989586621679315161 a6989586621679315160 -> Type) (TyFun b6989586621679315161 (TyFun b6989586621679315161 Ordering -> Type) -> Type))
data ComparingSym1 (l_a1hNf :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (l_a1hNe :: TyFun b6989586621679315161 (TyFun b6989586621679315161 Ordering -> Type))
data ComparingSym2 (l_a1hNb :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (l_a1hNc :: b6989586621679315161) (l_a1hNa :: TyFun b6989586621679315161 Ordering)
type ComparingSym3 (t_a1hN7 :: TyFun b6989586621679315161 a6989586621679315160 -> Type) (t_a1hN8 :: b6989586621679315161) (t_a1hN9 :: b6989586621679315161) = Comparing t_a1hN7 t_a1hN8 t_a1hN9


-- | 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 '(DTE.==)', from
--   <a>Data.Type.Equality</a>.
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_a1euV :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (==@#@$$) (l_a1euT :: a6989586621679303786) (l_a1euS :: TyFun a6989586621679303786 Bool)
type (==@#@$$$) (t_a1euQ :: a6989586621679303786) (t_a1euR :: a6989586621679303786) = (==) t_a1euQ t_a1euR
data (/=@#@$) (l_a1ev2 :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (/=@#@$$) (l_a1ev0 :: a6989586621679303786) (l_a1euZ :: TyFun a6989586621679303786 Bool)
type (/=@#@$$$) (t_a1euX :: a6989586621679303786) (t_a1euY :: a6989586621679303786) = (/=) t_a1euX t_a1euY


-- | 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_a1MR1 :: TyFun a_a1MLY (TyFun b_a1MLZ b_a1MLZ -> Type) -> Type) (t_a1MR2 :: b_a1MLZ) (t_a1MR3 :: [a_a1MLY]). Sing t_a1MR1 -> Sing t_a1MR2 -> Sing t_a1MR3 -> Sing (Apply (Apply (Apply FoldrSym0 t_a1MR1) t_a1MR2) t_a1MR3 :: b_a1MLZ)
sMap :: forall (t_a1MQZ :: TyFun a_a1MLW b_a1MLX -> Type) (t_a1MR0 :: [a_a1MLW]). Sing t_a1MQZ -> Sing t_a1MR0 -> Sing (Apply (Apply MapSym0 t_a1MQZ) t_a1MR0 :: [b_a1MLX])
(%++) :: forall (t_a1MQX :: [a_a1MLV]) (t_a1MQY :: [a_a1MLV]). Sing t_a1MQX -> Sing t_a1MQY -> Sing (Apply (Apply (++@#@$) t_a1MQX) t_a1MQY :: [a_a1MLV])
infixr 5 %++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a1MQW :: a_a1MLU). Sing t_a1MQW -> Sing (Apply IdSym0 t_a1MQW :: a_a1MLU)
sConst :: forall (t_a1MQS :: a_a1MLS) (t_a1MQT :: b_a1MLT). Sing t_a1MQS -> Sing t_a1MQT -> Sing (Apply (Apply ConstSym0 t_a1MQS) t_a1MQT :: a_a1MLS)
(%.) :: forall (t_a1MQP :: TyFun b_a1MLP c_a1MLQ -> Type) (t_a1MQQ :: TyFun a_a1MLR b_a1MLP -> Type) (t_a1MQR :: a_a1MLR). Sing t_a1MQP -> Sing t_a1MQQ -> Sing t_a1MQR -> Sing (Apply (Apply (Apply (.@#@$) t_a1MQP) t_a1MQQ) t_a1MQR :: c_a1MLQ)
infixr 9 %.
(%$) :: forall (t_a1MQK :: TyFun a_a1MLJ b_a1MLK -> Type) (t_a1MQL :: a_a1MLJ). Sing t_a1MQK -> Sing t_a1MQL -> Sing (Apply (Apply ($@#@$) t_a1MQK) t_a1MQL :: b_a1MLK)
infixr 0 %$
(%$!) :: forall (t_a1MQI :: TyFun a_a1MLH b_a1MLI -> Type) (t_a1MQJ :: a_a1MLH). Sing t_a1MQI -> Sing t_a1MQJ -> Sing (Apply (Apply ($!@#@$) t_a1MQI) t_a1MQJ :: b_a1MLI)
infixr 0 %$!
sFlip :: forall (t_a1MQM :: TyFun a_a1MLM (TyFun b_a1MLN c_a1MLO -> Type) -> Type) (t_a1MQN :: b_a1MLN) (t_a1MQO :: a_a1MLM). Sing t_a1MQM -> Sing t_a1MQN -> Sing t_a1MQO -> Sing (Apply (Apply (Apply FlipSym0 t_a1MQM) t_a1MQN) t_a1MQO :: c_a1MLO)
sAsTypeOf :: forall (t_a1MQU :: a_a1MLL) (t_a1MQV :: a_a1MLL). Sing t_a1MQU -> Sing t_a1MQV -> Sing (Apply (Apply AsTypeOfSym0 t_a1MQU) t_a1MQV :: a_a1MLL)
sSeq :: forall (t_a1MQG :: a_a1MLF) (t_a1MQH :: b_a1MLG). Sing t_a1MQG -> Sing t_a1MQH -> Sing (Apply (Apply SeqSym0 t_a1MQG) t_a1MQH :: b_a1MLG)
infixr 0 `sSeq`
data FoldrSym0 (l_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
type (++@#@$$$) (t_a1MPB :: [a6989586621679435603]) (t_a1MPC :: [a6989586621679435603]) = (++) t_a1MPB t_a1MPC
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data ($!@#@$) (l_a1MNK :: TyFun (TyFun a6989586621679435589 b6989586621679435590 -> Type) (TyFun a6989586621679435589 b6989586621679435590 -> Type))
data ($!@#@$$) (l_a1MNI :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (l_a1MNH :: TyFun a6989586621679435589 b6989586621679435590)
type ($!@#@$$$) (t_a1MNF :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (t_a1MNG :: a6989586621679435589) = ($!) t_a1MNF t_a1MNG
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
type FlipSym3 (t_a1MO9 :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (t_a1MOa :: b6989586621679435595) (t_a1MOb :: a6989586621679435594) = Flip t_a1MO9 t_a1MOa t_a1MOb
data AsTypeOfSym0 (l_a1MPq :: TyFun a6989586621679435593 (TyFun a6989586621679435593 a6989586621679435593 -> Type))
data AsTypeOfSym1 (l_a1MPo :: a6989586621679435593) (l_a1MPn :: TyFun a6989586621679435593 a6989586621679435593)
type AsTypeOfSym2 (t_a1MPl :: a6989586621679435593) (t_a1MPm :: a6989586621679435593) = AsTypeOf t_a1MPl t_a1MPm
data SeqSym0 (l_a1MNA :: TyFun a6989586621679435587 (TyFun b6989586621679435588 b6989586621679435588 -> Type))
data SeqSym1 (l_a1MNy :: a6989586621679435587) (l_a1MNx :: TyFun b6989586621679435588 b6989586621679435588)
type SeqSym2 (t_a1MNv :: a6989586621679435587) (t_a1MNw :: b6989586621679435588) = Seq t_a1MNv t_a1MNw
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.$@#@$)
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.SeqSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.SeqSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435876GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435876GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435876GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435876GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679435779Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679435779Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679435779Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679435779Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435722VxSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679435722VxSym1


-- | 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_a1MQX :: [a_a1MLV]) (t_a1MQY :: [a_a1MLV]). Sing t_a1MQX -> Sing t_a1MQY -> Sing (Apply (Apply (++@#@$) t_a1MQX) t_a1MQY :: [a_a1MLV])
infixr 5 %++
sHead :: forall (t_a1VVZ :: [a_a1SJ8]). Sing t_a1VVZ -> Sing (Apply HeadSym0 t_a1VVZ :: a_a1SJ8)
sLast :: forall (t_a1VVY :: [a_a1SJ7]). Sing t_a1VVY -> Sing (Apply LastSym0 t_a1VVY :: a_a1SJ7)
sTail :: forall (t_a1VVX :: [a_a1SJ6]). Sing t_a1VVX -> Sing (Apply TailSym0 t_a1VVX :: [a_a1SJ6])
sInit :: forall (t_a1VVW :: [a_a1SJ5]). Sing t_a1VVW -> Sing (Apply InitSym0 t_a1VVW :: [a_a1SJ5])
sNull :: forall (t_a1VVT :: [a_a1SJ4]). Sing t_a1VVT -> Sing (Apply NullSym0 t_a1VVT :: Bool)
sLength :: forall (t_a1VTr :: [a_a1SHe]). Sing t_a1VTr -> Sing (Apply LengthSym0 t_a1VTr :: Nat)
sMap :: forall (t_a1MQZ :: TyFun a_a1MLW b_a1MLX -> Type) (t_a1MR0 :: [a_a1MLW]). Sing t_a1MQZ -> Sing t_a1MR0 -> Sing (Apply (Apply MapSym0 t_a1MQZ) t_a1MR0 :: [b_a1MLX])
sReverse :: forall (t_a1VVQ :: [a_a1SJ3]). Sing t_a1VVQ -> Sing (Apply ReverseSym0 t_a1VVQ :: [a_a1SJ3])
sIntersperse :: forall (t_a1VVM :: a_a1SJ2) (t_a1VVN :: [a_a1SJ2]). Sing t_a1VVM -> Sing t_a1VVN -> Sing (Apply (Apply IntersperseSym0 t_a1VVM) t_a1VVN :: [a_a1SJ2])
sIntercalate :: forall (t_a1VVO :: [a_a1SJ1]) (t_a1VVP :: [[a_a1SJ1]]). Sing t_a1VVO -> Sing t_a1VVP -> Sing (Apply (Apply IntercalateSym0 t_a1VVO) t_a1VVP :: [a_a1SJ1])
sTranspose :: forall (t_a1VW0 :: [[a_a1SHc]]). Sing t_a1VW0 -> Sing (Apply TransposeSym0 t_a1VW0 :: [[a_a1SHc]])
sSubsequences :: forall (t_a1VVL :: [a_a1SJ0]). Sing t_a1VVL -> Sing (Apply SubsequencesSym0 t_a1VVL :: [[a_a1SJ0]])
sPermutations :: forall (t_a1VVH :: [a_a1SIX]). Sing t_a1VVH -> Sing (Apply PermutationsSym0 t_a1VVH :: [[a_a1SIX]])
sFoldl :: forall (t_a15ES :: TyFun b_a15Dw (TyFun a_a15Dv b_a15Dw -> Type) -> Type) (t_a15ET :: b_a15Dw) (t_a15EU :: [a_a15Dv]). Sing t_a15ES -> Sing t_a15ET -> Sing t_a15EU -> Sing (Apply (Apply (Apply FoldlSym0 t_a15ES) t_a15ET) t_a15EU :: b_a15Dw)
sFoldl' :: forall (t_a1VVC :: TyFun b_a1SIW (TyFun a_a1SIV b_a1SIW -> Type) -> Type) (t_a1VVD :: b_a1SIW) (t_a1VVE :: [a_a1SIV]). Sing t_a1VVC -> Sing t_a1VVD -> Sing t_a1VVE -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a1VVC) t_a1VVD) t_a1VVE :: b_a1SIW)
sFoldl1 :: forall (t_a1VVu :: TyFun a_a1SIU (TyFun a_a1SIU a_a1SIU -> Type) -> Type) (t_a1VVv :: [a_a1SIU]). Sing t_a1VVu -> Sing t_a1VVv -> Sing (Apply (Apply Foldl1Sym0 t_a1VVu) t_a1VVv :: a_a1SIU)
sFoldl1' :: forall (t_a1VVF :: TyFun a_a1SIT (TyFun a_a1SIT a_a1SIT -> Type) -> Type) (t_a1VVG :: [a_a1SIT]). Sing t_a1VVF -> Sing t_a1VVG -> Sing (Apply (Apply Foldl1'Sym0 t_a1VVF) t_a1VVG :: a_a1SIT)
sFoldr :: forall (t_a1MR1 :: TyFun a_a1MLY (TyFun b_a1MLZ b_a1MLZ -> Type) -> Type) (t_a1MR2 :: b_a1MLZ) (t_a1MR3 :: [a_a1MLY]). Sing t_a1MR1 -> Sing t_a1MR2 -> Sing t_a1MR3 -> Sing (Apply (Apply (Apply FoldrSym0 t_a1MR1) t_a1MR2) t_a1MR3 :: b_a1MLZ)
sFoldr1 :: forall (t_a1VVs :: TyFun a_a1SIS (TyFun a_a1SIS a_a1SIS -> Type) -> Type) (t_a1VVt :: [a_a1SIS]). Sing t_a1VVs -> Sing t_a1VVt -> Sing (Apply (Apply Foldr1Sym0 t_a1VVs) t_a1VVt :: a_a1SIS)
sConcat :: forall (t_a1VVr :: [[a_a1SIR]]). Sing t_a1VVr -> Sing (Apply ConcatSym0 t_a1VVr :: [a_a1SIR])
sConcatMap :: forall (t_a1VVp :: TyFun a_a1SIP [b_a1SIQ] -> Type) (t_a1VVq :: [a_a1SIP]). Sing t_a1VVp -> Sing t_a1VVq -> Sing (Apply (Apply ConcatMapSym0 t_a1VVp) t_a1VVq :: [b_a1SIQ])
sAnd :: forall (t_a1VVo :: [Bool]). Sing t_a1VVo -> Sing (Apply AndSym0 t_a1VVo :: Bool)
sOr :: forall (t_a1VVn :: [Bool]). Sing t_a1VVn -> Sing (Apply OrSym0 t_a1VVn :: Bool)
sAny :: forall (t_a1VVc :: TyFun a_a1SIN Bool -> Type) (t_a1VVd :: [a_a1SIN]). Sing t_a1VVc -> Sing t_a1VVd -> Sing (Apply (Apply AnySym0 t_a1VVc) t_a1VVd :: Bool)
sAll :: forall (t_a1VVl :: TyFun a_a1SIO Bool -> Type) (t_a1VVm :: [a_a1SIO]). Sing t_a1VVl -> Sing t_a1VVm -> Sing (Apply (Apply AllSym0 t_a1VVl) t_a1VVm :: Bool)
sSum :: forall (t_a1VTt :: [a_a1SHg]). SNum a_a1SHg => Sing t_a1VTt -> Sing (Apply SumSym0 t_a1VTt :: a_a1SHg)
sProduct :: forall (t_a1VTs :: [a_a1SHf]). SNum a_a1SHf => Sing t_a1VTs -> Sing (Apply ProductSym0 t_a1VTs :: a_a1SHf)
sMaximum :: forall (t_a1VVA :: [a_a1SHp]). SOrd a_a1SHp => Sing t_a1VVA -> Sing (Apply MaximumSym0 t_a1VVA :: a_a1SHp)
sMinimum :: forall (t_a1VVB :: [a_a1SHo]). SOrd a_a1SHo => Sing t_a1VVB -> Sing (Apply MinimumSym0 t_a1VVB :: a_a1SHo)
sScanl :: forall (t_a1VV7 :: TyFun b_a1SIL (TyFun a_a1SIM b_a1SIL -> Type) -> Type) (t_a1VV8 :: b_a1SIL) (t_a1VV9 :: [a_a1SIM]). Sing t_a1VV7 -> Sing t_a1VV8 -> Sing t_a1VV9 -> Sing (Apply (Apply (Apply ScanlSym0 t_a1VV7) t_a1VV8) t_a1VV9 :: [b_a1SIL])
sScanl1 :: forall (t_a1VVa :: TyFun a_a1SIK (TyFun a_a1SIK a_a1SIK -> Type) -> Type) (t_a1VVb :: [a_a1SIK]). Sing t_a1VVa -> Sing t_a1VVb -> Sing (Apply (Apply Scanl1Sym0 t_a1VVa) t_a1VVb :: [a_a1SIK])
sScanr :: forall (t_a1VV4 :: TyFun a_a1SII (TyFun b_a1SIJ b_a1SIJ -> Type) -> Type) (t_a1VV5 :: b_a1SIJ) (t_a1VV6 :: [a_a1SII]). Sing t_a1VV4 -> Sing t_a1VV5 -> Sing t_a1VV6 -> Sing (Apply (Apply (Apply ScanrSym0 t_a1VV4) t_a1VV5) t_a1VV6 :: [b_a1SIJ])
sScanr1 :: forall (t_a1VV2 :: TyFun a_a1SIH (TyFun a_a1SIH a_a1SIH -> Type) -> Type) (t_a1VV3 :: [a_a1SIH]). Sing t_a1VV2 -> Sing t_a1VV3 -> Sing (Apply (Apply Scanr1Sym0 t_a1VV2) t_a1VV3 :: [a_a1SIH])
sMapAccumL :: forall (t_a1VUZ :: TyFun acc_a1SIE (TyFun x_a1SIF (acc_a1SIE, y_a1SIG) -> Type) -> Type) (t_a1VV0 :: acc_a1SIE) (t_a1VV1 :: [x_a1SIF]). Sing t_a1VUZ -> Sing t_a1VV0 -> Sing t_a1VV1 -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a1VUZ) t_a1VV0) t_a1VV1 :: (acc_a1SIE, [y_a1SIG]))
sMapAccumR :: forall (t_a1VUW :: TyFun acc_a1SIB (TyFun x_a1SIC (acc_a1SIB, y_a1SID) -> Type) -> Type) (t_a1VUX :: acc_a1SIB) (t_a1VUY :: [x_a1SIC]). Sing t_a1VUW -> Sing t_a1VUX -> Sing t_a1VUY -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a1VUW) t_a1VUX) t_a1VUY :: (acc_a1SIB, [y_a1SID]))
sReplicate :: forall (t_a1VTp :: Nat) (t_a1VTq :: a_a1SHd). Sing t_a1VTp -> Sing t_a1VTq -> Sing (Apply (Apply ReplicateSym0 t_a1VTp) t_a1VTq :: [a_a1SHd])
sUnfoldr :: forall (t_a1VUU :: TyFun b_a1SIz (Maybe (a_a1SIA, b_a1SIz)) -> Type) (t_a1VUV :: b_a1SIz). Sing t_a1VUU -> Sing t_a1VUV -> Sing (Apply (Apply UnfoldrSym0 t_a1VUU) t_a1VUV :: [a_a1SIA])
sTake :: forall (t_a1VTD :: Nat) (t_a1VTE :: [a_a1SHt]). Sing t_a1VTD -> Sing t_a1VTE -> Sing (Apply (Apply TakeSym0 t_a1VTD) t_a1VTE :: [a_a1SHt])
sDrop :: forall (t_a1VTB :: Nat) (t_a1VTC :: [a_a1SHs]). Sing t_a1VTB -> Sing t_a1VTC -> Sing (Apply (Apply DropSym0 t_a1VTB) t_a1VTC :: [a_a1SHs])
sSplitAt :: forall (t_a1VTF :: Nat) (t_a1VTG :: [a_a1SHr]). Sing t_a1VTF -> Sing t_a1VTG -> Sing (Apply (Apply SplitAtSym0 t_a1VTF) t_a1VTG :: ([a_a1SHr], [a_a1SHr]))
sTakeWhile :: forall (t_a1VTQ :: TyFun a_a1SHy Bool -> Type) (t_a1VTR :: [a_a1SHy]). Sing t_a1VTQ -> Sing t_a1VTR -> Sing (Apply (Apply TakeWhileSym0 t_a1VTQ) t_a1VTR :: [a_a1SHy])
sDropWhile :: forall (t_a1VTO :: TyFun a_a1SHx Bool -> Type) (t_a1VTP :: [a_a1SHx]). Sing t_a1VTO -> Sing t_a1VTP -> Sing (Apply (Apply DropWhileSym0 t_a1VTO) t_a1VTP :: [a_a1SHx])
sDropWhileEnd :: forall (t_a1VVU :: TyFun a_a1SHw Bool -> Type) (t_a1VVV :: [a_a1SHw]). Sing t_a1VVU -> Sing t_a1VVV -> Sing (Apply (Apply DropWhileEndSym0 t_a1VVU) t_a1VVV :: [a_a1SHw])
sSpan :: forall (t_a1VTJ :: TyFun a_a1SHv Bool -> Type) (t_a1VTK :: [a_a1SHv]). Sing t_a1VTJ -> Sing t_a1VTK -> Sing (Apply (Apply SpanSym0 t_a1VTJ) t_a1VTK :: ([a_a1SHv], [a_a1SHv]))
sBreak :: forall (t_a1VTH :: TyFun a_a1SHu Bool -> Type) (t_a1VTI :: [a_a1SHu]). Sing t_a1VTH -> Sing t_a1VTI -> Sing (Apply (Apply BreakSym0 t_a1VTH) t_a1VTI :: ([a_a1SHu], [a_a1SHu]))
sGroup :: forall (t_a1VTN :: [a_a1SHq]). SEq a_a1SHq => Sing t_a1VTN -> Sing (Apply GroupSym0 t_a1VTN :: [[a_a1SHq]])
sInits :: forall (t_a1VUT :: [a_a1SIy]). Sing t_a1VUT -> Sing (Apply InitsSym0 t_a1VUT :: [[a_a1SIy]])
sTails :: forall (t_a1VUS :: [a_a1SIx]). Sing t_a1VUS -> Sing (Apply TailsSym0 t_a1VUS :: [[a_a1SIx]])
sIsPrefixOf :: forall (t_a1VUQ :: [a_a1SIw]) (t_a1VUR :: [a_a1SIw]). SEq a_a1SIw => Sing t_a1VUQ -> Sing t_a1VUR -> Sing (Apply (Apply IsPrefixOfSym0 t_a1VUQ) t_a1VUR :: Bool)
sIsSuffixOf :: forall (t_a1VVR :: [a_a1SIv]) (t_a1VVS :: [a_a1SIv]). SEq a_a1SIv => Sing t_a1VVR -> Sing t_a1VVS -> Sing (Apply (Apply IsSuffixOfSym0 t_a1VVR) t_a1VVS :: Bool)
sIsInfixOf :: forall (t_a1VVe :: [a_a1SIu]) (t_a1VVf :: [a_a1SIu]). SEq a_a1SIu => Sing t_a1VVe -> Sing t_a1VVf -> Sing (Apply (Apply IsInfixOfSym0 t_a1VVe) t_a1VVf :: Bool)
sElem :: forall (t_a1VUN :: a_a1SIt) (t_a1VUO :: [a_a1SIt]). SEq a_a1SIt => Sing t_a1VUN -> Sing t_a1VUO -> Sing (Apply (Apply ElemSym0 t_a1VUN) t_a1VUO :: Bool)
infix 4 `sElem`
sNotElem :: forall (t_a1VUL :: a_a1SIs) (t_a1VUM :: [a_a1SIs]). SEq a_a1SIs => Sing t_a1VUL -> Sing t_a1VUM -> Sing (Apply (Apply NotElemSym0 t_a1VUL) t_a1VUM :: Bool)
infix 4 `sNotElem`
sLookup :: forall (t_a1VTz :: a_a1SHj) (t_a1VTA :: [(a_a1SHj, b_a1SHk)]). SEq a_a1SHj => Sing t_a1VTz -> Sing t_a1VTA -> Sing (Apply (Apply LookupSym0 t_a1VTz) t_a1VTA :: Maybe b_a1SHk)
sFind :: forall (t_a1VTU :: TyFun a_a1SHF Bool -> Type) (t_a1VTV :: [a_a1SHF]). Sing t_a1VTU -> Sing t_a1VTV -> Sing (Apply (Apply FindSym0 t_a1VTU) t_a1VTV :: Maybe a_a1SHF)
sFilter :: forall (t_a1VTS :: TyFun a_a1SHG Bool -> Type) (t_a1VTT :: [a_a1SHG]). Sing t_a1VTS -> Sing t_a1VTT -> Sing (Apply (Apply FilterSym0 t_a1VTS) t_a1VTT :: [a_a1SHG])
sPartition :: forall (t_a1VTx :: TyFun a_a1SHi Bool -> Type) (t_a1VTy :: [a_a1SHi]). Sing t_a1VTx -> Sing t_a1VTy -> Sing (Apply (Apply PartitionSym0 t_a1VTx) t_a1VTy :: ([a_a1SHi], [a_a1SHi]))
(%!!) :: forall (t_a1VTn :: [a_a1SHb]) (t_a1VTo :: Nat). Sing t_a1VTn -> Sing t_a1VTo -> Sing (Apply (Apply (!!@#@$) t_a1VTn) t_a1VTo :: a_a1SHb)
infixl 9 %!!
sElemIndex :: forall (t_a1VUJ :: a_a1SHE) (t_a1VUK :: [a_a1SHE]). SEq a_a1SHE => Sing t_a1VUJ -> Sing t_a1VUK -> Sing (Apply (Apply ElemIndexSym0 t_a1VUJ) t_a1VUK :: Maybe Nat)
sElemIndices :: forall (t_a1VUF :: a_a1SHD) (t_a1VUG :: [a_a1SHD]). SEq a_a1SHD => Sing t_a1VUF -> Sing t_a1VUG -> Sing (Apply (Apply ElemIndicesSym0 t_a1VUF) t_a1VUG :: [Nat])
sFindIndex :: forall (t_a1VUH :: TyFun a_a1SHC Bool -> Type) (t_a1VUI :: [a_a1SHC]). Sing t_a1VUH -> Sing t_a1VUI -> Sing (Apply (Apply FindIndexSym0 t_a1VUH) t_a1VUI :: Maybe Nat)
sFindIndices :: forall (t_a1VUD :: TyFun a_a1SHB Bool -> Type) (t_a1VUE :: [a_a1SHB]). Sing t_a1VUD -> Sing t_a1VUE -> Sing (Apply (Apply FindIndicesSym0 t_a1VUD) t_a1VUE :: [Nat])
sZip :: forall (t_a1VUB :: [a_a1SIq]) (t_a1VUC :: [b_a1SIr]). Sing t_a1VUB -> Sing t_a1VUC -> Sing (Apply (Apply ZipSym0 t_a1VUB) t_a1VUC :: [(a_a1SIq, b_a1SIr)])
sZip3 :: forall (t_a1VUy :: [a_a1SIn]) (t_a1VUz :: [b_a1SIo]) (t_a1VUA :: [c_a1SIp]). Sing t_a1VUy -> Sing t_a1VUz -> Sing t_a1VUA -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1VUy) t_a1VUz) t_a1VUA :: [(a_a1SIn, b_a1SIo, c_a1SIp)])
sZipWith :: forall (t_a1VUv :: TyFun a_a1SIk (TyFun b_a1SIl c_a1SIm -> Type) -> Type) (t_a1VUw :: [a_a1SIk]) (t_a1VUx :: [b_a1SIl]). Sing t_a1VUv -> Sing t_a1VUw -> Sing t_a1VUx -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1VUv) t_a1VUw) t_a1VUx :: [c_a1SIm])
sZipWith3 :: forall (t_a1VUr :: TyFun a_a1SIg (TyFun b_a1SIh (TyFun c_a1SIi d_a1SIj -> Type) -> Type) -> Type) (t_a1VUs :: [a_a1SIg]) (t_a1VUt :: [b_a1SIh]) (t_a1VUu :: [c_a1SIi]). Sing t_a1VUr -> Sing t_a1VUs -> Sing t_a1VUt -> Sing t_a1VUu -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1VUr) t_a1VUs) t_a1VUt) t_a1VUu :: [d_a1SIj])
sUnzip :: forall (t_a1VUq :: [(a_a1SIe, b_a1SIf)]). Sing t_a1VUq -> Sing (Apply UnzipSym0 t_a1VUq :: ([a_a1SIe], [b_a1SIf]))
sUnzip3 :: forall (t_a1VUp :: [(a_a1SIb, b_a1SIc, c_a1SId)]). Sing t_a1VUp -> Sing (Apply Unzip3Sym0 t_a1VUp :: ([a_a1SIb], [b_a1SIc], [c_a1SId]))
sUnzip4 :: forall (t_a1VUo :: [(a_a1SI7, b_a1SI8, c_a1SI9, d_a1SIa)]). Sing t_a1VUo -> Sing (Apply Unzip4Sym0 t_a1VUo :: ([a_a1SI7], [b_a1SI8], [c_a1SI9], [d_a1SIa]))
sUnzip5 :: forall (t_a1VUn :: [(a_a1SI2, b_a1SI3, c_a1SI4, d_a1SI5, e_a1SI6)]). Sing t_a1VUn -> Sing (Apply Unzip5Sym0 t_a1VUn :: ([a_a1SI2], [b_a1SI3], [c_a1SI4], [d_a1SI5], [e_a1SI6]))
sUnzip6 :: forall (t_a1VUm :: [(a_a1SHW, b_a1SHX, c_a1SHY, d_a1SHZ, e_a1SI0, f_a1SI1)]). Sing t_a1VUm -> Sing (Apply Unzip6Sym0 t_a1VUm :: ([a_a1SHW], [b_a1SHX], [c_a1SHY], [d_a1SHZ], [e_a1SI0], [f_a1SI1]))
sUnzip7 :: forall (t_a1VUl :: [(a_a1SHP, b_a1SHQ, c_a1SHR, d_a1SHS, e_a1SHT, f_a1SHU, g_a1SHV)]). Sing t_a1VUl -> Sing (Apply Unzip7Sym0 t_a1VUl :: ([a_a1SHP], [b_a1SHQ], [c_a1SHR], [d_a1SHS], [e_a1SHT], [f_a1SHU], [g_a1SHV]))
sUnlines :: forall (t_a1VUk :: [Symbol]). Sing t_a1VUk -> Sing (Apply UnlinesSym0 t_a1VUk :: Symbol)
sUnwords :: forall (t_a1VUj :: [Symbol]). Sing t_a1VUj -> Sing (Apply UnwordsSym0 t_a1VUj :: Symbol)
sNub :: forall (t_a1VUP :: [a_a1SHa]). SEq a_a1SHa => Sing t_a1VUP -> Sing (Apply NubSym0 t_a1VUP :: [a_a1SHa])
sDelete :: forall (t_a1VUf :: a_a1SHO) (t_a1VUg :: [a_a1SHO]). SEq a_a1SHO => Sing t_a1VUf -> Sing t_a1VUg -> Sing (Apply (Apply DeleteSym0 t_a1VUf) t_a1VUg :: [a_a1SHO])
(%\\) :: forall (t_a1VUh :: [a_a1SHN]) (t_a1VUi :: [a_a1SHN]). SEq a_a1SHN => Sing t_a1VUh -> Sing t_a1VUi -> Sing (Apply (Apply (\\@#@$) t_a1VUh) t_a1VUi :: [a_a1SHN])
infix 5 %\\
sUnion :: forall (t_a1VUd :: [a_a1SH6]) (t_a1VUe :: [a_a1SH6]). SEq a_a1SH6 => Sing t_a1VUd -> Sing t_a1VUe -> Sing (Apply (Apply UnionSym0 t_a1VUd) t_a1VUe :: [a_a1SH6])
sIntersect :: forall (t_a1VVj :: [a_a1SHA]) (t_a1VVk :: [a_a1SHA]). SEq a_a1SHA => Sing t_a1VVj -> Sing t_a1VVk -> Sing (Apply (Apply IntersectSym0 t_a1VVj) t_a1VVk :: [a_a1SHA])
sInsert :: forall (t_a1VTZ :: a_a1SHn) (t_a1VU0 :: [a_a1SHn]). SOrd a_a1SHn => Sing t_a1VTZ -> Sing t_a1VU0 -> Sing (Apply (Apply InsertSym0 t_a1VTZ) t_a1VU0 :: [a_a1SHn])
sSort :: forall (t_a1VU3 :: [a_a1SHm]). SOrd a_a1SHm => Sing t_a1VU3 -> Sing (Apply SortSym0 t_a1VU3 :: [a_a1SHm])
sNubBy :: forall (t_a1VTl :: TyFun a_a1SH9 (TyFun a_a1SH9 Bool -> Type) -> Type) (t_a1VTm :: [a_a1SH9]). Sing t_a1VTl -> Sing t_a1VTm -> Sing (Apply (Apply NubBySym0 t_a1VTl) t_a1VTm :: [a_a1SH9])
sDeleteBy :: forall (t_a1VU4 :: TyFun a_a1SHM (TyFun a_a1SHM Bool -> Type) -> Type) (t_a1VU5 :: a_a1SHM) (t_a1VU6 :: [a_a1SHM]). Sing t_a1VU4 -> Sing t_a1VU5 -> Sing t_a1VU6 -> Sing (Apply (Apply (Apply DeleteBySym0 t_a1VU4) t_a1VU5) t_a1VU6 :: [a_a1SHM])
sDeleteFirstsBy :: forall (t_a1VU7 :: TyFun a_a1SHL (TyFun a_a1SHL Bool -> Type) -> Type) (t_a1VU8 :: [a_a1SHL]) (t_a1VU9 :: [a_a1SHL]). Sing t_a1VU7 -> Sing t_a1VU8 -> Sing t_a1VU9 -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a1VU7) t_a1VU8) t_a1VU9 :: [a_a1SHL])
sUnionBy :: forall (t_a1VUa :: TyFun a_a1SH7 (TyFun a_a1SH7 Bool -> Type) -> Type) (t_a1VUb :: [a_a1SH7]) (t_a1VUc :: [a_a1SH7]). Sing t_a1VUa -> Sing t_a1VUb -> Sing t_a1VUc -> Sing (Apply (Apply (Apply UnionBySym0 t_a1VUa) t_a1VUb) t_a1VUc :: [a_a1SH7])
sIntersectBy :: forall (t_a1VVg :: TyFun a_a1SHz (TyFun a_a1SHz Bool -> Type) -> Type) (t_a1VVh :: [a_a1SHz]) (t_a1VVi :: [a_a1SHz]). Sing t_a1VVg -> Sing t_a1VVh -> Sing t_a1VVi -> Sing (Apply (Apply (Apply IntersectBySym0 t_a1VVg) t_a1VVh) t_a1VVi :: [a_a1SHz])
sGroupBy :: forall (t_a1VTL :: TyFun a_a1SHl (TyFun a_a1SHl Bool -> Type) -> Type) (t_a1VTM :: [a_a1SHl]). Sing t_a1VTL -> Sing t_a1VTM -> Sing (Apply (Apply GroupBySym0 t_a1VTL) t_a1VTM :: [[a_a1SHl]])
sSortBy :: forall (t_a1VU1 :: TyFun a_a1SHK (TyFun a_a1SHK Ordering -> Type) -> Type) (t_a1VU2 :: [a_a1SHK]). Sing t_a1VU1 -> Sing t_a1VU2 -> Sing (Apply (Apply SortBySym0 t_a1VU1) t_a1VU2 :: [a_a1SHK])
sInsertBy :: forall (t_a1VTW :: TyFun a_a1SHJ (TyFun a_a1SHJ Ordering -> Type) -> Type) (t_a1VTX :: a_a1SHJ) (t_a1VTY :: [a_a1SHJ]). Sing t_a1VTW -> Sing t_a1VTX -> Sing t_a1VTY -> Sing (Apply (Apply (Apply InsertBySym0 t_a1VTW) t_a1VTX) t_a1VTY :: [a_a1SHJ])
sMaximumBy :: forall (t_a1VVw :: TyFun a_a1SHI (TyFun a_a1SHI Ordering -> Type) -> Type) (t_a1VVx :: [a_a1SHI]). Sing t_a1VVw -> Sing t_a1VVx -> Sing (Apply (Apply MaximumBySym0 t_a1VVw) t_a1VVx :: a_a1SHI)
sMinimumBy :: forall (t_a1VVy :: TyFun a_a1SHH (TyFun a_a1SHH Ordering -> Type) -> Type) (t_a1VVz :: [a_a1SHH]). Sing t_a1VVy -> Sing t_a1VVz -> Sing (Apply (Apply MinimumBySym0 t_a1VVy) t_a1VVz :: a_a1SHH)
sGenericLength :: forall (t_a1VTh :: [a_a1SH5]). SNum i_a1SH4 => Sing t_a1VTh -> Sing (Apply GenericLengthSym0 t_a1VTh :: i_a1SH4)
type NilSym0 = '[]
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz
type (++@#@$$$) (t_a1MPB :: [a6989586621679435603]) (t_a1MPC :: [a6989586621679435603]) = (++) t_a1MPB t_a1MPC
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data HeadSym0 (l_a1VT5 :: TyFun [a6989586621679458494] a6989586621679458494)
type HeadSym1 (t_a1VT4 :: [a6989586621679458494]) = Head t_a1VT4
data LastSym0 (l_a1VSY :: TyFun [a6989586621679458493] a6989586621679458493)
type LastSym1 (t_a1VSX :: [a6989586621679458493]) = Last t_a1VSX
data TailSym0 (l_a1VST :: TyFun [a6989586621679458492] [a6989586621679458492])
type TailSym1 (t_a1VSS :: [a6989586621679458492]) = Tail t_a1VSS
data InitSym0 (l_a1VSp :: TyFun [a6989586621679458491] [a6989586621679458491])
type InitSym1 (t_a1VSo :: [a6989586621679458491]) = Init t_a1VSo
data NullSym0 (l_a1VRo :: TyFun [a6989586621679458490] Bool)
type NullSym1 (t_a1VRn :: [a6989586621679458490]) = Null t_a1VRn
data LengthSym0 (l_a1V8K :: TyFun [a6989586621679458376] Nat)
type LengthSym1 (t_a1V8J :: [a6989586621679458376]) = Length t_a1V8J
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data ReverseSym0 (l_a1VQP :: TyFun [a6989586621679458489] [a6989586621679458489])
type ReverseSym1 (t_a1VQO :: [a6989586621679458489]) = Reverse t_a1VQO
data IntersperseSym0 (l_a1VQw :: TyFun a6989586621679458488 (TyFun [a6989586621679458488] [a6989586621679458488] -> Type))
data IntersperseSym1 (l_a1VQu :: a6989586621679458488) (l_a1VQt :: TyFun [a6989586621679458488] [a6989586621679458488])
type IntersperseSym2 (t_a1VQr :: a6989586621679458488) (t_a1VQs :: [a6989586621679458488]) = Intersperse t_a1VQr t_a1VQs
data IntercalateSym0 (l_a1VQI :: TyFun [a6989586621679458487] (TyFun [[a6989586621679458487]] [a6989586621679458487] -> Type))
data IntercalateSym1 (l_a1VQG :: [a6989586621679458487]) (l_a1VQF :: TyFun [[a6989586621679458487]] [a6989586621679458487])
type IntercalateSym2 (t_a1VQD :: [a6989586621679458487]) (t_a1VQE :: [[a6989586621679458487]]) = Intercalate t_a1VQD t_a1VQE
data TransposeSym0 (l_a1VTa :: TyFun [[a6989586621679458374]] [[a6989586621679458374]])
type TransposeSym1 (t_a1VT9 :: [[a6989586621679458374]]) = Transpose t_a1VT9
data SubsequencesSym0 (l_a1VQn :: TyFun [a6989586621679458486] [[a6989586621679458486]])
type SubsequencesSym1 (t_a1VQm :: [a6989586621679458486]) = Subsequences t_a1VQm
data PermutationsSym0 (l_a1VJX :: TyFun [a6989586621679458483] [[a6989586621679458483]])
type PermutationsSym1 (t_a1VJW :: [a6989586621679458483]) = Permutations t_a1VJW
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
data Foldl'Sym0 (l_a1VIy :: TyFun (TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (TyFun b6989586621679458482 (TyFun [a6989586621679458481] b6989586621679458482 -> Type) -> Type))
data Foldl'Sym1 (l_a1VIw :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (l_a1VIv :: TyFun b6989586621679458482 (TyFun [a6989586621679458481] b6989586621679458482 -> Type))
data Foldl'Sym2 (l_a1VIs :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (l_a1VIt :: b6989586621679458482) (l_a1VIr :: TyFun [a6989586621679458481] b6989586621679458482)
type Foldl'Sym3 (t_a1VIo :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (t_a1VIp :: b6989586621679458482) (t_a1VIq :: [a6989586621679458481]) = Foldl' t_a1VIo t_a1VIp t_a1VIq
data Foldl1Sym0 (l_a1VF7 :: TyFun (TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (TyFun [a6989586621679458480] a6989586621679458480 -> Type))
data Foldl1Sym1 (l_a1VF5 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (l_a1VF4 :: TyFun [a6989586621679458480] a6989586621679458480)
type Foldl1Sym2 (t_a1VF2 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (t_a1VF3 :: [a6989586621679458480]) = Foldl1 t_a1VF2 t_a1VF3
data Foldl1'Sym0 (l_a1VJP :: TyFun (TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (TyFun [a6989586621679458479] a6989586621679458479 -> Type))
data Foldl1'Sym1 (l_a1VJN :: TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (l_a1VJM :: TyFun [a6989586621679458479] a6989586621679458479)
type Foldl1'Sym2 (t_a1VJK :: TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (t_a1VJL :: [a6989586621679458479]) = Foldl1' t_a1VJK t_a1VJL
data FoldrSym0 (l_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data Foldr1Sym0 (l_a1VEA :: TyFun (TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (TyFun [a6989586621679458478] a6989586621679458478 -> Type))
data Foldr1Sym1 (l_a1VEy :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (l_a1VEx :: TyFun [a6989586621679458478] a6989586621679458478)
type Foldr1Sym2 (t_a1VEv :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (t_a1VEw :: [a6989586621679458478]) = Foldr1 t_a1VEv t_a1VEw
data ConcatSym0 (l_a1VEr :: TyFun [[a6989586621679458477]] [a6989586621679458477])
type ConcatSym1 (t_a1VEq :: [[a6989586621679458477]]) = Concat t_a1VEq
data ConcatMapSym0 (l_a1VEg :: TyFun (TyFun a6989586621679458475 [b6989586621679458476] -> Type) (TyFun [a6989586621679458475] [b6989586621679458476] -> Type))
data ConcatMapSym1 (l_a1VEe :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (l_a1VEd :: TyFun [a6989586621679458475] [b6989586621679458476])
type ConcatMapSym2 (t_a1VEb :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (t_a1VEc :: [a6989586621679458475]) = ConcatMap t_a1VEb t_a1VEc
data AndSym0 (l_a1VE6 :: TyFun [Bool] Bool)
type AndSym1 (t_a1VE5 :: [Bool]) = And t_a1VE5
data OrSym0 (l_a1VE0 :: TyFun [Bool] Bool)
type OrSym1 (t_a1VDZ :: [Bool]) = Or t_a1VDZ
data AnySym0 (l_a1VBw :: TyFun (TyFun a6989586621679458473 Bool -> Type) (TyFun [a6989586621679458473] Bool -> Type))
data AnySym1 (l_a1VBu :: TyFun a6989586621679458473 Bool -> Type) (l_a1VBt :: TyFun [a6989586621679458473] Bool)
type AnySym2 (t_a1VBr :: TyFun a6989586621679458473 Bool -> Type) (t_a1VBs :: [a6989586621679458473]) = Any t_a1VBr t_a1VBs
data AllSym0 (l_a1VDS :: TyFun (TyFun a6989586621679458474 Bool -> Type) (TyFun [a6989586621679458474] Bool -> Type))
data AllSym1 (l_a1VDQ :: TyFun a6989586621679458474 Bool -> Type) (l_a1VDP :: TyFun [a6989586621679458474] Bool)
type AllSym2 (t_a1VDN :: TyFun a6989586621679458474 Bool -> Type) (t_a1VDO :: [a6989586621679458474]) = All t_a1VDN t_a1VDO
data SumSym0 (l_a1V9d :: TyFun [a6989586621679458378] a6989586621679458378)
type SumSym1 (t_a1V9c :: [a6989586621679458378]) = Sum t_a1V9c
data ProductSym0 (l_a1V8P :: TyFun [a6989586621679458377] a6989586621679458377)
type ProductSym1 (t_a1V8O :: [a6989586621679458377]) = Product t_a1V8O
data MaximumSym0 (l_a1VHX :: TyFun [a6989586621679458387] a6989586621679458387)
type MaximumSym1 (t_a1VHW :: [a6989586621679458387]) = Maximum t_a1VHW
data MinimumSym0 (l_a1VIb :: TyFun [a6989586621679458386] a6989586621679458386)
type MinimumSym1 (t_a1VIa :: [a6989586621679458386]) = Minimum t_a1VIa
data ScanlSym0 (l_a1VB2 :: TyFun (TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type) -> Type))
data ScanlSym1 (l_a1VB0 :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAZ :: TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type))
data ScanlSym2 (l_a1VAW :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAX :: b6989586621679458471) (l_a1VAV :: TyFun [a6989586621679458472] [b6989586621679458471])
type ScanlSym3 (t_a1VAS :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (t_a1VAT :: b6989586621679458471) (t_a1VAU :: [a6989586621679458472]) = Scanl t_a1VAS t_a1VAT t_a1VAU
data Scanl1Sym0 (l_a1VBk :: TyFun (TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (TyFun [a6989586621679458470] [a6989586621679458470] -> Type))
data Scanl1Sym1 (l_a1VBi :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (l_a1VBh :: TyFun [a6989586621679458470] [a6989586621679458470])
type Scanl1Sym2 (t_a1VBf :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (t_a1VBg :: [a6989586621679458470]) = Scanl1 t_a1VBf t_a1VBg
data ScanrSym0 (l_a1VAk :: TyFun (TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type) -> Type))
data ScanrSym1 (l_a1VAi :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAh :: TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type))
data ScanrSym2 (l_a1VAe :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAf :: b6989586621679458469) (l_a1VAd :: TyFun [a6989586621679458468] [b6989586621679458469])
type ScanrSym3 (t_a1VAa :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (t_a1VAb :: b6989586621679458469) (t_a1VAc :: [a6989586621679458468]) = Scanr t_a1VAa t_a1VAb t_a1VAc
data Scanr1Sym0 (l_a1Vzk :: TyFun (TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (TyFun [a6989586621679458467] [a6989586621679458467] -> Type))
data Scanr1Sym1 (l_a1Vzi :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (l_a1Vzh :: TyFun [a6989586621679458467] [a6989586621679458467])
type Scanr1Sym2 (t_a1Vzf :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (t_a1Vzg :: [a6989586621679458467]) = Scanr1 t_a1Vzf t_a1Vzg
data MapAccumLSym0 (l_a1VwS :: TyFun (TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (TyFun acc6989586621679458464 (TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]) -> Type) -> Type))
data MapAccumLSym1 (l_a1VwQ :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (l_a1VwP :: TyFun acc6989586621679458464 (TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]) -> Type))
data MapAccumLSym2 (l_a1VwM :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (l_a1VwN :: acc6989586621679458464) (l_a1VwL :: TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]))
type MapAccumLSym3 (t_a1VwI :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (t_a1VwJ :: acc6989586621679458464) (t_a1VwK :: [x6989586621679458465]) = MapAccumL t_a1VwI t_a1VwJ t_a1VwK
data MapAccumRSym0 (l_a1Vul :: TyFun (TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (TyFun acc6989586621679458461 (TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]) -> Type) -> Type))
data MapAccumRSym1 (l_a1Vuj :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (l_a1Vui :: TyFun acc6989586621679458461 (TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]) -> Type))
data MapAccumRSym2 (l_a1Vuf :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (l_a1Vug :: acc6989586621679458461) (l_a1Vue :: TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]))
type MapAccumRSym3 (t_a1Vub :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (t_a1Vuc :: acc6989586621679458461) (t_a1Vud :: [x6989586621679458462]) = MapAccumR t_a1Vub t_a1Vuc t_a1Vud
data ReplicateSym0 (l_a1V8s :: TyFun Nat (TyFun a6989586621679458375 [a6989586621679458375] -> Type))
data ReplicateSym1 (l_a1V8q :: Nat) (l_a1V8p :: TyFun a6989586621679458375 [a6989586621679458375])
type ReplicateSym2 (t_a1V8n :: Nat) (t_a1V8o :: a6989586621679458375) = Replicate t_a1V8n t_a1V8o
data UnfoldrSym0 (l_a1VtS :: TyFun (TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (TyFun b6989586621679458459 [a6989586621679458460] -> Type))
data UnfoldrSym1 (l_a1VtQ :: TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (l_a1VtP :: TyFun b6989586621679458459 [a6989586621679458460])
type UnfoldrSym2 (t_a1VtN :: TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (t_a1VtO :: b6989586621679458459) = Unfoldr t_a1VtN t_a1VtO
data TakeSym0 (l_a1Vbx :: TyFun Nat (TyFun [a6989586621679458391] [a6989586621679458391] -> Type))
data TakeSym1 (l_a1Vbv :: Nat) (l_a1Vbu :: TyFun [a6989586621679458391] [a6989586621679458391])
type TakeSym2 (t_a1Vbs :: Nat) (t_a1Vbt :: [a6989586621679458391]) = Take t_a1Vbs t_a1Vbt
data DropSym0 (l_a1Vb5 :: TyFun Nat (TyFun [a6989586621679458390] [a6989586621679458390] -> Type))
data DropSym1 (l_a1Vb3 :: Nat) (l_a1Vb2 :: TyFun [a6989586621679458390] [a6989586621679458390])
type DropSym2 (t_a1Vb0 :: Nat) (t_a1Vb1 :: [a6989586621679458390]) = Drop t_a1Vb0 t_a1Vb1
data SplitAtSym0 (l_a1VbZ :: TyFun Nat (TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]) -> Type))
data SplitAtSym1 (l_a1VbX :: Nat) (l_a1VbW :: TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]))
type SplitAtSym2 (t_a1VbU :: Nat) (t_a1VbV :: [a6989586621679458389]) = SplitAt t_a1VbU t_a1VbV
data TakeWhileSym0 (l_a1VgV :: TyFun (TyFun a6989586621679458396 Bool -> Type) (TyFun [a6989586621679458396] [a6989586621679458396] -> Type))
data TakeWhileSym1 (l_a1VgT :: TyFun a6989586621679458396 Bool -> Type) (l_a1VgS :: TyFun [a6989586621679458396] [a6989586621679458396])
type TakeWhileSym2 (t_a1VgQ :: TyFun a6989586621679458396 Bool -> Type) (t_a1VgR :: [a6989586621679458396]) = TakeWhile t_a1VgQ t_a1VgR
data DropWhileSym0 (l_a1Vgg :: TyFun (TyFun a6989586621679458395 Bool -> Type) (TyFun [a6989586621679458395] [a6989586621679458395] -> Type))
data DropWhileSym1 (l_a1Vge :: TyFun a6989586621679458395 Bool -> Type) (l_a1Vgd :: TyFun [a6989586621679458395] [a6989586621679458395])
type DropWhileSym2 (t_a1Vgb :: TyFun a6989586621679458395 Bool -> Type) (t_a1Vgc :: [a6989586621679458395]) = DropWhile t_a1Vgb t_a1Vgc
data DropWhileEndSym0 (l_a1VRw :: TyFun (TyFun a6989586621679458394 Bool -> Type) (TyFun [a6989586621679458394] [a6989586621679458394] -> Type))
data DropWhileEndSym1 (l_a1VRu :: TyFun a6989586621679458394 Bool -> Type) (l_a1VRt :: TyFun [a6989586621679458394] [a6989586621679458394])
type DropWhileEndSym2 (t_a1VRr :: TyFun a6989586621679458394 Bool -> Type) (t_a1VRs :: [a6989586621679458394]) = DropWhileEnd t_a1VRr t_a1VRs
data SpanSym0 (l_a1VdF :: TyFun (TyFun a6989586621679458393 Bool -> Type) (TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]) -> Type))
data SpanSym1 (l_a1VdD :: TyFun a6989586621679458393 Bool -> Type) (l_a1VdC :: TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]))
type SpanSym2 (t_a1VdA :: TyFun a6989586621679458393 Bool -> Type) (t_a1VdB :: [a6989586621679458393]) = Span t_a1VdA t_a1VdB
data BreakSym0 (l_a1Vca :: TyFun (TyFun a6989586621679458392 Bool -> Type) (TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]) -> Type))
data BreakSym1 (l_a1Vc8 :: TyFun a6989586621679458392 Bool -> Type) (l_a1Vc7 :: TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]))
type BreakSym2 (t_a1Vc5 :: TyFun a6989586621679458392 Bool -> Type) (t_a1Vc6 :: [a6989586621679458392]) = Break t_a1Vc5 t_a1Vc6
data GroupSym0 (l_a1Vg7 :: TyFun [a6989586621679458388] [[a6989586621679458388]])
type GroupSym1 (t_a1Vg6 :: [a6989586621679458388]) = Group t_a1Vg6
data InitsSym0 (l_a1VtE :: TyFun [a6989586621679458458] [[a6989586621679458458]])
type InitsSym1 (t_a1VtD :: [a6989586621679458458]) = Inits t_a1VtD
data TailsSym0 (l_a1Vtv :: TyFun [a6989586621679458457] [[a6989586621679458457]])
type TailsSym1 (t_a1Vtu :: [a6989586621679458457]) = Tails t_a1Vtu
data IsPrefixOfSym0 (l_a1Vtm :: TyFun [a6989586621679458456] (TyFun [a6989586621679458456] Bool -> Type))
data IsPrefixOfSym1 (l_a1Vtk :: [a6989586621679458456]) (l_a1Vtj :: TyFun [a6989586621679458456] Bool)
type IsPrefixOfSym2 (t_a1Vth :: [a6989586621679458456]) (t_a1Vti :: [a6989586621679458456]) = IsPrefixOf t_a1Vth t_a1Vti
data IsSuffixOfSym0 (l_a1VRh :: TyFun [a6989586621679458455] (TyFun [a6989586621679458455] Bool -> Type))
data IsSuffixOfSym1 (l_a1VRf :: [a6989586621679458455]) (l_a1VRe :: TyFun [a6989586621679458455] Bool)
type IsSuffixOfSym2 (t_a1VRc :: [a6989586621679458455]) (t_a1VRd :: [a6989586621679458455]) = IsSuffixOf t_a1VRc t_a1VRd
data IsInfixOfSym0 (l_a1VBI :: TyFun [a6989586621679458454] (TyFun [a6989586621679458454] Bool -> Type))
data IsInfixOfSym1 (l_a1VBG :: [a6989586621679458454]) (l_a1VBF :: TyFun [a6989586621679458454] Bool)
type IsInfixOfSym2 (t_a1VBD :: [a6989586621679458454]) (t_a1VBE :: [a6989586621679458454]) = IsInfixOf t_a1VBD t_a1VBE
data ElemSym0 (l_a1Vsr :: TyFun a6989586621679458453 (TyFun [a6989586621679458453] Bool -> Type))
data ElemSym1 (l_a1Vsp :: a6989586621679458453) (l_a1Vso :: TyFun [a6989586621679458453] Bool)
type ElemSym2 (t_a1Vsm :: a6989586621679458453) (t_a1Vsn :: [a6989586621679458453]) = Elem t_a1Vsm t_a1Vsn
data NotElemSym0 (l_a1Vsf :: TyFun a6989586621679458452 (TyFun [a6989586621679458452] Bool -> Type))
data NotElemSym1 (l_a1Vsd :: a6989586621679458452) (l_a1Vsc :: TyFun [a6989586621679458452] Bool)
type NotElemSym2 (t_a1Vsa :: a6989586621679458452) (t_a1Vsb :: [a6989586621679458452]) = NotElem t_a1Vsa t_a1Vsb
data LookupSym0 (l_a1Vav :: TyFun a6989586621679458381 (TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382) -> Type))
data LookupSym1 (l_a1Vat :: a6989586621679458381) (l_a1Vas :: TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382))
type LookupSym2 (t_a1Vaq :: a6989586621679458381) (t_a1Var :: [(a6989586621679458381, b6989586621679458382)]) = Lookup t_a1Vaq t_a1Var
data FindSym0 (l_a1VhQ :: TyFun (TyFun a6989586621679458403 Bool -> Type) (TyFun [a6989586621679458403] (Maybe a6989586621679458403) -> Type))
data FindSym1 (l_a1VhO :: TyFun a6989586621679458403 Bool -> Type) (l_a1VhN :: TyFun [a6989586621679458403] (Maybe a6989586621679458403))
type FindSym2 (t_a1VhL :: TyFun a6989586621679458403 Bool -> Type) (t_a1VhM :: [a6989586621679458403]) = Find t_a1VhL t_a1VhM
data FilterSym0 (l_a1Vhn :: TyFun (TyFun a6989586621679458404 Bool -> Type) (TyFun [a6989586621679458404] [a6989586621679458404] -> Type))
data FilterSym1 (l_a1Vhl :: TyFun a6989586621679458404 Bool -> Type) (l_a1Vhk :: TyFun [a6989586621679458404] [a6989586621679458404])
type FilterSym2 (t_a1Vhi :: TyFun a6989586621679458404 Bool -> Type) (t_a1Vhj :: [a6989586621679458404]) = Filter t_a1Vhi t_a1Vhj
data PartitionSym0 (l_a1Vak :: TyFun (TyFun a6989586621679458380 Bool -> Type) (TyFun [a6989586621679458380] ([a6989586621679458380], [a6989586621679458380]) -> Type))
data PartitionSym1 (l_a1Vai :: TyFun a6989586621679458380 Bool -> Type) (l_a1Vah :: TyFun [a6989586621679458380] ([a6989586621679458380], [a6989586621679458380]))
type PartitionSym2 (t_a1Vaf :: TyFun a6989586621679458380 Bool -> Type) (t_a1Vag :: [a6989586621679458380]) = Partition t_a1Vaf t_a1Vag
data (!!@#@$) (l_a1V80 :: TyFun [a6989586621679458373] (TyFun Nat a6989586621679458373 -> Type))
data (!!@#@$$) (l_a1V7Y :: [a6989586621679458373]) (l_a1V7X :: TyFun Nat a6989586621679458373)
type (!!@#@$$$) (t_a1V7V :: [a6989586621679458373]) (t_a1V7W :: Nat) = (!!) t_a1V7V t_a1V7W
data ElemIndexSym0 (l_a1Vs2 :: TyFun a6989586621679458402 (TyFun [a6989586621679458402] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1Vs0 :: a6989586621679458402) (l_a1VrZ :: TyFun [a6989586621679458402] (Maybe Nat))
type ElemIndexSym2 (t_a1VrX :: a6989586621679458402) (t_a1VrY :: [a6989586621679458402]) = ElemIndex t_a1VrX t_a1VrY
data ElemIndicesSym0 (l_a1VrC :: TyFun a6989586621679458401 (TyFun [a6989586621679458401] [Nat] -> Type))
data ElemIndicesSym1 (l_a1VrA :: a6989586621679458401) (l_a1Vrz :: TyFun [a6989586621679458401] [Nat])
type ElemIndicesSym2 (t_a1Vrx :: a6989586621679458401) (t_a1Vry :: [a6989586621679458401]) = ElemIndices t_a1Vrx t_a1Vry
data FindIndexSym0 (l_a1VrP :: TyFun (TyFun a6989586621679458400 Bool -> Type) (TyFun [a6989586621679458400] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1VrN :: TyFun a6989586621679458400 Bool -> Type) (l_a1VrM :: TyFun [a6989586621679458400] (Maybe Nat))
type FindIndexSym2 (t_a1VrK :: TyFun a6989586621679458400 Bool -> Type) (t_a1VrL :: [a6989586621679458400]) = FindIndex t_a1VrK t_a1VrL
data FindIndicesSym0 (l_a1VqK :: TyFun (TyFun a6989586621679458399 Bool -> Type) (TyFun [a6989586621679458399] [Nat] -> Type))
data FindIndicesSym1 (l_a1VqI :: TyFun a6989586621679458399 Bool -> Type) (l_a1VqH :: TyFun [a6989586621679458399] [Nat])
type FindIndicesSym2 (t_a1VqF :: TyFun a6989586621679458399 Bool -> Type) (t_a1VqG :: [a6989586621679458399]) = FindIndices t_a1VqF t_a1VqG
data ZipSym0 (l_a1Vqx :: TyFun [a6989586621679458450] (TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)] -> Type))
data ZipSym1 (l_a1Vqv :: [a6989586621679458450]) (l_a1Vqu :: TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)])
type ZipSym2 (t_a1Vqs :: [a6989586621679458450]) (t_a1Vqt :: [b6989586621679458451]) = Zip t_a1Vqs t_a1Vqt
data Zip3Sym0 (l_a1Vqh :: TyFun [a6989586621679458447] (TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type) -> Type))
data Zip3Sym1 (l_a1Vqf :: [a6989586621679458447]) (l_a1Vqe :: TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type))
data Zip3Sym2 (l_a1Vqb :: [a6989586621679458447]) (l_a1Vqc :: [b6989586621679458448]) (l_a1Vqa :: TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)])
type Zip3Sym3 (t_a1Vq7 :: [a6989586621679458447]) (t_a1Vq8 :: [b6989586621679458448]) (t_a1Vq9 :: [c6989586621679458449]) = Zip3 t_a1Vq7 t_a1Vq8 t_a1Vq9
data ZipWithSym0 (l_a1VpX :: TyFun (TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type) -> Type))
data ZipWithSym1 (l_a1VpV :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpU :: TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type))
data ZipWithSym2 (l_a1VpR :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpS :: [a6989586621679458444]) (l_a1VpQ :: TyFun [b6989586621679458445] [c6989586621679458446])
type ZipWithSym3 (t_a1VpN :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (t_a1VpO :: [a6989586621679458444]) (t_a1VpP :: [b6989586621679458445]) = ZipWith t_a1VpN t_a1VpO t_a1VpP
data ZipWith3Sym0 (l_a1VpA :: TyFun (TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1Vpy :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpx :: TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type))
data ZipWith3Sym2 (l_a1Vpu :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpv :: [a6989586621679458440]) (l_a1Vpt :: TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type))
data ZipWith3Sym3 (l_a1Vpp :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpq :: [a6989586621679458440]) (l_a1Vpr :: [b6989586621679458441]) (l_a1Vpo :: TyFun [c6989586621679458442] [d6989586621679458443])
type ZipWith3Sym4 (t_a1Vpk :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (t_a1Vpl :: [a6989586621679458440]) (t_a1Vpm :: [b6989586621679458441]) (t_a1Vpn :: [c6989586621679458442]) = ZipWith3 t_a1Vpk t_a1Vpl t_a1Vpm t_a1Vpn
data UnzipSym0 (l_a1VoR :: TyFun [(a6989586621679458438, b6989586621679458439)] ([a6989586621679458438], [b6989586621679458439]))
type UnzipSym1 (t_a1VoQ :: [(a6989586621679458438, b6989586621679458439)]) = Unzip t_a1VoQ
data Unzip3Sym0 (l_a1Vol :: TyFun [(a6989586621679458435, b6989586621679458436, c6989586621679458437)] ([a6989586621679458435], [b6989586621679458436], [c6989586621679458437]))
type Unzip3Sym1 (t_a1Vok :: [(a6989586621679458435, b6989586621679458436, c6989586621679458437)]) = Unzip3 t_a1Vok
data Unzip4Sym0 (l_a1VnN :: TyFun [(a6989586621679458431, b6989586621679458432, c6989586621679458433, d6989586621679458434)] ([a6989586621679458431], [b6989586621679458432], [c6989586621679458433], [d6989586621679458434]))
type Unzip4Sym1 (t_a1VnM :: [(a6989586621679458431, b6989586621679458432, c6989586621679458433, d6989586621679458434)]) = Unzip4 t_a1VnM
data Unzip5Sym0 (l_a1Vnd :: TyFun [(a6989586621679458426, b6989586621679458427, c6989586621679458428, d6989586621679458429, e6989586621679458430)] ([a6989586621679458426], [b6989586621679458427], [c6989586621679458428], [d6989586621679458429], [e6989586621679458430]))
type Unzip5Sym1 (t_a1Vnc :: [(a6989586621679458426, b6989586621679458427, c6989586621679458428, d6989586621679458429, e6989586621679458430)]) = Unzip5 t_a1Vnc
data Unzip6Sym0 (l_a1VmB :: TyFun [(a6989586621679458420, b6989586621679458421, c6989586621679458422, d6989586621679458423, e6989586621679458424, f6989586621679458425)] ([a6989586621679458420], [b6989586621679458421], [c6989586621679458422], [d6989586621679458423], [e6989586621679458424], [f6989586621679458425]))
type Unzip6Sym1 (t_a1VmA :: [(a6989586621679458420, b6989586621679458421, c6989586621679458422, d6989586621679458423, e6989586621679458424, f6989586621679458425)]) = Unzip6 t_a1VmA
data Unzip7Sym0 (l_a1VlX :: TyFun [(a6989586621679458413, b6989586621679458414, c6989586621679458415, d6989586621679458416, e6989586621679458417, f6989586621679458418, g6989586621679458419)] ([a6989586621679458413], [b6989586621679458414], [c6989586621679458415], [d6989586621679458416], [e6989586621679458417], [f6989586621679458418], [g6989586621679458419]))
type Unzip7Sym1 (t_a1VlW :: [(a6989586621679458413, b6989586621679458414, c6989586621679458415, d6989586621679458416, e6989586621679458417, f6989586621679458418, g6989586621679458419)]) = Unzip7 t_a1VlW
data UnlinesSym0 (l_a1VlR :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1VlQ :: [Symbol]) = Unlines t_a1VlQ
data UnwordsSym0 (l_a1Vlv :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1Vlu :: [Symbol]) = Unwords t_a1Vlu
data NubSym0 (l_a1Vsz :: TyFun [a6989586621679458372] [a6989586621679458372])
type NubSym1 (t_a1Vsy :: [a6989586621679458372]) = Nub t_a1Vsy
data DeleteSym0 (l_a1Vl9 :: TyFun a6989586621679458412 (TyFun [a6989586621679458412] [a6989586621679458412] -> Type))
data DeleteSym1 (l_a1Vl7 :: a6989586621679458412) (l_a1Vl6 :: TyFun [a6989586621679458412] [a6989586621679458412])
type DeleteSym2 (t_a1Vl4 :: a6989586621679458412) (t_a1Vl5 :: [a6989586621679458412]) = Delete t_a1Vl4 t_a1Vl5
data (\\@#@$) (l_a1Vlo :: TyFun [a6989586621679458411] (TyFun [a6989586621679458411] [a6989586621679458411] -> Type))
data (\\@#@$$) (l_a1Vlm :: [a6989586621679458411]) (l_a1Vll :: TyFun [a6989586621679458411] [a6989586621679458411])
type (\\@#@$$$) (t_a1Vlj :: [a6989586621679458411]) (t_a1Vlk :: [a6989586621679458411]) = (\\) t_a1Vlj t_a1Vlk
data UnionSym0 (l_a1VkU :: TyFun [a6989586621679458368] (TyFun [a6989586621679458368] [a6989586621679458368] -> Type))
data UnionSym1 (l_a1VkS :: [a6989586621679458368]) (l_a1VkR :: TyFun [a6989586621679458368] [a6989586621679458368])
type UnionSym2 (t_a1VkP :: [a6989586621679458368]) (t_a1VkQ :: [a6989586621679458368]) = Union t_a1VkP t_a1VkQ
data IntersectSym0 (l_a1VDH :: TyFun [a6989586621679458398] (TyFun [a6989586621679458398] [a6989586621679458398] -> Type))
data IntersectSym1 (l_a1VDF :: [a6989586621679458398]) (l_a1VDE :: TyFun [a6989586621679458398] [a6989586621679458398])
type IntersectSym2 (t_a1VDC :: [a6989586621679458398]) (t_a1VDD :: [a6989586621679458398]) = Intersect t_a1VDC t_a1VDD
data InsertSym0 (l_a1Vj2 :: TyFun a6989586621679458385 (TyFun [a6989586621679458385] [a6989586621679458385] -> Type))
data InsertSym1 (l_a1Vj0 :: a6989586621679458385) (l_a1ViZ :: TyFun [a6989586621679458385] [a6989586621679458385])
type InsertSym2 (t_a1ViX :: a6989586621679458385) (t_a1ViY :: [a6989586621679458385]) = Insert t_a1ViX t_a1ViY
data SortSym0 (l_a1Vjo :: TyFun [a6989586621679458384] [a6989586621679458384])
type SortSym1 (t_a1Vjn :: [a6989586621679458384]) = Sort t_a1Vjn
data NubBySym0 (l_a1V6Y :: TyFun (TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (TyFun [a6989586621679458371] [a6989586621679458371] -> Type))
data NubBySym1 (l_a1V6W :: TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (l_a1V6V :: TyFun [a6989586621679458371] [a6989586621679458371])
type NubBySym2 (t_a1V6T :: TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (t_a1V6U :: [a6989586621679458371]) = NubBy t_a1V6T t_a1V6U
data DeleteBySym0 (l_a1VjC :: TyFun (TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (TyFun a6989586621679458410 (TyFun [a6989586621679458410] [a6989586621679458410] -> Type) -> Type))
data DeleteBySym1 (l_a1VjA :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (l_a1Vjz :: TyFun a6989586621679458410 (TyFun [a6989586621679458410] [a6989586621679458410] -> Type))
data DeleteBySym2 (l_a1Vjw :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (l_a1Vjx :: a6989586621679458410) (l_a1Vjv :: TyFun [a6989586621679458410] [a6989586621679458410])
type DeleteBySym3 (t_a1Vjs :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (t_a1Vjt :: a6989586621679458410) (t_a1Vju :: [a6989586621679458410]) = DeleteBy t_a1Vjs t_a1Vjt t_a1Vju
data DeleteFirstsBySym0 (l_a1Vkh :: TyFun (TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (TyFun [a6989586621679458409] (TyFun [a6989586621679458409] [a6989586621679458409] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1Vkf :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (l_a1Vke :: TyFun [a6989586621679458409] (TyFun [a6989586621679458409] [a6989586621679458409] -> Type))
data DeleteFirstsBySym2 (l_a1Vkb :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (l_a1Vkc :: [a6989586621679458409]) (l_a1Vka :: TyFun [a6989586621679458409] [a6989586621679458409])
type DeleteFirstsBySym3 (t_a1Vk7 :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (t_a1Vk8 :: [a6989586621679458409]) (t_a1Vk9 :: [a6989586621679458409]) = DeleteFirstsBy t_a1Vk7 t_a1Vk8 t_a1Vk9
data UnionBySym0 (l_a1VkD :: TyFun (TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (TyFun [a6989586621679458369] (TyFun [a6989586621679458369] [a6989586621679458369] -> Type) -> Type))
data UnionBySym1 (l_a1VkB :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (l_a1VkA :: TyFun [a6989586621679458369] (TyFun [a6989586621679458369] [a6989586621679458369] -> Type))
data UnionBySym2 (l_a1Vkx :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (l_a1Vky :: [a6989586621679458369]) (l_a1Vkw :: TyFun [a6989586621679458369] [a6989586621679458369])
type UnionBySym3 (t_a1Vkt :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (t_a1Vku :: [a6989586621679458369]) (t_a1Vkv :: [a6989586621679458369]) = UnionBy t_a1Vkt t_a1Vku t_a1Vkv
data IntersectBySym0 (l_a1VBY :: TyFun (TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (TyFun [a6989586621679458397] (TyFun [a6989586621679458397] [a6989586621679458397] -> Type) -> Type))
data IntersectBySym1 (l_a1VBW :: TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (l_a1VBV :: TyFun [a6989586621679458397] (TyFun [a6989586621679458397] [a6989586621679458397] -> Type))
data IntersectBySym2 (l_a1VBS :: TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (l_a1VBT :: [a6989586621679458397]) (l_a1VBR :: TyFun [a6989586621679458397] [a6989586621679458397])
type IntersectBySym3 (t_a1VBO :: TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (t_a1VBP :: [a6989586621679458397]) (t_a1VBQ :: [a6989586621679458397]) = IntersectBy t_a1VBO t_a1VBP t_a1VBQ
data GroupBySym0 (l_a1Vfa :: TyFun (TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (TyFun [a6989586621679458383] [[a6989586621679458383]] -> Type))
data GroupBySym1 (l_a1Vf8 :: TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (l_a1Vf7 :: TyFun [a6989586621679458383] [[a6989586621679458383]])
type GroupBySym2 (t_a1Vf5 :: TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (t_a1Vf6 :: [a6989586621679458383]) = GroupBy t_a1Vf5 t_a1Vf6
data SortBySym0 (l_a1Vjd :: TyFun (TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (TyFun [a6989586621679458408] [a6989586621679458408] -> Type))
data SortBySym1 (l_a1Vjb :: TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (l_a1Vja :: TyFun [a6989586621679458408] [a6989586621679458408])
type SortBySym2 (t_a1Vj8 :: TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (t_a1Vj9 :: [a6989586621679458408]) = SortBy t_a1Vj8 t_a1Vj9
data InsertBySym0 (l_a1Vi8 :: TyFun (TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (TyFun a6989586621679458407 (TyFun [a6989586621679458407] [a6989586621679458407] -> Type) -> Type))
data InsertBySym1 (l_a1Vi6 :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (l_a1Vi5 :: TyFun a6989586621679458407 (TyFun [a6989586621679458407] [a6989586621679458407] -> Type))
data InsertBySym2 (l_a1Vi2 :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (l_a1Vi3 :: a6989586621679458407) (l_a1Vi1 :: TyFun [a6989586621679458407] [a6989586621679458407])
type InsertBySym3 (t_a1VhY :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (t_a1VhZ :: a6989586621679458407) (t_a1Vi0 :: [a6989586621679458407]) = InsertBy t_a1VhY t_a1VhZ t_a1Vi0
data MaximumBySym0 (l_a1VFj :: TyFun (TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (TyFun [a6989586621679458406] a6989586621679458406 -> Type))
data MaximumBySym1 (l_a1VFh :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (l_a1VFg :: TyFun [a6989586621679458406] a6989586621679458406)
type MaximumBySym2 (t_a1VFe :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (t_a1VFf :: [a6989586621679458406]) = MaximumBy t_a1VFe t_a1VFf
data MinimumBySym0 (l_a1VGF :: TyFun (TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (TyFun [a6989586621679458405] a6989586621679458405 -> Type))
data MinimumBySym1 (l_a1VGD :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (l_a1VGC :: TyFun [a6989586621679458405] a6989586621679458405)
type MinimumBySym2 (t_a1VGA :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (t_a1VGB :: [a6989586621679458405]) = MinimumBy t_a1VGA t_a1VGB
data GenericLengthSym0 (l_a1V6w :: TyFun [a6989586621679458367] i6989586621679458366)
type GenericLengthSym1 (t_a1V6v :: [a6989586621679458367]) = GenericLength t_a1V6v
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.Let6989586621679470558Scrutinee_6989586621679459049Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470558Scrutinee_6989586621679459049Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470558Scrutinee_6989586621679459049Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470558Scrutinee_6989586621679459049Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470554Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470554Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470554Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470554Sym3
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.Let6989586621679470081PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470081PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470081PermsSym1
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.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.IsInfixOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.IsInfixOfSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469643Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AnySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.AnySym0
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.Let6989586621679469490Scrutinee_6989586621679458963Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469490Scrutinee_6989586621679458963Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469490Scrutinee_6989586621679458963Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469490Scrutinee_6989586621679458963Sym3
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.Let6989586621679469446Scrutinee_6989586621679458969Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469446Scrutinee_6989586621679458969Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469446Scrutinee_6989586621679458969Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469446Scrutinee_6989586621679458969Sym3
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.Let6989586621679469276X_6989586621679469283Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469283Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469283Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469283Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YsSym3
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.Let6989586621679469119X_6989586621679469126Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469126Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469126Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469126Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469120Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469120Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469120Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119X_6989586621679469120Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469119YsSym3
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.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.Let6989586621679469021Scrutinee_6989586621679459075Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469021Scrutinee_6989586621679459075Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469021Scrutinee_6989586621679459075Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469021Scrutinee_6989586621679459075Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469003Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469003Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469003Nub'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.UnlinesSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.UnwordsSym0
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.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.Let6989586621679468111X_6989586621679468112Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111X_6989586621679468112Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111X_6989586621679468112Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468111ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175X_6989586621679468176Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175X_6989586621679468176Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175X_6989586621679468176Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468175ZsSym2
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.Let6989586621679468018X_6989586621679468019Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018X_6989586621679468019Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018X_6989586621679468019Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468018ZsSym2
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.Let6989586621679467690Scrutinee_6989586621679459077Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467690Scrutinee_6989586621679459077Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467690Scrutinee_6989586621679459077Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467690Scrutinee_6989586621679459077Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467690Scrutinee_6989586621679459077Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467666NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467666NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467666NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467666NubBy'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.Let6989586621679470606Init'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470606Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470606Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470606Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470507RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470507RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470507RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470451FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470451FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470451FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470451FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150X_6989586621679470151Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470150ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358X_6989586621679470359Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470358ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470099Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469998LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469998LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469998LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469998LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469998LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470030Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469972XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469972XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469958XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469958XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469893MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469893MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469893MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469893MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469893MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469923Scrutinee_6989586621679459027Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469923Scrutinee_6989586621679459027Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469923Scrutinee_6989586621679459027Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469923Scrutinee_6989586621679459027Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469923Scrutinee_6989586621679459027Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469880XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469880XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469880XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469809MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469809MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469809MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469809MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469809MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459021Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459021Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459021Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459021Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459021Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469796XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469796XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469796XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469753XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469753XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469753XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469753XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469592XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469427XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469427XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469427XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469427XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469277Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469277Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469277Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276X_6989586621679469277Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469276YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469086Scrutinee_6989586621679458979Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469086Scrutinee_6989586621679458979Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468915Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468915Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468915Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468892BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468892BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468892BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468892BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468773Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468773Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468773Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468741Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468741Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468741Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468707Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468707Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468707Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468671Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468671Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468671Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468633Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468633Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468633Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468593Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468593Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679468593Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468566GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468566GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468566GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468453Scrutinee_6989586621679459017Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468453Scrutinee_6989586621679459017Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468453Scrutinee_6989586621679459017Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468453Scrutinee_6989586621679459017Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468381Scrutinee_6989586621679459019Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468381Scrutinee_6989586621679459019Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468381Scrutinee_6989586621679459019Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468381Scrutinee_6989586621679459019Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468362YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468362YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468362YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468362YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468313Scrutinee_6989586621679459033Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468313Scrutinee_6989586621679459033Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468313Scrutinee_6989586621679459033Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468284Scrutinee_6989586621679459045Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468284Scrutinee_6989586621679459045Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468284Scrutinee_6989586621679459045Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468256Scrutinee_6989586621679459047Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468256Scrutinee_6989586621679459047Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468256Scrutinee_6989586621679459047Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468243XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468243XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468243XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468096Scrutinee_6989586621679459051Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468096Scrutinee_6989586621679459051Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468096Scrutinee_6989586621679459051Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468083XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468083XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468083XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468003Scrutinee_6989586621679459053Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468003Scrutinee_6989586621679459053Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468003Scrutinee_6989586621679459053Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467990XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467990XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467990XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467950Scrutinee_6989586621679459055Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467950Scrutinee_6989586621679459055Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467950Scrutinee_6989586621679459055Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467922Scrutinee_6989586621679459057Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467922Scrutinee_6989586621679459057Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467922Scrutinee_6989586621679459057Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467888Scrutinee_6989586621679459067Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467888Scrutinee_6989586621679459067Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467888Scrutinee_6989586621679459067Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467888Scrutinee_6989586621679459067Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467841Scrutinee_6989586621679459069Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467841Scrutinee_6989586621679459069Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467841Scrutinee_6989586621679459069Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467841Scrutinee_6989586621679459069Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467803Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467803Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467803Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467779ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467779ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467779ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467758Scrutinee_6989586621679459071Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467758Scrutinee_6989586621679459071Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467731Scrutinee_6989586621679459073Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467731Scrutinee_6989586621679459073Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679467731Scrutinee_6989586621679459073Sym2


-- | Defines the SShow singleton version of the Show type class.
module Data.Singletons.Prelude.Show
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}
class SShow a_a2RUE
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). SShow a_a2RUE => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). SShow a_a2RUE => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). SShow a_a2RUE => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). (SShow a_a2RUE, (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 t_a2Syg) t_a2Syh) t_a2Syi) => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). (SShow a_a2RUE, (Apply Show_Sym0 t_a2Syj :: Symbol) ~ Apply Show__6989586621679695784Sym0 t_a2Syj) => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). (SShow a_a2RUE, (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol) ~ Apply (Apply ShowList_6989586621679695802Sym0 t_a2Syk) t_a2Syl) => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)

-- | The <tt>shows</tt> functions return a function that prepends the
--   output <a>Symbol</a> to an existing <a>Symbol</a>. This allows
--   constant-time concatenation of results using function composition.
type SymbolS = Symbol -> Symbol

-- | GHC currently has no notion of type-level <a>Char</a>s, so we fake
--   them with single-character <a>Symbol</a>s.
type SChar = Symbol

-- | <a>show</a>, but with an extra underscore so that its promoted
--   counterpart (<a>Show_</a>) will not clash with the <tt>Show</tt>
--   class.
show_ :: Show a => a -> String

-- | The promoted analogue of '(&lt;&gt;)' for <a>Symbol</a>s. This uses
--   the special <a>AppendSymbol</a> type family from <a>GHC.TypeLits</a>.
type a <> b = AppendSymbol a b

-- | The singleton analogue of '(&lt;&gt;)' for <a>Symbol</a>s.
(%<>) :: Sing a -> Sing b -> Sing (a <> b)
infixr 6 %<>
sShows :: forall (t_a2SxU :: a_a2RUp) (t_a2SxV :: Symbol). SShow a_a2RUp => Sing t_a2SxU -> Sing t_a2SxV -> Sing (Apply (Apply ShowsSym0 t_a2SxU) t_a2SxV :: Symbol)
sShowListWith :: forall (t_a2SxR :: TyFun a_a2RUo (TyFun Symbol Symbol -> Type) -> Type) (t_a2SxS :: [a_a2RUo]) (t_a2SxT :: Symbol). Sing t_a2SxR -> Sing t_a2SxS -> Sing t_a2SxT -> Sing (Apply (Apply (Apply ShowListWithSym0 t_a2SxR) t_a2SxS) t_a2SxT :: Symbol)
sShowChar :: forall (t_a2SxK :: Symbol) (t_a2SxL :: Symbol). Sing t_a2SxK -> Sing t_a2SxL -> Sing (Apply (Apply ShowCharSym0 t_a2SxK) t_a2SxL :: Symbol)
sShowString :: forall (t_a2SxH :: Symbol) (t_a2SxI :: Symbol). Sing t_a2SxH -> Sing t_a2SxI -> Sing (Apply (Apply ShowStringSym0 t_a2SxH) t_a2SxI :: Symbol)
sShowParen :: forall (t_a2SxM :: Bool) (t_a2SxN :: TyFun Symbol Symbol -> Type) (t_a2SxO :: Symbol). Sing t_a2SxM -> Sing t_a2SxN -> Sing t_a2SxO -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SxM) t_a2SxN) t_a2SxO :: Symbol)
sShowSpace :: forall (t_a2SxG :: Symbol). Sing t_a2SxG -> Sing (Apply ShowSpaceSym0 t_a2SxG :: Symbol)
sShowCommaSpace :: forall (t_a2SxJ :: Symbol). Sing t_a2SxJ -> Sing (Apply ShowCommaSpaceSym0 t_a2SxJ :: Symbol)
sAppPrec :: Sing (AppPrecSym0 :: Nat)
sAppPrec1 :: Sing (AppPrec1Sym0 :: Nat)
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data Show_Sym0 (l_a2Srz :: TyFun a6989586621679693692 Symbol)
type Show_Sym1 (t_a2Sry :: a6989586621679693692) = Show_ t_a2Sry
data ShowListSym0 (l_a2SrI :: TyFun [a6989586621679693692] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SrG :: [a6989586621679693692]) (l_a2SrF :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SrD :: [a6989586621679693692]) (t_a2SrE :: Symbol) = ShowList t_a2SrD t_a2SrE
data (<>@#@$) l_a1C6v
data (<>@#@$$) (l_a1C6t :: Symbol) l_a1C6s
type (<>@#@$$$) (t_a1C6q :: Symbol) (t_a1C6r :: Symbol) = (<>) t_a1C6q t_a1C6r
data ShowsSym0 (l_a2Sra :: TyFun a6989586621679693677 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2Sr8 :: a6989586621679693677) (l_a2Sr7 :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2Sr5 :: a6989586621679693677) (t_a2Sr6 :: Symbol) = Shows t_a2Sr5 t_a2Sr6
data ShowListWithSym0 (l_a2Sqs :: TyFun (TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679693676] (TyFun Symbol Symbol -> Type) -> Type))
data ShowListWithSym1 (l_a2Sqq :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (l_a2Sqp :: TyFun [a6989586621679693676] (TyFun Symbol Symbol -> Type))
data ShowListWithSym2 (l_a2Sqm :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (l_a2Sqn :: [a6989586621679693676]) (l_a2Sql :: TyFun Symbol Symbol)
type ShowListWithSym3 (t_a2Sqi :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (t_a2Sqj :: [a6989586621679693676]) (t_a2Sqk :: Symbol) = ShowListWith t_a2Sqi t_a2Sqj t_a2Sqk
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2Sou :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2Sot :: Symbol) = ShowSpace t_a2Sot
data ShowCommaSpaceSym0 (l_a2Sp1 :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2Sp0 :: Symbol) = ShowCommaSpace t_a2Sp0
type AppPrecSym0 = AppPrec
type AppPrec1Sym0 = AppPrec1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711093Sym0
instance Data.Singletons.Prelude.Show.PShow Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711093Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711093Sym2
instance Data.Singletons.Prelude.Show.SShow Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711047Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711047Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711047Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711002Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711002Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711002Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710958Sym0
instance Data.Singletons.Prelude.Show.PShow (GHC.Base.NonEmpty a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710958Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710958Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710908Sym0
instance Data.Singletons.Prelude.Show.PShow (Data.Either.Either a b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710908Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710908Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710852Sym0
instance Data.Singletons.Prelude.Show.PShow (GHC.Base.Maybe a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710852Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710852Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710805Sym0
instance Data.Singletons.Prelude.Show.PShow ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710805Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679710805Sym2
instance Data.Singletons.Prelude.Show.SShow ()
instance Data.Singletons.Prelude.Show.SShow a => Data.Singletons.Prelude.Show.SShow (GHC.Base.Maybe a)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b) => Data.Singletons.Prelude.Show.SShow (Data.Either.Either a b)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow [a]) => Data.Singletons.Prelude.Show.SShow (GHC.Base.NonEmpty a)
instance Data.Singletons.Prelude.Show.SShow GHC.Types.Bool
instance Data.Singletons.Prelude.Show.SShow GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsNatSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsNatSym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Nat
instance Data.Singletons.Prelude.Show.SShow GHC.Types.Nat
instance Data.Singletons.Prelude.Show.SShow a => Data.Singletons.Prelude.Show.SShow [a]
instance Data.Singletons.Prelude.Show.SShow GHC.Types.Symbol
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b) => Data.Singletons.Prelude.Show.SShow (a, b)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b, Data.Singletons.Prelude.Show.SShow c) => Data.Singletons.Prelude.Show.SShow (a, b, c)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b, Data.Singletons.Prelude.Show.SShow c, Data.Singletons.Prelude.Show.SShow d) => Data.Singletons.Prelude.Show.SShow (a, b, c, d)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b, Data.Singletons.Prelude.Show.SShow c, Data.Singletons.Prelude.Show.SShow d, Data.Singletons.Prelude.Show.SShow e) => Data.Singletons.Prelude.Show.SShow (a, b, c, d, e)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b, Data.Singletons.Prelude.Show.SShow c, Data.Singletons.Prelude.Show.SShow d, Data.Singletons.Prelude.Show.SShow e, Data.Singletons.Prelude.Show.SShow f) => Data.Singletons.Prelude.Show.SShow (a, b, c, d, e, f)
instance (Data.Singletons.Prelude.Show.SShow a, Data.Singletons.Prelude.Show.SShow b, Data.Singletons.Prelude.Show.SShow c, Data.Singletons.Prelude.Show.SShow d, Data.Singletons.Prelude.Show.SShow e, Data.Singletons.Prelude.Show.SShow f, Data.Singletons.Prelude.Show.SShow g) => Data.Singletons.Prelude.Show.SShow (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696098Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696098Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696098Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696058Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e, f)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696058Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696058Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696019Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696019Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696019Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695981Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695981Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695981Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695944Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695944Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695944Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695908Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695908Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695908Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695873Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Symbol
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695873Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695873Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695835Sym0
instance Data.Singletons.Prelude.Show.PShow [a]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695835Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695835Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrecSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrecSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrecSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Show_Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695764Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695764Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679695764Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Show__6989586621679695784Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowList_6989586621679695802Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowList_6989586621679695802Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowListWithSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowListWithSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowListWithSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Show_tupleSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Show_tupleSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowParenSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowParenSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowParenSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695630Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695630Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695630Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695630Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowCharSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowCharSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowCommaSpaceSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowStringSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowStringSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowSpaceSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679695674ShowlSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679695674ShowlSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679695674ShowlSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679695674ShowlSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679695674ShowlSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695546Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679695546Sym1


-- | Exports a promoted version of <a>Show</a>
module Data.Promotion.Prelude.Show
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}

-- | The <tt>shows</tt> functions return a function that prepends the
--   output <a>Symbol</a> to an existing <a>Symbol</a>. This allows
--   constant-time concatenation of results using function composition.
type SymbolS = Symbol -> Symbol

-- | GHC currently has no notion of type-level <a>Char</a>s, so we fake
--   them with single-character <a>Symbol</a>s.
type SChar = Symbol

-- | <a>show</a>, but with an extra underscore so that its promoted
--   counterpart (<a>Show_</a>) will not clash with the <tt>Show</tt>
--   class.
show_ :: Show a => a -> String

-- | The promoted analogue of '(&lt;&gt;)' for <a>Symbol</a>s. This uses
--   the special <a>AppendSymbol</a> type family from <a>GHC.TypeLits</a>.
type a <> b = AppendSymbol a b
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data Show_Sym0 (l_a2Srz :: TyFun a6989586621679693692 Symbol)
type Show_Sym1 (t_a2Sry :: a6989586621679693692) = Show_ t_a2Sry
data ShowListSym0 (l_a2SrI :: TyFun [a6989586621679693692] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SrG :: [a6989586621679693692]) (l_a2SrF :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SrD :: [a6989586621679693692]) (t_a2SrE :: Symbol) = ShowList t_a2SrD t_a2SrE
data (<>@#@$) l_a1C6v
data (<>@#@$$) (l_a1C6t :: Symbol) l_a1C6s
type (<>@#@$$$) (t_a1C6q :: Symbol) (t_a1C6r :: Symbol) = (<>) t_a1C6q t_a1C6r
data ShowsSym0 (l_a2Sra :: TyFun a6989586621679693677 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2Sr8 :: a6989586621679693677) (l_a2Sr7 :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2Sr5 :: a6989586621679693677) (t_a2Sr6 :: Symbol) = Shows t_a2Sr5 t_a2Sr6
data ShowListWithSym0 (l_a2Sqs :: TyFun (TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679693676] (TyFun Symbol Symbol -> Type) -> Type))
data ShowListWithSym1 (l_a2Sqq :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (l_a2Sqp :: TyFun [a6989586621679693676] (TyFun Symbol Symbol -> Type))
data ShowListWithSym2 (l_a2Sqm :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (l_a2Sqn :: [a6989586621679693676]) (l_a2Sql :: TyFun Symbol Symbol)
type ShowListWithSym3 (t_a2Sqi :: TyFun a6989586621679693676 (TyFun Symbol Symbol -> Type) -> Type) (t_a2Sqj :: [a6989586621679693676]) (t_a2Sqk :: Symbol) = ShowListWith t_a2Sqi t_a2Sqj t_a2Sqk
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2Sou :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2Sot :: Symbol) = ShowSpace t_a2Sot
data ShowCommaSpaceSym0 (l_a2Sp1 :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2Sp0 :: Symbol) = ShowCommaSpace t_a2Sp0
type AppPrecSym0 = AppPrec
type AppPrec1Sym0 = AppPrec1


-- | 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_a1MQW :: a_a1MLU). Sing t_a1MQW -> Sing (Apply IdSym0 t_a1MQW :: a_a1MLU)
sConst :: forall (t_a1MQS :: a_a1MLS) (t_a1MQT :: b_a1MLT). Sing t_a1MQS -> Sing t_a1MQT -> Sing (Apply (Apply ConstSym0 t_a1MQS) t_a1MQT :: a_a1MLS)
(%.) :: forall (t_a1MQP :: TyFun b_a1MLP c_a1MLQ -> Type) (t_a1MQQ :: TyFun a_a1MLR b_a1MLP -> Type) (t_a1MQR :: a_a1MLR). Sing t_a1MQP -> Sing t_a1MQQ -> Sing t_a1MQR -> Sing (Apply (Apply (Apply (.@#@$) t_a1MQP) t_a1MQQ) t_a1MQR :: c_a1MLQ)
infixr 9 %.
sFlip :: forall (t_a1MQM :: TyFun a_a1MLM (TyFun b_a1MLN c_a1MLO -> Type) -> Type) (t_a1MQN :: b_a1MLN) (t_a1MQO :: a_a1MLM). Sing t_a1MQM -> Sing t_a1MQN -> Sing t_a1MQO -> Sing (Apply (Apply (Apply FlipSym0 t_a1MQM) t_a1MQN) t_a1MQO :: c_a1MLO)
(%$) :: forall (t_a1MQK :: TyFun a_a1MLJ b_a1MLK -> Type) (t_a1MQL :: a_a1MLJ). Sing t_a1MQK -> Sing t_a1MQL -> Sing (Apply (Apply ($@#@$) t_a1MQK) t_a1MQL :: b_a1MLK)
infixr 0 %$
(%&) :: forall (t_a3f8b :: a_a3f6G) (t_a3f8c :: TyFun a_a3f6G b_a3f6H -> Type). Sing t_a3f8b -> Sing t_a3f8c -> Sing (Apply (Apply (&@#@$) t_a3f8b) t_a3f8c :: b_a3f6H)
infixl 1 %&
sOn :: forall (t_a3f8d :: TyFun b_a3f6I (TyFun b_a3f6I c_a3f6J -> Type) -> Type) (t_a3f8e :: TyFun a_a3f6K b_a3f6I -> Type) (t_a3f8f :: a_a3f6K) (t_a3f8g :: a_a3f6K). Sing t_a3f8d -> Sing t_a3f8e -> Sing t_a3f8f -> Sing t_a3f8g -> Sing (Apply (Apply (Apply (Apply OnSym0 t_a3f8d) t_a3f8e) t_a3f8f) t_a3f8g :: c_a3f6J)
infixl 0 `sOn`
data IdSym0 (l_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
type FlipSym3 (t_a1MO9 :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (t_a1MOa :: b6989586621679435595) (t_a1MOb :: a6989586621679435594) = Flip t_a1MO9 t_a1MOa t_a1MOb
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data (&@#@$) (l_a3f6Y :: TyFun a6989586621679782850 (TyFun (TyFun a6989586621679782850 b6989586621679782851 -> Type) b6989586621679782851 -> Type))
data (&@#@$$) (l_a3f6W :: a6989586621679782850) (l_a3f6V :: TyFun (TyFun a6989586621679782850 b6989586621679782851 -> Type) b6989586621679782851)
type (&@#@$$$) (t_a3f6T :: a6989586621679782850) (t_a3f6U :: TyFun a6989586621679782850 b6989586621679782851 -> Type) = (&) t_a3f6T t_a3f6U
data OnSym0 (l_a3f7k :: TyFun (TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (TyFun (TyFun a6989586621679782854 b6989586621679782852 -> Type) (TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type) -> Type) -> Type))
data OnSym1 (l_a3f7i :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7h :: TyFun (TyFun a6989586621679782854 b6989586621679782852 -> Type) (TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type) -> Type))
data OnSym2 (l_a3f7e :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7f :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (l_a3f7d :: TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type))
data OnSym3 (l_a3f79 :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7a :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (l_a3f7b :: a6989586621679782854) (l_a3f78 :: TyFun a6989586621679782854 c6989586621679782853)
type OnSym4 (t_a3f74 :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (t_a3f75 :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (t_a3f76 :: a6989586621679782854) (t_a3f77 :: a6989586621679782854) = On t_a3f74 t_a3f75 t_a3f76 t_a3f77
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_6989586621679782904Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679782904Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679782904Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679782904Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679782904Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679782904Sym5


-- | 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_af4k -> Type)
sMap :: forall (t_a3i5G :: TyFun a_a3htG b_a3htH -> Type) (t_a3i5H :: NonEmpty a_a3htG). Sing t_a3i5G -> Sing t_a3i5H -> Sing (Apply (Apply MapSym0 t_a3i5G) t_a3i5H :: NonEmpty b_a3htH)
sIntersperse :: forall (t_a3i5E :: a_a3htw) (t_a3i5F :: NonEmpty a_a3htw). Sing t_a3i5E -> Sing t_a3i5F -> Sing (Apply (Apply IntersperseSym0 t_a3i5E) t_a3i5F :: NonEmpty a_a3htw)
sScanl :: forall (t_a3i6f :: TyFun b_a3htB (TyFun a_a3htC b_a3htB -> Type) -> Type) (t_a3i6g :: b_a3htB) (t_a3i6h :: [a_a3htC]). Sing t_a3i6f -> Sing t_a3i6g -> Sing t_a3i6h -> Sing (Apply (Apply (Apply ScanlSym0 t_a3i6f) t_a3i6g) t_a3i6h :: NonEmpty b_a3htB)
sScanr :: forall (t_a3i6i :: TyFun a_a3htz (TyFun b_a3htA b_a3htA -> Type) -> Type) (t_a3i6j :: b_a3htA) (t_a3i6k :: [a_a3htz]). Sing t_a3i6i -> Sing t_a3i6j -> Sing t_a3i6k -> Sing (Apply (Apply (Apply ScanrSym0 t_a3i6i) t_a3i6j) t_a3i6k :: NonEmpty b_a3htA)
sScanl1 :: forall (t_a3i6l :: TyFun a_a3hty (TyFun a_a3hty a_a3hty -> Type) -> Type) (t_a3i6m :: NonEmpty a_a3hty). Sing t_a3i6l -> Sing t_a3i6m -> Sing (Apply (Apply Scanl1Sym0 t_a3i6l) t_a3i6m :: NonEmpty a_a3hty)
sScanr1 :: forall (t_a3i6n :: TyFun a_a3htx (TyFun a_a3htx a_a3htx -> Type) -> Type) (t_a3i6o :: NonEmpty a_a3htx). Sing t_a3i6n -> Sing t_a3i6o -> Sing (Apply (Apply Scanr1Sym0 t_a3i6n) t_a3i6o :: NonEmpty a_a3htx)
sTranspose :: forall (t_a3i6I :: NonEmpty (NonEmpty a_a3hsY)). Sing t_a3i6I -> Sing (Apply TransposeSym0 t_a3i6I :: NonEmpty (NonEmpty a_a3hsY))
sSortBy :: forall (t_a3i65 :: TyFun a_a3hsX (TyFun a_a3hsX Ordering -> Type) -> Type) (t_a3i66 :: NonEmpty a_a3hsX). Sing t_a3i65 -> Sing t_a3i66 -> Sing (Apply (Apply SortBySym0 t_a3i65) t_a3i66 :: NonEmpty a_a3hsX)
sSortWith :: forall (t_a3i67 :: TyFun a_a3hsW o_a3hsV -> Type) (t_a3i68 :: NonEmpty a_a3hsW). SOrd o_a3hsV => Sing t_a3i67 -> Sing t_a3i68 -> Sing (Apply (Apply SortWithSym0 t_a3i67) t_a3i68 :: NonEmpty a_a3hsW)
sLength :: forall (t_a3i6F :: NonEmpty a_a3htZ). Sing t_a3i6F -> Sing (Apply LengthSym0 t_a3i6F :: Nat)
sHead :: forall (t_a3i6x :: NonEmpty a_a3htS). Sing t_a3i6x -> Sing (Apply HeadSym0 t_a3i6x :: a_a3htS)
sTail :: forall (t_a3i6w :: NonEmpty a_a3htR). Sing t_a3i6w -> Sing (Apply TailSym0 t_a3i6w :: [a_a3htR])
sLast :: forall (t_a3i6v :: NonEmpty a_a3htQ). Sing t_a3i6v -> Sing (Apply LastSym0 t_a3i6v :: a_a3htQ)
sInit :: forall (t_a3i6u :: NonEmpty a_a3htP). Sing t_a3i6u -> Sing (Apply InitSym0 t_a3i6u :: [a_a3htP])
(%<|) :: forall (t_a3i6q :: a_a3htO) (t_a3i6r :: NonEmpty a_a3htO). Sing t_a3i6q -> Sing t_a3i6r -> Sing (Apply (Apply (<|@#@$) t_a3i6q) t_a3i6r :: NonEmpty a_a3htO)
sCons :: forall (t_a3i6s :: a_a3htN) (t_a3i6t :: NonEmpty a_a3htN). Sing t_a3i6s -> Sing t_a3i6t -> Sing (Apply (Apply ConsSym0 t_a3i6s) t_a3i6t :: NonEmpty a_a3htN)
sUncons :: forall (t_a3i6B :: NonEmpty a_a3htV). Sing t_a3i6B -> Sing (Apply UnconsSym0 t_a3i6B :: (a_a3htV, Maybe (NonEmpty a_a3htV)))
sUnfoldr :: forall (t_a3i6y :: TyFun a_a3htT (b_a3htU, Maybe a_a3htT) -> Type) (t_a3i6z :: a_a3htT). Sing t_a3i6y -> Sing t_a3i6z -> Sing (Apply (Apply UnfoldrSym0 t_a3i6y) t_a3i6z :: NonEmpty b_a3htU)
sSort :: forall (t_a3i6p :: NonEmpty a_a3htM). SOrd a_a3htM => Sing t_a3i6p -> Sing (Apply SortSym0 t_a3i6p :: NonEmpty a_a3htM)
sReverse :: forall (t_a3i64 :: NonEmpty a_a3htv). Sing t_a3i64 -> Sing (Apply ReverseSym0 t_a3i64 :: NonEmpty a_a3htv)
sInits :: forall (t_a3i6b :: [a_a3htF]). Sing t_a3i6b -> Sing (Apply InitsSym0 t_a3i6b :: NonEmpty [a_a3htF])
sTails :: forall (t_a3i6c :: [a_a3htE]). Sing t_a3i6c -> Sing (Apply TailsSym0 t_a3i6c :: NonEmpty [a_a3htE])
sUnfold :: forall (t_a3i6C :: TyFun a_a3htX (b_a3htY, Maybe a_a3htX) -> Type) (t_a3i6D :: a_a3htX). Sing t_a3i6C -> Sing t_a3i6D -> Sing (Apply (Apply UnfoldSym0 t_a3i6C) t_a3i6D :: NonEmpty b_a3htY)
sInsert :: forall (t_a3i6d :: a_a3htD) (t_a3i6e :: [a_a3htD]). SOrd a_a3htD => Sing t_a3i6d -> Sing t_a3i6e -> Sing (Apply (Apply InsertSym0 t_a3i6d) t_a3i6e :: NonEmpty a_a3htD)
sTake :: forall (t_a3i5J :: Nat) (t_a3i5K :: NonEmpty a_a3htu). Sing t_a3i5J -> Sing t_a3i5K -> Sing (Apply (Apply TakeSym0 t_a3i5J) t_a3i5K :: [a_a3htu])
sDrop :: forall (t_a3i5L :: Nat) (t_a3i5M :: NonEmpty a_a3htt). Sing t_a3i5L -> Sing t_a3i5M -> Sing (Apply (Apply DropSym0 t_a3i5L) t_a3i5M :: [a_a3htt])
sSplitAt :: forall (t_a3i5N :: Nat) (t_a3i5O :: NonEmpty a_a3hts). Sing t_a3i5N -> Sing t_a3i5O -> Sing (Apply (Apply SplitAtSym0 t_a3i5N) t_a3i5O :: ([a_a3hts], [a_a3hts]))
sTakeWhile :: forall (t_a3i5P :: TyFun a_a3htr Bool -> Type) (t_a3i5Q :: NonEmpty a_a3htr). Sing t_a3i5P -> Sing t_a3i5Q -> Sing (Apply (Apply TakeWhileSym0 t_a3i5P) t_a3i5Q :: [a_a3htr])
sDropWhile :: forall (t_a3i5R :: TyFun a_a3htq Bool -> Type) (t_a3i5S :: NonEmpty a_a3htq). Sing t_a3i5R -> Sing t_a3i5S -> Sing (Apply (Apply DropWhileSym0 t_a3i5R) t_a3i5S :: [a_a3htq])
sSpan :: forall (t_a3i5T :: TyFun a_a3htp Bool -> Type) (t_a3i5U :: NonEmpty a_a3htp). Sing t_a3i5T -> Sing t_a3i5U -> Sing (Apply (Apply SpanSym0 t_a3i5T) t_a3i5U :: ([a_a3htp], [a_a3htp]))
sBreak :: forall (t_a3i5V :: TyFun a_a3hto Bool -> Type) (t_a3i5W :: NonEmpty a_a3hto). Sing t_a3i5V -> Sing t_a3i5W -> Sing (Apply (Apply BreakSym0 t_a3i5V) t_a3i5W :: ([a_a3hto], [a_a3hto]))
sFilter :: forall (t_a3i5X :: TyFun a_a3htn Bool -> Type) (t_a3i5Y :: NonEmpty a_a3htn). Sing t_a3i5X -> Sing t_a3i5Y -> Sing (Apply (Apply FilterSym0 t_a3i5X) t_a3i5Y :: [a_a3htn])
sPartition :: forall (t_a3i5Z :: TyFun a_a3htm Bool -> Type) (t_a3i60 :: NonEmpty a_a3htm). Sing t_a3i5Z -> Sing t_a3i60 -> Sing (Apply (Apply PartitionSym0 t_a3i5Z) t_a3i60 :: ([a_a3htm], [a_a3htm]))
sGroup :: forall (t_a3i5D :: [a_a3htl]). SEq a_a3htl => Sing t_a3i5D -> Sing (Apply GroupSym0 t_a3i5D :: [NonEmpty a_a3htl])
sGroupBy :: forall (t_a3i5s :: TyFun a_a3htk (TyFun a_a3htk Bool -> Type) -> Type) (t_a3i5t :: [a_a3htk]). Sing t_a3i5s -> Sing t_a3i5t -> Sing (Apply (Apply GroupBySym0 t_a3i5s) t_a3i5t :: [NonEmpty a_a3htk])
sGroupWith :: forall (t_a3i5u :: TyFun a_a3htj b_a3hti -> Type) (t_a3i5v :: [a_a3htj]). SEq b_a3hti => Sing t_a3i5u -> Sing t_a3i5v -> Sing (Apply (Apply GroupWithSym0 t_a3i5u) t_a3i5v :: [NonEmpty a_a3htj])
sGroupAllWith :: forall (t_a3i5w :: TyFun a_a3hth b_a3htg -> Type) (t_a3i5x :: [a_a3hth]). SOrd b_a3htg => Sing t_a3i5w -> Sing t_a3i5x -> Sing (Apply (Apply GroupAllWithSym0 t_a3i5w) t_a3i5x :: [NonEmpty a_a3hth])
sGroup1 :: forall (t_a3i5A :: NonEmpty a_a3htf). SEq a_a3htf => Sing t_a3i5A -> Sing (Apply Group1Sym0 t_a3i5A :: NonEmpty (NonEmpty a_a3htf))
sGroupBy1 :: forall (t_a3i5y :: TyFun a_a3hte (TyFun a_a3hte Bool -> Type) -> Type) (t_a3i5z :: NonEmpty a_a3hte). Sing t_a3i5y -> Sing t_a3i5z -> Sing (Apply (Apply GroupBy1Sym0 t_a3i5y) t_a3i5z :: NonEmpty (NonEmpty a_a3hte))
sGroupWith1 :: forall (t_a3i5B :: TyFun a_a3htd b_a3htc -> Type) (t_a3i5C :: NonEmpty a_a3htd). SEq b_a3htc => Sing t_a3i5B -> Sing t_a3i5C -> Sing (Apply (Apply GroupWith1Sym0 t_a3i5B) t_a3i5C :: NonEmpty (NonEmpty a_a3htd))
sGroupAllWith1 :: forall (t_a3i69 :: TyFun a_a3htb b_a3hta -> Type) (t_a3i6a :: NonEmpty a_a3htb). SOrd b_a3hta => Sing t_a3i69 -> Sing t_a3i6a -> Sing (Apply (Apply GroupAllWith1Sym0 t_a3i69) t_a3i6a :: NonEmpty (NonEmpty a_a3htb))
sIsPrefixOf :: forall (t_a3i5q :: [a_a3ht9]) (t_a3i5r :: NonEmpty a_a3ht9). SEq a_a3ht9 => Sing t_a3i5q -> Sing t_a3i5r -> Sing (Apply (Apply IsPrefixOfSym0 t_a3i5q) t_a3i5r :: Bool)
sNub :: forall (t_a3i5h :: NonEmpty a_a3ht0). SEq a_a3ht0 => Sing t_a3i5h -> Sing (Apply NubSym0 t_a3i5h :: NonEmpty a_a3ht0)
sNubBy :: forall (t_a3i5f :: TyFun a_a3hsZ (TyFun a_a3hsZ Bool -> Type) -> Type) (t_a3i5g :: NonEmpty a_a3hsZ). Sing t_a3i5f -> Sing t_a3i5g -> Sing (Apply (Apply NubBySym0 t_a3i5f) t_a3i5g :: NonEmpty a_a3hsZ)
(%!!) :: forall (t_a3i5o :: NonEmpty a_a3ht8) (t_a3i5p :: Nat). Sing t_a3i5o -> Sing t_a3i5p -> Sing (Apply (Apply (!!@#@$) t_a3i5o) t_a3i5p :: a_a3ht8)
sZip :: forall (t_a3i5m :: NonEmpty a_a3ht6) (t_a3i5n :: NonEmpty b_a3ht7). Sing t_a3i5m -> Sing t_a3i5n -> Sing (Apply (Apply ZipSym0 t_a3i5m) t_a3i5n :: NonEmpty (a_a3ht6, b_a3ht7))
sZipWith :: forall (t_a3i5j :: TyFun a_a3ht3 (TyFun b_a3ht4 c_a3ht5 -> Type) -> Type) (t_a3i5k :: NonEmpty a_a3ht3) (t_a3i5l :: NonEmpty b_a3ht4). Sing t_a3i5j -> Sing t_a3i5k -> Sing t_a3i5l -> Sing (Apply (Apply (Apply ZipWithSym0 t_a3i5j) t_a3i5k) t_a3i5l :: NonEmpty c_a3ht5)
sUnzip :: forall (t_a3i5i :: NonEmpty (a_a3ht1, b_a3ht2)). Sing t_a3i5i -> Sing (Apply UnzipSym0 t_a3i5i :: (NonEmpty a_a3ht1, NonEmpty b_a3ht2))
sFromList :: forall (t_a3i61 :: [a_a3htL]). Sing t_a3i61 -> Sing (Apply FromListSym0 t_a3i61 :: NonEmpty a_a3htL)
sToList :: forall (t_a3i5I :: NonEmpty a_a3htK). Sing t_a3i5I -> Sing (Apply ToListSym0 t_a3i5I :: [a_a3htK])
sNonEmpty_ :: forall (t_a3i6A :: [a_a3htW]). Sing t_a3i6A -> Sing (Apply NonEmpty_Sym0 t_a3i6A :: Maybe (NonEmpty a_a3htW))
sXor :: forall (t_a3i6E :: NonEmpty Bool). Sing t_a3i6E -> Sing (Apply XorSym0 t_a3i6E :: Bool)
data (:|@#@$) (l_a12Gl :: TyFun a6989586621679067720 (TyFun [a6989586621679067720] (NonEmpty a6989586621679067720) -> Type))
data (:|@#@$$) (l_a12Gj :: a6989586621679067720) (l_a12Gi :: TyFun [a6989586621679067720] (NonEmpty a6989586621679067720))
type (:|@#@$$$) (t_a12Gg :: a6989586621679067720) (t_a12Gh :: [a6989586621679067720]) = (:|) t_a12Gg t_a12Gh
data MapSym0 (l_a3hXk :: TyFun (TyFun a6989586621679791964 b6989586621679791965 -> Type) (TyFun (NonEmpty a6989586621679791964) (NonEmpty b6989586621679791965) -> Type))
data MapSym1 (l_a3hXi :: TyFun a6989586621679791964 b6989586621679791965 -> Type) (l_a3hXh :: TyFun (NonEmpty a6989586621679791964) (NonEmpty b6989586621679791965))
type MapSym2 (t_a3hXf :: TyFun a6989586621679791964 b6989586621679791965 -> Type) (t_a3hXg :: NonEmpty a6989586621679791964) = Map t_a3hXf t_a3hXg
data IntersperseSym0 (l_a3hX5 :: TyFun a6989586621679791954 (TyFun (NonEmpty a6989586621679791954) (NonEmpty a6989586621679791954) -> Type))
data IntersperseSym1 (l_a3hX3 :: a6989586621679791954) (l_a3hX2 :: TyFun (NonEmpty a6989586621679791954) (NonEmpty a6989586621679791954))
type IntersperseSym2 (t_a3hX0 :: a6989586621679791954) (t_a3hX1 :: NonEmpty a6989586621679791954) = Intersperse t_a3hX0 t_a3hX1
data ScanlSym0 (l_a3i16 :: TyFun (TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (TyFun b6989586621679791959 (TyFun [a6989586621679791960] (NonEmpty b6989586621679791959) -> Type) -> Type))
data ScanlSym1 (l_a3i14 :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (l_a3i13 :: TyFun b6989586621679791959 (TyFun [a6989586621679791960] (NonEmpty b6989586621679791959) -> Type))
data ScanlSym2 (l_a3i10 :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (l_a3i11 :: b6989586621679791959) (l_a3i0Z :: TyFun [a6989586621679791960] (NonEmpty b6989586621679791959))
type ScanlSym3 (t_a3i0W :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (t_a3i0X :: b6989586621679791959) (t_a3i0Y :: [a6989586621679791960]) = Scanl t_a3i0W t_a3i0X t_a3i0Y
data ScanrSym0 (l_a3i1q :: TyFun (TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (TyFun b6989586621679791958 (TyFun [a6989586621679791957] (NonEmpty b6989586621679791958) -> Type) -> Type))
data ScanrSym1 (l_a3i1o :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (l_a3i1n :: TyFun b6989586621679791958 (TyFun [a6989586621679791957] (NonEmpty b6989586621679791958) -> Type))
data ScanrSym2 (l_a3i1k :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (l_a3i1l :: b6989586621679791958) (l_a3i1j :: TyFun [a6989586621679791957] (NonEmpty b6989586621679791958))
type ScanrSym3 (t_a3i1g :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (t_a3i1h :: b6989586621679791958) (t_a3i1i :: [a6989586621679791957]) = Scanr t_a3i1g t_a3i1h t_a3i1i
data Scanl1Sym0 (l_a3i1F :: TyFun (TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791956) (NonEmpty a6989586621679791956) -> Type))
data Scanl1Sym1 (l_a3i1D :: TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (l_a3i1C :: TyFun (NonEmpty a6989586621679791956) (NonEmpty a6989586621679791956))
type Scanl1Sym2 (t_a3i1A :: TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (t_a3i1B :: NonEmpty a6989586621679791956) = Scanl1 t_a3i1A t_a3i1B
data Scanr1Sym0 (l_a3i1R :: TyFun (TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791955) (NonEmpty a6989586621679791955) -> Type))
data Scanr1Sym1 (l_a3i1P :: TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (l_a3i1O :: TyFun (NonEmpty a6989586621679791955) (NonEmpty a6989586621679791955))
type Scanr1Sym2 (t_a3i1M :: TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (t_a3i1N :: NonEmpty a6989586621679791955) = Scanr1 t_a3i1M t_a3i1N
data TransposeSym0 (l_a3i5b :: TyFun (NonEmpty (NonEmpty a6989586621679791920)) (NonEmpty (NonEmpty a6989586621679791920)))
type TransposeSym1 (t_a3i5a :: NonEmpty (NonEmpty a6989586621679791920)) = Transpose t_a3i5a
data SortBySym0 (l_a3hZV :: TyFun (TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (TyFun (NonEmpty a6989586621679791919) (NonEmpty a6989586621679791919) -> Type))
data SortBySym1 (l_a3hZT :: TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (l_a3hZS :: TyFun (NonEmpty a6989586621679791919) (NonEmpty a6989586621679791919))
type SortBySym2 (t_a3hZQ :: TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (t_a3hZR :: NonEmpty a6989586621679791919) = SortBy t_a3hZQ t_a3hZR
data SortWithSym0 (l_a3i0c :: TyFun (TyFun a6989586621679791918 o6989586621679791917 -> Type) (TyFun (NonEmpty a6989586621679791918) (NonEmpty a6989586621679791918) -> Type))
data SortWithSym1 (l_a3i0a :: TyFun a6989586621679791918 o6989586621679791917 -> Type) (l_a3i09 :: TyFun (NonEmpty a6989586621679791918) (NonEmpty a6989586621679791918))
type SortWithSym2 (t_a3i07 :: TyFun a6989586621679791918 o6989586621679791917 -> Type) (t_a3i08 :: NonEmpty a6989586621679791918) = SortWith t_a3i07 t_a3i08
data LengthSym0 (l_a3i4S :: TyFun (NonEmpty a6989586621679791983) Nat)
type LengthSym1 (t_a3i4R :: NonEmpty a6989586621679791983) = Length t_a3i4R
data HeadSym0 (l_a3i2O :: TyFun (NonEmpty a6989586621679791976) a6989586621679791976)
type HeadSym1 (t_a3i2N :: NonEmpty a6989586621679791976) = Head t_a3i2N
data TailSym0 (l_a3i2J :: TyFun (NonEmpty a6989586621679791975) [a6989586621679791975])
type TailSym1 (t_a3i2I :: NonEmpty a6989586621679791975) = Tail t_a3i2I
data LastSym0 (l_a3i2D :: TyFun (NonEmpty a6989586621679791974) a6989586621679791974)
type LastSym1 (t_a3i2C :: NonEmpty a6989586621679791974) = Last t_a3i2C
data InitSym0 (l_a3i2x :: TyFun (NonEmpty a6989586621679791973) [a6989586621679791973])
type InitSym1 (t_a3i2w :: NonEmpty a6989586621679791973) = Init t_a3i2w
data (<|@#@$) (l_a3i2a :: TyFun a6989586621679791972 (TyFun (NonEmpty a6989586621679791972) (NonEmpty a6989586621679791972) -> Type))
data (<|@#@$$) (l_a3i28 :: a6989586621679791972) (l_a3i27 :: TyFun (NonEmpty a6989586621679791972) (NonEmpty a6989586621679791972))
type (<|@#@$$$) (t_a3i25 :: a6989586621679791972) (t_a3i26 :: NonEmpty a6989586621679791972) = (<|) t_a3i25 t_a3i26
data ConsSym0 (l_a3i2q :: TyFun a6989586621679791971 (TyFun (NonEmpty a6989586621679791971) (NonEmpty a6989586621679791971) -> Type))
data ConsSym1 (l_a3i2o :: a6989586621679791971) (l_a3i2n :: TyFun (NonEmpty a6989586621679791971) (NonEmpty a6989586621679791971))
type ConsSym2 (t_a3i2l :: a6989586621679791971) (t_a3i2m :: NonEmpty a6989586621679791971) = Cons t_a3i2l t_a3i2m
data UnconsSym0 (l_a3i3U :: TyFun (NonEmpty a6989586621679791979) (a6989586621679791979, Maybe (NonEmpty a6989586621679791979)))
type UnconsSym1 (t_a3i3T :: NonEmpty a6989586621679791979) = Uncons t_a3i3T
data UnfoldrSym0 (l_a3i2X :: TyFun (TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (TyFun a6989586621679791977 (NonEmpty b6989586621679791978) -> Type))
data UnfoldrSym1 (l_a3i2V :: TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (l_a3i2U :: TyFun a6989586621679791977 (NonEmpty b6989586621679791978))
type UnfoldrSym2 (t_a3i2S :: TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (t_a3i2T :: a6989586621679791977) = Unfoldr t_a3i2S t_a3i2T
data SortSym0 (l_a3i21 :: TyFun (NonEmpty a6989586621679791970) (NonEmpty a6989586621679791970))
type SortSym1 (t_a3i20 :: NonEmpty a6989586621679791970) = Sort t_a3i20
data ReverseSym0 (l_a3hZM :: TyFun (NonEmpty a6989586621679791953) (NonEmpty a6989586621679791953))
type ReverseSym1 (t_a3hZL :: NonEmpty a6989586621679791953) = Reverse t_a3hZL
data InitsSym0 (l_a3i0y :: TyFun [a6989586621679791963] (NonEmpty [a6989586621679791963]))
type InitsSym1 (t_a3i0x :: [a6989586621679791963]) = Inits t_a3i0x
data TailsSym0 (l_a3i0F :: TyFun [a6989586621679791962] (NonEmpty [a6989586621679791962]))
type TailsSym1 (t_a3i0E :: [a6989586621679791962]) = Tails t_a3i0E
data UnfoldSym0 (l_a3i44 :: TyFun (TyFun a6989586621679791981 (b6989586621679791982, Maybe a6989586621679791981) -> Type) (TyFun a6989586621679791981 (NonEmpty b6989586621679791982) -> Type))
data UnfoldSym1 (l_a3i42 :: TyFun a6989586621679791981 (b6989586621679791982, Maybe a6989586621679791981) -> Type) (l_a3i41 :: TyFun a6989586621679791981 (NonEmpty b6989586621679791982))
data InsertSym0 (l_a3i0O :: TyFun a6989586621679791961 (TyFun [a6989586621679791961] (NonEmpty a6989586621679791961) -> Type))
data InsertSym1 (l_a3i0M :: a6989586621679791961) (l_a3i0L :: TyFun [a6989586621679791961] (NonEmpty a6989586621679791961))
type InsertSym2 (t_a3i0J :: a6989586621679791961) (t_a3i0K :: [a6989586621679791961]) = Insert t_a3i0J t_a3i0K
data TakeSym0 (l_a3hXC :: TyFun Nat (TyFun (NonEmpty a6989586621679791952) [a6989586621679791952] -> Type))
data TakeSym1 (l_a3hXA :: Nat) (l_a3hXz :: TyFun (NonEmpty a6989586621679791952) [a6989586621679791952])
type TakeSym2 (t_a3hXx :: Nat) (t_a3hXy :: NonEmpty a6989586621679791952) = Take t_a3hXx t_a3hXy
data DropSym0 (l_a3hXP :: TyFun Nat (TyFun (NonEmpty a6989586621679791951) [a6989586621679791951] -> Type))
data DropSym1 (l_a3hXN :: Nat) (l_a3hXM :: TyFun (NonEmpty a6989586621679791951) [a6989586621679791951])
type DropSym2 (t_a3hXK :: Nat) (t_a3hXL :: NonEmpty a6989586621679791951) = Drop t_a3hXK t_a3hXL
data SplitAtSym0 (l_a3hY2 :: TyFun Nat (TyFun (NonEmpty a6989586621679791950) ([a6989586621679791950], [a6989586621679791950]) -> Type))
data SplitAtSym1 (l_a3hY0 :: Nat) (l_a3hXZ :: TyFun (NonEmpty a6989586621679791950) ([a6989586621679791950], [a6989586621679791950]))
type SplitAtSym2 (t_a3hXX :: Nat) (t_a3hXY :: NonEmpty a6989586621679791950) = SplitAt t_a3hXX t_a3hXY
data TakeWhileSym0 (l_a3hYf :: TyFun (TyFun a6989586621679791949 Bool -> Type) (TyFun (NonEmpty a6989586621679791949) [a6989586621679791949] -> Type))
data TakeWhileSym1 (l_a3hYd :: TyFun a6989586621679791949 Bool -> Type) (l_a3hYc :: TyFun (NonEmpty a6989586621679791949) [a6989586621679791949])
type TakeWhileSym2 (t_a3hYa :: TyFun a6989586621679791949 Bool -> Type) (t_a3hYb :: NonEmpty a6989586621679791949) = TakeWhile t_a3hYa t_a3hYb
data DropWhileSym0 (l_a3hYs :: TyFun (TyFun a6989586621679791948 Bool -> Type) (TyFun (NonEmpty a6989586621679791948) [a6989586621679791948] -> Type))
data DropWhileSym1 (l_a3hYq :: TyFun a6989586621679791948 Bool -> Type) (l_a3hYp :: TyFun (NonEmpty a6989586621679791948) [a6989586621679791948])
type DropWhileSym2 (t_a3hYn :: TyFun a6989586621679791948 Bool -> Type) (t_a3hYo :: NonEmpty a6989586621679791948) = DropWhile t_a3hYn t_a3hYo
data SpanSym0 (l_a3hYF :: TyFun (TyFun a6989586621679791947 Bool -> Type) (TyFun (NonEmpty a6989586621679791947) ([a6989586621679791947], [a6989586621679791947]) -> Type))
data SpanSym1 (l_a3hYD :: TyFun a6989586621679791947 Bool -> Type) (l_a3hYC :: TyFun (NonEmpty a6989586621679791947) ([a6989586621679791947], [a6989586621679791947]))
type SpanSym2 (t_a3hYA :: TyFun a6989586621679791947 Bool -> Type) (t_a3hYB :: NonEmpty a6989586621679791947) = Span t_a3hYA t_a3hYB
data BreakSym0 (l_a3hYS :: TyFun (TyFun a6989586621679791946 Bool -> Type) (TyFun (NonEmpty a6989586621679791946) ([a6989586621679791946], [a6989586621679791946]) -> Type))
data BreakSym1 (l_a3hYQ :: TyFun a6989586621679791946 Bool -> Type) (l_a3hYP :: TyFun (NonEmpty a6989586621679791946) ([a6989586621679791946], [a6989586621679791946]))
type BreakSym2 (t_a3hYN :: TyFun a6989586621679791946 Bool -> Type) (t_a3hYO :: NonEmpty a6989586621679791946) = Break t_a3hYN t_a3hYO
data FilterSym0 (l_a3hZ5 :: TyFun (TyFun a6989586621679791945 Bool -> Type) (TyFun (NonEmpty a6989586621679791945) [a6989586621679791945] -> Type))
data FilterSym1 (l_a3hZ3 :: TyFun a6989586621679791945 Bool -> Type) (l_a3hZ2 :: TyFun (NonEmpty a6989586621679791945) [a6989586621679791945])
type FilterSym2 (t_a3hZ0 :: TyFun a6989586621679791945 Bool -> Type) (t_a3hZ1 :: NonEmpty a6989586621679791945) = Filter t_a3hZ0 t_a3hZ1
data PartitionSym0 (l_a3hZi :: TyFun (TyFun a6989586621679791944 Bool -> Type) (TyFun (NonEmpty a6989586621679791944) ([a6989586621679791944], [a6989586621679791944]) -> Type))
data PartitionSym1 (l_a3hZg :: TyFun a6989586621679791944 Bool -> Type) (l_a3hZf :: TyFun (NonEmpty a6989586621679791944) ([a6989586621679791944], [a6989586621679791944]))
type PartitionSym2 (t_a3hZd :: TyFun a6989586621679791944 Bool -> Type) (t_a3hZe :: NonEmpty a6989586621679791944) = Partition t_a3hZd t_a3hZe
data GroupSym0 (l_a3hWW :: TyFun [a6989586621679791943] [NonEmpty a6989586621679791943])
type GroupSym1 (t_a3hWV :: [a6989586621679791943]) = Group t_a3hWV
data GroupBySym0 (l_a3hTa :: TyFun (TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (TyFun [a6989586621679791942] [NonEmpty a6989586621679791942] -> Type))
data GroupBySym1 (l_a3hT8 :: TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (l_a3hT7 :: TyFun [a6989586621679791942] [NonEmpty a6989586621679791942])
type GroupBySym2 (t_a3hT5 :: TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (t_a3hT6 :: [a6989586621679791942]) = GroupBy t_a3hT5 t_a3hT6
data GroupWithSym0 (l_a3hVd :: TyFun (TyFun a6989586621679791941 b6989586621679791940 -> Type) (TyFun [a6989586621679791941] [NonEmpty a6989586621679791941] -> Type))
data GroupWithSym1 (l_a3hVb :: TyFun a6989586621679791941 b6989586621679791940 -> Type) (l_a3hVa :: TyFun [a6989586621679791941] [NonEmpty a6989586621679791941])
type GroupWithSym2 (t_a3hV8 :: TyFun a6989586621679791941 b6989586621679791940 -> Type) (t_a3hV9 :: [a6989586621679791941]) = GroupWith t_a3hV8 t_a3hV9
data GroupAllWithSym0 (l_a3hVq :: TyFun (TyFun a6989586621679791939 b6989586621679791938 -> Type) (TyFun [a6989586621679791939] [NonEmpty a6989586621679791939] -> Type))
data GroupAllWithSym1 (l_a3hVo :: TyFun a6989586621679791939 b6989586621679791938 -> Type) (l_a3hVn :: TyFun [a6989586621679791939] [NonEmpty a6989586621679791939])
type GroupAllWithSym2 (t_a3hVl :: TyFun a6989586621679791939 b6989586621679791938 -> Type) (t_a3hVm :: [a6989586621679791939]) = GroupAllWith t_a3hVl t_a3hVm
data Group1Sym0 (l_a3hWC :: TyFun (NonEmpty a6989586621679791937) (NonEmpty (NonEmpty a6989586621679791937)))
type Group1Sym1 (t_a3hWB :: NonEmpty a6989586621679791937) = Group1 t_a3hWB
data GroupBy1Sym0 (l_a3hVD :: TyFun (TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679791936) (NonEmpty (NonEmpty a6989586621679791936)) -> Type))
data GroupBy1Sym1 (l_a3hVB :: TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (l_a3hVA :: TyFun (NonEmpty a6989586621679791936) (NonEmpty (NonEmpty a6989586621679791936)))
type GroupBy1Sym2 (t_a3hVy :: TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (t_a3hVz :: NonEmpty a6989586621679791936) = GroupBy1 t_a3hVy t_a3hVz
data GroupWith1Sym0 (l_a3hWL :: TyFun (TyFun a6989586621679791935 b6989586621679791934 -> Type) (TyFun (NonEmpty a6989586621679791935) (NonEmpty (NonEmpty a6989586621679791935)) -> Type))
data GroupWith1Sym1 (l_a3hWJ :: TyFun a6989586621679791935 b6989586621679791934 -> Type) (l_a3hWI :: TyFun (NonEmpty a6989586621679791935) (NonEmpty (NonEmpty a6989586621679791935)))
type GroupWith1Sym2 (t_a3hWG :: TyFun a6989586621679791935 b6989586621679791934 -> Type) (t_a3hWH :: NonEmpty a6989586621679791935) = GroupWith1 t_a3hWG t_a3hWH
data GroupAllWith1Sym0 (l_a3i0n :: TyFun (TyFun a6989586621679791933 b6989586621679791932 -> Type) (TyFun (NonEmpty a6989586621679791933) (NonEmpty (NonEmpty a6989586621679791933)) -> Type))
data GroupAllWith1Sym1 (l_a3i0l :: TyFun a6989586621679791933 b6989586621679791932 -> Type) (l_a3i0k :: TyFun (NonEmpty a6989586621679791933) (NonEmpty (NonEmpty a6989586621679791933)))
type GroupAllWith1Sym2 (t_a3i0i :: TyFun a6989586621679791933 b6989586621679791932 -> Type) (t_a3i0j :: NonEmpty a6989586621679791933) = GroupAllWith1 t_a3i0i t_a3i0j
data IsPrefixOfSym0 (l_a3hSX :: TyFun [a6989586621679791931] (TyFun (NonEmpty a6989586621679791931) Bool -> Type))
data IsPrefixOfSym1 (l_a3hSV :: [a6989586621679791931]) (l_a3hSU :: TyFun (NonEmpty a6989586621679791931) Bool)
type IsPrefixOfSym2 (t_a3hSS :: [a6989586621679791931]) (t_a3hST :: NonEmpty a6989586621679791931) = IsPrefixOf t_a3hSS t_a3hST
data NubSym0 (l_a3hQY :: TyFun (NonEmpty a6989586621679791922) (NonEmpty a6989586621679791922))
type NubSym1 (t_a3hQX :: NonEmpty a6989586621679791922) = Nub t_a3hQX
data NubBySym0 (l_a3hQs :: TyFun (TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679791921) (NonEmpty a6989586621679791921) -> Type))
data NubBySym1 (l_a3hQq :: TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (l_a3hQp :: TyFun (NonEmpty a6989586621679791921) (NonEmpty a6989586621679791921))
type NubBySym2 (t_a3hQn :: TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (t_a3hQo :: NonEmpty a6989586621679791921) = NubBy t_a3hQn t_a3hQo
data (!!@#@$) (l_a3hSA :: TyFun (NonEmpty a6989586621679791930) (TyFun Nat a6989586621679791930 -> Type))
data (!!@#@$$) (l_a3hSy :: NonEmpty a6989586621679791930) (l_a3hSx :: TyFun Nat a6989586621679791930)
type (!!@#@$$$) (t_a3hSv :: NonEmpty a6989586621679791930) (t_a3hSw :: Nat) = (!!) t_a3hSv t_a3hSw
data ZipSym0 (l_a3hSn :: TyFun (NonEmpty a6989586621679791928) (TyFun (NonEmpty b6989586621679791929) (NonEmpty (a6989586621679791928, b6989586621679791929)) -> Type))
data ZipSym1 (l_a3hSl :: NonEmpty a6989586621679791928) (l_a3hSk :: TyFun (NonEmpty b6989586621679791929) (NonEmpty (a6989586621679791928, b6989586621679791929)))
type ZipSym2 (t_a3hSi :: NonEmpty a6989586621679791928) (t_a3hSj :: NonEmpty b6989586621679791929) = Zip t_a3hSi t_a3hSj
data ZipWithSym0 (l_a3hS8 :: TyFun (TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791925) (TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927) -> Type) -> Type))
data ZipWithSym1 (l_a3hS6 :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (l_a3hS5 :: TyFun (NonEmpty a6989586621679791925) (TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927) -> Type))
data ZipWithSym2 (l_a3hS2 :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (l_a3hS3 :: NonEmpty a6989586621679791925) (l_a3hS1 :: TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927))
type ZipWithSym3 (t_a3hRY :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (t_a3hRZ :: NonEmpty a6989586621679791925) (t_a3hS0 :: NonEmpty b6989586621679791926) = ZipWith t_a3hRY t_a3hRZ t_a3hS0
data UnzipSym0 (l_a3hR3 :: TyFun (NonEmpty (a6989586621679791923, b6989586621679791924)) (NonEmpty a6989586621679791923, NonEmpty b6989586621679791924))
type UnzipSym1 (t_a3hR2 :: NonEmpty (a6989586621679791923, b6989586621679791924)) = Unzip t_a3hR2
data FromListSym0 (l_a3hZr :: TyFun [a6989586621679791969] (NonEmpty a6989586621679791969))
type FromListSym1 (t_a3hZq :: [a6989586621679791969]) = FromList t_a3hZq
data ToListSym0 (l_a3hXs :: TyFun (NonEmpty a6989586621679791968) [a6989586621679791968])
type ToListSym1 (t_a3hXr :: NonEmpty a6989586621679791968) = ToList t_a3hXr
data NonEmpty_Sym0 (l_a3i3O :: TyFun [a6989586621679791980] (Maybe (NonEmpty a6989586621679791980)))
type NonEmpty_Sym1 (t_a3i3N :: [a6989586621679791980]) = NonEmpty_ t_a3i3N
data XorSym0 (l_a3i4p :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a3i4o :: NonEmpty Bool) = Xor t_a3i4o
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.Let6989586621679793552GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793552GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793552GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793552GoSym2
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.Let6989586621679794246Xor'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794246Xor'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794246Xor'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794246Xor'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794226Scrutinee_6989586621679792148Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794226Scrutinee_6989586621679792148Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794190Scrutinee_6989586621679792158Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794190Scrutinee_6989586621679792158Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794157GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794157GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794157GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794172Scrutinee_6989586621679792162Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794172Scrutinee_6989586621679792162Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794172Scrutinee_6989586621679792162Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704X_6989586621679793705Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704X_6989586621679793705Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704X_6989586621679793705Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793704ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576X_6989586621679793577Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576X_6989586621679793577Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576X_6989586621679793577Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576X_6989586621679793577Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576X_6989586621679793577Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793576ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419X_6989586621679793420Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419X_6989586621679793420Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419X_6989586621679793420Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419AsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419AsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419AsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419BsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419BsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679793419BsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679793383Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679793383Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679793383Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679793383Sym3


-- | 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_a12Gl :: TyFun a6989586621679067720 (TyFun [a6989586621679067720] (NonEmpty a6989586621679067720) -> Type))
data (:|@#@$$) (l_a12Gj :: a6989586621679067720) (l_a12Gi :: TyFun [a6989586621679067720] (NonEmpty a6989586621679067720))
type (:|@#@$$$) (t_a12Gg :: a6989586621679067720) (t_a12Gh :: [a6989586621679067720]) = (:|) t_a12Gg t_a12Gh
data MapSym0 (l_a3hXk :: TyFun (TyFun a6989586621679791964 b6989586621679791965 -> Type) (TyFun (NonEmpty a6989586621679791964) (NonEmpty b6989586621679791965) -> Type))
data MapSym1 (l_a3hXi :: TyFun a6989586621679791964 b6989586621679791965 -> Type) (l_a3hXh :: TyFun (NonEmpty a6989586621679791964) (NonEmpty b6989586621679791965))
type MapSym2 (t_a3hXf :: TyFun a6989586621679791964 b6989586621679791965 -> Type) (t_a3hXg :: NonEmpty a6989586621679791964) = Map t_a3hXf t_a3hXg
data IntersperseSym0 (l_a3hX5 :: TyFun a6989586621679791954 (TyFun (NonEmpty a6989586621679791954) (NonEmpty a6989586621679791954) -> Type))
data IntersperseSym1 (l_a3hX3 :: a6989586621679791954) (l_a3hX2 :: TyFun (NonEmpty a6989586621679791954) (NonEmpty a6989586621679791954))
type IntersperseSym2 (t_a3hX0 :: a6989586621679791954) (t_a3hX1 :: NonEmpty a6989586621679791954) = Intersperse t_a3hX0 t_a3hX1
data ScanlSym0 (l_a3i16 :: TyFun (TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (TyFun b6989586621679791959 (TyFun [a6989586621679791960] (NonEmpty b6989586621679791959) -> Type) -> Type))
data ScanlSym1 (l_a3i14 :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (l_a3i13 :: TyFun b6989586621679791959 (TyFun [a6989586621679791960] (NonEmpty b6989586621679791959) -> Type))
data ScanlSym2 (l_a3i10 :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (l_a3i11 :: b6989586621679791959) (l_a3i0Z :: TyFun [a6989586621679791960] (NonEmpty b6989586621679791959))
type ScanlSym3 (t_a3i0W :: TyFun b6989586621679791959 (TyFun a6989586621679791960 b6989586621679791959 -> Type) -> Type) (t_a3i0X :: b6989586621679791959) (t_a3i0Y :: [a6989586621679791960]) = Scanl t_a3i0W t_a3i0X t_a3i0Y
data ScanrSym0 (l_a3i1q :: TyFun (TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (TyFun b6989586621679791958 (TyFun [a6989586621679791957] (NonEmpty b6989586621679791958) -> Type) -> Type))
data ScanrSym1 (l_a3i1o :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (l_a3i1n :: TyFun b6989586621679791958 (TyFun [a6989586621679791957] (NonEmpty b6989586621679791958) -> Type))
data ScanrSym2 (l_a3i1k :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (l_a3i1l :: b6989586621679791958) (l_a3i1j :: TyFun [a6989586621679791957] (NonEmpty b6989586621679791958))
type ScanrSym3 (t_a3i1g :: TyFun a6989586621679791957 (TyFun b6989586621679791958 b6989586621679791958 -> Type) -> Type) (t_a3i1h :: b6989586621679791958) (t_a3i1i :: [a6989586621679791957]) = Scanr t_a3i1g t_a3i1h t_a3i1i
data Scanl1Sym0 (l_a3i1F :: TyFun (TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791956) (NonEmpty a6989586621679791956) -> Type))
data Scanl1Sym1 (l_a3i1D :: TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (l_a3i1C :: TyFun (NonEmpty a6989586621679791956) (NonEmpty a6989586621679791956))
type Scanl1Sym2 (t_a3i1A :: TyFun a6989586621679791956 (TyFun a6989586621679791956 a6989586621679791956 -> Type) -> Type) (t_a3i1B :: NonEmpty a6989586621679791956) = Scanl1 t_a3i1A t_a3i1B
data Scanr1Sym0 (l_a3i1R :: TyFun (TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791955) (NonEmpty a6989586621679791955) -> Type))
data Scanr1Sym1 (l_a3i1P :: TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (l_a3i1O :: TyFun (NonEmpty a6989586621679791955) (NonEmpty a6989586621679791955))
type Scanr1Sym2 (t_a3i1M :: TyFun a6989586621679791955 (TyFun a6989586621679791955 a6989586621679791955 -> Type) -> Type) (t_a3i1N :: NonEmpty a6989586621679791955) = Scanr1 t_a3i1M t_a3i1N
data TransposeSym0 (l_a3i5b :: TyFun (NonEmpty (NonEmpty a6989586621679791920)) (NonEmpty (NonEmpty a6989586621679791920)))
type TransposeSym1 (t_a3i5a :: NonEmpty (NonEmpty a6989586621679791920)) = Transpose t_a3i5a
data SortBySym0 (l_a3hZV :: TyFun (TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (TyFun (NonEmpty a6989586621679791919) (NonEmpty a6989586621679791919) -> Type))
data SortBySym1 (l_a3hZT :: TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (l_a3hZS :: TyFun (NonEmpty a6989586621679791919) (NonEmpty a6989586621679791919))
type SortBySym2 (t_a3hZQ :: TyFun a6989586621679791919 (TyFun a6989586621679791919 Ordering -> Type) -> Type) (t_a3hZR :: NonEmpty a6989586621679791919) = SortBy t_a3hZQ t_a3hZR
data SortWithSym0 (l_a3i0c :: TyFun (TyFun a6989586621679791918 o6989586621679791917 -> Type) (TyFun (NonEmpty a6989586621679791918) (NonEmpty a6989586621679791918) -> Type))
data SortWithSym1 (l_a3i0a :: TyFun a6989586621679791918 o6989586621679791917 -> Type) (l_a3i09 :: TyFun (NonEmpty a6989586621679791918) (NonEmpty a6989586621679791918))
type SortWithSym2 (t_a3i07 :: TyFun a6989586621679791918 o6989586621679791917 -> Type) (t_a3i08 :: NonEmpty a6989586621679791918) = SortWith t_a3i07 t_a3i08
data LengthSym0 (l_a3i4S :: TyFun (NonEmpty a6989586621679791983) Nat)
type LengthSym1 (t_a3i4R :: NonEmpty a6989586621679791983) = Length t_a3i4R
data HeadSym0 (l_a3i2O :: TyFun (NonEmpty a6989586621679791976) a6989586621679791976)
type HeadSym1 (t_a3i2N :: NonEmpty a6989586621679791976) = Head t_a3i2N
data TailSym0 (l_a3i2J :: TyFun (NonEmpty a6989586621679791975) [a6989586621679791975])
type TailSym1 (t_a3i2I :: NonEmpty a6989586621679791975) = Tail t_a3i2I
data LastSym0 (l_a3i2D :: TyFun (NonEmpty a6989586621679791974) a6989586621679791974)
type LastSym1 (t_a3i2C :: NonEmpty a6989586621679791974) = Last t_a3i2C
data InitSym0 (l_a3i2x :: TyFun (NonEmpty a6989586621679791973) [a6989586621679791973])
type InitSym1 (t_a3i2w :: NonEmpty a6989586621679791973) = Init t_a3i2w
data (<|@#@$) (l_a3i2a :: TyFun a6989586621679791972 (TyFun (NonEmpty a6989586621679791972) (NonEmpty a6989586621679791972) -> Type))
data (<|@#@$$) (l_a3i28 :: a6989586621679791972) (l_a3i27 :: TyFun (NonEmpty a6989586621679791972) (NonEmpty a6989586621679791972))
type (<|@#@$$$) (t_a3i25 :: a6989586621679791972) (t_a3i26 :: NonEmpty a6989586621679791972) = (<|) t_a3i25 t_a3i26
data ConsSym0 (l_a3i2q :: TyFun a6989586621679791971 (TyFun (NonEmpty a6989586621679791971) (NonEmpty a6989586621679791971) -> Type))
data ConsSym1 (l_a3i2o :: a6989586621679791971) (l_a3i2n :: TyFun (NonEmpty a6989586621679791971) (NonEmpty a6989586621679791971))
type ConsSym2 (t_a3i2l :: a6989586621679791971) (t_a3i2m :: NonEmpty a6989586621679791971) = Cons t_a3i2l t_a3i2m
data UnconsSym0 (l_a3i3U :: TyFun (NonEmpty a6989586621679791979) (a6989586621679791979, Maybe (NonEmpty a6989586621679791979)))
type UnconsSym1 (t_a3i3T :: NonEmpty a6989586621679791979) = Uncons t_a3i3T
data UnfoldrSym0 (l_a3i2X :: TyFun (TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (TyFun a6989586621679791977 (NonEmpty b6989586621679791978) -> Type))
data UnfoldrSym1 (l_a3i2V :: TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (l_a3i2U :: TyFun a6989586621679791977 (NonEmpty b6989586621679791978))
type UnfoldrSym2 (t_a3i2S :: TyFun a6989586621679791977 (b6989586621679791978, Maybe a6989586621679791977) -> Type) (t_a3i2T :: a6989586621679791977) = Unfoldr t_a3i2S t_a3i2T
data SortSym0 (l_a3i21 :: TyFun (NonEmpty a6989586621679791970) (NonEmpty a6989586621679791970))
type SortSym1 (t_a3i20 :: NonEmpty a6989586621679791970) = Sort t_a3i20
data ReverseSym0 (l_a3hZM :: TyFun (NonEmpty a6989586621679791953) (NonEmpty a6989586621679791953))
type ReverseSym1 (t_a3hZL :: NonEmpty a6989586621679791953) = Reverse t_a3hZL
data InitsSym0 (l_a3i0y :: TyFun [a6989586621679791963] (NonEmpty [a6989586621679791963]))
type InitsSym1 (t_a3i0x :: [a6989586621679791963]) = Inits t_a3i0x
data TailsSym0 (l_a3i0F :: TyFun [a6989586621679791962] (NonEmpty [a6989586621679791962]))
type TailsSym1 (t_a3i0E :: [a6989586621679791962]) = Tails t_a3i0E
data UnfoldSym0 (l_a3i44 :: TyFun (TyFun a6989586621679791981 (b6989586621679791982, Maybe a6989586621679791981) -> Type) (TyFun a6989586621679791981 (NonEmpty b6989586621679791982) -> Type))
data UnfoldSym1 (l_a3i42 :: TyFun a6989586621679791981 (b6989586621679791982, Maybe a6989586621679791981) -> Type) (l_a3i41 :: TyFun a6989586621679791981 (NonEmpty b6989586621679791982))
data InsertSym0 (l_a3i0O :: TyFun a6989586621679791961 (TyFun [a6989586621679791961] (NonEmpty a6989586621679791961) -> Type))
data InsertSym1 (l_a3i0M :: a6989586621679791961) (l_a3i0L :: TyFun [a6989586621679791961] (NonEmpty a6989586621679791961))
type InsertSym2 (t_a3i0J :: a6989586621679791961) (t_a3i0K :: [a6989586621679791961]) = Insert t_a3i0J t_a3i0K
data TakeSym0 (l_a3hXC :: TyFun Nat (TyFun (NonEmpty a6989586621679791952) [a6989586621679791952] -> Type))
data TakeSym1 (l_a3hXA :: Nat) (l_a3hXz :: TyFun (NonEmpty a6989586621679791952) [a6989586621679791952])
type TakeSym2 (t_a3hXx :: Nat) (t_a3hXy :: NonEmpty a6989586621679791952) = Take t_a3hXx t_a3hXy
data DropSym0 (l_a3hXP :: TyFun Nat (TyFun (NonEmpty a6989586621679791951) [a6989586621679791951] -> Type))
data DropSym1 (l_a3hXN :: Nat) (l_a3hXM :: TyFun (NonEmpty a6989586621679791951) [a6989586621679791951])
type DropSym2 (t_a3hXK :: Nat) (t_a3hXL :: NonEmpty a6989586621679791951) = Drop t_a3hXK t_a3hXL
data SplitAtSym0 (l_a3hY2 :: TyFun Nat (TyFun (NonEmpty a6989586621679791950) ([a6989586621679791950], [a6989586621679791950]) -> Type))
data SplitAtSym1 (l_a3hY0 :: Nat) (l_a3hXZ :: TyFun (NonEmpty a6989586621679791950) ([a6989586621679791950], [a6989586621679791950]))
type SplitAtSym2 (t_a3hXX :: Nat) (t_a3hXY :: NonEmpty a6989586621679791950) = SplitAt t_a3hXX t_a3hXY
data TakeWhileSym0 (l_a3hYf :: TyFun (TyFun a6989586621679791949 Bool -> Type) (TyFun (NonEmpty a6989586621679791949) [a6989586621679791949] -> Type))
data TakeWhileSym1 (l_a3hYd :: TyFun a6989586621679791949 Bool -> Type) (l_a3hYc :: TyFun (NonEmpty a6989586621679791949) [a6989586621679791949])
type TakeWhileSym2 (t_a3hYa :: TyFun a6989586621679791949 Bool -> Type) (t_a3hYb :: NonEmpty a6989586621679791949) = TakeWhile t_a3hYa t_a3hYb
data DropWhileSym0 (l_a3hYs :: TyFun (TyFun a6989586621679791948 Bool -> Type) (TyFun (NonEmpty a6989586621679791948) [a6989586621679791948] -> Type))
data DropWhileSym1 (l_a3hYq :: TyFun a6989586621679791948 Bool -> Type) (l_a3hYp :: TyFun (NonEmpty a6989586621679791948) [a6989586621679791948])
type DropWhileSym2 (t_a3hYn :: TyFun a6989586621679791948 Bool -> Type) (t_a3hYo :: NonEmpty a6989586621679791948) = DropWhile t_a3hYn t_a3hYo
data SpanSym0 (l_a3hYF :: TyFun (TyFun a6989586621679791947 Bool -> Type) (TyFun (NonEmpty a6989586621679791947) ([a6989586621679791947], [a6989586621679791947]) -> Type))
data SpanSym1 (l_a3hYD :: TyFun a6989586621679791947 Bool -> Type) (l_a3hYC :: TyFun (NonEmpty a6989586621679791947) ([a6989586621679791947], [a6989586621679791947]))
type SpanSym2 (t_a3hYA :: TyFun a6989586621679791947 Bool -> Type) (t_a3hYB :: NonEmpty a6989586621679791947) = Span t_a3hYA t_a3hYB
data BreakSym0 (l_a3hYS :: TyFun (TyFun a6989586621679791946 Bool -> Type) (TyFun (NonEmpty a6989586621679791946) ([a6989586621679791946], [a6989586621679791946]) -> Type))
data BreakSym1 (l_a3hYQ :: TyFun a6989586621679791946 Bool -> Type) (l_a3hYP :: TyFun (NonEmpty a6989586621679791946) ([a6989586621679791946], [a6989586621679791946]))
type BreakSym2 (t_a3hYN :: TyFun a6989586621679791946 Bool -> Type) (t_a3hYO :: NonEmpty a6989586621679791946) = Break t_a3hYN t_a3hYO
data FilterSym0 (l_a3hZ5 :: TyFun (TyFun a6989586621679791945 Bool -> Type) (TyFun (NonEmpty a6989586621679791945) [a6989586621679791945] -> Type))
data FilterSym1 (l_a3hZ3 :: TyFun a6989586621679791945 Bool -> Type) (l_a3hZ2 :: TyFun (NonEmpty a6989586621679791945) [a6989586621679791945])
type FilterSym2 (t_a3hZ0 :: TyFun a6989586621679791945 Bool -> Type) (t_a3hZ1 :: NonEmpty a6989586621679791945) = Filter t_a3hZ0 t_a3hZ1
data PartitionSym0 (l_a3hZi :: TyFun (TyFun a6989586621679791944 Bool -> Type) (TyFun (NonEmpty a6989586621679791944) ([a6989586621679791944], [a6989586621679791944]) -> Type))
data PartitionSym1 (l_a3hZg :: TyFun a6989586621679791944 Bool -> Type) (l_a3hZf :: TyFun (NonEmpty a6989586621679791944) ([a6989586621679791944], [a6989586621679791944]))
type PartitionSym2 (t_a3hZd :: TyFun a6989586621679791944 Bool -> Type) (t_a3hZe :: NonEmpty a6989586621679791944) = Partition t_a3hZd t_a3hZe
data GroupSym0 (l_a3hWW :: TyFun [a6989586621679791943] [NonEmpty a6989586621679791943])
type GroupSym1 (t_a3hWV :: [a6989586621679791943]) = Group t_a3hWV
data GroupBySym0 (l_a3hTa :: TyFun (TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (TyFun [a6989586621679791942] [NonEmpty a6989586621679791942] -> Type))
data GroupBySym1 (l_a3hT8 :: TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (l_a3hT7 :: TyFun [a6989586621679791942] [NonEmpty a6989586621679791942])
type GroupBySym2 (t_a3hT5 :: TyFun a6989586621679791942 (TyFun a6989586621679791942 Bool -> Type) -> Type) (t_a3hT6 :: [a6989586621679791942]) = GroupBy t_a3hT5 t_a3hT6
data GroupWithSym0 (l_a3hVd :: TyFun (TyFun a6989586621679791941 b6989586621679791940 -> Type) (TyFun [a6989586621679791941] [NonEmpty a6989586621679791941] -> Type))
data GroupWithSym1 (l_a3hVb :: TyFun a6989586621679791941 b6989586621679791940 -> Type) (l_a3hVa :: TyFun [a6989586621679791941] [NonEmpty a6989586621679791941])
type GroupWithSym2 (t_a3hV8 :: TyFun a6989586621679791941 b6989586621679791940 -> Type) (t_a3hV9 :: [a6989586621679791941]) = GroupWith t_a3hV8 t_a3hV9
data GroupAllWithSym0 (l_a3hVq :: TyFun (TyFun a6989586621679791939 b6989586621679791938 -> Type) (TyFun [a6989586621679791939] [NonEmpty a6989586621679791939] -> Type))
data GroupAllWithSym1 (l_a3hVo :: TyFun a6989586621679791939 b6989586621679791938 -> Type) (l_a3hVn :: TyFun [a6989586621679791939] [NonEmpty a6989586621679791939])
type GroupAllWithSym2 (t_a3hVl :: TyFun a6989586621679791939 b6989586621679791938 -> Type) (t_a3hVm :: [a6989586621679791939]) = GroupAllWith t_a3hVl t_a3hVm
data Group1Sym0 (l_a3hWC :: TyFun (NonEmpty a6989586621679791937) (NonEmpty (NonEmpty a6989586621679791937)))
type Group1Sym1 (t_a3hWB :: NonEmpty a6989586621679791937) = Group1 t_a3hWB
data GroupBy1Sym0 (l_a3hVD :: TyFun (TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679791936) (NonEmpty (NonEmpty a6989586621679791936)) -> Type))
data GroupBy1Sym1 (l_a3hVB :: TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (l_a3hVA :: TyFun (NonEmpty a6989586621679791936) (NonEmpty (NonEmpty a6989586621679791936)))
type GroupBy1Sym2 (t_a3hVy :: TyFun a6989586621679791936 (TyFun a6989586621679791936 Bool -> Type) -> Type) (t_a3hVz :: NonEmpty a6989586621679791936) = GroupBy1 t_a3hVy t_a3hVz
data GroupWith1Sym0 (l_a3hWL :: TyFun (TyFun a6989586621679791935 b6989586621679791934 -> Type) (TyFun (NonEmpty a6989586621679791935) (NonEmpty (NonEmpty a6989586621679791935)) -> Type))
data GroupWith1Sym1 (l_a3hWJ :: TyFun a6989586621679791935 b6989586621679791934 -> Type) (l_a3hWI :: TyFun (NonEmpty a6989586621679791935) (NonEmpty (NonEmpty a6989586621679791935)))
type GroupWith1Sym2 (t_a3hWG :: TyFun a6989586621679791935 b6989586621679791934 -> Type) (t_a3hWH :: NonEmpty a6989586621679791935) = GroupWith1 t_a3hWG t_a3hWH
data GroupAllWith1Sym0 (l_a3i0n :: TyFun (TyFun a6989586621679791933 b6989586621679791932 -> Type) (TyFun (NonEmpty a6989586621679791933) (NonEmpty (NonEmpty a6989586621679791933)) -> Type))
data GroupAllWith1Sym1 (l_a3i0l :: TyFun a6989586621679791933 b6989586621679791932 -> Type) (l_a3i0k :: TyFun (NonEmpty a6989586621679791933) (NonEmpty (NonEmpty a6989586621679791933)))
type GroupAllWith1Sym2 (t_a3i0i :: TyFun a6989586621679791933 b6989586621679791932 -> Type) (t_a3i0j :: NonEmpty a6989586621679791933) = GroupAllWith1 t_a3i0i t_a3i0j
data IsPrefixOfSym0 (l_a3hSX :: TyFun [a6989586621679791931] (TyFun (NonEmpty a6989586621679791931) Bool -> Type))
data IsPrefixOfSym1 (l_a3hSV :: [a6989586621679791931]) (l_a3hSU :: TyFun (NonEmpty a6989586621679791931) Bool)
type IsPrefixOfSym2 (t_a3hSS :: [a6989586621679791931]) (t_a3hST :: NonEmpty a6989586621679791931) = IsPrefixOf t_a3hSS t_a3hST
data NubSym0 (l_a3hQY :: TyFun (NonEmpty a6989586621679791922) (NonEmpty a6989586621679791922))
type NubSym1 (t_a3hQX :: NonEmpty a6989586621679791922) = Nub t_a3hQX
data NubBySym0 (l_a3hQs :: TyFun (TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679791921) (NonEmpty a6989586621679791921) -> Type))
data NubBySym1 (l_a3hQq :: TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (l_a3hQp :: TyFun (NonEmpty a6989586621679791921) (NonEmpty a6989586621679791921))
type NubBySym2 (t_a3hQn :: TyFun a6989586621679791921 (TyFun a6989586621679791921 Bool -> Type) -> Type) (t_a3hQo :: NonEmpty a6989586621679791921) = NubBy t_a3hQn t_a3hQo
data (!!@#@$) (l_a3hSA :: TyFun (NonEmpty a6989586621679791930) (TyFun Nat a6989586621679791930 -> Type))
data (!!@#@$$) (l_a3hSy :: NonEmpty a6989586621679791930) (l_a3hSx :: TyFun Nat a6989586621679791930)
type (!!@#@$$$) (t_a3hSv :: NonEmpty a6989586621679791930) (t_a3hSw :: Nat) = (!!) t_a3hSv t_a3hSw
data ZipSym0 (l_a3hSn :: TyFun (NonEmpty a6989586621679791928) (TyFun (NonEmpty b6989586621679791929) (NonEmpty (a6989586621679791928, b6989586621679791929)) -> Type))
data ZipSym1 (l_a3hSl :: NonEmpty a6989586621679791928) (l_a3hSk :: TyFun (NonEmpty b6989586621679791929) (NonEmpty (a6989586621679791928, b6989586621679791929)))
type ZipSym2 (t_a3hSi :: NonEmpty a6989586621679791928) (t_a3hSj :: NonEmpty b6989586621679791929) = Zip t_a3hSi t_a3hSj
data ZipWithSym0 (l_a3hS8 :: TyFun (TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (TyFun (NonEmpty a6989586621679791925) (TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927) -> Type) -> Type))
data ZipWithSym1 (l_a3hS6 :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (l_a3hS5 :: TyFun (NonEmpty a6989586621679791925) (TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927) -> Type))
data ZipWithSym2 (l_a3hS2 :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (l_a3hS3 :: NonEmpty a6989586621679791925) (l_a3hS1 :: TyFun (NonEmpty b6989586621679791926) (NonEmpty c6989586621679791927))
type ZipWithSym3 (t_a3hRY :: TyFun a6989586621679791925 (TyFun b6989586621679791926 c6989586621679791927 -> Type) -> Type) (t_a3hRZ :: NonEmpty a6989586621679791925) (t_a3hS0 :: NonEmpty b6989586621679791926) = ZipWith t_a3hRY t_a3hRZ t_a3hS0
data UnzipSym0 (l_a3hR3 :: TyFun (NonEmpty (a6989586621679791923, b6989586621679791924)) (NonEmpty a6989586621679791923, NonEmpty b6989586621679791924))
type UnzipSym1 (t_a3hR2 :: NonEmpty (a6989586621679791923, b6989586621679791924)) = Unzip t_a3hR2
data FromListSym0 (l_a3hZr :: TyFun [a6989586621679791969] (NonEmpty a6989586621679791969))
type FromListSym1 (t_a3hZq :: [a6989586621679791969]) = FromList t_a3hZq
data ToListSym0 (l_a3hXs :: TyFun (NonEmpty a6989586621679791968) [a6989586621679791968])
type ToListSym1 (t_a3hXr :: NonEmpty a6989586621679791968) = ToList t_a3hXr
data NonEmpty_Sym0 (l_a3i3O :: TyFun [a6989586621679791980] (Maybe (NonEmpty a6989586621679791980)))
type NonEmpty_Sym1 (t_a3i3N :: [a6989586621679791980]) = NonEmpty_ t_a3i3N
data XorSym0 (l_a3i4p :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a3i4o :: NonEmpty Bool) = Xor t_a3i4o


-- | 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_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
type FlipSym3 (t_a1MO9 :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (t_a1MOa :: b6989586621679435595) (t_a1MOb :: a6989586621679435594) = Flip t_a1MO9 t_a1MOa t_a1MOb
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data (&@#@$) (l_a3f6Y :: TyFun a6989586621679782850 (TyFun (TyFun a6989586621679782850 b6989586621679782851 -> Type) b6989586621679782851 -> Type))
data (&@#@$$) (l_a3f6W :: a6989586621679782850) (l_a3f6V :: TyFun (TyFun a6989586621679782850 b6989586621679782851 -> Type) b6989586621679782851)
type (&@#@$$$) (t_a3f6T :: a6989586621679782850) (t_a3f6U :: TyFun a6989586621679782850 b6989586621679782851 -> Type) = (&) t_a3f6T t_a3f6U
data OnSym0 (l_a3f7k :: TyFun (TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (TyFun (TyFun a6989586621679782854 b6989586621679782852 -> Type) (TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type) -> Type) -> Type))
data OnSym1 (l_a3f7i :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7h :: TyFun (TyFun a6989586621679782854 b6989586621679782852 -> Type) (TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type) -> Type))
data OnSym2 (l_a3f7e :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7f :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (l_a3f7d :: TyFun a6989586621679782854 (TyFun a6989586621679782854 c6989586621679782853 -> Type))
data OnSym3 (l_a3f79 :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (l_a3f7a :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (l_a3f7b :: a6989586621679782854) (l_a3f78 :: TyFun a6989586621679782854 c6989586621679782853)
type OnSym4 (t_a3f74 :: TyFun b6989586621679782852 (TyFun b6989586621679782852 c6989586621679782853 -> Type) -> Type) (t_a3f75 :: TyFun a6989586621679782854 b6989586621679782852 -> Type) (t_a3f76 :: a6989586621679782854) (t_a3f77 :: a6989586621679782854) = On t_a3f74 t_a3f75 t_a3f76 t_a3f77


-- | Defines the promoted and singleton version of Bounded, <a>PBounded</a>
--   and <a>SBounded</a>
module Data.Singletons.Prelude.Enum
class PBounded (a_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
class SBounded a_a3ApV
sMinBound :: SBounded a_a3ApV => Sing (MinBoundSym0 :: a_a3ApV)
sMaxBound :: SBounded a_a3ApV => Sing (MaxBoundSym0 :: a_a3ApV)
class PEnum (a_a3Bsu :: Type) where {
    type family Succ (arg_a3BBY :: a_a3Bsu) :: a_a3Bsu;
    type family Pred (arg_a3BC2 :: a_a3Bsu) :: a_a3Bsu;
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type family EnumFromTo (arg_a3BCe :: a_a3Bsu) (arg_a3BCf :: a_a3Bsu) :: [a_a3Bsu];
    type family EnumFromThenTo (arg_a3BCn :: a_a3Bsu) (arg_a3BCo :: a_a3Bsu) (arg_a3BCp :: a_a3Bsu) :: [a_a3Bsu];
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
class SEnum a_a3Bsu
sSucc :: forall (t_a3BGr :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGr -> Sing (Apply SuccSym0 t_a3BGr :: a_a3Bsu)
sPred :: forall (t_a3BGs :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGs -> Sing (Apply PredSym0 t_a3BGs :: a_a3Bsu)
sToEnum :: forall (t_a3BGt :: Nat). SEnum a_a3Bsu => Sing t_a3BGt -> Sing (Apply ToEnumSym0 t_a3BGt :: a_a3Bsu)
sFromEnum :: forall (t_a3BGu :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGu -> Sing (Apply FromEnumSym0 t_a3BGu :: Nat)
sEnumFromTo :: forall (t_a3BGv :: a_a3Bsu) (t_a3BGw :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGv -> Sing t_a3BGw -> Sing (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu])
sEnumFromThenTo :: forall (t_a3BGx :: a_a3Bsu) (t_a3BGy :: a_a3Bsu) (t_a3BGz :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGx -> Sing t_a3BGy -> Sing t_a3BGz -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu])
sSucc :: forall (t_a3BGr :: a_a3Bsu). (SEnum a_a3Bsu, (Apply SuccSym0 t_a3BGr :: a_a3Bsu) ~ Apply Succ_6989586621679869417Sym0 t_a3BGr) => Sing t_a3BGr -> Sing (Apply SuccSym0 t_a3BGr :: a_a3Bsu)
sPred :: forall (t_a3BGs :: a_a3Bsu). (SEnum a_a3Bsu, (Apply PredSym0 t_a3BGs :: a_a3Bsu) ~ Apply Pred_6989586621679869430Sym0 t_a3BGs) => Sing t_a3BGs -> Sing (Apply PredSym0 t_a3BGs :: a_a3Bsu)
sEnumFromTo :: forall (t_a3BGv :: a_a3Bsu) (t_a3BGw :: a_a3Bsu). (SEnum a_a3Bsu, (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu]) ~ Apply (Apply EnumFromTo_6989586621679869448Sym0 t_a3BGv) t_a3BGw) => Sing t_a3BGv -> Sing t_a3BGw -> Sing (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu])
sEnumFromThenTo :: forall (t_a3BGx :: a_a3Bsu) (t_a3BGy :: a_a3Bsu) (t_a3BGz :: a_a3Bsu). (SEnum a_a3Bsu, (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu]) ~ Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 t_a3BGx) t_a3BGy) t_a3BGz) => Sing t_a3BGx -> Sing t_a3BGy -> Sing t_a3BGz -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3BC0 :: TyFun a6989586621679868770 a6989586621679868770)
type SuccSym1 (t_a3BBZ :: a6989586621679868770) = Succ t_a3BBZ
data PredSym0 (l_a3BC4 :: TyFun a6989586621679868770 a6989586621679868770)
type PredSym1 (t_a3BC3 :: a6989586621679868770) = Pred t_a3BC3
data ToEnumSym0 (l_a3BC8 :: TyFun Nat a6989586621679868770)
type ToEnumSym1 (t_a3BC7 :: Nat) = ToEnum t_a3BC7
data FromEnumSym0 (l_a3BCc :: TyFun a6989586621679868770 Nat)
type FromEnumSym1 (t_a3BCb :: a6989586621679868770) = FromEnum t_a3BCb
data EnumFromToSym0 (l_a3BCl :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromToSym1 (l_a3BCj :: a6989586621679868770) (l_a3BCi :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromToSym2 (t_a3BCg :: a6989586621679868770) (t_a3BCh :: a6989586621679868770) = EnumFromTo t_a3BCg t_a3BCh
data EnumFromThenToSym0 (l_a3BCA :: TyFun a6989586621679868770 (TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BCy :: a6989586621679868770) (l_a3BCx :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromThenToSym2 (l_a3BCu :: a6989586621679868770) (l_a3BCv :: a6989586621679868770) (l_a3BCt :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromThenToSym3 (t_a3BCq :: a6989586621679868770) (t_a3BCr :: a6989586621679868770) (t_a3BCs :: a6989586621679868770) = EnumFromThenTo t_a3BCq t_a3BCr t_a3BCs
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679888027Sym0
instance Data.Singletons.Prelude.Enum.PEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679888017Sym0
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679888002Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679887992Sym0
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679887970Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679887960Sym0
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_6989586621679869589Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Nat
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679869589Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679869589Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679869553Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679869553Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679869531Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679869520Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679869509Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679869498Sym0
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_6989586621679869417Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679869430Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679869448Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679869448Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679869478Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679869478Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679869478Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_6989586621679869405Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_6989586621679869405Sym1
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.Let6989586621679869297GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869297GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869297GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869297GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869297GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869325Scrutinee_6989586621679868807Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869325Scrutinee_6989586621679868807Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869325Scrutinee_6989586621679868807Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869325Scrutinee_6989586621679868807Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869325Scrutinee_6989586621679868807Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869135DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869098Scrutinee_6989586621679868821Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868953DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679868916Scrutinee_6989586621679868831Sym5
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_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
class PEnum (a_a3Bsu :: Type) where {
    type family Succ (arg_a3BBY :: a_a3Bsu) :: a_a3Bsu;
    type family Pred (arg_a3BC2 :: a_a3Bsu) :: a_a3Bsu;
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type family EnumFromTo (arg_a3BCe :: a_a3Bsu) (arg_a3BCf :: a_a3Bsu) :: [a_a3Bsu];
    type family EnumFromThenTo (arg_a3BCn :: a_a3Bsu) (arg_a3BCo :: a_a3Bsu) (arg_a3BCp :: a_a3Bsu) :: [a_a3Bsu];
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3BC0 :: TyFun a6989586621679868770 a6989586621679868770)
type SuccSym1 (t_a3BBZ :: a6989586621679868770) = Succ t_a3BBZ
data PredSym0 (l_a3BC4 :: TyFun a6989586621679868770 a6989586621679868770)
type PredSym1 (t_a3BC3 :: a6989586621679868770) = Pred t_a3BC3
data ToEnumSym0 (l_a3BC8 :: TyFun Nat a6989586621679868770)
type ToEnumSym1 (t_a3BC7 :: Nat) = ToEnum t_a3BC7
data FromEnumSym0 (l_a3BCc :: TyFun a6989586621679868770 Nat)
type FromEnumSym1 (t_a3BCb :: a6989586621679868770) = FromEnum t_a3BCb
data EnumFromToSym0 (l_a3BCl :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromToSym1 (l_a3BCj :: a6989586621679868770) (l_a3BCi :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromToSym2 (t_a3BCg :: a6989586621679868770) (t_a3BCh :: a6989586621679868770) = EnumFromTo t_a3BCg t_a3BCh
data EnumFromThenToSym0 (l_a3BCA :: TyFun a6989586621679868770 (TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BCy :: a6989586621679868770) (l_a3BCx :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromThenToSym2 (l_a3BCu :: a6989586621679868770) (l_a3BCv :: a6989586621679868770) (l_a3BCt :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromThenToSym3 (t_a3BCq :: a6989586621679868770) (t_a3BCr :: a6989586621679868770) (t_a3BCs :: a6989586621679868770) = EnumFromThenTo t_a3BCq t_a3BCr t_a3BCs


-- | 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_a1dOs -> a_a1dOs -> Bool -> a_a1dOs

-- | Type-level "not". An injective type family since <tt>4.10.0.0</tt>.

-- | Type-level "and"

-- | Type-level "or"
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1e33 :: TyFun Bool Bool)
type NotSym1 (t_a1e32 :: Bool) = Not t_a1e32
data (&&@#@$) (l_a1dWX :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1dWV :: Bool) (l_a1dWU :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1dWS :: Bool) (t_a1dWT :: Bool) = (&&) t_a1dWS t_a1dWT
data (||@#@$) (l_a1e09 :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e07 :: Bool) (l_a1e06 :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e04 :: Bool) (t_a1e05 :: Bool) = (||) t_a1e04 t_a1e05
data Bool_Sym0 (l_a1dOI :: TyFun a6989586621679301220 (TyFun a6989586621679301220 (TyFun Bool a6989586621679301220 -> Type) -> Type))
data Bool_Sym1 (l_a1dOG :: a6989586621679301220) (l_a1dOF :: TyFun a6989586621679301220 (TyFun Bool a6989586621679301220 -> Type))
data Bool_Sym2 (l_a1dOC :: a6989586621679301220) (l_a1dOD :: a6989586621679301220) (l_a1dOB :: TyFun Bool a6989586621679301220)
type Bool_Sym3 (t_a1dOy :: a6989586621679301220) (t_a1dOz :: a6989586621679301220) (t_a1dOA :: Bool) = Bool_ t_a1dOy t_a1dOz t_a1dOA
type OtherwiseSym0 = Otherwise


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

-- | An infix synonym for <a>applySing</a>
(@@) :: forall (f :: k1 ~> k2) (t :: k1). Sing f -> Sing t -> Sing (f @@ t)
infixl 9 @@

-- | 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> or the <a>Sing</a> pattern
--   synonym.
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.
--   
--   For a <a>SingKind</a> instance to be well behaved, it should obey the
--   following laws:
--   
--   <pre>
--   <a>toSing</a> . <a>fromSing</a> ≡ <a>SomeSing</a>
--   (\x -&gt; <a>withSomeSing</a> x <a>fromSing</a>) ≡ <a>id</a>
--   </pre>
--   
--   The final law can also be expressed in terms of the <a>FromSing</a>
--   pattern synonym:
--   
--   <pre>
--   (\(<a>FromSing</a> sing) -&gt; <a>FromSing</a> sing) ≡ <a>id</a>
--   </pre>
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

-- | An explicitly bidirectional pattern synonym for implicit singletons.
--   
--   As an <b>expression</b>: Constructs a singleton <tt>Sing a</tt> given
--   a implicit singleton constraint <tt>SingI a</tt>.
--   
--   As a <b>pattern</b>: Matches on an explicit <tt>Sing a</tt> witness
--   bringing an implicit <tt>SingI a</tt> constraint into scope.

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

-- | An explicitly bidirectional pattern synonym for going between a
--   singleton and the corresponding demoted term.
--   
--   As an <b>expression</b>: this takes a singleton to its demoted (base)
--   type.
--   
--   <pre>
--   &gt;&gt;&gt; :t FromSing \@Bool
--   FromSing \@Bool :: Sing a -&gt; Bool
--   
--   &gt;&gt;&gt; FromSing SFalse
--   False
--   </pre>
--   
--   As a <b>pattern</b>: It extracts a singleton from its demoted (base)
--   type.
--   
--   <pre>
--   singAnd :: <a>Bool</a> -&gt; <a>Bool</a> -&gt; <a>SomeSing</a> <a>Bool</a>
--   singAnd (<a>FromSing</a> singBool1) (<a>FromSing</a> singBool2) =
--     <a>SomeSing</a> (singBool1 %&amp;&amp; singBool2)
--   </pre>
--   
--   instead of writing it with <a>withSomeSing</a>:
--   
--   <pre>
--   singAnd bool1 bool2 =
--     <a>withSomeSing</a> bool1 $ singBool1 -&gt;
--       <a>withSomeSing</a> bool2 $ singBool2 -&gt;
--         <a>SomeSing</a> (singBool1 %&amp;&amp; singBool2)
--   </pre>

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

-- | A convenience function that takes a type as input and demotes it to
--   its value-level counterpart as output. This uses <a>SingKind</a> and
--   <a>SingI</a> behind the scenes, so <tt><a>demote</a> = <a>fromSing</a>
--   <a>sing</a></tt>.
--   
--   This function is intended to be used with <tt>TypeApplications</tt>.
--   For example:
--   
--   <pre>
--   &gt;&gt;&gt; demote @True
--   True
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; demote @(Nothing :: Maybe Ordering)
--   Nothing
--   </pre>
demote :: forall a. (SingKind (KindOf a), SingI a) => Demote (KindOf 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>
type TyCon1 = (TyCon :: (k1 -> k2) -> (k1 ~> k2))

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

-- | Workhorse for the <a>TyCon1</a>, etc., types. This can be used
--   directly in place of any of the <tt>TyConN</tt> types, but it will
--   work only with <i>monomorphic</i> types. When GHC#14645 is fixed, this
--   should fully supersede the <tt>TyConN</tt> types.

-- | 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>Proxy</a> is a type that holds no data, but has a phantom parameter
--   of arbitrary type (or even kind). Its use is to provide type
--   information, even though there is no value available of that type (or
--   it may be too costly to create one).
--   
--   Historically, <tt><a>Proxy</a> :: <a>Proxy</a> a</tt> is a safer
--   alternative to the <tt>'undefined :: a'</tt> idiom.
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy (Void, Int -&gt; Int)
--   Proxy
--   </pre>
--   
--   Proxy can even hold types of higher kinds,
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Either
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Functor
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy complicatedStructure
--   Proxy
--   </pre>
data Proxy (t :: k) :: forall k. () => k -> *
Proxy :: Proxy
data DemoteSym0 (l_a3RIN :: TyFun Type Type)
type DemoteSym1 (t_a3RIM :: Type) = Demote t_a3RIM
data SameKindSym0 l_a3RIU
data SameKindSym1 (l_a3RIS :: k6989586621679026900) l_a3RIR
type SameKindSym2 (t_a3RIP :: k6989586621679026900) (t_a3RIQ :: k6989586621679026900) = SameKind t_a3RIP t_a3RIQ
data KindOfSym0 l_a3RIX
type KindOfSym1 (t_a3RIW :: k6989586621679026903) = KindOf t_a3RIW
data (~>@#@$) l_a3RJ4
data (~>@#@$$) (l_a3RJ2 :: Type) l_a3RJ1
type (~>@#@$$$) (t_a3RIZ :: Type) (t_a3RJ0 :: Type) = (~>) t_a3RIZ t_a3RJ0
data ApplySym0 (l_a3RJb :: TyFun ((~>) k16989586621679025039 k26989586621679025040) (TyFun k16989586621679025039 k26989586621679025040 -> Type))
data ApplySym1 (l_a3RJ9 :: (~>) k16989586621679025039 k26989586621679025040) (l_a3RJ8 :: TyFun k16989586621679025039 k26989586621679025040)
type ApplySym2 (t_a3RJ6 :: (~>) k16989586621679025039 k26989586621679025040) (t_a3RJ7 :: k16989586621679025039) = Apply t_a3RJ6 t_a3RJ7
data (@@@#@$) l_a3RJi
data (@@@#@$$) (l_a3RJg :: (~>) k16989586621679031134 k6989586621679031133) l_a3RJf
type (@@@#@$$$) (t_a3RJd :: (~>) k16989586621679031134 k6989586621679031133) (t_a3RJe :: k16989586621679031134) = (@@) t_a3RJd t_a3RJe
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.@@@#@$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.@@@#@$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.ApplySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.ApplySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.~>@#@$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings (Data.Singletons.~>@#@$$)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.KindOfSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.SameKindSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.SameKindSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.DemoteSym0
instance Data.Singletons.Prelude.Eq.SEq k => GHC.Classes.Eq (Data.Singletons.Internal.SomeSing k)
instance Data.Singletons.Prelude.Ord.SOrd k => GHC.Classes.Ord (Data.Singletons.Internal.SomeSing k)
instance Data.Singletons.Prelude.Enum.SBounded k => GHC.Enum.Bounded (Data.Singletons.Internal.SomeSing k)
instance (Data.Singletons.Prelude.Enum.SEnum k, Data.Singletons.Internal.SingKind k) => GHC.Enum.Enum (Data.Singletons.Internal.SomeSing k)
instance Data.Singletons.Prelude.Num.SNum k => GHC.Num.Num (Data.Singletons.Internal.SomeSing k)
instance Data.Singletons.ShowSing.ShowSing k => GHC.Show.Show (Data.Singletons.Internal.SomeSing k)


-- | 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 <tt>(==)</tt> (type-level equality) from the
--   given types
promoteEqInstances :: DsMonad q => [Name] -> q [Dec]

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

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

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

-- | Create instances of <tt>SEq</tt> (only -- no instance for
--   <tt>(==)</tt>, 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
--   <tt>(==)</tt>, 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]

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

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

-- | Create instances of <tt>SShow</tt> for the given types
--   
--   (Not to be confused with <a>showSingInstances</a>.)
singShowInstances :: DsMonad q => [Name] -> q [Dec]

-- | Create instance of <tt>SShow</tt> for the given type
--   
--   (Not to be confused with <tt>showShowInstance</tt>.)
singShowInstance :: 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 '(DTE.==)', from
--   <a>Data.Type.Equality</a>.
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)

-- | Type-level "and"

-- | Conjunction of singletons
(%&&) :: Sing a -> Sing b -> Sing (a && b)
infixr 3 %&&

-- | 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_a1hrt => POrd (a_a1hrt :: Type) where {
    type family Compare (arg_a1hNp :: a_a1hrt) (arg_a1hNq :: a_a1hrt) :: Ordering;
    type family (<) (arg_a1hNy :: a_a1hrt) (arg_a1hNz :: a_a1hrt) :: Bool;
    type family (<=) (arg_a1hNH :: a_a1hrt) (arg_a1hNI :: a_a1hrt) :: Bool;
    type family (>) (arg_a1hNQ :: a_a1hrt) (arg_a1hNR :: a_a1hrt) :: Bool;
    type family (>=) (arg_a1hNZ :: a_a1hrt) (arg_a1hO0 :: a_a1hrt) :: Bool;
    type family Max (arg_a1hO8 :: a_a1hrt) (arg_a1hO9 :: a_a1hrt) :: a_a1hrt;
    type family Min (arg_a1hOh :: a_a1hrt) (arg_a1hOi :: a_a1hrt) :: a_a1hrt;
    type Compare a_a1hOX a_a1hOY =
        Apply (Apply Compare_6989586621679316629Sym0 a_a1hOX) a_a1hOY;
    type (<) a_a1hPu a_a1hPv =
        Apply (Apply TFHelper_6989586621679316662Sym0 a_a1hPu) a_a1hPv;
    type (<=) a_a1hQ1 a_a1hQ2 =
        Apply (Apply TFHelper_6989586621679316695Sym0 a_a1hQ1) a_a1hQ2;
    type (>) a_a1hQy a_a1hQz =
        Apply (Apply TFHelper_6989586621679316728Sym0 a_a1hQy) a_a1hQz;
    type (>=) a_a1hR5 a_a1hR6 =
        Apply (Apply TFHelper_6989586621679316761Sym0 a_a1hR5) a_a1hR6;
    type Max a_a1hRC a_a1hRD =
        Apply (Apply Max_6989586621679316794Sym0 a_a1hRC) a_a1hRD;
    type Min a_a1hS9 a_a1hSa =
        Apply (Apply Min_6989586621679316827Sym0 a_a1hS9) a_a1hSa;
}
class SEq a_a1hrt => SOrd a_a1hrt
sCompare :: forall (t_a1hSq :: a_a1hrt) (t_a1hSr :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSq -> Sing t_a1hSr -> Sing (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering)
(%<) :: forall (t_a1hSs :: a_a1hrt) (t_a1hSt :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSs -> Sing t_a1hSt -> Sing (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool)
(%<=) :: forall (t_a1hSu :: a_a1hrt) (t_a1hSv :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSu -> Sing t_a1hSv -> Sing (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool)
(%>) :: forall (t_a1hSw :: a_a1hrt) (t_a1hSx :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSw -> Sing t_a1hSx -> Sing (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool)
(%>=) :: forall (t_a1hSy :: a_a1hrt) (t_a1hSz :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSy -> Sing t_a1hSz -> Sing (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool)
sMax :: forall (t_a1hSA :: a_a1hrt) (t_a1hSB :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSA -> Sing t_a1hSB -> Sing (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt)
sMin :: forall (t_a1hSC :: a_a1hrt) (t_a1hSD :: a_a1hrt). SOrd a_a1hrt => Sing t_a1hSC -> Sing t_a1hSD -> Sing (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt)
sCompare :: forall (t_a1hSq :: a_a1hrt) (t_a1hSr :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering) ~ Apply (Apply Compare_6989586621679316629Sym0 t_a1hSq) t_a1hSr) => Sing t_a1hSq -> Sing t_a1hSr -> Sing (Apply (Apply CompareSym0 t_a1hSq) t_a1hSr :: Ordering)
(%<) :: forall (t_a1hSs :: a_a1hrt) (t_a1hSt :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool) ~ Apply (Apply TFHelper_6989586621679316662Sym0 t_a1hSs) t_a1hSt) => Sing t_a1hSs -> Sing t_a1hSt -> Sing (Apply (Apply (<@#@$) t_a1hSs) t_a1hSt :: Bool)
(%<=) :: forall (t_a1hSu :: a_a1hrt) (t_a1hSv :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool) ~ Apply (Apply TFHelper_6989586621679316695Sym0 t_a1hSu) t_a1hSv) => Sing t_a1hSu -> Sing t_a1hSv -> Sing (Apply (Apply (<=@#@$) t_a1hSu) t_a1hSv :: Bool)
(%>) :: forall (t_a1hSw :: a_a1hrt) (t_a1hSx :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool) ~ Apply (Apply TFHelper_6989586621679316728Sym0 t_a1hSw) t_a1hSx) => Sing t_a1hSw -> Sing t_a1hSx -> Sing (Apply (Apply (>@#@$) t_a1hSw) t_a1hSx :: Bool)
(%>=) :: forall (t_a1hSy :: a_a1hrt) (t_a1hSz :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool) ~ Apply (Apply TFHelper_6989586621679316761Sym0 t_a1hSy) t_a1hSz) => Sing t_a1hSy -> Sing t_a1hSz -> Sing (Apply (Apply (>=@#@$) t_a1hSy) t_a1hSz :: Bool)
sMax :: forall (t_a1hSA :: a_a1hrt) (t_a1hSB :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt) ~ Apply (Apply Max_6989586621679316794Sym0 t_a1hSA) t_a1hSB) => Sing t_a1hSA -> Sing t_a1hSB -> Sing (Apply (Apply MaxSym0 t_a1hSA) t_a1hSB :: a_a1hrt)
sMin :: forall (t_a1hSC :: a_a1hrt) (t_a1hSD :: a_a1hrt). (SOrd a_a1hrt, (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt) ~ Apply (Apply Min_6989586621679316827Sym0 t_a1hSC) t_a1hSD) => Sing t_a1hSC -> Sing t_a1hSD -> Sing (Apply (Apply MinSym0 t_a1hSC) t_a1hSD :: a_a1hrt)
sThenCmp :: forall (t_a1jBc :: Ordering) (t_a1jBd :: Ordering). Sing t_a1jBc -> Sing t_a1jBd -> Sing (Apply (Apply ThenCmpSym0 t_a1jBc) t_a1jBd :: Ordering)
sFoldl :: forall (t_a15ES :: TyFun b_a15Dw (TyFun a_a15Dv b_a15Dw -> Type) -> Type) (t_a15ET :: b_a15Dw) (t_a15EU :: [a_a15Dv]). Sing t_a15ES -> Sing t_a15ET -> Sing t_a15EU -> Sing (Apply (Apply (Apply FoldlSym0 t_a15ES) t_a15ET) t_a15EU :: b_a15Dw)

-- | 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 (:~:) (a :: k) (b :: k) :: forall k. () => k -> k -> *
[Refl] :: 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
class PBounded (a_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
class SBounded a_a3ApV
sMinBound :: SBounded a_a3ApV => Sing (MinBoundSym0 :: a_a3ApV)
sMaxBound :: SBounded a_a3ApV => Sing (MaxBoundSym0 :: a_a3ApV)
class PEnum (a_a3Bsu :: Type) where {
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
class SEnum a_a3Bsu
sToEnum :: forall (t_a3BGt :: Nat). SEnum a_a3Bsu => Sing t_a3BGt -> Sing (Apply ToEnumSym0 t_a3BGt :: a_a3Bsu)
sFromEnum :: forall (t_a3BGu :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGu -> Sing (Apply FromEnumSym0 t_a3BGu :: Nat)
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}
class SShow a_a2RUE
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). SShow a_a2RUE => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). SShow a_a2RUE => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). SShow a_a2RUE => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). (SShow a_a2RUE, (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 t_a2Syg) t_a2Syh) t_a2Syi) => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). (SShow a_a2RUE, (Apply Show_Sym0 t_a2Syj :: Symbol) ~ Apply Show__6989586621679695784Sym0 t_a2Syj) => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). (SShow a_a2RUE, (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol) ~ Apply (Apply ShowList_6989586621679695802Sym0 t_a2Syk) t_a2Syl) => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)
sShowString :: forall (t_a2SxH :: Symbol) (t_a2SxI :: Symbol). Sing t_a2SxH -> Sing t_a2SxI -> Sing (Apply (Apply ShowStringSym0 t_a2SxH) t_a2SxI :: Symbol)
sShowParen :: forall (t_a2SxM :: Bool) (t_a2SxN :: TyFun Symbol Symbol -> Type) (t_a2SxO :: Symbol). Sing t_a2SxM -> Sing t_a2SxN -> Sing t_a2SxO -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SxM) t_a2SxN) t_a2SxO :: Symbol)
sShowSpace :: forall (t_a2SxG :: Symbol). Sing t_a2SxG -> Sing (Apply ShowSpaceSym0 t_a2SxG :: Symbol)
sShowChar :: forall (t_a2SxK :: Symbol) (t_a2SxL :: Symbol). Sing t_a2SxK -> Sing t_a2SxL -> Sing (Apply (Apply ShowCharSym0 t_a2SxK) t_a2SxL :: Symbol)
sShowCommaSpace :: forall (t_a2SxJ :: Symbol). Sing t_a2SxJ -> Sing (Apply ShowCommaSpaceSym0 t_a2SxJ :: Symbol)
(%.) :: forall (t_a1MQP :: TyFun b_a1MLP c_a1MLQ -> Type) (t_a1MQQ :: TyFun a_a1MLR b_a1MLP -> Type) (t_a1MQR :: a_a1MLR). Sing t_a1MQP -> Sing t_a1MQQ -> Sing t_a1MQR -> Sing (Apply (Apply (Apply (.@#@$) t_a1MQP) t_a1MQQ) t_a1MQR :: c_a1MLQ)
infixr 9 %.

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

-- | The singleton for <a>error</a>
sError :: Sing (str :: Symbol) -> a
data ErrorSym0 (l_a1BXY :: TyFun k06989586621679393131 k6989586621679393132)
type ErrorSym1 (t_a1BXX :: k06989586621679393131) = Error t_a1BXX

-- | The promotion of <a>undefined</a>.

-- | The singleton for <a>undefined</a>.
sUndefined :: a
type UndefinedSym0 = Undefined
type TrueSym0 = True
type FalseSym0 = False
data (==@#@$) (l_a1euV :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (==@#@$$) (l_a1euT :: a6989586621679303786) (l_a1euS :: TyFun a6989586621679303786 Bool)
type (==@#@$$$) (t_a1euQ :: a6989586621679303786) (t_a1euR :: a6989586621679303786) = (==) t_a1euQ t_a1euR
data (>@#@$) (l_a1hNX :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>@#@$$) (l_a1hNV :: a6989586621679315171) (l_a1hNU :: TyFun a6989586621679315171 Bool)
type (>@#@$$$) (t_a1hNS :: a6989586621679315171) (t_a1hNT :: a6989586621679315171) = (>) t_a1hNS t_a1hNT
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data CompareSym0 (l_a1hNw :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Ordering -> Type))
data CompareSym1 (l_a1hNu :: a6989586621679315171) (l_a1hNt :: TyFun a6989586621679315171 Ordering)
type CompareSym2 (t_a1hNr :: a6989586621679315171) (t_a1hNs :: a6989586621679315171) = Compare t_a1hNr t_a1hNs
data ThenCmpSym0 (l_a1jB7 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jB5 :: Ordering) (l_a1jB4 :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jB2 :: Ordering) (t_a1jB3 :: Ordering) = ThenCmp t_a1jB2 t_a1jB3
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2Sou :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2Sot :: Symbol) = ShowSpace t_a2Sot
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowCommaSpaceSym0 (l_a2Sp1 :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2Sp0 :: Symbol) = ShowCommaSpace t_a2Sp0
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz

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


-- | 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_aj2X b_aj2Y -> Type)
either_ :: (a_a3TWP -> c_a3TWQ) -> (b_a3TWR -> c_a3TWQ) -> Either a_a3TWP b_a3TWR -> c_a3TWQ
sEither_ :: forall (t_a3TXI :: TyFun a_a3TWP c_a3TWQ -> Type) (t_a3TXJ :: TyFun b_a3TWR c_a3TWQ -> Type) (t_a3TXK :: Either a_a3TWP b_a3TWR). Sing t_a3TXI -> Sing t_a3TXJ -> Sing t_a3TXK -> Sing (Apply (Apply (Apply Either_Sym0 t_a3TXI) t_a3TXJ) t_a3TXK :: c_a3TWQ)
sLefts :: forall (t_a3Um2 :: [Either a_a3Uf9 b_a3Ufa]). Sing t_a3Um2 -> Sing (Apply LeftsSym0 t_a3Um2 :: [a_a3Uf9])
sRights :: forall (t_a3Um1 :: [Either a_a3Uf7 b_a3Uf8]). Sing t_a3Um1 -> Sing (Apply RightsSym0 t_a3Um1 :: [b_a3Uf8])
sPartitionEithers :: forall (t_a3Um0 :: [Either a_a3Uf5 b_a3Uf6]). Sing t_a3Um0 -> Sing (Apply PartitionEithersSym0 t_a3Um0 :: ([a_a3Uf5], [b_a3Uf6]))
sIsLeft :: forall (t_a3UlZ :: Either a_a3Uf3 b_a3Uf4). Sing t_a3UlZ -> Sing (Apply IsLeftSym0 t_a3UlZ :: Bool)
sIsRight :: forall (t_a3UlY :: Either a_a3Uf1 b_a3Uf2). Sing t_a3UlY -> Sing (Apply IsRightSym0 t_a3UlY :: Bool)
data LeftSym0 (l_a12FV :: TyFun a6989586621679083011 (Either a6989586621679083011 b6989586621679083012))
type LeftSym1 (t_a12FU :: a6989586621679083011) = Left t_a12FU
data RightSym0 (l_a12FY :: TyFun b6989586621679083012 (Either a6989586621679083011 b6989586621679083012))
type RightSym1 (t_a12FX :: b6989586621679083012) = Right t_a12FX
data Either_Sym0 (l_a3TXz :: TyFun (TyFun a6989586621679939843 c6989586621679939844 -> Type) (TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type) -> Type))
data Either_Sym1 (l_a3TXx :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXw :: TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type))
data Either_Sym2 (l_a3TXt :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXu :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (l_a3TXs :: TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844)
type Either_Sym3 (t_a3TXp :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (t_a3TXq :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (t_a3TXr :: Either a6989586621679939843 b6989586621679939845) = Either_ t_a3TXp t_a3TXq t_a3TXr
data LeftsSym0 (l_a3UlS :: TyFun [Either a6989586621679940979 b6989586621679940980] [a6989586621679940979])
type LeftsSym1 (t_a3UlR :: [Either a6989586621679940979 b6989586621679940980]) = Lefts t_a3UlR
data RightsSym0 (l_a3UlL :: TyFun [Either a6989586621679940977 b6989586621679940978] [b6989586621679940978])
type RightsSym1 (t_a3UlK :: [Either a6989586621679940977 b6989586621679940978]) = Rights t_a3UlK
data IsLeftSym0 (l_a3Ul1 :: TyFun (Either a6989586621679940973 b6989586621679940974) Bool)
type IsLeftSym1 (t_a3Ul0 :: Either a6989586621679940973 b6989586621679940974) = IsLeft t_a3Ul0
data IsRightSym0 (l_a3UkX :: TyFun (Either a6989586621679940971 b6989586621679940972) Bool)
type IsRightSym1 (t_a3UkW :: Either a6989586621679940971 b6989586621679940972) = IsRight t_a3UkW
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.Let6989586621679941353LeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679941353LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679941353LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679941353RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679941353RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679941353RightSym2
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_a3TWP -> c_a3TWQ) -> (b_a3TWR -> c_a3TWQ) -> Either a_a3TWP b_a3TWR -> c_a3TWQ
data LeftSym0 (l_a12FV :: TyFun a6989586621679083011 (Either a6989586621679083011 b6989586621679083012))
type LeftSym1 (t_a12FU :: a6989586621679083011) = Left t_a12FU
data RightSym0 (l_a12FY :: TyFun b6989586621679083012 (Either a6989586621679083011 b6989586621679083012))
type RightSym1 (t_a12FX :: b6989586621679083012) = Right t_a12FX
data Either_Sym0 (l_a3TXz :: TyFun (TyFun a6989586621679939843 c6989586621679939844 -> Type) (TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type) -> Type))
data Either_Sym1 (l_a3TXx :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXw :: TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type))
data Either_Sym2 (l_a3TXt :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXu :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (l_a3TXs :: TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844)
type Either_Sym3 (t_a3TXp :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (t_a3TXq :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (t_a3TXr :: Either a6989586621679939843 b6989586621679939845) = Either_ t_a3TXp t_a3TXq t_a3TXr
data LeftsSym0 (l_a3UlS :: TyFun [Either a6989586621679940979 b6989586621679940980] [a6989586621679940979])
type LeftsSym1 (t_a3UlR :: [Either a6989586621679940979 b6989586621679940980]) = Lefts t_a3UlR
data RightsSym0 (l_a3UlL :: TyFun [Either a6989586621679940977 b6989586621679940978] [b6989586621679940978])
type RightsSym1 (t_a3UlK :: [Either a6989586621679940977 b6989586621679940978]) = Rights t_a3UlK
data IsLeftSym0 (l_a3Ul1 :: TyFun (Either a6989586621679940973 b6989586621679940974) Bool)
type IsLeftSym1 (t_a3Ul0 :: Either a6989586621679940973 b6989586621679940974) = IsLeft t_a3Ul0
data IsRightSym0 (l_a3UkX :: TyFun (Either a6989586621679940971 b6989586621679940972) Bool)
type IsRightSym1 (t_a3UkW :: Either a6989586621679940971 b6989586621679940972) = IsRight t_a3UkW


-- | 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
type NilSym0 = '[]
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz
type (++@#@$$$) (t_a1MPB :: [a6989586621679435603]) (t_a1MPC :: [a6989586621679435603]) = (++) t_a1MPB t_a1MPC
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data HeadSym0 (l_a1VT5 :: TyFun [a6989586621679458494] a6989586621679458494)
type HeadSym1 (t_a1VT4 :: [a6989586621679458494]) = Head t_a1VT4
data LastSym0 (l_a1VSY :: TyFun [a6989586621679458493] a6989586621679458493)
type LastSym1 (t_a1VSX :: [a6989586621679458493]) = Last t_a1VSX
data TailSym0 (l_a1VST :: TyFun [a6989586621679458492] [a6989586621679458492])
type TailSym1 (t_a1VSS :: [a6989586621679458492]) = Tail t_a1VSS
data InitSym0 (l_a1VSp :: TyFun [a6989586621679458491] [a6989586621679458491])
type InitSym1 (t_a1VSo :: [a6989586621679458491]) = Init t_a1VSo
data NullSym0 (l_a1VRo :: TyFun [a6989586621679458490] Bool)
type NullSym1 (t_a1VRn :: [a6989586621679458490]) = Null t_a1VRn
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data ReverseSym0 (l_a1VQP :: TyFun [a6989586621679458489] [a6989586621679458489])
type ReverseSym1 (t_a1VQO :: [a6989586621679458489]) = Reverse t_a1VQO
data IntersperseSym0 (l_a1VQw :: TyFun a6989586621679458488 (TyFun [a6989586621679458488] [a6989586621679458488] -> Type))
data IntersperseSym1 (l_a1VQu :: a6989586621679458488) (l_a1VQt :: TyFun [a6989586621679458488] [a6989586621679458488])
type IntersperseSym2 (t_a1VQr :: a6989586621679458488) (t_a1VQs :: [a6989586621679458488]) = Intersperse t_a1VQr t_a1VQs
data IntercalateSym0 (l_a1VQI :: TyFun [a6989586621679458487] (TyFun [[a6989586621679458487]] [a6989586621679458487] -> Type))
data IntercalateSym1 (l_a1VQG :: [a6989586621679458487]) (l_a1VQF :: TyFun [[a6989586621679458487]] [a6989586621679458487])
type IntercalateSym2 (t_a1VQD :: [a6989586621679458487]) (t_a1VQE :: [[a6989586621679458487]]) = Intercalate t_a1VQD t_a1VQE
data SubsequencesSym0 (l_a1VQn :: TyFun [a6989586621679458486] [[a6989586621679458486]])
type SubsequencesSym1 (t_a1VQm :: [a6989586621679458486]) = Subsequences t_a1VQm
data PermutationsSym0 (l_a1VJX :: TyFun [a6989586621679458483] [[a6989586621679458483]])
type PermutationsSym1 (t_a1VJW :: [a6989586621679458483]) = Permutations t_a1VJW
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
data Foldl'Sym0 (l_a1VIy :: TyFun (TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (TyFun b6989586621679458482 (TyFun [a6989586621679458481] b6989586621679458482 -> Type) -> Type))
data Foldl'Sym1 (l_a1VIw :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (l_a1VIv :: TyFun b6989586621679458482 (TyFun [a6989586621679458481] b6989586621679458482 -> Type))
data Foldl'Sym2 (l_a1VIs :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (l_a1VIt :: b6989586621679458482) (l_a1VIr :: TyFun [a6989586621679458481] b6989586621679458482)
type Foldl'Sym3 (t_a1VIo :: TyFun b6989586621679458482 (TyFun a6989586621679458481 b6989586621679458482 -> Type) -> Type) (t_a1VIp :: b6989586621679458482) (t_a1VIq :: [a6989586621679458481]) = Foldl' t_a1VIo t_a1VIp t_a1VIq
data Foldl1Sym0 (l_a1VF7 :: TyFun (TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (TyFun [a6989586621679458480] a6989586621679458480 -> Type))
data Foldl1Sym1 (l_a1VF5 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (l_a1VF4 :: TyFun [a6989586621679458480] a6989586621679458480)
type Foldl1Sym2 (t_a1VF2 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (t_a1VF3 :: [a6989586621679458480]) = Foldl1 t_a1VF2 t_a1VF3
data Foldl1'Sym0 (l_a1VJP :: TyFun (TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (TyFun [a6989586621679458479] a6989586621679458479 -> Type))
data Foldl1'Sym1 (l_a1VJN :: TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (l_a1VJM :: TyFun [a6989586621679458479] a6989586621679458479)
type Foldl1'Sym2 (t_a1VJK :: TyFun a6989586621679458479 (TyFun a6989586621679458479 a6989586621679458479 -> Type) -> Type) (t_a1VJL :: [a6989586621679458479]) = Foldl1' t_a1VJK t_a1VJL
data FoldrSym0 (l_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data Foldr1Sym0 (l_a1VEA :: TyFun (TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (TyFun [a6989586621679458478] a6989586621679458478 -> Type))
data Foldr1Sym1 (l_a1VEy :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (l_a1VEx :: TyFun [a6989586621679458478] a6989586621679458478)
type Foldr1Sym2 (t_a1VEv :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (t_a1VEw :: [a6989586621679458478]) = Foldr1 t_a1VEv t_a1VEw
data ConcatSym0 (l_a1VEr :: TyFun [[a6989586621679458477]] [a6989586621679458477])
type ConcatSym1 (t_a1VEq :: [[a6989586621679458477]]) = Concat t_a1VEq
data ConcatMapSym0 (l_a1VEg :: TyFun (TyFun a6989586621679458475 [b6989586621679458476] -> Type) (TyFun [a6989586621679458475] [b6989586621679458476] -> Type))
data ConcatMapSym1 (l_a1VEe :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (l_a1VEd :: TyFun [a6989586621679458475] [b6989586621679458476])
type ConcatMapSym2 (t_a1VEb :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (t_a1VEc :: [a6989586621679458475]) = ConcatMap t_a1VEb t_a1VEc
data AndSym0 (l_a1VE6 :: TyFun [Bool] Bool)
type AndSym1 (t_a1VE5 :: [Bool]) = And t_a1VE5
data OrSym0 (l_a1VE0 :: TyFun [Bool] Bool)
type OrSym1 (t_a1VDZ :: [Bool]) = Or t_a1VDZ
data AnySym0 (l_a1VBw :: TyFun (TyFun a6989586621679458473 Bool -> Type) (TyFun [a6989586621679458473] Bool -> Type))
data AnySym1 (l_a1VBu :: TyFun a6989586621679458473 Bool -> Type) (l_a1VBt :: TyFun [a6989586621679458473] Bool)
type AnySym2 (t_a1VBr :: TyFun a6989586621679458473 Bool -> Type) (t_a1VBs :: [a6989586621679458473]) = Any t_a1VBr t_a1VBs
data AllSym0 (l_a1VDS :: TyFun (TyFun a6989586621679458474 Bool -> Type) (TyFun [a6989586621679458474] Bool -> Type))
data AllSym1 (l_a1VDQ :: TyFun a6989586621679458474 Bool -> Type) (l_a1VDP :: TyFun [a6989586621679458474] Bool)
type AllSym2 (t_a1VDN :: TyFun a6989586621679458474 Bool -> Type) (t_a1VDO :: [a6989586621679458474]) = All t_a1VDN t_a1VDO
data ScanlSym0 (l_a1VB2 :: TyFun (TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type) -> Type))
data ScanlSym1 (l_a1VB0 :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAZ :: TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type))
data ScanlSym2 (l_a1VAW :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAX :: b6989586621679458471) (l_a1VAV :: TyFun [a6989586621679458472] [b6989586621679458471])
type ScanlSym3 (t_a1VAS :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (t_a1VAT :: b6989586621679458471) (t_a1VAU :: [a6989586621679458472]) = Scanl t_a1VAS t_a1VAT t_a1VAU
data Scanl1Sym0 (l_a1VBk :: TyFun (TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (TyFun [a6989586621679458470] [a6989586621679458470] -> Type))
data Scanl1Sym1 (l_a1VBi :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (l_a1VBh :: TyFun [a6989586621679458470] [a6989586621679458470])
type Scanl1Sym2 (t_a1VBf :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (t_a1VBg :: [a6989586621679458470]) = Scanl1 t_a1VBf t_a1VBg
data ScanrSym0 (l_a1VAk :: TyFun (TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type) -> Type))
data ScanrSym1 (l_a1VAi :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAh :: TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type))
data ScanrSym2 (l_a1VAe :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAf :: b6989586621679458469) (l_a1VAd :: TyFun [a6989586621679458468] [b6989586621679458469])
type ScanrSym3 (t_a1VAa :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (t_a1VAb :: b6989586621679458469) (t_a1VAc :: [a6989586621679458468]) = Scanr t_a1VAa t_a1VAb t_a1VAc
data Scanr1Sym0 (l_a1Vzk :: TyFun (TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (TyFun [a6989586621679458467] [a6989586621679458467] -> Type))
data Scanr1Sym1 (l_a1Vzi :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (l_a1Vzh :: TyFun [a6989586621679458467] [a6989586621679458467])
type Scanr1Sym2 (t_a1Vzf :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (t_a1Vzg :: [a6989586621679458467]) = Scanr1 t_a1Vzf t_a1Vzg
data MapAccumLSym0 (l_a1VwS :: TyFun (TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (TyFun acc6989586621679458464 (TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]) -> Type) -> Type))
data MapAccumLSym1 (l_a1VwQ :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (l_a1VwP :: TyFun acc6989586621679458464 (TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]) -> Type))
data MapAccumLSym2 (l_a1VwM :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (l_a1VwN :: acc6989586621679458464) (l_a1VwL :: TyFun [x6989586621679458465] (acc6989586621679458464, [y6989586621679458466]))
type MapAccumLSym3 (t_a1VwI :: TyFun acc6989586621679458464 (TyFun x6989586621679458465 (acc6989586621679458464, y6989586621679458466) -> Type) -> Type) (t_a1VwJ :: acc6989586621679458464) (t_a1VwK :: [x6989586621679458465]) = MapAccumL t_a1VwI t_a1VwJ t_a1VwK
data MapAccumRSym0 (l_a1Vul :: TyFun (TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (TyFun acc6989586621679458461 (TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]) -> Type) -> Type))
data MapAccumRSym1 (l_a1Vuj :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (l_a1Vui :: TyFun acc6989586621679458461 (TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]) -> Type))
data MapAccumRSym2 (l_a1Vuf :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (l_a1Vug :: acc6989586621679458461) (l_a1Vue :: TyFun [x6989586621679458462] (acc6989586621679458461, [y6989586621679458463]))
type MapAccumRSym3 (t_a1Vub :: TyFun acc6989586621679458461 (TyFun x6989586621679458462 (acc6989586621679458461, y6989586621679458463) -> Type) -> Type) (t_a1Vuc :: acc6989586621679458461) (t_a1Vud :: [x6989586621679458462]) = MapAccumR t_a1Vub t_a1Vuc t_a1Vud
data UnfoldrSym0 (l_a1VtS :: TyFun (TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (TyFun b6989586621679458459 [a6989586621679458460] -> Type))
data UnfoldrSym1 (l_a1VtQ :: TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (l_a1VtP :: TyFun b6989586621679458459 [a6989586621679458460])
type UnfoldrSym2 (t_a1VtN :: TyFun b6989586621679458459 (Maybe (a6989586621679458460, b6989586621679458459)) -> Type) (t_a1VtO :: b6989586621679458459) = Unfoldr t_a1VtN t_a1VtO
data InitsSym0 (l_a1VtE :: TyFun [a6989586621679458458] [[a6989586621679458458]])
type InitsSym1 (t_a1VtD :: [a6989586621679458458]) = Inits t_a1VtD
data TailsSym0 (l_a1Vtv :: TyFun [a6989586621679458457] [[a6989586621679458457]])
type TailsSym1 (t_a1Vtu :: [a6989586621679458457]) = Tails t_a1Vtu
data IsPrefixOfSym0 (l_a1Vtm :: TyFun [a6989586621679458456] (TyFun [a6989586621679458456] Bool -> Type))
data IsPrefixOfSym1 (l_a1Vtk :: [a6989586621679458456]) (l_a1Vtj :: TyFun [a6989586621679458456] Bool)
type IsPrefixOfSym2 (t_a1Vth :: [a6989586621679458456]) (t_a1Vti :: [a6989586621679458456]) = IsPrefixOf t_a1Vth t_a1Vti
data IsSuffixOfSym0 (l_a1VRh :: TyFun [a6989586621679458455] (TyFun [a6989586621679458455] Bool -> Type))
data IsSuffixOfSym1 (l_a1VRf :: [a6989586621679458455]) (l_a1VRe :: TyFun [a6989586621679458455] Bool)
type IsSuffixOfSym2 (t_a1VRc :: [a6989586621679458455]) (t_a1VRd :: [a6989586621679458455]) = IsSuffixOf t_a1VRc t_a1VRd
data IsInfixOfSym0 (l_a1VBI :: TyFun [a6989586621679458454] (TyFun [a6989586621679458454] Bool -> Type))
data IsInfixOfSym1 (l_a1VBG :: [a6989586621679458454]) (l_a1VBF :: TyFun [a6989586621679458454] Bool)
type IsInfixOfSym2 (t_a1VBD :: [a6989586621679458454]) (t_a1VBE :: [a6989586621679458454]) = IsInfixOf t_a1VBD t_a1VBE
data ElemSym0 (l_a1Vsr :: TyFun a6989586621679458453 (TyFun [a6989586621679458453] Bool -> Type))
data ElemSym1 (l_a1Vsp :: a6989586621679458453) (l_a1Vso :: TyFun [a6989586621679458453] Bool)
type ElemSym2 (t_a1Vsm :: a6989586621679458453) (t_a1Vsn :: [a6989586621679458453]) = Elem t_a1Vsm t_a1Vsn
data NotElemSym0 (l_a1Vsf :: TyFun a6989586621679458452 (TyFun [a6989586621679458452] Bool -> Type))
data NotElemSym1 (l_a1Vsd :: a6989586621679458452) (l_a1Vsc :: TyFun [a6989586621679458452] Bool)
type NotElemSym2 (t_a1Vsa :: a6989586621679458452) (t_a1Vsb :: [a6989586621679458452]) = NotElem t_a1Vsa t_a1Vsb
data ZipSym0 (l_a1Vqx :: TyFun [a6989586621679458450] (TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)] -> Type))
data ZipSym1 (l_a1Vqv :: [a6989586621679458450]) (l_a1Vqu :: TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)])
type ZipSym2 (t_a1Vqs :: [a6989586621679458450]) (t_a1Vqt :: [b6989586621679458451]) = Zip t_a1Vqs t_a1Vqt
data Zip3Sym0 (l_a1Vqh :: TyFun [a6989586621679458447] (TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type) -> Type))
data Zip3Sym1 (l_a1Vqf :: [a6989586621679458447]) (l_a1Vqe :: TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type))
data Zip3Sym2 (l_a1Vqb :: [a6989586621679458447]) (l_a1Vqc :: [b6989586621679458448]) (l_a1Vqa :: TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)])
type Zip3Sym3 (t_a1Vq7 :: [a6989586621679458447]) (t_a1Vq8 :: [b6989586621679458448]) (t_a1Vq9 :: [c6989586621679458449]) = Zip3 t_a1Vq7 t_a1Vq8 t_a1Vq9
data ZipWithSym0 (l_a1VpX :: TyFun (TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type) -> Type))
data ZipWithSym1 (l_a1VpV :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpU :: TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type))
data ZipWithSym2 (l_a1VpR :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpS :: [a6989586621679458444]) (l_a1VpQ :: TyFun [b6989586621679458445] [c6989586621679458446])
type ZipWithSym3 (t_a1VpN :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (t_a1VpO :: [a6989586621679458444]) (t_a1VpP :: [b6989586621679458445]) = ZipWith t_a1VpN t_a1VpO t_a1VpP
data ZipWith3Sym0 (l_a1VpA :: TyFun (TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1Vpy :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpx :: TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type))
data ZipWith3Sym2 (l_a1Vpu :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpv :: [a6989586621679458440]) (l_a1Vpt :: TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type))
data ZipWith3Sym3 (l_a1Vpp :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpq :: [a6989586621679458440]) (l_a1Vpr :: [b6989586621679458441]) (l_a1Vpo :: TyFun [c6989586621679458442] [d6989586621679458443])
type ZipWith3Sym4 (t_a1Vpk :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (t_a1Vpl :: [a6989586621679458440]) (t_a1Vpm :: [b6989586621679458441]) (t_a1Vpn :: [c6989586621679458442]) = ZipWith3 t_a1Vpk t_a1Vpl t_a1Vpm t_a1Vpn
data UnzipSym0 (l_a1VoR :: TyFun [(a6989586621679458438, b6989586621679458439)] ([a6989586621679458438], [b6989586621679458439]))
type UnzipSym1 (t_a1VoQ :: [(a6989586621679458438, b6989586621679458439)]) = Unzip t_a1VoQ
data Unzip3Sym0 (l_a1Vol :: TyFun [(a6989586621679458435, b6989586621679458436, c6989586621679458437)] ([a6989586621679458435], [b6989586621679458436], [c6989586621679458437]))
type Unzip3Sym1 (t_a1Vok :: [(a6989586621679458435, b6989586621679458436, c6989586621679458437)]) = Unzip3 t_a1Vok
data Unzip4Sym0 (l_a1VnN :: TyFun [(a6989586621679458431, b6989586621679458432, c6989586621679458433, d6989586621679458434)] ([a6989586621679458431], [b6989586621679458432], [c6989586621679458433], [d6989586621679458434]))
type Unzip4Sym1 (t_a1VnM :: [(a6989586621679458431, b6989586621679458432, c6989586621679458433, d6989586621679458434)]) = Unzip4 t_a1VnM
data Unzip5Sym0 (l_a1Vnd :: TyFun [(a6989586621679458426, b6989586621679458427, c6989586621679458428, d6989586621679458429, e6989586621679458430)] ([a6989586621679458426], [b6989586621679458427], [c6989586621679458428], [d6989586621679458429], [e6989586621679458430]))
type Unzip5Sym1 (t_a1Vnc :: [(a6989586621679458426, b6989586621679458427, c6989586621679458428, d6989586621679458429, e6989586621679458430)]) = Unzip5 t_a1Vnc
data Unzip6Sym0 (l_a1VmB :: TyFun [(a6989586621679458420, b6989586621679458421, c6989586621679458422, d6989586621679458423, e6989586621679458424, f6989586621679458425)] ([a6989586621679458420], [b6989586621679458421], [c6989586621679458422], [d6989586621679458423], [e6989586621679458424], [f6989586621679458425]))
type Unzip6Sym1 (t_a1VmA :: [(a6989586621679458420, b6989586621679458421, c6989586621679458422, d6989586621679458423, e6989586621679458424, f6989586621679458425)]) = Unzip6 t_a1VmA
data Unzip7Sym0 (l_a1VlX :: TyFun [(a6989586621679458413, b6989586621679458414, c6989586621679458415, d6989586621679458416, e6989586621679458417, f6989586621679458418, g6989586621679458419)] ([a6989586621679458413], [b6989586621679458414], [c6989586621679458415], [d6989586621679458416], [e6989586621679458417], [f6989586621679458418], [g6989586621679458419]))
type Unzip7Sym1 (t_a1VlW :: [(a6989586621679458413, b6989586621679458414, c6989586621679458415, d6989586621679458416, e6989586621679458417, f6989586621679458418, g6989586621679458419)]) = Unzip7 t_a1VlW
data DeleteSym0 (l_a1Vl9 :: TyFun a6989586621679458412 (TyFun [a6989586621679458412] [a6989586621679458412] -> Type))
data DeleteSym1 (l_a1Vl7 :: a6989586621679458412) (l_a1Vl6 :: TyFun [a6989586621679458412] [a6989586621679458412])
type DeleteSym2 (t_a1Vl4 :: a6989586621679458412) (t_a1Vl5 :: [a6989586621679458412]) = Delete t_a1Vl4 t_a1Vl5
data (\\@#@$) (l_a1Vlo :: TyFun [a6989586621679458411] (TyFun [a6989586621679458411] [a6989586621679458411] -> Type))
data (\\@#@$$) (l_a1Vlm :: [a6989586621679458411]) (l_a1Vll :: TyFun [a6989586621679458411] [a6989586621679458411])
type (\\@#@$$$) (t_a1Vlj :: [a6989586621679458411]) (t_a1Vlk :: [a6989586621679458411]) = (\\) t_a1Vlj t_a1Vlk
data IntersectSym0 (l_a1VDH :: TyFun [a6989586621679458398] (TyFun [a6989586621679458398] [a6989586621679458398] -> Type))
data IntersectSym1 (l_a1VDF :: [a6989586621679458398]) (l_a1VDE :: TyFun [a6989586621679458398] [a6989586621679458398])
type IntersectSym2 (t_a1VDC :: [a6989586621679458398]) (t_a1VDD :: [a6989586621679458398]) = Intersect t_a1VDC t_a1VDD
data InsertSym0 (l_a1Vj2 :: TyFun a6989586621679458385 (TyFun [a6989586621679458385] [a6989586621679458385] -> Type))
data InsertSym1 (l_a1Vj0 :: a6989586621679458385) (l_a1ViZ :: TyFun [a6989586621679458385] [a6989586621679458385])
type InsertSym2 (t_a1ViX :: a6989586621679458385) (t_a1ViY :: [a6989586621679458385]) = Insert t_a1ViX t_a1ViY
data SortSym0 (l_a1Vjo :: TyFun [a6989586621679458384] [a6989586621679458384])
type SortSym1 (t_a1Vjn :: [a6989586621679458384]) = Sort t_a1Vjn
data DeleteBySym0 (l_a1VjC :: TyFun (TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (TyFun a6989586621679458410 (TyFun [a6989586621679458410] [a6989586621679458410] -> Type) -> Type))
data DeleteBySym1 (l_a1VjA :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (l_a1Vjz :: TyFun a6989586621679458410 (TyFun [a6989586621679458410] [a6989586621679458410] -> Type))
data DeleteBySym2 (l_a1Vjw :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (l_a1Vjx :: a6989586621679458410) (l_a1Vjv :: TyFun [a6989586621679458410] [a6989586621679458410])
type DeleteBySym3 (t_a1Vjs :: TyFun a6989586621679458410 (TyFun a6989586621679458410 Bool -> Type) -> Type) (t_a1Vjt :: a6989586621679458410) (t_a1Vju :: [a6989586621679458410]) = DeleteBy t_a1Vjs t_a1Vjt t_a1Vju
data DeleteFirstsBySym0 (l_a1Vkh :: TyFun (TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (TyFun [a6989586621679458409] (TyFun [a6989586621679458409] [a6989586621679458409] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1Vkf :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (l_a1Vke :: TyFun [a6989586621679458409] (TyFun [a6989586621679458409] [a6989586621679458409] -> Type))
data DeleteFirstsBySym2 (l_a1Vkb :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (l_a1Vkc :: [a6989586621679458409]) (l_a1Vka :: TyFun [a6989586621679458409] [a6989586621679458409])
type DeleteFirstsBySym3 (t_a1Vk7 :: TyFun a6989586621679458409 (TyFun a6989586621679458409 Bool -> Type) -> Type) (t_a1Vk8 :: [a6989586621679458409]) (t_a1Vk9 :: [a6989586621679458409]) = DeleteFirstsBy t_a1Vk7 t_a1Vk8 t_a1Vk9
data IntersectBySym0 (l_a1VBY :: TyFun (TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (TyFun [a6989586621679458397] (TyFun [a6989586621679458397] [a6989586621679458397] -> Type) -> Type))
data IntersectBySym1 (l_a1VBW :: TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (l_a1VBV :: TyFun [a6989586621679458397] (TyFun [a6989586621679458397] [a6989586621679458397] -> Type))
data IntersectBySym2 (l_a1VBS :: TyFun a6989586621679458397 (TyFun a6989586621679458397 Bool -> Type) -> Type) (l_a1VBT :: [a6989586621679458397]) (l_a1VBR :: TyFun [a6989586621679458397] [a6989586621679458397])
data SortBySym0 (l_a1Vjd :: TyFun (TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (TyFun [a6989586621679458408] [a6989586621679458408] -> Type))
data SortBySym1 (l_a1Vjb :: TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (l_a1Vja :: TyFun [a6989586621679458408] [a6989586621679458408])
type SortBySym2 (t_a1Vj8 :: TyFun a6989586621679458408 (TyFun a6989586621679458408 Ordering -> Type) -> Type) (t_a1Vj9 :: [a6989586621679458408]) = SortBy t_a1Vj8 t_a1Vj9
data InsertBySym0 (l_a1Vi8 :: TyFun (TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (TyFun a6989586621679458407 (TyFun [a6989586621679458407] [a6989586621679458407] -> Type) -> Type))
data InsertBySym1 (l_a1Vi6 :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (l_a1Vi5 :: TyFun a6989586621679458407 (TyFun [a6989586621679458407] [a6989586621679458407] -> Type))
data InsertBySym2 (l_a1Vi2 :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (l_a1Vi3 :: a6989586621679458407) (l_a1Vi1 :: TyFun [a6989586621679458407] [a6989586621679458407])
type InsertBySym3 (t_a1VhY :: TyFun a6989586621679458407 (TyFun a6989586621679458407 Ordering -> Type) -> Type) (t_a1VhZ :: a6989586621679458407) (t_a1Vi0 :: [a6989586621679458407]) = InsertBy t_a1VhY t_a1VhZ t_a1Vi0
data MaximumBySym0 (l_a1VFj :: TyFun (TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (TyFun [a6989586621679458406] a6989586621679458406 -> Type))
data MaximumBySym1 (l_a1VFh :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (l_a1VFg :: TyFun [a6989586621679458406] a6989586621679458406)
type MaximumBySym2 (t_a1VFe :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (t_a1VFf :: [a6989586621679458406]) = MaximumBy t_a1VFe t_a1VFf
data MinimumBySym0 (l_a1VGF :: TyFun (TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (TyFun [a6989586621679458405] a6989586621679458405 -> Type))
data MinimumBySym1 (l_a1VGD :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (l_a1VGC :: TyFun [a6989586621679458405] a6989586621679458405)
type MinimumBySym2 (t_a1VGA :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (t_a1VGB :: [a6989586621679458405]) = MinimumBy t_a1VGA t_a1VGB
data LengthSym0 (l_a1V8K :: TyFun [a6989586621679458376] Nat)
type LengthSym1 (t_a1V8J :: [a6989586621679458376]) = Length t_a1V8J
data SumSym0 (l_a1V9d :: TyFun [a6989586621679458378] a6989586621679458378)
type SumSym1 (t_a1V9c :: [a6989586621679458378]) = Sum t_a1V9c
data ProductSym0 (l_a1V8P :: TyFun [a6989586621679458377] a6989586621679458377)
type ProductSym1 (t_a1V8O :: [a6989586621679458377]) = Product t_a1V8O
data ReplicateSym0 (l_a1V8s :: TyFun Nat (TyFun a6989586621679458375 [a6989586621679458375] -> Type))
data ReplicateSym1 (l_a1V8q :: Nat) (l_a1V8p :: TyFun a6989586621679458375 [a6989586621679458375])
type ReplicateSym2 (t_a1V8n :: Nat) (t_a1V8o :: a6989586621679458375) = Replicate t_a1V8n t_a1V8o
data TransposeSym0 (l_a1VTa :: TyFun [[a6989586621679458374]] [[a6989586621679458374]])
type TransposeSym1 (t_a1VT9 :: [[a6989586621679458374]]) = Transpose t_a1VT9
data TakeSym0 (l_a1Vbx :: TyFun Nat (TyFun [a6989586621679458391] [a6989586621679458391] -> Type))
data TakeSym1 (l_a1Vbv :: Nat) (l_a1Vbu :: TyFun [a6989586621679458391] [a6989586621679458391])
type TakeSym2 (t_a1Vbs :: Nat) (t_a1Vbt :: [a6989586621679458391]) = Take t_a1Vbs t_a1Vbt
data DropSym0 (l_a1Vb5 :: TyFun Nat (TyFun [a6989586621679458390] [a6989586621679458390] -> Type))
data DropSym1 (l_a1Vb3 :: Nat) (l_a1Vb2 :: TyFun [a6989586621679458390] [a6989586621679458390])
type DropSym2 (t_a1Vb0 :: Nat) (t_a1Vb1 :: [a6989586621679458390]) = Drop t_a1Vb0 t_a1Vb1
data SplitAtSym0 (l_a1VbZ :: TyFun Nat (TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]) -> Type))
data SplitAtSym1 (l_a1VbX :: Nat) (l_a1VbW :: TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]))
type SplitAtSym2 (t_a1VbU :: Nat) (t_a1VbV :: [a6989586621679458389]) = SplitAt t_a1VbU t_a1VbV
data TakeWhileSym0 (l_a1VgV :: TyFun (TyFun a6989586621679458396 Bool -> Type) (TyFun [a6989586621679458396] [a6989586621679458396] -> Type))
data TakeWhileSym1 (l_a1VgT :: TyFun a6989586621679458396 Bool -> Type) (l_a1VgS :: TyFun [a6989586621679458396] [a6989586621679458396])
type TakeWhileSym2 (t_a1VgQ :: TyFun a6989586621679458396 Bool -> Type) (t_a1VgR :: [a6989586621679458396]) = TakeWhile t_a1VgQ t_a1VgR
data DropWhileSym0 (l_a1Vgg :: TyFun (TyFun a6989586621679458395 Bool -> Type) (TyFun [a6989586621679458395] [a6989586621679458395] -> Type))
data DropWhileSym1 (l_a1Vge :: TyFun a6989586621679458395 Bool -> Type) (l_a1Vgd :: TyFun [a6989586621679458395] [a6989586621679458395])
type DropWhileSym2 (t_a1Vgb :: TyFun a6989586621679458395 Bool -> Type) (t_a1Vgc :: [a6989586621679458395]) = DropWhile t_a1Vgb t_a1Vgc
data DropWhileEndSym0 (l_a1VRw :: TyFun (TyFun a6989586621679458394 Bool -> Type) (TyFun [a6989586621679458394] [a6989586621679458394] -> Type))
data DropWhileEndSym1 (l_a1VRu :: TyFun a6989586621679458394 Bool -> Type) (l_a1VRt :: TyFun [a6989586621679458394] [a6989586621679458394])
type DropWhileEndSym2 (t_a1VRr :: TyFun a6989586621679458394 Bool -> Type) (t_a1VRs :: [a6989586621679458394]) = DropWhileEnd t_a1VRr t_a1VRs
data SpanSym0 (l_a1VdF :: TyFun (TyFun a6989586621679458393 Bool -> Type) (TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]) -> Type))
data SpanSym1 (l_a1VdD :: TyFun a6989586621679458393 Bool -> Type) (l_a1VdC :: TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]))
type SpanSym2 (t_a1VdA :: TyFun a6989586621679458393 Bool -> Type) (t_a1VdB :: [a6989586621679458393]) = Span t_a1VdA t_a1VdB
data BreakSym0 (l_a1Vca :: TyFun (TyFun a6989586621679458392 Bool -> Type) (TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]) -> Type))
data BreakSym1 (l_a1Vc8 :: TyFun a6989586621679458392 Bool -> Type) (l_a1Vc7 :: TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]))
type BreakSym2 (t_a1Vc5 :: TyFun a6989586621679458392 Bool -> Type) (t_a1Vc6 :: [a6989586621679458392]) = Break t_a1Vc5 t_a1Vc6
data StripPrefixSym0 (l_a400K :: TyFun [a6989586621679950188] (TyFun [a6989586621679950188] (Maybe [a6989586621679950188]) -> Type))
data StripPrefixSym1 (l_a400I :: [a6989586621679950188]) (l_a400H :: TyFun [a6989586621679950188] (Maybe [a6989586621679950188]))
type StripPrefixSym2 (t_a400F :: [a6989586621679950188]) (t_a400G :: [a6989586621679950188]) = StripPrefix t_a400F t_a400G
data MaximumSym0 (l_a1VHX :: TyFun [a6989586621679458387] a6989586621679458387)
type MaximumSym1 (t_a1VHW :: [a6989586621679458387]) = Maximum t_a1VHW
data MinimumSym0 (l_a1VIb :: TyFun [a6989586621679458386] a6989586621679458386)
type MinimumSym1 (t_a1VIa :: [a6989586621679458386]) = Minimum t_a1VIa
data GroupSym0 (l_a1Vg7 :: TyFun [a6989586621679458388] [[a6989586621679458388]])
type GroupSym1 (t_a1Vg6 :: [a6989586621679458388]) = Group t_a1Vg6
data GroupBySym0 (l_a1Vfa :: TyFun (TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (TyFun [a6989586621679458383] [[a6989586621679458383]] -> Type))
data GroupBySym1 (l_a1Vf8 :: TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (l_a1Vf7 :: TyFun [a6989586621679458383] [[a6989586621679458383]])
type GroupBySym2 (t_a1Vf5 :: TyFun a6989586621679458383 (TyFun a6989586621679458383 Bool -> Type) -> Type) (t_a1Vf6 :: [a6989586621679458383]) = GroupBy t_a1Vf5 t_a1Vf6
data LookupSym0 (l_a1Vav :: TyFun a6989586621679458381 (TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382) -> Type))
data LookupSym1 (l_a1Vat :: a6989586621679458381) (l_a1Vas :: TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382))
type LookupSym2 (t_a1Vaq :: a6989586621679458381) (t_a1Var :: [(a6989586621679458381, b6989586621679458382)]) = Lookup t_a1Vaq t_a1Var
data FindSym0 (l_a1VhQ :: TyFun (TyFun a6989586621679458403 Bool -> Type) (TyFun [a6989586621679458403] (Maybe a6989586621679458403) -> Type))
data FindSym1 (l_a1VhO :: TyFun a6989586621679458403 Bool -> Type) (l_a1VhN :: TyFun [a6989586621679458403] (Maybe a6989586621679458403))
type FindSym2 (t_a1VhL :: TyFun a6989586621679458403 Bool -> Type) (t_a1VhM :: [a6989586621679458403]) = Find t_a1VhL t_a1VhM
data FilterSym0 (l_a1Vhn :: TyFun (TyFun a6989586621679458404 Bool -> Type) (TyFun [a6989586621679458404] [a6989586621679458404] -> Type))
data FilterSym1 (l_a1Vhl :: TyFun a6989586621679458404 Bool -> Type) (l_a1Vhk :: TyFun [a6989586621679458404] [a6989586621679458404])
type FilterSym2 (t_a1Vhi :: TyFun a6989586621679458404 Bool -> Type) (t_a1Vhj :: [a6989586621679458404]) = Filter t_a1Vhi t_a1Vhj
data PartitionSym0 (l_a1Vak :: TyFun (TyFun a6989586621679458380 Bool -> Type) (TyFun [a6989586621679458380] ([a6989586621679458380], [a6989586621679458380]) -> Type))
data PartitionSym1 (l_a1Vai :: TyFun a6989586621679458380 Bool -> Type) (l_a1Vah :: TyFun [a6989586621679458380] ([a6989586621679458380], [a6989586621679458380]))
type PartitionSym2 (t_a1Vaf :: TyFun a6989586621679458380 Bool -> Type) (t_a1Vag :: [a6989586621679458380]) = Partition t_a1Vaf t_a1Vag
data (!!@#@$) (l_a1V80 :: TyFun [a6989586621679458373] (TyFun Nat a6989586621679458373 -> Type))
data (!!@#@$$) (l_a1V7Y :: [a6989586621679458373]) (l_a1V7X :: TyFun Nat a6989586621679458373)
type (!!@#@$$$) (t_a1V7V :: [a6989586621679458373]) (t_a1V7W :: Nat) = (!!) t_a1V7V t_a1V7W
data ElemIndexSym0 (l_a1Vs2 :: TyFun a6989586621679458402 (TyFun [a6989586621679458402] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1Vs0 :: a6989586621679458402) (l_a1VrZ :: TyFun [a6989586621679458402] (Maybe Nat))
type ElemIndexSym2 (t_a1VrX :: a6989586621679458402) (t_a1VrY :: [a6989586621679458402]) = ElemIndex t_a1VrX t_a1VrY
data ElemIndicesSym0 (l_a1VrC :: TyFun a6989586621679458401 (TyFun [a6989586621679458401] [Nat] -> Type))
data ElemIndicesSym1 (l_a1VrA :: a6989586621679458401) (l_a1Vrz :: TyFun [a6989586621679458401] [Nat])
type ElemIndicesSym2 (t_a1Vrx :: a6989586621679458401) (t_a1Vry :: [a6989586621679458401]) = ElemIndices t_a1Vrx t_a1Vry
data FindIndexSym0 (l_a1VrP :: TyFun (TyFun a6989586621679458400 Bool -> Type) (TyFun [a6989586621679458400] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1VrN :: TyFun a6989586621679458400 Bool -> Type) (l_a1VrM :: TyFun [a6989586621679458400] (Maybe Nat))
type FindIndexSym2 (t_a1VrK :: TyFun a6989586621679458400 Bool -> Type) (t_a1VrL :: [a6989586621679458400]) = FindIndex t_a1VrK t_a1VrL
data FindIndicesSym0 (l_a1VqK :: TyFun (TyFun a6989586621679458399 Bool -> Type) (TyFun [a6989586621679458399] [Nat] -> Type))
data FindIndicesSym1 (l_a1VqI :: TyFun a6989586621679458399 Bool -> Type) (l_a1VqH :: TyFun [a6989586621679458399] [Nat])
type FindIndicesSym2 (t_a1VqF :: TyFun a6989586621679458399 Bool -> Type) (t_a1VqG :: [a6989586621679458399]) = FindIndices t_a1VqF t_a1VqG
data Zip4Sym0 (l_a400v :: TyFun [a6989586621679950184] (TyFun [b6989586621679950185] (TyFun [c6989586621679950186] (TyFun [d6989586621679950187] [(a6989586621679950184, b6989586621679950185, c6989586621679950186, d6989586621679950187)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a400t :: [a6989586621679950184]) (l_a400s :: TyFun [b6989586621679950185] (TyFun [c6989586621679950186] (TyFun [d6989586621679950187] [(a6989586621679950184, b6989586621679950185, c6989586621679950186, d6989586621679950187)] -> Type) -> Type))
data Zip4Sym2 (l_a400p :: [a6989586621679950184]) (l_a400q :: [b6989586621679950185]) (l_a400o :: TyFun [c6989586621679950186] (TyFun [d6989586621679950187] [(a6989586621679950184, b6989586621679950185, c6989586621679950186, d6989586621679950187)] -> Type))
data Zip4Sym3 (l_a400k :: [a6989586621679950184]) (l_a400l :: [b6989586621679950185]) (l_a400m :: [c6989586621679950186]) (l_a400j :: TyFun [d6989586621679950187] [(a6989586621679950184, b6989586621679950185, c6989586621679950186, d6989586621679950187)])
type Zip4Sym4 (t_a400f :: [a6989586621679950184]) (t_a400g :: [b6989586621679950185]) (t_a400h :: [c6989586621679950186]) (t_a400i :: [d6989586621679950187]) = Zip4 t_a400f t_a400g t_a400h t_a400i
data Zip5Sym0 (l_a3ZZV :: TyFun [a6989586621679950179] (TyFun [b6989586621679950180] (TyFun [c6989586621679950181] (TyFun [d6989586621679950182] (TyFun [e6989586621679950183] [(a6989586621679950179, b6989586621679950180, c6989586621679950181, d6989586621679950182, e6989586621679950183)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a3ZZT :: [a6989586621679950179]) (l_a3ZZS :: TyFun [b6989586621679950180] (TyFun [c6989586621679950181] (TyFun [d6989586621679950182] (TyFun [e6989586621679950183] [(a6989586621679950179, b6989586621679950180, c6989586621679950181, d6989586621679950182, e6989586621679950183)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a3ZZP :: [a6989586621679950179]) (l_a3ZZQ :: [b6989586621679950180]) (l_a3ZZO :: TyFun [c6989586621679950181] (TyFun [d6989586621679950182] (TyFun [e6989586621679950183] [(a6989586621679950179, b6989586621679950180, c6989586621679950181, d6989586621679950182, e6989586621679950183)] -> Type) -> Type))
data Zip5Sym3 (l_a3ZZK :: [a6989586621679950179]) (l_a3ZZL :: [b6989586621679950180]) (l_a3ZZM :: [c6989586621679950181]) (l_a3ZZJ :: TyFun [d6989586621679950182] (TyFun [e6989586621679950183] [(a6989586621679950179, b6989586621679950180, c6989586621679950181, d6989586621679950182, e6989586621679950183)] -> Type))
data Zip5Sym4 (l_a3ZZE :: [a6989586621679950179]) (l_a3ZZF :: [b6989586621679950180]) (l_a3ZZG :: [c6989586621679950181]) (l_a3ZZH :: [d6989586621679950182]) (l_a3ZZD :: TyFun [e6989586621679950183] [(a6989586621679950179, b6989586621679950180, c6989586621679950181, d6989586621679950182, e6989586621679950183)])
type Zip5Sym5 (t_a3ZZy :: [a6989586621679950179]) (t_a3ZZz :: [b6989586621679950180]) (t_a3ZZA :: [c6989586621679950181]) (t_a3ZZB :: [d6989586621679950182]) (t_a3ZZC :: [e6989586621679950183]) = Zip5 t_a3ZZy t_a3ZZz t_a3ZZA t_a3ZZB t_a3ZZC
data Zip6Sym0 (l_a3ZZa :: TyFun [a6989586621679950173] (TyFun [b6989586621679950174] (TyFun [c6989586621679950175] (TyFun [d6989586621679950176] (TyFun [e6989586621679950177] (TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a3ZZ8 :: [a6989586621679950173]) (l_a3ZZ7 :: TyFun [b6989586621679950174] (TyFun [c6989586621679950175] (TyFun [d6989586621679950176] (TyFun [e6989586621679950177] (TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a3ZZ4 :: [a6989586621679950173]) (l_a3ZZ5 :: [b6989586621679950174]) (l_a3ZZ3 :: TyFun [c6989586621679950175] (TyFun [d6989586621679950176] (TyFun [e6989586621679950177] (TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a3ZYZ :: [a6989586621679950173]) (l_a3ZZ0 :: [b6989586621679950174]) (l_a3ZZ1 :: [c6989586621679950175]) (l_a3ZYY :: TyFun [d6989586621679950176] (TyFun [e6989586621679950177] (TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)] -> Type) -> Type))
data Zip6Sym4 (l_a3ZYT :: [a6989586621679950173]) (l_a3ZYU :: [b6989586621679950174]) (l_a3ZYV :: [c6989586621679950175]) (l_a3ZYW :: [d6989586621679950176]) (l_a3ZYS :: TyFun [e6989586621679950177] (TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)] -> Type))
data Zip6Sym5 (l_a3ZYM :: [a6989586621679950173]) (l_a3ZYN :: [b6989586621679950174]) (l_a3ZYO :: [c6989586621679950175]) (l_a3ZYP :: [d6989586621679950176]) (l_a3ZYQ :: [e6989586621679950177]) (l_a3ZYL :: TyFun [f6989586621679950178] [(a6989586621679950173, b6989586621679950174, c6989586621679950175, d6989586621679950176, e6989586621679950177, f6989586621679950178)])
type Zip6Sym6 (t_a3ZYF :: [a6989586621679950173]) (t_a3ZYG :: [b6989586621679950174]) (t_a3ZYH :: [c6989586621679950175]) (t_a3ZYI :: [d6989586621679950176]) (t_a3ZYJ :: [e6989586621679950177]) (t_a3ZYK :: [f6989586621679950178]) = Zip6 t_a3ZYF t_a3ZYG t_a3ZYH t_a3ZYI t_a3ZYJ t_a3ZYK
data Zip7Sym0 (l_a3ZYd :: TyFun [a6989586621679950166] (TyFun [b6989586621679950167] (TyFun [c6989586621679950168] (TyFun [d6989586621679950169] (TyFun [e6989586621679950170] (TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a3ZYb :: [a6989586621679950166]) (l_a3ZYa :: TyFun [b6989586621679950167] (TyFun [c6989586621679950168] (TyFun [d6989586621679950169] (TyFun [e6989586621679950170] (TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a3ZY7 :: [a6989586621679950166]) (l_a3ZY8 :: [b6989586621679950167]) (l_a3ZY6 :: TyFun [c6989586621679950168] (TyFun [d6989586621679950169] (TyFun [e6989586621679950170] (TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a3ZY2 :: [a6989586621679950166]) (l_a3ZY3 :: [b6989586621679950167]) (l_a3ZY4 :: [c6989586621679950168]) (l_a3ZY1 :: TyFun [d6989586621679950169] (TyFun [e6989586621679950170] (TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a3ZXW :: [a6989586621679950166]) (l_a3ZXX :: [b6989586621679950167]) (l_a3ZXY :: [c6989586621679950168]) (l_a3ZXZ :: [d6989586621679950169]) (l_a3ZXV :: TyFun [e6989586621679950170] (TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type) -> Type))
data Zip7Sym5 (l_a3ZXP :: [a6989586621679950166]) (l_a3ZXQ :: [b6989586621679950167]) (l_a3ZXR :: [c6989586621679950168]) (l_a3ZXS :: [d6989586621679950169]) (l_a3ZXT :: [e6989586621679950170]) (l_a3ZXO :: TyFun [f6989586621679950171] (TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)] -> Type))
data Zip7Sym6 (l_a3ZXH :: [a6989586621679950166]) (l_a3ZXI :: [b6989586621679950167]) (l_a3ZXJ :: [c6989586621679950168]) (l_a3ZXK :: [d6989586621679950169]) (l_a3ZXL :: [e6989586621679950170]) (l_a3ZXM :: [f6989586621679950171]) (l_a3ZXG :: TyFun [g6989586621679950172] [(a6989586621679950166, b6989586621679950167, c6989586621679950168, d6989586621679950169, e6989586621679950170, f6989586621679950171, g6989586621679950172)])
type Zip7Sym7 (t_a3ZXz :: [a6989586621679950166]) (t_a3ZXA :: [b6989586621679950167]) (t_a3ZXB :: [c6989586621679950168]) (t_a3ZXC :: [d6989586621679950169]) (t_a3ZXD :: [e6989586621679950170]) (t_a3ZXE :: [f6989586621679950171]) (t_a3ZXF :: [g6989586621679950172]) = Zip7 t_a3ZXz t_a3ZXA t_a3ZXB t_a3ZXC t_a3ZXD t_a3ZXE t_a3ZXF
data ZipWith4Sym0 (l_a3ZX5 :: TyFun (TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950161] (TyFun [b6989586621679950162] (TyFun [c6989586621679950163] (TyFun [d6989586621679950164] [e6989586621679950165] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a3ZX3 :: TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (l_a3ZX2 :: TyFun [a6989586621679950161] (TyFun [b6989586621679950162] (TyFun [c6989586621679950163] (TyFun [d6989586621679950164] [e6989586621679950165] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a3ZWZ :: TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (l_a3ZX0 :: [a6989586621679950161]) (l_a3ZWY :: TyFun [b6989586621679950162] (TyFun [c6989586621679950163] (TyFun [d6989586621679950164] [e6989586621679950165] -> Type) -> Type))
data ZipWith4Sym3 (l_a3ZWU :: TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (l_a3ZWV :: [a6989586621679950161]) (l_a3ZWW :: [b6989586621679950162]) (l_a3ZWT :: TyFun [c6989586621679950163] (TyFun [d6989586621679950164] [e6989586621679950165] -> Type))
data ZipWith4Sym4 (l_a3ZWO :: TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (l_a3ZWP :: [a6989586621679950161]) (l_a3ZWQ :: [b6989586621679950162]) (l_a3ZWR :: [c6989586621679950163]) (l_a3ZWN :: TyFun [d6989586621679950164] [e6989586621679950165])
type ZipWith4Sym5 (t_a3ZWI :: TyFun a6989586621679950161 (TyFun b6989586621679950162 (TyFun c6989586621679950163 (TyFun d6989586621679950164 e6989586621679950165 -> Type) -> Type) -> Type) -> Type) (t_a3ZWJ :: [a6989586621679950161]) (t_a3ZWK :: [b6989586621679950162]) (t_a3ZWL :: [c6989586621679950163]) (t_a3ZWM :: [d6989586621679950164]) = ZipWith4 t_a3ZWI t_a3ZWJ t_a3ZWK t_a3ZWL t_a3ZWM
data ZipWith5Sym0 (l_a3ZWp :: TyFun (TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950155] (TyFun [b6989586621679950156] (TyFun [c6989586621679950157] (TyFun [d6989586621679950158] (TyFun [e6989586621679950159] [f6989586621679950160] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a3ZWn :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZWm :: TyFun [a6989586621679950155] (TyFun [b6989586621679950156] (TyFun [c6989586621679950157] (TyFun [d6989586621679950158] (TyFun [e6989586621679950159] [f6989586621679950160] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a3ZWj :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZWk :: [a6989586621679950155]) (l_a3ZWi :: TyFun [b6989586621679950156] (TyFun [c6989586621679950157] (TyFun [d6989586621679950158] (TyFun [e6989586621679950159] [f6989586621679950160] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a3ZWe :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZWf :: [a6989586621679950155]) (l_a3ZWg :: [b6989586621679950156]) (l_a3ZWd :: TyFun [c6989586621679950157] (TyFun [d6989586621679950158] (TyFun [e6989586621679950159] [f6989586621679950160] -> Type) -> Type))
data ZipWith5Sym4 (l_a3ZW8 :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZW9 :: [a6989586621679950155]) (l_a3ZWa :: [b6989586621679950156]) (l_a3ZWb :: [c6989586621679950157]) (l_a3ZW7 :: TyFun [d6989586621679950158] (TyFun [e6989586621679950159] [f6989586621679950160] -> Type))
data ZipWith5Sym5 (l_a3ZW1 :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZW2 :: [a6989586621679950155]) (l_a3ZW3 :: [b6989586621679950156]) (l_a3ZW4 :: [c6989586621679950157]) (l_a3ZW5 :: [d6989586621679950158]) (l_a3ZW0 :: TyFun [e6989586621679950159] [f6989586621679950160])
type ZipWith5Sym6 (t_a3ZVU :: TyFun a6989586621679950155 (TyFun b6989586621679950156 (TyFun c6989586621679950157 (TyFun d6989586621679950158 (TyFun e6989586621679950159 f6989586621679950160 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3ZVV :: [a6989586621679950155]) (t_a3ZVW :: [b6989586621679950156]) (t_a3ZVX :: [c6989586621679950157]) (t_a3ZVY :: [d6989586621679950158]) (t_a3ZVZ :: [e6989586621679950159]) = ZipWith5 t_a3ZVU t_a3ZVV t_a3ZVW t_a3ZVX t_a3ZVY t_a3ZVZ
data ZipWith6Sym0 (l_a3ZVy :: TyFun (TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950148] (TyFun [b6989586621679950149] (TyFun [c6989586621679950150] (TyFun [d6989586621679950151] (TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a3ZVw :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZVv :: TyFun [a6989586621679950148] (TyFun [b6989586621679950149] (TyFun [c6989586621679950150] (TyFun [d6989586621679950151] (TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a3ZVs :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZVt :: [a6989586621679950148]) (l_a3ZVr :: TyFun [b6989586621679950149] (TyFun [c6989586621679950150] (TyFun [d6989586621679950151] (TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a3ZVn :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZVo :: [a6989586621679950148]) (l_a3ZVp :: [b6989586621679950149]) (l_a3ZVm :: TyFun [c6989586621679950150] (TyFun [d6989586621679950151] (TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a3ZVh :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZVi :: [a6989586621679950148]) (l_a3ZVj :: [b6989586621679950149]) (l_a3ZVk :: [c6989586621679950150]) (l_a3ZVg :: TyFun [d6989586621679950151] (TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type) -> Type))
data ZipWith6Sym5 (l_a3ZVa :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZVb :: [a6989586621679950148]) (l_a3ZVc :: [b6989586621679950149]) (l_a3ZVd :: [c6989586621679950150]) (l_a3ZVe :: [d6989586621679950151]) (l_a3ZV9 :: TyFun [e6989586621679950152] (TyFun [f6989586621679950153] [g6989586621679950154] -> Type))
data ZipWith6Sym6 (l_a3ZV2 :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZV3 :: [a6989586621679950148]) (l_a3ZV4 :: [b6989586621679950149]) (l_a3ZV5 :: [c6989586621679950150]) (l_a3ZV6 :: [d6989586621679950151]) (l_a3ZV7 :: [e6989586621679950152]) (l_a3ZV1 :: TyFun [f6989586621679950153] [g6989586621679950154])
type ZipWith6Sym7 (t_a3ZUU :: TyFun a6989586621679950148 (TyFun b6989586621679950149 (TyFun c6989586621679950150 (TyFun d6989586621679950151 (TyFun e6989586621679950152 (TyFun f6989586621679950153 g6989586621679950154 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3ZUV :: [a6989586621679950148]) (t_a3ZUW :: [b6989586621679950149]) (t_a3ZUX :: [c6989586621679950150]) (t_a3ZUY :: [d6989586621679950151]) (t_a3ZUZ :: [e6989586621679950152]) (t_a3ZV0 :: [f6989586621679950153]) = ZipWith6 t_a3ZUU t_a3ZUV t_a3ZUW t_a3ZUX t_a3ZUY t_a3ZUZ t_a3ZV0
data ZipWith7Sym0 (l_a3ZUv :: TyFun (TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950140] (TyFun [b6989586621679950141] (TyFun [c6989586621679950142] (TyFun [d6989586621679950143] (TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a3ZUt :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZUs :: TyFun [a6989586621679950140] (TyFun [b6989586621679950141] (TyFun [c6989586621679950142] (TyFun [d6989586621679950143] (TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a3ZUp :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZUq :: [a6989586621679950140]) (l_a3ZUo :: TyFun [b6989586621679950141] (TyFun [c6989586621679950142] (TyFun [d6989586621679950143] (TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a3ZUk :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZUl :: [a6989586621679950140]) (l_a3ZUm :: [b6989586621679950141]) (l_a3ZUj :: TyFun [c6989586621679950142] (TyFun [d6989586621679950143] (TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a3ZUe :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZUf :: [a6989586621679950140]) (l_a3ZUg :: [b6989586621679950141]) (l_a3ZUh :: [c6989586621679950142]) (l_a3ZUd :: TyFun [d6989586621679950143] (TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a3ZU7 :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZU8 :: [a6989586621679950140]) (l_a3ZU9 :: [b6989586621679950141]) (l_a3ZUa :: [c6989586621679950142]) (l_a3ZUb :: [d6989586621679950143]) (l_a3ZU6 :: TyFun [e6989586621679950144] (TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type) -> Type))
data ZipWith7Sym6 (l_a3ZTZ :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZU0 :: [a6989586621679950140]) (l_a3ZU1 :: [b6989586621679950141]) (l_a3ZU2 :: [c6989586621679950142]) (l_a3ZU3 :: [d6989586621679950143]) (l_a3ZU4 :: [e6989586621679950144]) (l_a3ZTY :: TyFun [f6989586621679950145] (TyFun [g6989586621679950146] [h6989586621679950147] -> Type))
data ZipWith7Sym7 (l_a3ZTQ :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a3ZTR :: [a6989586621679950140]) (l_a3ZTS :: [b6989586621679950141]) (l_a3ZTT :: [c6989586621679950142]) (l_a3ZTU :: [d6989586621679950143]) (l_a3ZTV :: [e6989586621679950144]) (l_a3ZTW :: [f6989586621679950145]) (l_a3ZTP :: TyFun [g6989586621679950146] [h6989586621679950147])
type ZipWith7Sym8 (t_a3ZTH :: TyFun a6989586621679950140 (TyFun b6989586621679950141 (TyFun c6989586621679950142 (TyFun d6989586621679950143 (TyFun e6989586621679950144 (TyFun f6989586621679950145 (TyFun g6989586621679950146 h6989586621679950147 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a3ZTI :: [a6989586621679950140]) (t_a3ZTJ :: [b6989586621679950141]) (t_a3ZTK :: [c6989586621679950142]) (t_a3ZTL :: [d6989586621679950143]) (t_a3ZTM :: [e6989586621679950144]) (t_a3ZTN :: [f6989586621679950145]) (t_a3ZTO :: [g6989586621679950146]) = ZipWith7 t_a3ZTH t_a3ZTI t_a3ZTJ t_a3ZTK t_a3ZTL t_a3ZTM t_a3ZTN t_a3ZTO
data UnlinesSym0 (l_a1VlR :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1VlQ :: [Symbol]) = Unlines t_a1VlQ
data UnwordsSym0 (l_a1Vlv :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1Vlu :: [Symbol]) = Unwords t_a1Vlu
data NubSym0 (l_a1Vsz :: TyFun [a6989586621679458372] [a6989586621679458372])
type NubSym1 (t_a1Vsy :: [a6989586621679458372]) = Nub t_a1Vsy
data NubBySym0 (l_a1V6Y :: TyFun (TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (TyFun [a6989586621679458371] [a6989586621679458371] -> Type))
data NubBySym1 (l_a1V6W :: TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (l_a1V6V :: TyFun [a6989586621679458371] [a6989586621679458371])
type NubBySym2 (t_a1V6T :: TyFun a6989586621679458371 (TyFun a6989586621679458371 Bool -> Type) -> Type) (t_a1V6U :: [a6989586621679458371]) = NubBy t_a1V6T t_a1V6U
data UnionSym0 (l_a1VkU :: TyFun [a6989586621679458368] (TyFun [a6989586621679458368] [a6989586621679458368] -> Type))
data UnionSym1 (l_a1VkS :: [a6989586621679458368]) (l_a1VkR :: TyFun [a6989586621679458368] [a6989586621679458368])
type UnionSym2 (t_a1VkP :: [a6989586621679458368]) (t_a1VkQ :: [a6989586621679458368]) = Union t_a1VkP t_a1VkQ
data UnionBySym0 (l_a1VkD :: TyFun (TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (TyFun [a6989586621679458369] (TyFun [a6989586621679458369] [a6989586621679458369] -> Type) -> Type))
data UnionBySym1 (l_a1VkB :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (l_a1VkA :: TyFun [a6989586621679458369] (TyFun [a6989586621679458369] [a6989586621679458369] -> Type))
data UnionBySym2 (l_a1Vkx :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (l_a1Vky :: [a6989586621679458369]) (l_a1Vkw :: TyFun [a6989586621679458369] [a6989586621679458369])
type UnionBySym3 (t_a1Vkt :: TyFun a6989586621679458369 (TyFun a6989586621679458369 Bool -> Type) -> Type) (t_a1Vku :: [a6989586621679458369]) (t_a1Vkv :: [a6989586621679458369]) = UnionBy t_a1Vkt t_a1Vku t_a1Vkv
data GenericLengthSym0 (l_a1V6w :: TyFun [a6989586621679458367] i6989586621679458366)
type GenericLengthSym1 (t_a1V6v :: [a6989586621679458367]) = GenericLength t_a1V6v
data GenericTakeSym0 (l_a3ZTB :: TyFun i6989586621679950138 (TyFun [a6989586621679950139] [a6989586621679950139] -> Type))
data GenericTakeSym1 (l_a3ZTz :: i6989586621679950138) (l_a3ZTy :: TyFun [a6989586621679950139] [a6989586621679950139])
type GenericTakeSym2 (t_a3ZTw :: i6989586621679950138) (t_a3ZTx :: [a6989586621679950139]) = GenericTake t_a3ZTw t_a3ZTx
data GenericDropSym0 (l_a3ZTm :: TyFun i6989586621679950136 (TyFun [a6989586621679950137] [a6989586621679950137] -> Type))
data GenericDropSym1 (l_a3ZTk :: i6989586621679950136) (l_a3ZTj :: TyFun [a6989586621679950137] [a6989586621679950137])
type GenericDropSym2 (t_a3ZTh :: i6989586621679950136) (t_a3ZTi :: [a6989586621679950137]) = GenericDrop t_a3ZTh t_a3ZTi
data GenericSplitAtSym0 (l_a3ZT7 :: TyFun i6989586621679950134 (TyFun [a6989586621679950135] ([a6989586621679950135], [a6989586621679950135]) -> Type))
data GenericSplitAtSym1 (l_a3ZT5 :: i6989586621679950134) (l_a3ZT4 :: TyFun [a6989586621679950135] ([a6989586621679950135], [a6989586621679950135]))
type GenericSplitAtSym2 (t_a3ZT2 :: i6989586621679950134) (t_a3ZT3 :: [a6989586621679950135]) = GenericSplitAt t_a3ZT2 t_a3ZT3
data GenericIndexSym0 (l_a3ZSS :: TyFun [a6989586621679950133] (TyFun i6989586621679950132 a6989586621679950133 -> Type))
data GenericIndexSym1 (l_a3ZSQ :: [a6989586621679950133]) (l_a3ZSP :: TyFun i6989586621679950132 a6989586621679950133)
type GenericIndexSym2 (t_a3ZSN :: [a6989586621679950133]) (t_a3ZSO :: i6989586621679950132) = GenericIndex t_a3ZSN t_a3ZSO
data GenericReplicateSym0 (l_a3ZSD :: TyFun i6989586621679950130 (TyFun a6989586621679950131 [a6989586621679950131] -> Type))
data GenericReplicateSym1 (l_a3ZSB :: i6989586621679950130) (l_a3ZSA :: TyFun a6989586621679950131 [a6989586621679950131])
type GenericReplicateSym2 (t_a3ZSy :: i6989586621679950130) (t_a3ZSz :: a6989586621679950131) = GenericReplicate t_a3ZSy t_a3ZSz
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


-- | 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_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
type (++@#@$$$) (t_a1MPB :: [a6989586621679435603]) (t_a1MPC :: [a6989586621679435603]) = (++) t_a1MPB t_a1MPC
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data ($!@#@$) (l_a1MNK :: TyFun (TyFun a6989586621679435589 b6989586621679435590 -> Type) (TyFun a6989586621679435589 b6989586621679435590 -> Type))
data ($!@#@$$) (l_a1MNI :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (l_a1MNH :: TyFun a6989586621679435589 b6989586621679435590)
type ($!@#@$$$) (t_a1MNF :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (t_a1MNG :: a6989586621679435589) = ($!) t_a1MNF t_a1MNG
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
type FlipSym3 (t_a1MO9 :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (t_a1MOa :: b6989586621679435595) (t_a1MOb :: a6989586621679435594) = Flip t_a1MO9 t_a1MOa t_a1MOb
data UntilSym0 (l_a46gf :: TyFun (TyFun a6989586621679987157 Bool -> Type) (TyFun (TyFun a6989586621679987157 a6989586621679987157 -> Type) (TyFun a6989586621679987157 a6989586621679987157 -> Type) -> Type))
data UntilSym1 (l_a46gd :: TyFun a6989586621679987157 Bool -> Type) (l_a46gc :: TyFun (TyFun a6989586621679987157 a6989586621679987157 -> Type) (TyFun a6989586621679987157 a6989586621679987157 -> Type))
data UntilSym2 (l_a46g9 :: TyFun a6989586621679987157 Bool -> Type) (l_a46ga :: TyFun a6989586621679987157 a6989586621679987157 -> Type) (l_a46g8 :: TyFun a6989586621679987157 a6989586621679987157)
type UntilSym3 (t_a46g5 :: TyFun a6989586621679987157 Bool -> Type) (t_a46g6 :: TyFun a6989586621679987157 a6989586621679987157 -> Type) (t_a46g7 :: a6989586621679987157) = Until t_a46g5 t_a46g6 t_a46g7
data AsTypeOfSym0 (l_a1MPq :: TyFun a6989586621679435593 (TyFun a6989586621679435593 a6989586621679435593 -> Type))
data AsTypeOfSym1 (l_a1MPo :: a6989586621679435593) (l_a1MPn :: TyFun a6989586621679435593 a6989586621679435593)
type AsTypeOfSym2 (t_a1MPl :: a6989586621679435593) (t_a1MPm :: a6989586621679435593) = AsTypeOf t_a1MPl t_a1MPm
data SeqSym0 (l_a1MNA :: TyFun a6989586621679435587 (TyFun b6989586621679435588 b6989586621679435588 -> Type))
data SeqSym1 (l_a1MNy :: a6989586621679435587) (l_a1MNx :: TyFun b6989586621679435588 b6989586621679435588)
type SeqSym2 (t_a1MNv :: a6989586621679435587) (t_a1MNw :: b6989586621679435588) = Seq t_a1MNv t_a1MNw
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.Let6989586621679987185GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679987185GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679987185GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679987185GoSym3


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

-- | Type-level "not". An injective type family since <tt>4.10.0.0</tt>.

-- | Type-level "and"

-- | Type-level "or"
maybe_ :: b_a1ImG -> (a_a1ImH -> b_a1ImG) -> Maybe a_a1ImH -> b_a1ImG
either_ :: (a_a3TWP -> c_a3TWQ) -> (b_a3TWR -> c_a3TWQ) -> Either a_a3TWP b_a3TWR -> c_a3TWQ

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

-- | The promotion of <a>undefined</a>.
class PBounded (a_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
type MaxBoundSym0 = MaxBound
type MinBoundSym0 = MinBound
class PEnum (a_a3Bsu :: Type) where {
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type family EnumFromTo (arg_a3BCe :: a_a3Bsu) (arg_a3BCf :: a_a3Bsu) :: [a_a3Bsu];
    type family EnumFromThenTo (arg_a3BCn :: a_a3Bsu) (arg_a3BCo :: a_a3Bsu) (arg_a3BCp :: a_a3Bsu) :: [a_a3Bsu];
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
data EnumFromThenToSym0 (l_a3BCA :: TyFun a6989586621679868770 (TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BCy :: a6989586621679868770) (l_a3BCx :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromThenToSym2 (l_a3BCu :: a6989586621679868770) (l_a3BCv :: a6989586621679868770) (l_a3BCt :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromThenToSym3 (t_a3BCq :: a6989586621679868770) (t_a3BCr :: a6989586621679868770) (t_a3BCs :: a6989586621679868770) = EnumFromThenTo t_a3BCq t_a3BCr t_a3BCs
data EnumFromToSym0 (l_a3BCl :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromToSym1 (l_a3BCj :: a6989586621679868770) (l_a3BCi :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromToSym2 (t_a3BCg :: a6989586621679868770) (t_a3BCh :: a6989586621679868770) = EnumFromTo t_a3BCg t_a3BCh
data FromEnumSym0 (l_a3BCc :: TyFun a6989586621679868770 Nat)
type FromEnumSym1 (t_a3BCb :: a6989586621679868770) = FromEnum t_a3BCb
data ToEnumSym0 (l_a3BC8 :: TyFun Nat a6989586621679868770)
type ToEnumSym1 (t_a3BC7 :: Nat) = ToEnum t_a3BC7

-- | Exponentiation of type-level naturals.
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}

-- | The <tt>shows</tt> functions return a function that prepends the
--   output <a>String</a> to an existing <a>String</a>. This allows
--   constant-time concatenation of results using function composition.
type ShowS = String -> String

-- | GHC currently has no notion of type-level <a>Char</a>s, so we fake
--   them with single-character <a>Symbol</a>s.
type SChar = Symbol

-- | <a>show</a>, but with an extra underscore so that its promoted
--   counterpart (<a>Show_</a>) will not clash with the <tt>Show</tt>
--   class.
show_ :: Show a => a -> String

-- | The promoted analogue of '(&lt;&gt;)' for <a>Symbol</a>s. This uses
--   the special <a>AppendSymbol</a> type family from <a>GHC.TypeLits</a>.
type a <> b = AppendSymbol a b
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a1e33 :: TyFun Bool Bool)
type NotSym1 (t_a1e32 :: Bool) = Not t_a1e32
data (&&@#@$) (l_a1dWX :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1dWV :: Bool) (l_a1dWU :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1dWS :: Bool) (t_a1dWT :: Bool) = (&&) t_a1dWS t_a1dWT
data (||@#@$) (l_a1e09 :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e07 :: Bool) (l_a1e06 :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e04 :: Bool) (t_a1e05 :: Bool) = (||) t_a1e04 t_a1e05
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a12Fj :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Fi :: a3530822107858468865) = Just t_a12Fi
data Maybe_Sym0 (l_a1In8 :: TyFun b6989586621679418662 (TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type) -> Type))
data Maybe_Sym1 (l_a1In6 :: b6989586621679418662) (l_a1In5 :: TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type))
data Maybe_Sym2 (l_a1In2 :: b6989586621679418662) (l_a1In3 :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (l_a1In1 :: TyFun (Maybe a6989586621679418663) b6989586621679418662)
type Maybe_Sym3 (t_a1ImY :: b6989586621679418662) (t_a1ImZ :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (t_a1In0 :: Maybe a6989586621679418663) = Maybe_ t_a1ImY t_a1ImZ t_a1In0
data LeftSym0 (l_a12FV :: TyFun a6989586621679083011 (Either a6989586621679083011 b6989586621679083012))
type LeftSym1 (t_a12FU :: a6989586621679083011) = Left t_a12FU
data RightSym0 (l_a12FY :: TyFun b6989586621679083012 (Either a6989586621679083011 b6989586621679083012))
type RightSym1 (t_a12FX :: b6989586621679083012) = Right t_a12FX
data Either_Sym0 (l_a3TXz :: TyFun (TyFun a6989586621679939843 c6989586621679939844 -> Type) (TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type) -> Type))
data Either_Sym1 (l_a3TXx :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXw :: TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type))
data Either_Sym2 (l_a3TXt :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXu :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (l_a3TXs :: TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844)
type Either_Sym3 (t_a3TXp :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (t_a3TXq :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (t_a3TXr :: Either a6989586621679939843 b6989586621679939845) = Either_ t_a3TXp t_a3TXq t_a3TXr
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data FstSym0 (l_a1cQt :: TyFun (a6989586621679297391, b6989586621679297392) a6989586621679297391)
type FstSym1 (t_a1cQs :: (a6989586621679297391, b6989586621679297392)) = Fst t_a1cQs
data SndSym0 (l_a1cQo :: TyFun (a6989586621679297389, b6989586621679297390) b6989586621679297390)
type SndSym1 (t_a1cQn :: (a6989586621679297389, b6989586621679297390)) = Snd t_a1cQn
data CurrySym0 (l_a1cQf :: TyFun (TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type) -> Type))
data CurrySym1 (l_a1cQd :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQc :: TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type))
data CurrySym2 (l_a1cQ9 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQa :: a6989586621679297386) (l_a1cQ8 :: TyFun b6989586621679297387 c6989586621679297388)
type CurrySym3 (t_a1cQ5 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (t_a1cQ6 :: a6989586621679297386) (t_a1cQ7 :: b6989586621679297387) = Curry t_a1cQ5 t_a1cQ6 t_a1cQ7
data UncurrySym0 (l_a1cQC :: TyFun (TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385 -> Type))
data UncurrySym1 (l_a1cQA :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (l_a1cQz :: TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385)
type UncurrySym2 (t_a1cQx :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (t_a1cQy :: (a6989586621679297383, b6989586621679297384)) = Uncurry t_a1cQx t_a1cQy
data ErrorSym0 (l_a1BXY :: TyFun k06989586621679393131 k6989586621679393132)
type ErrorSym1 (t_a1BXX :: k06989586621679393131) = Error t_a1BXX
type UndefinedSym0 = Undefined
data (^@#@$) (l_a1C2C :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1C2A :: Nat) (l_a1C2z :: TyFun Nat Nat)
type (^@#@$$$) (t_a1C2x :: Nat) (t_a1C2y :: Nat) = (^) t_a1C2x t_a1C2y
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data Show_Sym0 (l_a2Srz :: TyFun a6989586621679693692 Symbol)
type Show_Sym1 (t_a2Sry :: a6989586621679693692) = Show_ t_a2Sry
data ShowListSym0 (l_a2SrI :: TyFun [a6989586621679693692] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SrG :: [a6989586621679693692]) (l_a2SrF :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SrD :: [a6989586621679693692]) (t_a2SrE :: Symbol) = ShowList t_a2SrD t_a2SrE
data (<>@#@$) l_a1C6v
data (<>@#@$$) (l_a1C6t :: Symbol) l_a1C6s
type (<>@#@$$$) (t_a1C6q :: Symbol) (t_a1C6r :: Symbol) = (<>) t_a1C6q t_a1C6r
data ShowsSym0 (l_a2Sra :: TyFun a6989586621679693677 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2Sr8 :: a6989586621679693677) (l_a2Sr7 :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2Sr5 :: a6989586621679693677) (t_a2Sr6 :: Symbol) = Shows t_a2Sr5 t_a2Sr6
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data IdSym0 (l_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data ($!@#@$) (l_a1MNK :: TyFun (TyFun a6989586621679435589 b6989586621679435590 -> Type) (TyFun a6989586621679435589 b6989586621679435590 -> Type))
data ($!@#@$$) (l_a1MNI :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (l_a1MNH :: TyFun a6989586621679435589 b6989586621679435590)
type ($!@#@$$$) (t_a1MNF :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (t_a1MNG :: a6989586621679435589) = ($!) t_a1MNF t_a1MNG
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
data AsTypeOfSym0 (l_a1MPq :: TyFun a6989586621679435593 (TyFun a6989586621679435593 a6989586621679435593 -> Type))
data AsTypeOfSym1 (l_a1MPo :: a6989586621679435593) (l_a1MPn :: TyFun a6989586621679435593 a6989586621679435593)
type AsTypeOfSym2 (t_a1MPl :: a6989586621679435593) (t_a1MPm :: a6989586621679435593) = AsTypeOf t_a1MPl t_a1MPm
data SeqSym0 (l_a1MNA :: TyFun a6989586621679435587 (TyFun b6989586621679435588 b6989586621679435588 -> Type))
data SeqSym1 (l_a1MNy :: a6989586621679435587) (l_a1MNx :: TyFun b6989586621679435588 b6989586621679435588)
type SeqSym2 (t_a1MNv :: a6989586621679435587) (t_a1MNw :: b6989586621679435588) = Seq t_a1MNv t_a1MNw
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz
type NilSym0 = '[]
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data ReverseSym0 (l_a1VQP :: TyFun [a6989586621679458489] [a6989586621679458489])
type ReverseSym1 (t_a1VQO :: [a6989586621679458489]) = Reverse t_a1VQO
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data HeadSym0 (l_a1VT5 :: TyFun [a6989586621679458494] a6989586621679458494)
type HeadSym1 (t_a1VT4 :: [a6989586621679458494]) = Head t_a1VT4
data LastSym0 (l_a1VSY :: TyFun [a6989586621679458493] a6989586621679458493)
type LastSym1 (t_a1VSX :: [a6989586621679458493]) = Last t_a1VSX
data TailSym0 (l_a1VST :: TyFun [a6989586621679458492] [a6989586621679458492])
type TailSym1 (t_a1VSS :: [a6989586621679458492]) = Tail t_a1VSS
data InitSym0 (l_a1VSp :: TyFun [a6989586621679458491] [a6989586621679458491])
type InitSym1 (t_a1VSo :: [a6989586621679458491]) = Init t_a1VSo
data NullSym0 (l_a1VRo :: TyFun [a6989586621679458490] Bool)
type NullSym1 (t_a1VRn :: [a6989586621679458490]) = Null t_a1VRn
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
data Foldl1Sym0 (l_a1VF7 :: TyFun (TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (TyFun [a6989586621679458480] a6989586621679458480 -> Type))
data Foldl1Sym1 (l_a1VF5 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (l_a1VF4 :: TyFun [a6989586621679458480] a6989586621679458480)
type Foldl1Sym2 (t_a1VF2 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (t_a1VF3 :: [a6989586621679458480]) = Foldl1 t_a1VF2 t_a1VF3
data FoldrSym0 (l_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data Foldr1Sym0 (l_a1VEA :: TyFun (TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (TyFun [a6989586621679458478] a6989586621679458478 -> Type))
data Foldr1Sym1 (l_a1VEy :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (l_a1VEx :: TyFun [a6989586621679458478] a6989586621679458478)
type Foldr1Sym2 (t_a1VEv :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (t_a1VEw :: [a6989586621679458478]) = Foldr1 t_a1VEv t_a1VEw
data ConcatSym0 (l_a1VEr :: TyFun [[a6989586621679458477]] [a6989586621679458477])
type ConcatSym1 (t_a1VEq :: [[a6989586621679458477]]) = Concat t_a1VEq
data ConcatMapSym0 (l_a1VEg :: TyFun (TyFun a6989586621679458475 [b6989586621679458476] -> Type) (TyFun [a6989586621679458475] [b6989586621679458476] -> Type))
data ConcatMapSym1 (l_a1VEe :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (l_a1VEd :: TyFun [a6989586621679458475] [b6989586621679458476])
type ConcatMapSym2 (t_a1VEb :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (t_a1VEc :: [a6989586621679458475]) = ConcatMap t_a1VEb t_a1VEc
data MaximumBySym0 (l_a1VFj :: TyFun (TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (TyFun [a6989586621679458406] a6989586621679458406 -> Type))
data MaximumBySym1 (l_a1VFh :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (l_a1VFg :: TyFun [a6989586621679458406] a6989586621679458406)
type MaximumBySym2 (t_a1VFe :: TyFun a6989586621679458406 (TyFun a6989586621679458406 Ordering -> Type) -> Type) (t_a1VFf :: [a6989586621679458406]) = MaximumBy t_a1VFe t_a1VFf
data MinimumBySym0 (l_a1VGF :: TyFun (TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (TyFun [a6989586621679458405] a6989586621679458405 -> Type))
data MinimumBySym1 (l_a1VGD :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (l_a1VGC :: TyFun [a6989586621679458405] a6989586621679458405)
type MinimumBySym2 (t_a1VGA :: TyFun a6989586621679458405 (TyFun a6989586621679458405 Ordering -> Type) -> Type) (t_a1VGB :: [a6989586621679458405]) = MinimumBy t_a1VGA t_a1VGB
data AndSym0 (l_a1VE6 :: TyFun [Bool] Bool)
type AndSym1 (t_a1VE5 :: [Bool]) = And t_a1VE5
data OrSym0 (l_a1VE0 :: TyFun [Bool] Bool)
type OrSym1 (t_a1VDZ :: [Bool]) = Or t_a1VDZ
data AnySym0 (l_a1VBw :: TyFun (TyFun a6989586621679458473 Bool -> Type) (TyFun [a6989586621679458473] Bool -> Type))
data AnySym1 (l_a1VBu :: TyFun a6989586621679458473 Bool -> Type) (l_a1VBt :: TyFun [a6989586621679458473] Bool)
type AnySym2 (t_a1VBr :: TyFun a6989586621679458473 Bool -> Type) (t_a1VBs :: [a6989586621679458473]) = Any t_a1VBr t_a1VBs
data AllSym0 (l_a1VDS :: TyFun (TyFun a6989586621679458474 Bool -> Type) (TyFun [a6989586621679458474] Bool -> Type))
data AllSym1 (l_a1VDQ :: TyFun a6989586621679458474 Bool -> Type) (l_a1VDP :: TyFun [a6989586621679458474] Bool)
type AllSym2 (t_a1VDN :: TyFun a6989586621679458474 Bool -> Type) (t_a1VDO :: [a6989586621679458474]) = All t_a1VDN t_a1VDO
data ScanlSym0 (l_a1VB2 :: TyFun (TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type) -> Type))
data ScanlSym1 (l_a1VB0 :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAZ :: TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type))
data ScanlSym2 (l_a1VAW :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAX :: b6989586621679458471) (l_a1VAV :: TyFun [a6989586621679458472] [b6989586621679458471])
type ScanlSym3 (t_a1VAS :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (t_a1VAT :: b6989586621679458471) (t_a1VAU :: [a6989586621679458472]) = Scanl t_a1VAS t_a1VAT t_a1VAU
data Scanl1Sym0 (l_a1VBk :: TyFun (TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (TyFun [a6989586621679458470] [a6989586621679458470] -> Type))
data Scanl1Sym1 (l_a1VBi :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (l_a1VBh :: TyFun [a6989586621679458470] [a6989586621679458470])
type Scanl1Sym2 (t_a1VBf :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (t_a1VBg :: [a6989586621679458470]) = Scanl1 t_a1VBf t_a1VBg
data ScanrSym0 (l_a1VAk :: TyFun (TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type) -> Type))
data ScanrSym1 (l_a1VAi :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAh :: TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type))
data ScanrSym2 (l_a1VAe :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAf :: b6989586621679458469) (l_a1VAd :: TyFun [a6989586621679458468] [b6989586621679458469])
type ScanrSym3 (t_a1VAa :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (t_a1VAb :: b6989586621679458469) (t_a1VAc :: [a6989586621679458468]) = Scanr t_a1VAa t_a1VAb t_a1VAc
data Scanr1Sym0 (l_a1Vzk :: TyFun (TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (TyFun [a6989586621679458467] [a6989586621679458467] -> Type))
data Scanr1Sym1 (l_a1Vzi :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (l_a1Vzh :: TyFun [a6989586621679458467] [a6989586621679458467])
type Scanr1Sym2 (t_a1Vzf :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (t_a1Vzg :: [a6989586621679458467]) = Scanr1 t_a1Vzf t_a1Vzg
data ElemSym0 (l_a1Vsr :: TyFun a6989586621679458453 (TyFun [a6989586621679458453] Bool -> Type))
data ElemSym1 (l_a1Vsp :: a6989586621679458453) (l_a1Vso :: TyFun [a6989586621679458453] Bool)
type ElemSym2 (t_a1Vsm :: a6989586621679458453) (t_a1Vsn :: [a6989586621679458453]) = Elem t_a1Vsm t_a1Vsn
data NotElemSym0 (l_a1Vsf :: TyFun a6989586621679458452 (TyFun [a6989586621679458452] Bool -> Type))
data NotElemSym1 (l_a1Vsd :: a6989586621679458452) (l_a1Vsc :: TyFun [a6989586621679458452] Bool)
type NotElemSym2 (t_a1Vsa :: a6989586621679458452) (t_a1Vsb :: [a6989586621679458452]) = NotElem t_a1Vsa t_a1Vsb
data ZipSym0 (l_a1Vqx :: TyFun [a6989586621679458450] (TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)] -> Type))
data ZipSym1 (l_a1Vqv :: [a6989586621679458450]) (l_a1Vqu :: TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)])
type ZipSym2 (t_a1Vqs :: [a6989586621679458450]) (t_a1Vqt :: [b6989586621679458451]) = Zip t_a1Vqs t_a1Vqt
data Zip3Sym0 (l_a1Vqh :: TyFun [a6989586621679458447] (TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type) -> Type))
data Zip3Sym1 (l_a1Vqf :: [a6989586621679458447]) (l_a1Vqe :: TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type))
data Zip3Sym2 (l_a1Vqb :: [a6989586621679458447]) (l_a1Vqc :: [b6989586621679458448]) (l_a1Vqa :: TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)])
type Zip3Sym3 (t_a1Vq7 :: [a6989586621679458447]) (t_a1Vq8 :: [b6989586621679458448]) (t_a1Vq9 :: [c6989586621679458449]) = Zip3 t_a1Vq7 t_a1Vq8 t_a1Vq9
data ZipWithSym0 (l_a1VpX :: TyFun (TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type) -> Type))
data ZipWithSym1 (l_a1VpV :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpU :: TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type))
data ZipWithSym2 (l_a1VpR :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpS :: [a6989586621679458444]) (l_a1VpQ :: TyFun [b6989586621679458445] [c6989586621679458446])
type ZipWithSym3 (t_a1VpN :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (t_a1VpO :: [a6989586621679458444]) (t_a1VpP :: [b6989586621679458445]) = ZipWith t_a1VpN t_a1VpO t_a1VpP
data ZipWith3Sym0 (l_a1VpA :: TyFun (TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1Vpy :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpx :: TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type))
data ZipWith3Sym2 (l_a1Vpu :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpv :: [a6989586621679458440]) (l_a1Vpt :: TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type))
data ZipWith3Sym3 (l_a1Vpp :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpq :: [a6989586621679458440]) (l_a1Vpr :: [b6989586621679458441]) (l_a1Vpo :: TyFun [c6989586621679458442] [d6989586621679458443])
data UnzipSym0 (l_a1VoR :: TyFun [(a6989586621679458438, b6989586621679458439)] ([a6989586621679458438], [b6989586621679458439]))
type UnzipSym1 (t_a1VoQ :: [(a6989586621679458438, b6989586621679458439)]) = Unzip t_a1VoQ
data UnlinesSym0 (l_a1VlR :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1VlQ :: [Symbol]) = Unlines t_a1VlQ
data UnwordsSym0 (l_a1Vlv :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1Vlu :: [Symbol]) = Unwords t_a1Vlu
data UntilSym0 (l_a46gf :: TyFun (TyFun a6989586621679987157 Bool -> Type) (TyFun (TyFun a6989586621679987157 a6989586621679987157 -> Type) (TyFun a6989586621679987157 a6989586621679987157 -> Type) -> Type))
data UntilSym1 (l_a46gd :: TyFun a6989586621679987157 Bool -> Type) (l_a46gc :: TyFun (TyFun a6989586621679987157 a6989586621679987157 -> Type) (TyFun a6989586621679987157 a6989586621679987157 -> Type))
data UntilSym2 (l_a46g9 :: TyFun a6989586621679987157 Bool -> Type) (l_a46ga :: TyFun a6989586621679987157 a6989586621679987157 -> Type) (l_a46g8 :: TyFun a6989586621679987157 a6989586621679987157)
type UntilSym3 (t_a46g5 :: TyFun a6989586621679987157 Bool -> Type) (t_a46g6 :: TyFun a6989586621679987157 a6989586621679987157 -> Type) (t_a46g7 :: a6989586621679987157) = Until t_a46g5 t_a46g6 t_a46g7
data LengthSym0 (l_a1V8K :: TyFun [a6989586621679458376] Nat)
type LengthSym1 (t_a1V8J :: [a6989586621679458376]) = Length t_a1V8J
data SumSym0 (l_a1V9d :: TyFun [a6989586621679458378] a6989586621679458378)
type SumSym1 (t_a1V9c :: [a6989586621679458378]) = Sum t_a1V9c
data ProductSym0 (l_a1V8P :: TyFun [a6989586621679458377] a6989586621679458377)
type ProductSym1 (t_a1V8O :: [a6989586621679458377]) = Product t_a1V8O
data ReplicateSym0 (l_a1V8s :: TyFun Nat (TyFun a6989586621679458375 [a6989586621679458375] -> Type))
data ReplicateSym1 (l_a1V8q :: Nat) (l_a1V8p :: TyFun a6989586621679458375 [a6989586621679458375])
type ReplicateSym2 (t_a1V8n :: Nat) (t_a1V8o :: a6989586621679458375) = Replicate t_a1V8n t_a1V8o
data TakeSym0 (l_a1Vbx :: TyFun Nat (TyFun [a6989586621679458391] [a6989586621679458391] -> Type))
data TakeSym1 (l_a1Vbv :: Nat) (l_a1Vbu :: TyFun [a6989586621679458391] [a6989586621679458391])
type TakeSym2 (t_a1Vbs :: Nat) (t_a1Vbt :: [a6989586621679458391]) = Take t_a1Vbs t_a1Vbt
data DropSym0 (l_a1Vb5 :: TyFun Nat (TyFun [a6989586621679458390] [a6989586621679458390] -> Type))
data DropSym1 (l_a1Vb3 :: Nat) (l_a1Vb2 :: TyFun [a6989586621679458390] [a6989586621679458390])
type DropSym2 (t_a1Vb0 :: Nat) (t_a1Vb1 :: [a6989586621679458390]) = Drop t_a1Vb0 t_a1Vb1
data SplitAtSym0 (l_a1VbZ :: TyFun Nat (TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]) -> Type))
data SplitAtSym1 (l_a1VbX :: Nat) (l_a1VbW :: TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]))
type SplitAtSym2 (t_a1VbU :: Nat) (t_a1VbV :: [a6989586621679458389]) = SplitAt t_a1VbU t_a1VbV
data TakeWhileSym0 (l_a1VgV :: TyFun (TyFun a6989586621679458396 Bool -> Type) (TyFun [a6989586621679458396] [a6989586621679458396] -> Type))
data TakeWhileSym1 (l_a1VgT :: TyFun a6989586621679458396 Bool -> Type) (l_a1VgS :: TyFun [a6989586621679458396] [a6989586621679458396])
type TakeWhileSym2 (t_a1VgQ :: TyFun a6989586621679458396 Bool -> Type) (t_a1VgR :: [a6989586621679458396]) = TakeWhile t_a1VgQ t_a1VgR
data DropWhileSym0 (l_a1Vgg :: TyFun (TyFun a6989586621679458395 Bool -> Type) (TyFun [a6989586621679458395] [a6989586621679458395] -> Type))
data DropWhileSym1 (l_a1Vge :: TyFun a6989586621679458395 Bool -> Type) (l_a1Vgd :: TyFun [a6989586621679458395] [a6989586621679458395])
type DropWhileSym2 (t_a1Vgb :: TyFun a6989586621679458395 Bool -> Type) (t_a1Vgc :: [a6989586621679458395]) = DropWhile t_a1Vgb t_a1Vgc
data SpanSym0 (l_a1VdF :: TyFun (TyFun a6989586621679458393 Bool -> Type) (TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]) -> Type))
data SpanSym1 (l_a1VdD :: TyFun a6989586621679458393 Bool -> Type) (l_a1VdC :: TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]))
type SpanSym2 (t_a1VdA :: TyFun a6989586621679458393 Bool -> Type) (t_a1VdB :: [a6989586621679458393]) = Span t_a1VdA t_a1VdB
data BreakSym0 (l_a1Vca :: TyFun (TyFun a6989586621679458392 Bool -> Type) (TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]) -> Type))
data BreakSym1 (l_a1Vc8 :: TyFun a6989586621679458392 Bool -> Type) (l_a1Vc7 :: TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]))
type BreakSym2 (t_a1Vc5 :: TyFun a6989586621679458392 Bool -> Type) (t_a1Vc6 :: [a6989586621679458392]) = Break t_a1Vc5 t_a1Vc6
data LookupSym0 (l_a1Vav :: TyFun a6989586621679458381 (TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382) -> Type))
data LookupSym1 (l_a1Vat :: a6989586621679458381) (l_a1Vas :: TyFun [(a6989586621679458381, b6989586621679458382)] (Maybe b6989586621679458382))
type LookupSym2 (t_a1Vaq :: a6989586621679458381) (t_a1Var :: [(a6989586621679458381, b6989586621679458382)]) = Lookup t_a1Vaq t_a1Var
data FilterSym0 (l_a1Vhn :: TyFun (TyFun a6989586621679458404 Bool -> Type) (TyFun [a6989586621679458404] [a6989586621679458404] -> Type))
data FilterSym1 (l_a1Vhl :: TyFun a6989586621679458404 Bool -> Type) (l_a1Vhk :: TyFun [a6989586621679458404] [a6989586621679458404])
type FilterSym2 (t_a1Vhi :: TyFun a6989586621679458404 Bool -> Type) (t_a1Vhj :: [a6989586621679458404]) = Filter t_a1Vhi t_a1Vhj
data (!!@#@$) (l_a1V80 :: TyFun [a6989586621679458373] (TyFun Nat a6989586621679458373 -> Type))
data (!!@#@$$) (l_a1V7Y :: [a6989586621679458373]) (l_a1V7X :: TyFun Nat a6989586621679458373)
type (!!@#@$$$) (t_a1V7V :: [a6989586621679458373]) (t_a1V7W :: Nat) = (!!) t_a1V7V t_a1V7W


-- | 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_aj2X b_aj2Y -> 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)

-- | Type-level "not". An injective type family since <tt>4.10.0.0</tt>.

-- | Negation of a singleton
sNot :: Sing a -> Sing (Not a)

-- | Type-level "and"

-- | Type-level "or"

-- | Conjunction of singletons
(%&&) :: Sing a -> Sing b -> Sing (a && b)
infixr 3 %&&

-- | Disjunction of singletons
(%||) :: Sing a -> Sing b -> Sing (a || b)
infixr 2 %||
sOtherwise :: Sing (OtherwiseSym0 :: Bool)

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.

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

-- | The promotion of <a>undefined</a>.

-- | The singleton for <a>undefined</a>.
sUndefined :: a
class SBounded a_a3ApV
sMinBound :: SBounded a_a3ApV => Sing (MinBoundSym0 :: a_a3ApV)
sMaxBound :: SBounded a_a3ApV => Sing (MaxBoundSym0 :: a_a3ApV)
class PBounded (a_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
type MaxBoundSym0 = MaxBound
type MinBoundSym0 = MinBound
class SEnum a_a3Bsu
sToEnum :: forall (t_a3BGt :: Nat). SEnum a_a3Bsu => Sing t_a3BGt -> Sing (Apply ToEnumSym0 t_a3BGt :: a_a3Bsu)
sFromEnum :: forall (t_a3BGu :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGu -> Sing (Apply FromEnumSym0 t_a3BGu :: Nat)
sEnumFromTo :: forall (t_a3BGv :: a_a3Bsu) (t_a3BGw :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGv -> Sing t_a3BGw -> Sing (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu])
sEnumFromThenTo :: forall (t_a3BGx :: a_a3Bsu) (t_a3BGy :: a_a3Bsu) (t_a3BGz :: a_a3Bsu). SEnum a_a3Bsu => Sing t_a3BGx -> Sing t_a3BGy -> Sing t_a3BGz -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu])
sEnumFromTo :: forall (t_a3BGv :: a_a3Bsu) (t_a3BGw :: a_a3Bsu). (SEnum a_a3Bsu, (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu]) ~ Apply (Apply EnumFromTo_6989586621679869448Sym0 t_a3BGv) t_a3BGw) => Sing t_a3BGv -> Sing t_a3BGw -> Sing (Apply (Apply EnumFromToSym0 t_a3BGv) t_a3BGw :: [a_a3Bsu])
sEnumFromThenTo :: forall (t_a3BGx :: a_a3Bsu) (t_a3BGy :: a_a3Bsu) (t_a3BGz :: a_a3Bsu). (SEnum a_a3Bsu, (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu]) ~ Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 t_a3BGx) t_a3BGy) t_a3BGz) => Sing t_a3BGx -> Sing t_a3BGy -> Sing t_a3BGz -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BGx) t_a3BGy) t_a3BGz :: [a_a3Bsu])
class PEnum (a_a3Bsu :: Type) where {
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type family EnumFromTo (arg_a3BCe :: a_a3Bsu) (arg_a3BCf :: a_a3Bsu) :: [a_a3Bsu];
    type family EnumFromThenTo (arg_a3BCn :: a_a3Bsu) (arg_a3BCo :: a_a3Bsu) (arg_a3BCp :: a_a3Bsu) :: [a_a3Bsu];
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
data EnumFromThenToSym0 (l_a3BCA :: TyFun a6989586621679868770 (TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BCy :: a6989586621679868770) (l_a3BCx :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromThenToSym2 (l_a3BCu :: a6989586621679868770) (l_a3BCv :: a6989586621679868770) (l_a3BCt :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromThenToSym3 (t_a3BCq :: a6989586621679868770) (t_a3BCr :: a6989586621679868770) (t_a3BCs :: a6989586621679868770) = EnumFromThenTo t_a3BCq t_a3BCr t_a3BCs
data EnumFromToSym0 (l_a3BCl :: TyFun a6989586621679868770 (TyFun a6989586621679868770 [a6989586621679868770] -> Type))
data EnumFromToSym1 (l_a3BCj :: a6989586621679868770) (l_a3BCi :: TyFun a6989586621679868770 [a6989586621679868770])
type EnumFromToSym2 (t_a3BCg :: a6989586621679868770) (t_a3BCh :: a6989586621679868770) = EnumFromTo t_a3BCg t_a3BCh
data FromEnumSym0 (l_a3BCc :: TyFun a6989586621679868770 Nat)
type FromEnumSym1 (t_a3BCb :: a6989586621679868770) = FromEnum t_a3BCb
data ToEnumSym0 (l_a3BC8 :: TyFun Nat a6989586621679868770)
type ToEnumSym1 (t_a3BC7 :: Nat) = ToEnum t_a3BC7

-- | Exponentiation of type-level naturals.

-- | The singleton analogue of '(TL.^)' for <a>Nat</a>s.
(%^) :: Sing a -> Sing b -> Sing (a ^ b)
infixr 8 %^
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}
class SShow a_a2RUE
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). SShow a_a2RUE => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). SShow a_a2RUE => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). SShow a_a2RUE => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)
sShowsPrec :: forall (t_a2Syg :: Nat) (t_a2Syh :: a_a2RUE) (t_a2Syi :: Symbol). (SShow a_a2RUE, (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 t_a2Syg) t_a2Syh) t_a2Syi) => Sing t_a2Syg -> Sing t_a2Syh -> Sing t_a2Syi -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2Syg) t_a2Syh) t_a2Syi :: Symbol)
sShow_ :: forall (t_a2Syj :: a_a2RUE). (SShow a_a2RUE, (Apply Show_Sym0 t_a2Syj :: Symbol) ~ Apply Show__6989586621679695784Sym0 t_a2Syj) => Sing t_a2Syj -> Sing (Apply Show_Sym0 t_a2Syj :: Symbol)
sShowList :: forall (t_a2Syk :: [a_a2RUE]) (t_a2Syl :: Symbol). (SShow a_a2RUE, (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol) ~ Apply (Apply ShowList_6989586621679695802Sym0 t_a2Syk) t_a2Syl) => Sing t_a2Syk -> Sing t_a2Syl -> Sing (Apply (Apply ShowListSym0 t_a2Syk) t_a2Syl :: Symbol)

-- | The <tt>shows</tt> functions return a function that prepends the
--   output <a>String</a> to an existing <a>String</a>. This allows
--   constant-time concatenation of results using function composition.
type ShowS = String -> String

-- | GHC currently has no notion of type-level <a>Char</a>s, so we fake
--   them with single-character <a>Symbol</a>s.
type SChar = Symbol

-- | The promoted analogue of '(&lt;&gt;)' for <a>Symbol</a>s. This uses
--   the special <a>AppendSymbol</a> type family from <a>GHC.TypeLits</a>.
type a <> b = AppendSymbol a b

-- | The singleton analogue of '(&lt;&gt;)' for <a>Symbol</a>s.
(%<>) :: Sing a -> Sing b -> Sing (a <> b)
infixr 6 %<>
sShows :: forall (t_a2SxU :: a_a2RUp) (t_a2SxV :: Symbol). SShow a_a2RUp => Sing t_a2SxU -> Sing t_a2SxV -> Sing (Apply (Apply ShowsSym0 t_a2SxU) t_a2SxV :: Symbol)
sShowChar :: forall (t_a2SxK :: Symbol) (t_a2SxL :: Symbol). Sing t_a2SxK -> Sing t_a2SxL -> Sing (Apply (Apply ShowCharSym0 t_a2SxK) t_a2SxL :: Symbol)
sShowString :: forall (t_a2SxH :: Symbol) (t_a2SxI :: Symbol). Sing t_a2SxH -> Sing t_a2SxI -> Sing (Apply (Apply ShowStringSym0 t_a2SxH) t_a2SxI :: Symbol)
sShowParen :: forall (t_a2SxM :: Bool) (t_a2SxN :: TyFun Symbol Symbol -> Type) (t_a2SxO :: Symbol). Sing t_a2SxM -> Sing t_a2SxN -> Sing t_a2SxO -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SxM) t_a2SxN) t_a2SxO :: Symbol)
sId :: forall (t_a1MQW :: a_a1MLU). Sing t_a1MQW -> Sing (Apply IdSym0 t_a1MQW :: a_a1MLU)
sConst :: forall (t_a1MQS :: a_a1MLS) (t_a1MQT :: b_a1MLT). Sing t_a1MQS -> Sing t_a1MQT -> Sing (Apply (Apply ConstSym0 t_a1MQS) t_a1MQT :: a_a1MLS)
(%.) :: forall (t_a1MQP :: TyFun b_a1MLP c_a1MLQ -> Type) (t_a1MQQ :: TyFun a_a1MLR b_a1MLP -> Type) (t_a1MQR :: a_a1MLR). Sing t_a1MQP -> Sing t_a1MQQ -> Sing t_a1MQR -> Sing (Apply (Apply (Apply (.@#@$) t_a1MQP) t_a1MQQ) t_a1MQR :: c_a1MLQ)
infixr 9 %.
(%$) :: forall (t_a1MQK :: TyFun a_a1MLJ b_a1MLK -> Type) (t_a1MQL :: a_a1MLJ). Sing t_a1MQK -> Sing t_a1MQL -> Sing (Apply (Apply ($@#@$) t_a1MQK) t_a1MQL :: b_a1MLK)
infixr 0 %$
(%$!) :: forall (t_a1MQI :: TyFun a_a1MLH b_a1MLI -> Type) (t_a1MQJ :: a_a1MLH). Sing t_a1MQI -> Sing t_a1MQJ -> Sing (Apply (Apply ($!@#@$) t_a1MQI) t_a1MQJ :: b_a1MLI)
infixr 0 %$!
sFlip :: forall (t_a1MQM :: TyFun a_a1MLM (TyFun b_a1MLN c_a1MLO -> Type) -> Type) (t_a1MQN :: b_a1MLN) (t_a1MQO :: a_a1MLM). Sing t_a1MQM -> Sing t_a1MQN -> Sing t_a1MQO -> Sing (Apply (Apply (Apply FlipSym0 t_a1MQM) t_a1MQN) t_a1MQO :: c_a1MLO)
sAsTypeOf :: forall (t_a1MQU :: a_a1MLL) (t_a1MQV :: a_a1MLL). Sing t_a1MQU -> Sing t_a1MQV -> Sing (Apply (Apply AsTypeOfSym0 t_a1MQU) t_a1MQV :: a_a1MLL)
sSeq :: forall (t_a1MQG :: a_a1MLF) (t_a1MQH :: b_a1MLG). Sing t_a1MQG -> Sing t_a1MQH -> Sing (Apply (Apply SeqSym0 t_a1MQG) t_a1MQH :: b_a1MLG)
infixr 0 `sSeq`
sMap :: forall (t_a1MQZ :: TyFun a_a1MLW b_a1MLX -> Type) (t_a1MR0 :: [a_a1MLW]). Sing t_a1MQZ -> Sing t_a1MR0 -> Sing (Apply (Apply MapSym0 t_a1MQZ) t_a1MR0 :: [b_a1MLX])
(%++) :: forall (t_a1MQX :: [a_a1MLV]) (t_a1MQY :: [a_a1MLV]). Sing t_a1MQX -> Sing t_a1MQY -> Sing (Apply (Apply (++@#@$) t_a1MQX) t_a1MQY :: [a_a1MLV])
infixr 5 %++
sHead :: forall (t_a1VVZ :: [a_a1SJ8]). Sing t_a1VVZ -> Sing (Apply HeadSym0 t_a1VVZ :: a_a1SJ8)
sLast :: forall (t_a1VVY :: [a_a1SJ7]). Sing t_a1VVY -> Sing (Apply LastSym0 t_a1VVY :: a_a1SJ7)
sTail :: forall (t_a1VVX :: [a_a1SJ6]). Sing t_a1VVX -> Sing (Apply TailSym0 t_a1VVX :: [a_a1SJ6])
sInit :: forall (t_a1VVW :: [a_a1SJ5]). Sing t_a1VVW -> Sing (Apply InitSym0 t_a1VVW :: [a_a1SJ5])
sNull :: forall (t_a1VVT :: [a_a1SJ4]). Sing t_a1VVT -> Sing (Apply NullSym0 t_a1VVT :: Bool)
sReverse :: forall (t_a1VVQ :: [a_a1SJ3]). Sing t_a1VVQ -> Sing (Apply ReverseSym0 t_a1VVQ :: [a_a1SJ3])
sFoldl :: forall (t_a15ES :: TyFun b_a15Dw (TyFun a_a15Dv b_a15Dw -> Type) -> Type) (t_a15ET :: b_a15Dw) (t_a15EU :: [a_a15Dv]). Sing t_a15ES -> Sing t_a15ET -> Sing t_a15EU -> Sing (Apply (Apply (Apply FoldlSym0 t_a15ES) t_a15ET) t_a15EU :: b_a15Dw)
sFoldl1 :: forall (t_a1VVu :: TyFun a_a1SIU (TyFun a_a1SIU a_a1SIU -> Type) -> Type) (t_a1VVv :: [a_a1SIU]). Sing t_a1VVu -> Sing t_a1VVv -> Sing (Apply (Apply Foldl1Sym0 t_a1VVu) t_a1VVv :: a_a1SIU)
sFoldr :: forall (t_a1MR1 :: TyFun a_a1MLY (TyFun b_a1MLZ b_a1MLZ -> Type) -> Type) (t_a1MR2 :: b_a1MLZ) (t_a1MR3 :: [a_a1MLY]). Sing t_a1MR1 -> Sing t_a1MR2 -> Sing t_a1MR3 -> Sing (Apply (Apply (Apply FoldrSym0 t_a1MR1) t_a1MR2) t_a1MR3 :: b_a1MLZ)
sFoldr1 :: forall (t_a1VVs :: TyFun a_a1SIS (TyFun a_a1SIS a_a1SIS -> Type) -> Type) (t_a1VVt :: [a_a1SIS]). Sing t_a1VVs -> Sing t_a1VVt -> Sing (Apply (Apply Foldr1Sym0 t_a1VVs) t_a1VVt :: a_a1SIS)
sAnd :: forall (t_a1VVo :: [Bool]). Sing t_a1VVo -> Sing (Apply AndSym0 t_a1VVo :: Bool)
sOr :: forall (t_a1VVn :: [Bool]). Sing t_a1VVn -> Sing (Apply OrSym0 t_a1VVn :: Bool)
sAny :: forall (t_a1VVc :: TyFun a_a1SIN Bool -> Type) (t_a1VVd :: [a_a1SIN]). Sing t_a1VVc -> Sing t_a1VVd -> Sing (Apply (Apply AnySym0 t_a1VVc) t_a1VVd :: Bool)
sAll :: forall (t_a1VVl :: TyFun a_a1SIO Bool -> Type) (t_a1VVm :: [a_a1SIO]). Sing t_a1VVl -> Sing t_a1VVm -> Sing (Apply (Apply AllSym0 t_a1VVl) t_a1VVm :: Bool)
sConcat :: forall (t_a1VVr :: [[a_a1SIR]]). Sing t_a1VVr -> Sing (Apply ConcatSym0 t_a1VVr :: [a_a1SIR])
sConcatMap :: forall (t_a1VVp :: TyFun a_a1SIP [b_a1SIQ] -> Type) (t_a1VVq :: [a_a1SIP]). Sing t_a1VVp -> Sing t_a1VVq -> Sing (Apply (Apply ConcatMapSym0 t_a1VVp) t_a1VVq :: [b_a1SIQ])
sScanl :: forall (t_a1VV7 :: TyFun b_a1SIL (TyFun a_a1SIM b_a1SIL -> Type) -> Type) (t_a1VV8 :: b_a1SIL) (t_a1VV9 :: [a_a1SIM]). Sing t_a1VV7 -> Sing t_a1VV8 -> Sing t_a1VV9 -> Sing (Apply (Apply (Apply ScanlSym0 t_a1VV7) t_a1VV8) t_a1VV9 :: [b_a1SIL])
sScanl1 :: forall (t_a1VVa :: TyFun a_a1SIK (TyFun a_a1SIK a_a1SIK -> Type) -> Type) (t_a1VVb :: [a_a1SIK]). Sing t_a1VVa -> Sing t_a1VVb -> Sing (Apply (Apply Scanl1Sym0 t_a1VVa) t_a1VVb :: [a_a1SIK])
sScanr :: forall (t_a1VV4 :: TyFun a_a1SII (TyFun b_a1SIJ b_a1SIJ -> Type) -> Type) (t_a1VV5 :: b_a1SIJ) (t_a1VV6 :: [a_a1SII]). Sing t_a1VV4 -> Sing t_a1VV5 -> Sing t_a1VV6 -> Sing (Apply (Apply (Apply ScanrSym0 t_a1VV4) t_a1VV5) t_a1VV6 :: [b_a1SIJ])
sScanr1 :: forall (t_a1VV2 :: TyFun a_a1SIH (TyFun a_a1SIH a_a1SIH -> Type) -> Type) (t_a1VV3 :: [a_a1SIH]). Sing t_a1VV2 -> Sing t_a1VV3 -> Sing (Apply (Apply Scanr1Sym0 t_a1VV2) t_a1VV3 :: [a_a1SIH])
sReplicate :: forall (t_a1VTp :: Nat) (t_a1VTq :: a_a1SHd). Sing t_a1VTp -> Sing t_a1VTq -> Sing (Apply (Apply ReplicateSym0 t_a1VTp) t_a1VTq :: [a_a1SHd])
sTake :: forall (t_a1VTD :: Nat) (t_a1VTE :: [a_a1SHt]). Sing t_a1VTD -> Sing t_a1VTE -> Sing (Apply (Apply TakeSym0 t_a1VTD) t_a1VTE :: [a_a1SHt])
sDrop :: forall (t_a1VTB :: Nat) (t_a1VTC :: [a_a1SHs]). Sing t_a1VTB -> Sing t_a1VTC -> Sing (Apply (Apply DropSym0 t_a1VTB) t_a1VTC :: [a_a1SHs])
sSplitAt :: forall (t_a1VTF :: Nat) (t_a1VTG :: [a_a1SHr]). Sing t_a1VTF -> Sing t_a1VTG -> Sing (Apply (Apply SplitAtSym0 t_a1VTF) t_a1VTG :: ([a_a1SHr], [a_a1SHr]))
sTakeWhile :: forall (t_a1VTQ :: TyFun a_a1SHy Bool -> Type) (t_a1VTR :: [a_a1SHy]). Sing t_a1VTQ -> Sing t_a1VTR -> Sing (Apply (Apply TakeWhileSym0 t_a1VTQ) t_a1VTR :: [a_a1SHy])
sSpan :: forall (t_a1VTJ :: TyFun a_a1SHv Bool -> Type) (t_a1VTK :: [a_a1SHv]). Sing t_a1VTJ -> Sing t_a1VTK -> Sing (Apply (Apply SpanSym0 t_a1VTJ) t_a1VTK :: ([a_a1SHv], [a_a1SHv]))
sBreak :: forall (t_a1VTH :: TyFun a_a1SHu Bool -> Type) (t_a1VTI :: [a_a1SHu]). Sing t_a1VTH -> Sing t_a1VTI -> Sing (Apply (Apply BreakSym0 t_a1VTH) t_a1VTI :: ([a_a1SHu], [a_a1SHu]))
sElem :: forall (t_a1VUN :: a_a1SIt) (t_a1VUO :: [a_a1SIt]). SEq a_a1SIt => Sing t_a1VUN -> Sing t_a1VUO -> Sing (Apply (Apply ElemSym0 t_a1VUN) t_a1VUO :: Bool)
infix 4 `sElem`
sNotElem :: forall (t_a1VUL :: a_a1SIs) (t_a1VUM :: [a_a1SIs]). SEq a_a1SIs => Sing t_a1VUL -> Sing t_a1VUM -> Sing (Apply (Apply NotElemSym0 t_a1VUL) t_a1VUM :: Bool)
infix 4 `sNotElem`
sLookup :: forall (t_a1VTz :: a_a1SHj) (t_a1VTA :: [(a_a1SHj, b_a1SHk)]). SEq a_a1SHj => Sing t_a1VTz -> Sing t_a1VTA -> Sing (Apply (Apply LookupSym0 t_a1VTz) t_a1VTA :: Maybe b_a1SHk)
sZip :: forall (t_a1VUB :: [a_a1SIq]) (t_a1VUC :: [b_a1SIr]). Sing t_a1VUB -> Sing t_a1VUC -> Sing (Apply (Apply ZipSym0 t_a1VUB) t_a1VUC :: [(a_a1SIq, b_a1SIr)])
sZip3 :: forall (t_a1VUy :: [a_a1SIn]) (t_a1VUz :: [b_a1SIo]) (t_a1VUA :: [c_a1SIp]). Sing t_a1VUy -> Sing t_a1VUz -> Sing t_a1VUA -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1VUy) t_a1VUz) t_a1VUA :: [(a_a1SIn, b_a1SIo, c_a1SIp)])
sZipWith :: forall (t_a1VUv :: TyFun a_a1SIk (TyFun b_a1SIl c_a1SIm -> Type) -> Type) (t_a1VUw :: [a_a1SIk]) (t_a1VUx :: [b_a1SIl]). Sing t_a1VUv -> Sing t_a1VUw -> Sing t_a1VUx -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1VUv) t_a1VUw) t_a1VUx :: [c_a1SIm])
sZipWith3 :: forall (t_a1VUr :: TyFun a_a1SIg (TyFun b_a1SIh (TyFun c_a1SIi d_a1SIj -> Type) -> Type) -> Type) (t_a1VUs :: [a_a1SIg]) (t_a1VUt :: [b_a1SIh]) (t_a1VUu :: [c_a1SIi]). Sing t_a1VUr -> Sing t_a1VUs -> Sing t_a1VUt -> Sing t_a1VUu -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1VUr) t_a1VUs) t_a1VUt) t_a1VUu :: [d_a1SIj])
sUnzip :: forall (t_a1VUq :: [(a_a1SIe, b_a1SIf)]). Sing t_a1VUq -> Sing (Apply UnzipSym0 t_a1VUq :: ([a_a1SIe], [b_a1SIf]))
sUnzip3 :: forall (t_a1VUp :: [(a_a1SIb, b_a1SIc, c_a1SId)]). Sing t_a1VUp -> Sing (Apply Unzip3Sym0 t_a1VUp :: ([a_a1SIb], [b_a1SIc], [c_a1SId]))
sUnlines :: forall (t_a1VUk :: [Symbol]). Sing t_a1VUk -> Sing (Apply UnlinesSym0 t_a1VUk :: Symbol)
sUnwords :: forall (t_a1VUj :: [Symbol]). Sing t_a1VUj -> Sing (Apply UnwordsSym0 t_a1VUj :: Symbol)
sMaybe_ :: forall (t_a1Ing :: b_a1ImG) (t_a1Inh :: TyFun a_a1ImH b_a1ImG -> Type) (t_a1Ini :: Maybe a_a1ImH). Sing t_a1Ing -> Sing t_a1Inh -> Sing t_a1Ini -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1Ing) t_a1Inh) t_a1Ini :: b_a1ImG)
sEither_ :: forall (t_a3TXI :: TyFun a_a3TWP c_a3TWQ -> Type) (t_a3TXJ :: TyFun b_a3TWR c_a3TWQ -> Type) (t_a3TXK :: Either a_a3TWP b_a3TWR). Sing t_a3TXI -> Sing t_a3TXJ -> Sing t_a3TXK -> Sing (Apply (Apply (Apply Either_Sym0 t_a3TXI) t_a3TXJ) t_a3TXK :: c_a3TWQ)
sFst :: forall (t_a1cQN :: (a_a1cOH, b_a1cOI)). Sing t_a1cQN -> Sing (Apply FstSym0 t_a1cQN :: a_a1cOH)
sSnd :: forall (t_a1cQM :: (a_a1cOF, b_a1cOG)). Sing t_a1cQM -> Sing (Apply SndSym0 t_a1cQM :: b_a1cOG)
sCurry :: forall (t_a1cQJ :: TyFun (a_a1cOC, b_a1cOD) c_a1cOE -> Type) (t_a1cQK :: a_a1cOC) (t_a1cQL :: b_a1cOD). Sing t_a1cQJ -> Sing t_a1cQK -> Sing t_a1cQL -> Sing (Apply (Apply (Apply CurrySym0 t_a1cQJ) t_a1cQK) t_a1cQL :: c_a1cOE)
sUncurry :: forall (t_a1cQO :: TyFun a_a1cOz (TyFun b_a1cOA c_a1cOB -> Type) -> Type) (t_a1cQP :: (a_a1cOz, b_a1cOA)). Sing t_a1cQO -> Sing t_a1cQP -> Sing (Apply (Apply UncurrySym0 t_a1cQO) t_a1cQP :: c_a1cOB)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol
either_ :: (a_a3TWP -> c_a3TWQ) -> (b_a3TWR -> c_a3TWQ) -> Either a_a3TWP b_a3TWR -> c_a3TWQ
maybe_ :: b_a1ImG -> (a_a1ImH -> b_a1ImG) -> Maybe a_a1ImH -> b_a1ImG
bool_ :: a_a1dOs -> a_a1dOs -> Bool -> a_a1dOs

-- | <a>show</a>, but with an extra underscore so that its promoted
--   counterpart (<a>Show_</a>) will not clash with the <tt>Show</tt>
--   class.
show_ :: Show a => a -> String
type FalseSym0 = False
type TrueSym0 = True
data NotSym0 (l_a1e33 :: TyFun Bool Bool)
type NotSym1 (t_a1e32 :: Bool) = Not t_a1e32
data (&&@#@$) (l_a1dWX :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1dWV :: Bool) (l_a1dWU :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1dWS :: Bool) (t_a1dWT :: Bool) = (&&) t_a1dWS t_a1dWT
data (||@#@$) (l_a1e09 :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e07 :: Bool) (l_a1e06 :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e04 :: Bool) (t_a1e05 :: Bool) = (||) t_a1e04 t_a1e05
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a12Fj :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Fi :: a3530822107858468865) = Just t_a12Fi
data Maybe_Sym0 (l_a1In8 :: TyFun b6989586621679418662 (TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type) -> Type))
data Maybe_Sym1 (l_a1In6 :: b6989586621679418662) (l_a1In5 :: TyFun (TyFun a6989586621679418663 b6989586621679418662 -> Type) (TyFun (Maybe a6989586621679418663) b6989586621679418662 -> Type))
data Maybe_Sym2 (l_a1In2 :: b6989586621679418662) (l_a1In3 :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (l_a1In1 :: TyFun (Maybe a6989586621679418663) b6989586621679418662)
type Maybe_Sym3 (t_a1ImY :: b6989586621679418662) (t_a1ImZ :: TyFun a6989586621679418663 b6989586621679418662 -> Type) (t_a1In0 :: Maybe a6989586621679418663) = Maybe_ t_a1ImY t_a1ImZ t_a1In0
data LeftSym0 (l_a12FV :: TyFun a6989586621679083011 (Either a6989586621679083011 b6989586621679083012))
type LeftSym1 (t_a12FU :: a6989586621679083011) = Left t_a12FU
data RightSym0 (l_a12FY :: TyFun b6989586621679083012 (Either a6989586621679083011 b6989586621679083012))
type RightSym1 (t_a12FX :: b6989586621679083012) = Right t_a12FX
data Either_Sym0 (l_a3TXz :: TyFun (TyFun a6989586621679939843 c6989586621679939844 -> Type) (TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type) -> Type))
data Either_Sym1 (l_a3TXx :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXw :: TyFun (TyFun b6989586621679939845 c6989586621679939844 -> Type) (TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844 -> Type))
data Either_Sym2 (l_a3TXt :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (l_a3TXu :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (l_a3TXs :: TyFun (Either a6989586621679939843 b6989586621679939845) c6989586621679939844)
type Either_Sym3 (t_a3TXp :: TyFun a6989586621679939843 c6989586621679939844 -> Type) (t_a3TXq :: TyFun b6989586621679939845 c6989586621679939844 -> Type) (t_a3TXr :: Either a6989586621679939843 b6989586621679939845) = Either_ t_a3TXp t_a3TXq t_a3TXr
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data FstSym0 (l_a1cQt :: TyFun (a6989586621679297391, b6989586621679297392) a6989586621679297391)
type FstSym1 (t_a1cQs :: (a6989586621679297391, b6989586621679297392)) = Fst t_a1cQs
data SndSym0 (l_a1cQo :: TyFun (a6989586621679297389, b6989586621679297390) b6989586621679297390)
type SndSym1 (t_a1cQn :: (a6989586621679297389, b6989586621679297390)) = Snd t_a1cQn
data CurrySym0 (l_a1cQf :: TyFun (TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type) -> Type))
data CurrySym1 (l_a1cQd :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQc :: TyFun a6989586621679297386 (TyFun b6989586621679297387 c6989586621679297388 -> Type))
data CurrySym2 (l_a1cQ9 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (l_a1cQa :: a6989586621679297386) (l_a1cQ8 :: TyFun b6989586621679297387 c6989586621679297388)
type CurrySym3 (t_a1cQ5 :: TyFun (a6989586621679297386, b6989586621679297387) c6989586621679297388 -> Type) (t_a1cQ6 :: a6989586621679297386) (t_a1cQ7 :: b6989586621679297387) = Curry t_a1cQ5 t_a1cQ6 t_a1cQ7
data UncurrySym0 (l_a1cQC :: TyFun (TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385 -> Type))
data UncurrySym1 (l_a1cQA :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (l_a1cQz :: TyFun (a6989586621679297383, b6989586621679297384) c6989586621679297385)
type UncurrySym2 (t_a1cQx :: TyFun a6989586621679297383 (TyFun b6989586621679297384 c6989586621679297385 -> Type) -> Type) (t_a1cQy :: (a6989586621679297383, b6989586621679297384)) = Uncurry t_a1cQx t_a1cQy
data ErrorSym0 (l_a1BXY :: TyFun k06989586621679393131 k6989586621679393132)
type ErrorSym1 (t_a1BXX :: k06989586621679393131) = Error t_a1BXX
type UndefinedSym0 = Undefined
data (^@#@$) (l_a1C2C :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1C2A :: Nat) (l_a1C2z :: TyFun Nat Nat)
type (^@#@$$$) (t_a1C2x :: Nat) (t_a1C2y :: Nat) = (^) t_a1C2x t_a1C2y
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data Show_Sym0 (l_a2Srz :: TyFun a6989586621679693692 Symbol)
type Show_Sym1 (t_a2Sry :: a6989586621679693692) = Show_ t_a2Sry
data ShowListSym0 (l_a2SrI :: TyFun [a6989586621679693692] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SrG :: [a6989586621679693692]) (l_a2SrF :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SrD :: [a6989586621679693692]) (t_a2SrE :: Symbol) = ShowList t_a2SrD t_a2SrE
data (<>@#@$) l_a1C6v
data (<>@#@$$) (l_a1C6t :: Symbol) l_a1C6s
type (<>@#@$$$) (t_a1C6q :: Symbol) (t_a1C6r :: Symbol) = (<>) t_a1C6q t_a1C6r
data ShowsSym0 (l_a2Sra :: TyFun a6989586621679693677 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2Sr8 :: a6989586621679693677) (l_a2Sr7 :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2Sr5 :: a6989586621679693677) (t_a2Sr6 :: Symbol) = Shows t_a2Sr5 t_a2Sr6
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data IdSym0 (l_a1MPx :: TyFun a6989586621679435602 a6989586621679435602)
type IdSym1 (t_a1MPw :: a6989586621679435602) = Id t_a1MPw
data ConstSym0 (l_a1MPc :: TyFun a6989586621679435600 (TyFun b6989586621679435601 a6989586621679435600 -> Type))
data ConstSym1 (l_a1MPa :: a6989586621679435600) (l_a1MP9 :: TyFun b6989586621679435601 a6989586621679435600)
type ConstSym2 (t_a1MP7 :: a6989586621679435600) (t_a1MP8 :: b6989586621679435601) = Const t_a1MP7 t_a1MP8
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
data ($@#@$) (l_a1MO3 :: TyFun (TyFun a6989586621679435591 b6989586621679435592 -> Type) (TyFun a6989586621679435591 b6989586621679435592 -> Type))
data ($@#@$$) (l_a1MO1 :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (l_a1MO0 :: TyFun a6989586621679435591 b6989586621679435592)
type ($@#@$$$) (t_a1MNY :: TyFun a6989586621679435591 b6989586621679435592 -> Type) (t_a1MNZ :: a6989586621679435591) = ($) t_a1MNY t_a1MNZ
data ($!@#@$) (l_a1MNK :: TyFun (TyFun a6989586621679435589 b6989586621679435590 -> Type) (TyFun a6989586621679435589 b6989586621679435590 -> Type))
data ($!@#@$$) (l_a1MNI :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (l_a1MNH :: TyFun a6989586621679435589 b6989586621679435590)
type ($!@#@$$$) (t_a1MNF :: TyFun a6989586621679435589 b6989586621679435590 -> Type) (t_a1MNG :: a6989586621679435589) = ($!) t_a1MNF t_a1MNG
data FlipSym0 (l_a1MOj :: TyFun (TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type) -> Type))
data FlipSym1 (l_a1MOh :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOg :: TyFun b6989586621679435595 (TyFun a6989586621679435594 c6989586621679435596 -> Type))
data FlipSym2 (l_a1MOd :: TyFun a6989586621679435594 (TyFun b6989586621679435595 c6989586621679435596 -> Type) -> Type) (l_a1MOe :: b6989586621679435595) (l_a1MOc :: TyFun a6989586621679435594 c6989586621679435596)
data AsTypeOfSym0 (l_a1MPq :: TyFun a6989586621679435593 (TyFun a6989586621679435593 a6989586621679435593 -> Type))
data AsTypeOfSym1 (l_a1MPo :: a6989586621679435593) (l_a1MPn :: TyFun a6989586621679435593 a6989586621679435593)
type AsTypeOfSym2 (t_a1MPl :: a6989586621679435593) (t_a1MPm :: a6989586621679435593) = AsTypeOf t_a1MPl t_a1MPm
data SeqSym0 (l_a1MNA :: TyFun a6989586621679435587 (TyFun b6989586621679435588 b6989586621679435588 -> Type))
data SeqSym1 (l_a1MNy :: a6989586621679435587) (l_a1MNx :: TyFun b6989586621679435588 b6989586621679435588)
type SeqSym2 (t_a1MNv :: a6989586621679435587) (t_a1MNw :: b6989586621679435588) = Seq t_a1MNv t_a1MNw
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz
type NilSym0 = '[]
data MapSym0 (l_a1MPT :: TyFun (TyFun a6989586621679435604 b6989586621679435605 -> Type) (TyFun [a6989586621679435604] [b6989586621679435605] -> Type))
data MapSym1 (l_a1MPR :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (l_a1MPQ :: TyFun [a6989586621679435604] [b6989586621679435605])
type MapSym2 (t_a1MPO :: TyFun a6989586621679435604 b6989586621679435605 -> Type) (t_a1MPP :: [a6989586621679435604]) = Map t_a1MPO t_a1MPP
data ReverseSym0 (l_a1VQP :: TyFun [a6989586621679458489] [a6989586621679458489])
type ReverseSym1 (t_a1VQO :: [a6989586621679458489]) = Reverse t_a1VQO
data (++@#@$$) (l_a1MPE :: [a6989586621679435603]) (l_a1MPD :: TyFun [a6989586621679435603] [a6989586621679435603])
data (++@#@$) (l_a1MPG :: TyFun [a6989586621679435603] (TyFun [a6989586621679435603] [a6989586621679435603] -> Type))
data HeadSym0 (l_a1VT5 :: TyFun [a6989586621679458494] a6989586621679458494)
type HeadSym1 (t_a1VT4 :: [a6989586621679458494]) = Head t_a1VT4
data LastSym0 (l_a1VSY :: TyFun [a6989586621679458493] a6989586621679458493)
type LastSym1 (t_a1VSX :: [a6989586621679458493]) = Last t_a1VSX
data TailSym0 (l_a1VST :: TyFun [a6989586621679458492] [a6989586621679458492])
type TailSym1 (t_a1VSS :: [a6989586621679458492]) = Tail t_a1VSS
data InitSym0 (l_a1VSp :: TyFun [a6989586621679458491] [a6989586621679458491])
type InitSym1 (t_a1VSo :: [a6989586621679458491]) = Init t_a1VSo
data NullSym0 (l_a1VRo :: TyFun [a6989586621679458490] Bool)
type NullSym1 (t_a1VRn :: [a6989586621679458490]) = Null t_a1VRn
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
data Foldl1Sym0 (l_a1VF7 :: TyFun (TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (TyFun [a6989586621679458480] a6989586621679458480 -> Type))
data Foldl1Sym1 (l_a1VF5 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (l_a1VF4 :: TyFun [a6989586621679458480] a6989586621679458480)
type Foldl1Sym2 (t_a1VF2 :: TyFun a6989586621679458480 (TyFun a6989586621679458480 a6989586621679458480 -> Type) -> Type) (t_a1VF3 :: [a6989586621679458480]) = Foldl1 t_a1VF2 t_a1VF3
data FoldrSym0 (l_a1MQa :: TyFun (TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type) -> Type))
data FoldrSym1 (l_a1MQ8 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ7 :: TyFun b6989586621679435607 (TyFun [a6989586621679435606] b6989586621679435607 -> Type))
data FoldrSym2 (l_a1MQ4 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (l_a1MQ5 :: b6989586621679435607) (l_a1MQ3 :: TyFun [a6989586621679435606] b6989586621679435607)
type FoldrSym3 (t_a1MQ0 :: TyFun a6989586621679435606 (TyFun b6989586621679435607 b6989586621679435607 -> Type) -> Type) (t_a1MQ1 :: b6989586621679435607) (t_a1MQ2 :: [a6989586621679435606]) = Foldr t_a1MQ0 t_a1MQ1 t_a1MQ2
data Foldr1Sym0 (l_a1VEA :: TyFun (TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (TyFun [a6989586621679458478] a6989586621679458478 -> Type))
data Foldr1Sym1 (l_a1VEy :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (l_a1VEx :: TyFun [a6989586621679458478] a6989586621679458478)
type Foldr1Sym2 (t_a1VEv :: TyFun a6989586621679458478 (TyFun a6989586621679458478 a6989586621679458478 -> Type) -> Type) (t_a1VEw :: [a6989586621679458478]) = Foldr1 t_a1VEv t_a1VEw
data ConcatSym0 (l_a1VEr :: TyFun [[a6989586621679458477]] [a6989586621679458477])
type ConcatSym1 (t_a1VEq :: [[a6989586621679458477]]) = Concat t_a1VEq
data ConcatMapSym0 (l_a1VEg :: TyFun (TyFun a6989586621679458475 [b6989586621679458476] -> Type) (TyFun [a6989586621679458475] [b6989586621679458476] -> Type))
data ConcatMapSym1 (l_a1VEe :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (l_a1VEd :: TyFun [a6989586621679458475] [b6989586621679458476])
type ConcatMapSym2 (t_a1VEb :: TyFun a6989586621679458475 [b6989586621679458476] -> Type) (t_a1VEc :: [a6989586621679458475]) = ConcatMap t_a1VEb t_a1VEc
data AndSym0 (l_a1VE6 :: TyFun [Bool] Bool)
type AndSym1 (t_a1VE5 :: [Bool]) = And t_a1VE5
data OrSym0 (l_a1VE0 :: TyFun [Bool] Bool)
type OrSym1 (t_a1VDZ :: [Bool]) = Or t_a1VDZ
data AnySym0 (l_a1VBw :: TyFun (TyFun a6989586621679458473 Bool -> Type) (TyFun [a6989586621679458473] Bool -> Type))
data AnySym1 (l_a1VBu :: TyFun a6989586621679458473 Bool -> Type) (l_a1VBt :: TyFun [a6989586621679458473] Bool)
type AnySym2 (t_a1VBr :: TyFun a6989586621679458473 Bool -> Type) (t_a1VBs :: [a6989586621679458473]) = Any t_a1VBr t_a1VBs
data AllSym0 (l_a1VDS :: TyFun (TyFun a6989586621679458474 Bool -> Type) (TyFun [a6989586621679458474] Bool -> Type))
data AllSym1 (l_a1VDQ :: TyFun a6989586621679458474 Bool -> Type) (l_a1VDP :: TyFun [a6989586621679458474] Bool)
type AllSym2 (t_a1VDN :: TyFun a6989586621679458474 Bool -> Type) (t_a1VDO :: [a6989586621679458474]) = All t_a1VDN t_a1VDO
data ScanlSym0 (l_a1VB2 :: TyFun (TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type) -> Type))
data ScanlSym1 (l_a1VB0 :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAZ :: TyFun b6989586621679458471 (TyFun [a6989586621679458472] [b6989586621679458471] -> Type))
data ScanlSym2 (l_a1VAW :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (l_a1VAX :: b6989586621679458471) (l_a1VAV :: TyFun [a6989586621679458472] [b6989586621679458471])
type ScanlSym3 (t_a1VAS :: TyFun b6989586621679458471 (TyFun a6989586621679458472 b6989586621679458471 -> Type) -> Type) (t_a1VAT :: b6989586621679458471) (t_a1VAU :: [a6989586621679458472]) = Scanl t_a1VAS t_a1VAT t_a1VAU
data Scanl1Sym0 (l_a1VBk :: TyFun (TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (TyFun [a6989586621679458470] [a6989586621679458470] -> Type))
data Scanl1Sym1 (l_a1VBi :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (l_a1VBh :: TyFun [a6989586621679458470] [a6989586621679458470])
type Scanl1Sym2 (t_a1VBf :: TyFun a6989586621679458470 (TyFun a6989586621679458470 a6989586621679458470 -> Type) -> Type) (t_a1VBg :: [a6989586621679458470]) = Scanl1 t_a1VBf t_a1VBg
data ScanrSym0 (l_a1VAk :: TyFun (TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type) -> Type))
data ScanrSym1 (l_a1VAi :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAh :: TyFun b6989586621679458469 (TyFun [a6989586621679458468] [b6989586621679458469] -> Type))
data ScanrSym2 (l_a1VAe :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (l_a1VAf :: b6989586621679458469) (l_a1VAd :: TyFun [a6989586621679458468] [b6989586621679458469])
type ScanrSym3 (t_a1VAa :: TyFun a6989586621679458468 (TyFun b6989586621679458469 b6989586621679458469 -> Type) -> Type) (t_a1VAb :: b6989586621679458469) (t_a1VAc :: [a6989586621679458468]) = Scanr t_a1VAa t_a1VAb t_a1VAc
data Scanr1Sym0 (l_a1Vzk :: TyFun (TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (TyFun [a6989586621679458467] [a6989586621679458467] -> Type))
data Scanr1Sym1 (l_a1Vzi :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (l_a1Vzh :: TyFun [a6989586621679458467] [a6989586621679458467])
type Scanr1Sym2 (t_a1Vzf :: TyFun a6989586621679458467 (TyFun a6989586621679458467 a6989586621679458467 -> Type) -> Type) (t_a1Vzg :: [a6989586621679458467]) = Scanr1 t_a1Vzf t_a1Vzg
data ReplicateSym0 (l_a1V8s :: TyFun Nat (TyFun a6989586621679458375 [a6989586621679458375] -> Type))
data ReplicateSym1 (l_a1V8q :: Nat) (l_a1V8p :: TyFun a6989586621679458375 [a6989586621679458375])
type ReplicateSym2 (t_a1V8n :: Nat) (t_a1V8o :: a6989586621679458375) = Replicate t_a1V8n t_a1V8o
data TakeSym0 (l_a1Vbx :: TyFun Nat (TyFun [a6989586621679458391] [a6989586621679458391] -> Type))
data TakeSym1 (l_a1Vbv :: Nat) (l_a1Vbu :: TyFun [a6989586621679458391] [a6989586621679458391])
type TakeSym2 (t_a1Vbs :: Nat) (t_a1Vbt :: [a6989586621679458391]) = Take t_a1Vbs t_a1Vbt
data DropSym0 (l_a1Vb5 :: TyFun Nat (TyFun [a6989586621679458390] [a6989586621679458390] -> Type))
data DropSym1 (l_a1Vb3 :: Nat) (l_a1Vb2 :: TyFun [a6989586621679458390] [a6989586621679458390])
type DropSym2 (t_a1Vb0 :: Nat) (t_a1Vb1 :: [a6989586621679458390]) = Drop t_a1Vb0 t_a1Vb1
data SplitAtSym0 (l_a1VbZ :: TyFun Nat (TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]) -> Type))
data SplitAtSym1 (l_a1VbX :: Nat) (l_a1VbW :: TyFun [a6989586621679458389] ([a6989586621679458389], [a6989586621679458389]))
type SplitAtSym2 (t_a1VbU :: Nat) (t_a1VbV :: [a6989586621679458389]) = SplitAt t_a1VbU t_a1VbV
data TakeWhileSym0 (l_a1VgV :: TyFun (TyFun a6989586621679458396 Bool -> Type) (TyFun [a6989586621679458396] [a6989586621679458396] -> Type))
data TakeWhileSym1 (l_a1VgT :: TyFun a6989586621679458396 Bool -> Type) (l_a1VgS :: TyFun [a6989586621679458396] [a6989586621679458396])
type TakeWhileSym2 (t_a1VgQ :: TyFun a6989586621679458396 Bool -> Type) (t_a1VgR :: [a6989586621679458396]) = TakeWhile t_a1VgQ t_a1VgR
data DropWhileSym0 (l_a1Vgg :: TyFun (TyFun a6989586621679458395 Bool -> Type) (TyFun [a6989586621679458395] [a6989586621679458395] -> Type))
data DropWhileSym1 (l_a1Vge :: TyFun a6989586621679458395 Bool -> Type) (l_a1Vgd :: TyFun [a6989586621679458395] [a6989586621679458395])
type DropWhileSym2 (t_a1Vgb :: TyFun a6989586621679458395 Bool -> Type) (t_a1Vgc :: [a6989586621679458395]) = DropWhile t_a1Vgb t_a1Vgc
data DropWhileEndSym0 (l_a1VRw :: TyFun (TyFun a6989586621679458394 Bool -> Type) (TyFun [a6989586621679458394] [a6989586621679458394] -> Type))
data DropWhileEndSym1 (l_a1VRu :: TyFun a6989586621679458394 Bool -> Type) (l_a1VRt :: TyFun [a6989586621679458394] [a6989586621679458394])
type DropWhileEndSym2 (t_a1VRr :: TyFun a6989586621679458394 Bool -> Type) (t_a1VRs :: [a6989586621679458394]) = DropWhileEnd t_a1VRr t_a1VRs
data SpanSym0 (l_a1VdF :: TyFun (TyFun a6989586621679458393 Bool -> Type) (TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]) -> Type))
data SpanSym1 (l_a1VdD :: TyFun a6989586621679458393 Bool -> Type) (l_a1VdC :: TyFun [a6989586621679458393] ([a6989586621679458393], [a6989586621679458393]))
type SpanSym2 (t_a1VdA :: TyFun a6989586621679458393 Bool -> Type) (t_a1VdB :: [a6989586621679458393]) = Span t_a1VdA t_a1VdB
data BreakSym0 (l_a1Vca :: TyFun (TyFun a6989586621679458392 Bool -> Type) (TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]) -> Type))
data BreakSym1 (l_a1Vc8 :: TyFun a6989586621679458392 Bool -> Type) (l_a1Vc7 :: TyFun [a6989586621679458392] ([a6989586621679458392], [a6989586621679458392]))
type BreakSym2 (t_a1Vc5 :: TyFun a6989586621679458392 Bool -> Type) (t_a1Vc6 :: [a6989586621679458392]) = Break t_a1Vc5 t_a1Vc6
data ElemSym0 (l_a1Vsr :: TyFun a6989586621679458453 (TyFun [a6989586621679458453] Bool -> Type))
data ElemSym1 (l_a1Vsp :: a6989586621679458453) (l_a1Vso :: TyFun [a6989586621679458453] Bool)
type ElemSym2 (t_a1Vsm :: a6989586621679458453) (t_a1Vsn :: [a6989586621679458453]) = Elem t_a1Vsm t_a1Vsn
data NotElemSym0 (l_a1Vsf :: TyFun a6989586621679458452 (TyFun [a6989586621679458452] Bool -> Type))
data NotElemSym1 (l_a1Vsd :: a6989586621679458452) (l_a1Vsc :: TyFun [a6989586621679458452] Bool)
type NotElemSym2 (t_a1Vsa :: a6989586621679458452) (t_a1Vsb :: [a6989586621679458452]) = NotElem t_a1Vsa t_a1Vsb
data ZipSym0 (l_a1Vqx :: TyFun [a6989586621679458450] (TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)] -> Type))
data ZipSym1 (l_a1Vqv :: [a6989586621679458450]) (l_a1Vqu :: TyFun [b6989586621679458451] [(a6989586621679458450, b6989586621679458451)])
type ZipSym2 (t_a1Vqs :: [a6989586621679458450]) (t_a1Vqt :: [b6989586621679458451]) = Zip t_a1Vqs t_a1Vqt
data Zip3Sym0 (l_a1Vqh :: TyFun [a6989586621679458447] (TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type) -> Type))
data Zip3Sym1 (l_a1Vqf :: [a6989586621679458447]) (l_a1Vqe :: TyFun [b6989586621679458448] (TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)] -> Type))
data Zip3Sym2 (l_a1Vqb :: [a6989586621679458447]) (l_a1Vqc :: [b6989586621679458448]) (l_a1Vqa :: TyFun [c6989586621679458449] [(a6989586621679458447, b6989586621679458448, c6989586621679458449)])
type Zip3Sym3 (t_a1Vq7 :: [a6989586621679458447]) (t_a1Vq8 :: [b6989586621679458448]) (t_a1Vq9 :: [c6989586621679458449]) = Zip3 t_a1Vq7 t_a1Vq8 t_a1Vq9
data ZipWithSym0 (l_a1VpX :: TyFun (TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type) -> Type))
data ZipWithSym1 (l_a1VpV :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpU :: TyFun [a6989586621679458444] (TyFun [b6989586621679458445] [c6989586621679458446] -> Type))
data ZipWithSym2 (l_a1VpR :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (l_a1VpS :: [a6989586621679458444]) (l_a1VpQ :: TyFun [b6989586621679458445] [c6989586621679458446])
type ZipWithSym3 (t_a1VpN :: TyFun a6989586621679458444 (TyFun b6989586621679458445 c6989586621679458446 -> Type) -> Type) (t_a1VpO :: [a6989586621679458444]) (t_a1VpP :: [b6989586621679458445]) = ZipWith t_a1VpN t_a1VpO t_a1VpP
data ZipWith3Sym0 (l_a1VpA :: TyFun (TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1Vpy :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpx :: TyFun [a6989586621679458440] (TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type) -> Type))
data ZipWith3Sym2 (l_a1Vpu :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpv :: [a6989586621679458440]) (l_a1Vpt :: TyFun [b6989586621679458441] (TyFun [c6989586621679458442] [d6989586621679458443] -> Type))
data ZipWith3Sym3 (l_a1Vpp :: TyFun a6989586621679458440 (TyFun b6989586621679458441 (TyFun c6989586621679458442 d6989586621679458443 -> Type) -> Type) -> Type) (l_a1Vpq :: [a6989586621679458440]) (l_a1Vpr :: [b6989586621679458441]) (l_a1Vpo :: TyFun [c6989586621679458442] [d6989586621679458443])
data UnzipSym0 (l_a1VoR :: TyFun [(a6989586621679458438, b6989586621679458439)] ([a6989586621679458438], [b6989586621679458439]))
type UnzipSym1 (t_a1VoQ :: [(a6989586621679458438, b6989586621679458439)]) = Unzip t_a1VoQ
data UnlinesSym0 (l_a1VlR :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1VlQ :: [Symbol]) = Unlines t_a1VlQ
data UnwordsSym0 (l_a1Vlv :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1Vlu :: [Symbol]) = Unwords t_a1Vlu


-- | 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 <tt>(==)</tt> (type-level equality) from the
--   given types
promoteEqInstances :: DsMonad q => [Name] -> q [Dec]

-- | Produce an instance for <tt>(==)</tt> (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]

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

-- | Produce an instance for <tt>PShow</tt> from the given type
promoteShowInstance :: 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 '(DTE.==)', from
--   <a>Data.Type.Equality</a>.
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>

-- | Type-level "and"
class PEq a_a1hrt => POrd (a_a1hrt :: Type) where {
    type family Compare (arg_a1hNp :: a_a1hrt) (arg_a1hNq :: a_a1hrt) :: Ordering;
    type family (<) (arg_a1hNy :: a_a1hrt) (arg_a1hNz :: a_a1hrt) :: Bool;
    type family (<=) (arg_a1hNH :: a_a1hrt) (arg_a1hNI :: a_a1hrt) :: Bool;
    type family (>) (arg_a1hNQ :: a_a1hrt) (arg_a1hNR :: a_a1hrt) :: Bool;
    type family (>=) (arg_a1hNZ :: a_a1hrt) (arg_a1hO0 :: a_a1hrt) :: Bool;
    type family Max (arg_a1hO8 :: a_a1hrt) (arg_a1hO9 :: a_a1hrt) :: a_a1hrt;
    type family Min (arg_a1hOh :: a_a1hrt) (arg_a1hOi :: a_a1hrt) :: a_a1hrt;
    type Compare a_a1hOX a_a1hOY =
        Apply (Apply Compare_6989586621679316629Sym0 a_a1hOX) a_a1hOY;
    type (<) a_a1hPu a_a1hPv =
        Apply (Apply TFHelper_6989586621679316662Sym0 a_a1hPu) a_a1hPv;
    type (<=) a_a1hQ1 a_a1hQ2 =
        Apply (Apply TFHelper_6989586621679316695Sym0 a_a1hQ1) a_a1hQ2;
    type (>) a_a1hQy a_a1hQz =
        Apply (Apply TFHelper_6989586621679316728Sym0 a_a1hQy) a_a1hQz;
    type (>=) a_a1hR5 a_a1hR6 =
        Apply (Apply TFHelper_6989586621679316761Sym0 a_a1hR5) a_a1hR6;
    type Max a_a1hRC a_a1hRD =
        Apply (Apply Max_6989586621679316794Sym0 a_a1hRC) a_a1hRD;
    type Min a_a1hS9 a_a1hSa =
        Apply (Apply Min_6989586621679316827Sym0 a_a1hS9) a_a1hSa;
}
class PBounded (a_a3ApV :: Type) where {
    type family MinBound :: a_a3ApV;
    type family MaxBound :: a_a3ApV;
}
class PEnum (a_a3Bsu :: Type) where {
    type family ToEnum (arg_a3BC6 :: Nat) :: a_a3Bsu;
    type family FromEnum (arg_a3BCa :: a_a3Bsu) :: Nat;
    type Succ a_a3BCU = Apply Succ_6989586621679869417Sym0 a_a3BCU;
    type Pred a_a3BD7 = Apply Pred_6989586621679869430Sym0 a_a3BD7;
    type EnumFromTo a_a3BDo a_a3BDp =
        Apply (Apply EnumFromTo_6989586621679869448Sym0 a_a3BDo) a_a3BDp;
    type EnumFromThenTo a_a3BDR a_a3BDS a_a3BDT =
        Apply (Apply (Apply EnumFromThenTo_6989586621679869478Sym0 a_a3BDR) a_a3BDS) a_a3BDT;
}
class PShow (a_a2RUE :: Type) where {
    type family ShowsPrec (arg_a2Sri :: Nat) (arg_a2Srj :: a_a2RUE) (arg_a2Srk :: Symbol) :: Symbol;
    type family Show_ (arg_a2Srx :: a_a2RUE) :: Symbol;
    type family ShowList (arg_a2SrB :: [a_a2RUE]) (arg_a2SrC :: Symbol) :: Symbol;
    type ShowsPrec a_a2Ss1 a_a2Ss2 a_a2Ss3 =
        Apply (Apply (Apply ShowsPrec_6989586621679695764Sym0 a_a2Ss1) a_a2Ss2) a_a2Ss3;
    type Show_ a_a2Ssn = Apply Show__6989586621679695784Sym0 a_a2Ssn;
    type ShowList a_a2SsE a_a2SsF =
        Apply (Apply ShowList_6989586621679695802Sym0 a_a2SsE) a_a2SsF;
}

-- | <a>Proxy</a> is a type that holds no data, but has a phantom parameter
--   of arbitrary type (or even kind). Its use is to provide type
--   information, even though there is no value available of that type (or
--   it may be too costly to create one).
--   
--   Historically, <tt><a>Proxy</a> :: <a>Proxy</a> a</tt> is a safer
--   alternative to the <tt>'undefined :: a'</tt> idiom.
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy (Void, Int -&gt; Int)
--   Proxy
--   </pre>
--   
--   Proxy can even hold types of higher kinds,
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Either
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy Functor
--   Proxy
--   </pre>
--   
--   <pre>
--   &gt;&gt;&gt; Proxy :: Proxy complicatedStructure
--   Proxy
--   </pre>
data Proxy (t :: k) :: forall k. () => k -> *
Proxy :: Proxy

-- | The promotion of <a>error</a>. This version is more poly-kinded for
--   easier use.
data ErrorSym0 (l_a1BXY :: TyFun k06989586621679393131 k6989586621679393132)
type ErrorSym1 (t_a1BXX :: k06989586621679393131) = Error t_a1BXX

-- | The promotion of <a>undefined</a>.
type UndefinedSym0 = Undefined
type TrueSym0 = True
type FalseSym0 = False
data (==@#@$) (l_a1euV :: TyFun a6989586621679303786 (TyFun a6989586621679303786 Bool -> Type))
data (==@#@$$) (l_a1euT :: a6989586621679303786) (l_a1euS :: TyFun a6989586621679303786 Bool)
type (==@#@$$$) (t_a1euQ :: a6989586621679303786) (t_a1euR :: a6989586621679303786) = (==) t_a1euQ t_a1euR
data (>@#@$) (l_a1hNX :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Bool -> Type))
data (>@#@$$) (l_a1hNV :: a6989586621679315171) (l_a1hNU :: TyFun a6989586621679315171 Bool)
type (>@#@$$$) (t_a1hNS :: a6989586621679315171) (t_a1hNT :: a6989586621679315171) = (>) t_a1hNS t_a1hNT
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12GI :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12GG :: a3530822107858468865) (l_a12GF :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12GD :: a3530822107858468865) (t_a12GE :: b3530822107858468866) = '(t_a12GD, t_a12GE)
data Tuple3Sym0 (l_a12H8 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12H6 :: a3530822107858468865) (l_a12H5 :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12H2 :: a3530822107858468865) (l_a12H3 :: b3530822107858468866) (l_a12H1 :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12GY :: a3530822107858468865) (t_a12GZ :: b3530822107858468866) (t_a12H0 :: c3530822107858468867) = '(t_a12GY, t_a12GZ, t_a12H0)
data Tuple4Sym0 (l_a12HJ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12HH :: a3530822107858468865) (l_a12HG :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12HD :: a3530822107858468865) (l_a12HE :: b3530822107858468866) (l_a12HC :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12Hy :: a3530822107858468865) (l_a12Hz :: b3530822107858468866) (l_a12HA :: c3530822107858468867) (l_a12Hx :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12Ht :: a3530822107858468865) (t_a12Hu :: b3530822107858468866) (t_a12Hv :: c3530822107858468867) (t_a12Hw :: d3530822107858468868) = '(t_a12Ht, t_a12Hu, t_a12Hv, t_a12Hw)
data Tuple5Sym0 (l_a12Iw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12Iu :: a3530822107858468865) (l_a12It :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12Iq :: a3530822107858468865) (l_a12Ir :: b3530822107858468866) (l_a12Ip :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12Il :: a3530822107858468865) (l_a12Im :: b3530822107858468866) (l_a12In :: c3530822107858468867) (l_a12Ik :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12If :: a3530822107858468865) (l_a12Ig :: b3530822107858468866) (l_a12Ih :: c3530822107858468867) (l_a12Ii :: d3530822107858468868) (l_a12Ie :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12I9 :: a3530822107858468865) (t_a12Ia :: b3530822107858468866) (t_a12Ib :: c3530822107858468867) (t_a12Ic :: d3530822107858468868) (t_a12Id :: e3530822107858468869) = '(t_a12I9, t_a12Ia, t_a12Ib, t_a12Ic, t_a12Id)
data Tuple6Sym0 (l_a12Jw :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym1 (l_a12Ju :: a3530822107858468865) (l_a12Jt :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12Jq :: a3530822107858468865) (l_a12Jr :: b3530822107858468866) (l_a12Jp :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12Jl :: a3530822107858468865) (l_a12Jm :: b3530822107858468866) (l_a12Jn :: c3530822107858468867) (l_a12Jk :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Jf :: a3530822107858468865) (l_a12Jg :: b3530822107858468866) (l_a12Jh :: c3530822107858468867) (l_a12Ji :: d3530822107858468868) (l_a12Je :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12J8 :: a3530822107858468865) (l_a12J9 :: b3530822107858468866) (l_a12Ja :: c3530822107858468867) (l_a12Jb :: d3530822107858468868) (l_a12Jc :: e3530822107858468869) (l_a12J7 :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12J1 :: a3530822107858468865) (t_a12J2 :: b3530822107858468866) (t_a12J3 :: c3530822107858468867) (t_a12J4 :: d3530822107858468868) (t_a12J5 :: e3530822107858468869) (t_a12J6 :: f3530822107858468870) = '(t_a12J1, t_a12J2, t_a12J3, t_a12J4, t_a12J5, t_a12J6)
data Tuple7Sym0 (l_a12KK :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym1 (l_a12KI :: a3530822107858468865) (l_a12KH :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym2 (l_a12KE :: a3530822107858468865) (l_a12KF :: b3530822107858468866) (l_a12KD :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12Kz :: a3530822107858468865) (l_a12KA :: b3530822107858468866) (l_a12KB :: c3530822107858468867) (l_a12Ky :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12Kt :: a3530822107858468865) (l_a12Ku :: b3530822107858468866) (l_a12Kv :: c3530822107858468867) (l_a12Kw :: d3530822107858468868) (l_a12Ks :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12Km :: a3530822107858468865) (l_a12Kn :: b3530822107858468866) (l_a12Ko :: c3530822107858468867) (l_a12Kp :: d3530822107858468868) (l_a12Kq :: e3530822107858468869) (l_a12Kl :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Ke :: a3530822107858468865) (l_a12Kf :: b3530822107858468866) (l_a12Kg :: c3530822107858468867) (l_a12Kh :: d3530822107858468868) (l_a12Ki :: e3530822107858468869) (l_a12Kj :: f3530822107858468870) (l_a12Kd :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12K6 :: a3530822107858468865) (t_a12K7 :: b3530822107858468866) (t_a12K8 :: c3530822107858468867) (t_a12K9 :: d3530822107858468868) (t_a12Ka :: e3530822107858468869) (t_a12Kb :: f3530822107858468870) (t_a12Kc :: g3530822107858468871) = '(t_a12K6, t_a12K7, t_a12K8, t_a12K9, t_a12Ka, t_a12Kb, t_a12Kc)
data CompareSym0 (l_a1hNw :: TyFun a6989586621679315171 (TyFun a6989586621679315171 Ordering -> Type))
data CompareSym1 (l_a1hNu :: a6989586621679315171) (l_a1hNt :: TyFun a6989586621679315171 Ordering)
type CompareSym2 (t_a1hNr :: a6989586621679315171) (t_a1hNs :: a6989586621679315171) = Compare t_a1hNr t_a1hNs
data ThenCmpSym0 (l_a1jB7 :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jB5 :: Ordering) (l_a1jB4 :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jB2 :: Ordering) (t_a1jB3 :: Ordering) = ThenCmp t_a1jB2 t_a1jB3
data FoldlSym0 (l_a15Ee :: TyFun (TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type) -> Type))
data FoldlSym1 (l_a15Ec :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15Eb :: TyFun b6989586621679269790 (TyFun [a6989586621679269789] b6989586621679269790 -> Type))
data FoldlSym2 (l_a15E8 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (l_a15E9 :: b6989586621679269790) (l_a15E7 :: TyFun [a6989586621679269789] b6989586621679269790)
type FoldlSym3 (t_a15E4 :: TyFun b6989586621679269790 (TyFun a6989586621679269789 b6989586621679269790 -> Type) -> Type) (t_a15E5 :: b6989586621679269790) (t_a15E6 :: [a6989586621679269789]) = Foldl t_a15E4 t_a15E5 t_a15E6
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data ShowsPrecSym0 (l_a2Srv :: TyFun Nat (TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2Srt :: Nat) (l_a2Srs :: TyFun a6989586621679693692 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2Srp :: Nat) (l_a2Srq :: a6989586621679693692) (l_a2Sro :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2Srl :: Nat) (t_a2Srm :: a6989586621679693692) (t_a2Srn :: Symbol) = ShowsPrec t_a2Srl t_a2Srm t_a2Srn
data ShowStringSym0 (l_a2SoS :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SoQ :: Symbol) (l_a2SoP :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SoN :: Symbol) (t_a2SoO :: Symbol) = ShowString t_a2SoN t_a2SoO
data ShowParenSym0 (l_a2Spu :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2Sps :: Bool) (l_a2Spr :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2Spo :: Bool) (l_a2Spp :: TyFun Symbol Symbol -> Type) (l_a2Spn :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2Sou :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2Sot :: Symbol) = ShowSpace t_a2Sot
data ShowCharSym0 (l_a2Spe :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2Spc :: Symbol) (l_a2Spb :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2Sp9 :: Symbol) (t_a2Spa :: Symbol) = ShowChar t_a2Sp9 t_a2Spa
data ShowCommaSpaceSym0 (l_a2Sp1 :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2Sp0 :: Symbol) = ShowCommaSpace t_a2Sp0
data (.@#@$) (l_a1MOB :: TyFun (TyFun b6989586621679435597 c6989586621679435598 -> Type) (TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type) -> Type))
data (.@#@$$) (l_a1MOz :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOy :: TyFun (TyFun a6989586621679435599 b6989586621679435597 -> Type) (TyFun a6989586621679435599 c6989586621679435598 -> Type))
data (.@#@$$$) (l_a1MOv :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (l_a1MOw :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (l_a1MOu :: TyFun a6989586621679435599 c6989586621679435598)
type (.@#@$$$$) (t_a1MOr :: TyFun b6989586621679435597 c6989586621679435598 -> Type) (t_a1MOs :: TyFun a6989586621679435599 b6989586621679435597 -> Type) (t_a1MOt :: a6989586621679435599) = (:.) t_a1MOr t_a1MOs t_a1MOt
data (:@#@$) (l_a12FD :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12FB :: a3530822107858468865) (l_a12FA :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12Fy :: a3530822107858468865) (t_a12Fz :: [a3530822107858468865]) = (:) t_a12Fy t_a12Fz

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


-- | 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, Ord, Read, Show)
--   </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 :: 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]
