-- 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_a1cMR :: Void). Sing t_a1cMR -> Sing (Apply AbsurdSym0 t_a1cMR :: a_a1cMG)
data AbsurdSym0 (l_a1cMK :: TyFun Void a6989586621679297266)
type AbsurdSym1 (t_a1cMJ :: Void) = Absurd t_a1cMJ
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_a1cMK :: TyFun Void a6989586621679297266)
type AbsurdSym1 (t_a1cMJ :: Void) = Absurd t_a1cMJ


-- | 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_a1d04 :: (a_a1cXY, b_a1cXZ)). Sing t_a1d04 -> Sing (Apply FstSym0 t_a1d04 :: a_a1cXY)
sSnd :: forall (t_a1d03 :: (a_a1cXW, b_a1cXX)). Sing t_a1d03 -> Sing (Apply SndSym0 t_a1d03 :: b_a1cXX)
sCurry :: forall (t_a1d00 :: TyFun (a_a1cXT, b_a1cXU) c_a1cXV -> Type) (t_a1d01 :: a_a1cXT) (t_a1d02 :: b_a1cXU). Sing t_a1d00 -> Sing t_a1d01 -> Sing t_a1d02 -> Sing (Apply (Apply (Apply CurrySym0 t_a1d00) t_a1d01) t_a1d02 :: c_a1cXV)
sUncurry :: forall (t_a1d05 :: TyFun a_a1cXQ (TyFun b_a1cXR c_a1cXS -> Type) -> Type) (t_a1d06 :: (a_a1cXQ, b_a1cXR)). Sing t_a1d05 -> Sing t_a1d06 -> Sing (Apply (Apply UncurrySym0 t_a1d05) t_a1d06 :: c_a1cXS)
sSwap :: forall (t_a1cZZ :: (a_a1cXO, b_a1cXP)). Sing t_a1cZZ -> Sing (Apply SwapSym0 t_a1cZZ :: (b_a1cXP, a_a1cXO))
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data FstSym0 (l_a1cZK :: TyFun (a6989586621679297966, b6989586621679297967) a6989586621679297966)
type FstSym1 (t_a1cZJ :: (a6989586621679297966, b6989586621679297967)) = Fst t_a1cZJ
data SndSym0 (l_a1cZF :: TyFun (a6989586621679297964, b6989586621679297965) b6989586621679297965)
type SndSym1 (t_a1cZE :: (a6989586621679297964, b6989586621679297965)) = Snd t_a1cZE
data CurrySym0 (l_a1cZw :: TyFun (TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type) -> Type))
data CurrySym1 (l_a1cZu :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZt :: TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type))
data CurrySym2 (l_a1cZq :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZr :: a6989586621679297961) (l_a1cZp :: TyFun b6989586621679297962 c6989586621679297963)
type CurrySym3 (t_a1cZm :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (t_a1cZn :: a6989586621679297961) (t_a1cZo :: b6989586621679297962) = Curry t_a1cZm t_a1cZn t_a1cZo
data UncurrySym0 (l_a1cZT :: TyFun (TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960 -> Type))
data UncurrySym1 (l_a1cZR :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (l_a1cZQ :: TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960)
type UncurrySym2 (t_a1cZO :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (t_a1cZP :: (a6989586621679297958, b6989586621679297959)) = Uncurry t_a1cZO t_a1cZP
data SwapSym0 (l_a1cZh :: TyFun (a6989586621679297956, b6989586621679297957) (b6989586621679297957, a6989586621679297956))
type SwapSym1 (t_a1cZg :: (a6989586621679297956, b6989586621679297957)) = Swap t_a1cZg
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_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data FstSym0 (l_a1cZK :: TyFun (a6989586621679297966, b6989586621679297967) a6989586621679297966)
type FstSym1 (t_a1cZJ :: (a6989586621679297966, b6989586621679297967)) = Fst t_a1cZJ
data SndSym0 (l_a1cZF :: TyFun (a6989586621679297964, b6989586621679297965) b6989586621679297965)
type SndSym1 (t_a1cZE :: (a6989586621679297964, b6989586621679297965)) = Snd t_a1cZE
data CurrySym0 (l_a1cZw :: TyFun (TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type) -> Type))
data CurrySym1 (l_a1cZu :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZt :: TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type))
data CurrySym2 (l_a1cZq :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZr :: a6989586621679297961) (l_a1cZp :: TyFun b6989586621679297962 c6989586621679297963)
type CurrySym3 (t_a1cZm :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (t_a1cZn :: a6989586621679297961) (t_a1cZo :: b6989586621679297962) = Curry t_a1cZm t_a1cZn t_a1cZo
data UncurrySym0 (l_a1cZT :: TyFun (TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960 -> Type))
data UncurrySym1 (l_a1cZR :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (l_a1cZQ :: TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960)
type UncurrySym2 (t_a1cZO :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (t_a1cZP :: (a6989586621679297958, b6989586621679297959)) = Uncurry t_a1cZO t_a1cZP
data SwapSym0 (l_a1cZh :: TyFun (a6989586621679297956, b6989586621679297957) (b6989586621679297957, a6989586621679297956))
type SwapSym1 (t_a1cZg :: (a6989586621679297956, b6989586621679297957)) = Swap t_a1cZg


-- | 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_a1dXJ -> a_a1dXJ -> Bool -> a_a1dXJ
sBool_ :: forall (t_a1dY8 :: a_a1dXJ) (t_a1dY9 :: a_a1dXJ) (t_a1dYa :: Bool). Sing t_a1dY8 -> Sing t_a1dY9 -> Sing t_a1dYa -> Sing (Apply (Apply (Apply Bool_Sym0 t_a1dY8) t_a1dY9) t_a1dYa :: a_a1dXJ)
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
type TrueSym0 = True
type FalseSym0 = False
data NotSym0 (l_a1eck :: TyFun Bool Bool)
type NotSym1 (t_a1ecj :: Bool) = Not t_a1ecj
data (&&@#@$) (l_a1e6e :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1e6c :: Bool) (l_a1e6b :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1e69 :: Bool) (t_a1e6a :: Bool) = (&&) t_a1e69 t_a1e6a
data (||@#@$) (l_a1e9q :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e9o :: Bool) (l_a1e9n :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e9l :: Bool) (t_a1e9m :: Bool) = (||) t_a1e9l t_a1e9m
data Bool_Sym0 (l_a1dXZ :: TyFun a6989586621679301795 (TyFun a6989586621679301795 (TyFun Bool a6989586621679301795 -> Type) -> Type))
data Bool_Sym1 (l_a1dXX :: a6989586621679301795) (l_a1dXW :: TyFun a6989586621679301795 (TyFun Bool a6989586621679301795 -> Type))
data Bool_Sym2 (l_a1dXT :: a6989586621679301795) (l_a1dXU :: a6989586621679301795) (l_a1dXS :: TyFun Bool a6989586621679301795)
type Bool_Sym3 (t_a1dXP :: a6989586621679301795) (t_a1dXQ :: a6989586621679301795) (t_a1dXR :: Bool) = Bool_ t_a1dXP t_a1dXQ t_a1dXR
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_a1eEc :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (==@#@$$) (l_a1eEa :: a6989586621679304361) (l_a1eE9 :: TyFun a6989586621679304361 Bool)
type (==@#@$$$) (t_a1eE7 :: a6989586621679304361) (t_a1eE8 :: a6989586621679304361) = (==) t_a1eE7 t_a1eE8
data (/=@#@$) (l_a1eEj :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (/=@#@$$) (l_a1eEh :: a6989586621679304361) (l_a1eEg :: TyFun a6989586621679304361 Bool)
type (/=@#@$$$) (t_a1eEe :: a6989586621679304361) (t_a1eEf :: a6989586621679304361) = (/=) t_a1eEe t_a1eEf
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_a1hAK => POrd (a_a1hAK :: Type) where {
    type family Compare (arg_a1i0y :: a_a1hAK) (arg_a1i0z :: a_a1hAK) :: Ordering;
    type family (<) (arg_a1i0H :: a_a1hAK) (arg_a1i0I :: a_a1hAK) :: Bool;
    type family (<=) (arg_a1i0Q :: a_a1hAK) (arg_a1i0R :: a_a1hAK) :: Bool;
    type family (>) (arg_a1i0Z :: a_a1hAK) (arg_a1i10 :: a_a1hAK) :: Bool;
    type family (>=) (arg_a1i18 :: a_a1hAK) (arg_a1i19 :: a_a1hAK) :: Bool;
    type family Max (arg_a1i1h :: a_a1hAK) (arg_a1i1i :: a_a1hAK) :: a_a1hAK;
    type family Min (arg_a1i1q :: a_a1hAK) (arg_a1i1r :: a_a1hAK) :: a_a1hAK;
    type Compare a_a1i26 a_a1i27 =
        Apply (Apply Compare_6989586621679317444Sym0 a_a1i26) a_a1i27;
    type (<) a_a1i2D a_a1i2E =
        Apply (Apply TFHelper_6989586621679317477Sym0 a_a1i2D) a_a1i2E;
    type (<=) a_a1i3a a_a1i3b =
        Apply (Apply TFHelper_6989586621679317510Sym0 a_a1i3a) a_a1i3b;
    type (>) a_a1i3H a_a1i3I =
        Apply (Apply TFHelper_6989586621679317543Sym0 a_a1i3H) a_a1i3I;
    type (>=) a_a1i4e a_a1i4f =
        Apply (Apply TFHelper_6989586621679317576Sym0 a_a1i4e) a_a1i4f;
    type Max a_a1i4L a_a1i4M =
        Apply (Apply Max_6989586621679317609Sym0 a_a1i4L) a_a1i4M;
    type Min a_a1i5i a_a1i5j =
        Apply (Apply Min_6989586621679317642Sym0 a_a1i5i) a_a1i5j;
}
class SEq a_a1hAK => SOrd a_a1hAK
sCompare :: forall (t_a1i5z :: a_a1hAK) (t_a1i5A :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5z -> Sing t_a1i5A -> Sing (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering)
(%<) :: forall (t_a1i5B :: a_a1hAK) (t_a1i5C :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5B -> Sing t_a1i5C -> Sing (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool)
(%<=) :: forall (t_a1i5D :: a_a1hAK) (t_a1i5E :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5D -> Sing t_a1i5E -> Sing (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool)
(%>) :: forall (t_a1i5F :: a_a1hAK) (t_a1i5G :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5F -> Sing t_a1i5G -> Sing (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool)
(%>=) :: forall (t_a1i5H :: a_a1hAK) (t_a1i5I :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5H -> Sing t_a1i5I -> Sing (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool)
sMax :: forall (t_a1i5J :: a_a1hAK) (t_a1i5K :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5J -> Sing t_a1i5K -> Sing (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK)
sMin :: forall (t_a1i5L :: a_a1hAK) (t_a1i5M :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5L -> Sing t_a1i5M -> Sing (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK)
sCompare :: forall (t_a1i5z :: a_a1hAK) (t_a1i5A :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering) ~ Apply (Apply Compare_6989586621679317444Sym0 t_a1i5z) t_a1i5A) => Sing t_a1i5z -> Sing t_a1i5A -> Sing (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering)
(%<) :: forall (t_a1i5B :: a_a1hAK) (t_a1i5C :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool) ~ Apply (Apply TFHelper_6989586621679317477Sym0 t_a1i5B) t_a1i5C) => Sing t_a1i5B -> Sing t_a1i5C -> Sing (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool)
(%<=) :: forall (t_a1i5D :: a_a1hAK) (t_a1i5E :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool) ~ Apply (Apply TFHelper_6989586621679317510Sym0 t_a1i5D) t_a1i5E) => Sing t_a1i5D -> Sing t_a1i5E -> Sing (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool)
(%>) :: forall (t_a1i5F :: a_a1hAK) (t_a1i5G :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool) ~ Apply (Apply TFHelper_6989586621679317543Sym0 t_a1i5F) t_a1i5G) => Sing t_a1i5F -> Sing t_a1i5G -> Sing (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool)
(%>=) :: forall (t_a1i5H :: a_a1hAK) (t_a1i5I :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool) ~ Apply (Apply TFHelper_6989586621679317576Sym0 t_a1i5H) t_a1i5I) => Sing t_a1i5H -> Sing t_a1i5I -> Sing (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool)
sMax :: forall (t_a1i5J :: a_a1hAK) (t_a1i5K :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK) ~ Apply (Apply Max_6989586621679317609Sym0 t_a1i5J) t_a1i5K) => Sing t_a1i5J -> Sing t_a1i5K -> Sing (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK)
sMin :: forall (t_a1i5L :: a_a1hAK) (t_a1i5M :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK) ~ Apply (Apply Min_6989586621679317642Sym0 t_a1i5L) t_a1i5M) => Sing t_a1i5L -> Sing t_a1i5M -> Sing (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK)
sComparing :: forall (t_a1i5t :: TyFun b_a1hAA a_a1hAz -> Type) (t_a1i5u :: b_a1hAA) (t_a1i5v :: b_a1hAA). SOrd a_a1hAz => Sing t_a1i5t -> Sing t_a1i5u -> Sing t_a1i5v -> Sing (Apply (Apply (Apply ComparingSym0 t_a1i5t) t_a1i5u) t_a1i5v :: Ordering)
thenCmp :: Ordering -> Ordering -> Ordering
sThenCmp :: forall (t_a1jOl :: Ordering) (t_a1jOm :: Ordering). Sing t_a1jOl -> Sing t_a1jOm -> Sing (Apply (Apply ThenCmpSym0 t_a1jOl) t_a1jOm :: Ordering)

-- | The singleton kind-indexed data family.
data ThenCmpSym0 (l_a1jOg :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jOe :: Ordering) (l_a1jOd :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jOb :: Ordering) (t_a1jOc :: Ordering) = ThenCmp t_a1jOb t_a1jOc
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1i0F :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Ordering -> Type))
data CompareSym1 (l_a1i0D :: a6989586621679315746) (l_a1i0C :: TyFun a6989586621679315746 Ordering)
type CompareSym2 (t_a1i0A :: a6989586621679315746) (t_a1i0B :: a6989586621679315746) = Compare t_a1i0A t_a1i0B
data (<@#@$) (l_a1i0O :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (<@#@$$) (l_a1i0M :: a6989586621679315746) (l_a1i0L :: TyFun a6989586621679315746 Bool)
type (<@#@$$$) (t_a1i0J :: a6989586621679315746) (t_a1i0K :: a6989586621679315746) = (<) t_a1i0J t_a1i0K
data (<=@#@$) (l_a1i0X :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (<=@#@$$) (l_a1i0V :: a6989586621679315746) (l_a1i0U :: TyFun a6989586621679315746 Bool)
type (<=@#@$$$) (t_a1i0S :: a6989586621679315746) (t_a1i0T :: a6989586621679315746) = (<=) t_a1i0S t_a1i0T
data (>@#@$) (l_a1i16 :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>@#@$$) (l_a1i14 :: a6989586621679315746) (l_a1i13 :: TyFun a6989586621679315746 Bool)
type (>@#@$$$) (t_a1i11 :: a6989586621679315746) (t_a1i12 :: a6989586621679315746) = (>) t_a1i11 t_a1i12
data (>=@#@$) (l_a1i1f :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>=@#@$$) (l_a1i1d :: a6989586621679315746) (l_a1i1c :: TyFun a6989586621679315746 Bool)
type (>=@#@$$$) (t_a1i1a :: a6989586621679315746) (t_a1i1b :: a6989586621679315746) = (>=) t_a1i1a t_a1i1b
data MaxSym0 (l_a1i1o :: TyFun a6989586621679315746 (TyFun a6989586621679315746 a6989586621679315746 -> Type))
data MaxSym1 (l_a1i1m :: a6989586621679315746) (l_a1i1l :: TyFun a6989586621679315746 a6989586621679315746)
type MaxSym2 (t_a1i1j :: a6989586621679315746) (t_a1i1k :: a6989586621679315746) = Max t_a1i1j t_a1i1k
data MinSym0 (l_a1i1x :: TyFun a6989586621679315746 (TyFun a6989586621679315746 a6989586621679315746 -> Type))
data MinSym1 (l_a1i1v :: a6989586621679315746) (l_a1i1u :: TyFun a6989586621679315746 a6989586621679315746)
type MinSym2 (t_a1i1s :: a6989586621679315746) (t_a1i1t :: a6989586621679315746) = Min t_a1i1s t_a1i1t
data ComparingSym0 (l_a1i0q :: TyFun (TyFun b6989586621679315736 a6989586621679315735 -> Type) (TyFun b6989586621679315736 (TyFun b6989586621679315736 Ordering -> Type) -> Type))
data ComparingSym1 (l_a1i0o :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (l_a1i0n :: TyFun b6989586621679315736 (TyFun b6989586621679315736 Ordering -> Type))
data ComparingSym2 (l_a1i0k :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (l_a1i0l :: b6989586621679315736) (l_a1i0j :: TyFun b6989586621679315736 Ordering)
type ComparingSym3 (t_a1i0g :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (t_a1i0h :: b6989586621679315736) (t_a1i0i :: b6989586621679315736) = Comparing t_a1i0g t_a1i0h t_a1i0i
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325080Sym0
instance Data.Singletons.Prelude.Ord.POrd ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325080Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325060Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325060Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325040Sym0
instance Data.Singletons.Prelude.Ord.POrd GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325040Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325006Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679325006Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324925Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e, f)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324925Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324853Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d, e)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324853Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324790Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c, d)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324790Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324736Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b, c)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324736Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324691Sym0
instance Data.Singletons.Prelude.Ord.POrd (a, b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324691Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324657Sym0
instance Data.Singletons.Prelude.Ord.POrd Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324657Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324633Sym0
instance Data.Singletons.Prelude.Ord.POrd (GHC.Base.NonEmpty a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324633Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324596Sym0
instance Data.Singletons.Prelude.Ord.POrd (Data.Either.Either a b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324596Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324556Sym0
instance Data.Singletons.Prelude.Ord.POrd [a]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324556Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324520Sym0
instance Data.Singletons.Prelude.Ord.POrd (GHC.Base.Maybe a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679324520Sym1
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.Let6989586621679317464Scrutinee_6989586621679315768Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317464Scrutinee_6989586621679315768Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317497Scrutinee_6989586621679315770Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317497Scrutinee_6989586621679315770Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317530Scrutinee_6989586621679315772Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317530Scrutinee_6989586621679315772Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317563Scrutinee_6989586621679315774Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317563Scrutinee_6989586621679315774Sym1
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.Let6989586621679317430Scrutinee_6989586621679315766Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317430Scrutinee_6989586621679315766Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317596Scrutinee_6989586621679315776Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317596Scrutinee_6989586621679315776Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317629Scrutinee_6989586621679315778Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317629Scrutinee_6989586621679315778Sym1
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_6989586621679317444Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Compare_6989586621679317444Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317477Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317477Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317510Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317510Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317543Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317543Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317576Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.TFHelper_6989586621679317576Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679317609Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Max_6989586621679317609Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679317642Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Min_6989586621679317642Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317420Scrutinee_6989586621679315764Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Ord.Let6989586621679317420Scrutinee_6989586621679315764Sym1


-- | 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_a1Cb7 :: TyFun k06989586621679393946 k6989586621679393947)
type ErrorSym1 (t_a1Cb6 :: k06989586621679393946) = Error t_a1Cb6
type UndefinedSym0 = Undefined
data KnownNatSym0 (l_a1GLG :: TyFun Nat Constraint)
type KnownNatSym1 (t_a1GLF :: Nat) = KnownNat t_a1GLF
data KnownSymbolSym0 (l_a1GLJ :: TyFun Symbol Constraint)
type KnownSymbolSym1 (t_a1GLI :: Symbol) = KnownSymbol t_a1GLI
data (^@#@$) (l_a1CfL :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1CfJ :: Nat) (l_a1CfI :: TyFun Nat Nat)
type (^@#@$$$) (t_a1CfG :: Nat) (t_a1CfH :: Nat) = (^) t_a1CfG t_a1CfH
data (<>@#@$) l_a1CjE
data (<>@#@$$) (l_a1CjC :: Symbol) l_a1CjB
type (<>@#@$$$) (t_a1Cjz :: Symbol) (t_a1CjA :: Symbol) = (<>) t_a1Cjz t_a1CjA
data Log2Sym0 (l_a1GSy :: TyFun Nat Nat)
type Log2Sym1 (t_a1GSx :: Nat) = Log2 t_a1GSx
data DivSym0 (l_a1GV8 :: TyFun Nat (TyFun Nat Nat -> Type))
data DivSym1 (l_a1GV6 :: Nat) (l_a1GV5 :: TyFun Nat Nat)
type DivSym2 (t_a1GV3 :: Nat) (t_a1GV4 :: Nat) = Div t_a1GV3 t_a1GV4
data ModSym0 (l_a1GYN :: TyFun Nat (TyFun Nat Nat -> Type))
data ModSym1 (l_a1GYL :: Nat) (l_a1GYK :: TyFun Nat Nat)
type ModSym2 (t_a1GYI :: Nat) (t_a1GYJ :: Nat) = Mod t_a1GYI t_a1GYJ
data DivModSym0 (l_a1H5a :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type))
data DivModSym1 (l_a1H58 :: Nat) (l_a1H57 :: TyFun Nat (Nat, Nat))
type DivModSym2 (t_a1H55 :: Nat) (t_a1H56 :: Nat) = DivMod t_a1H55 t_a1H56
data QuotSym0 (l_a1H4Z :: TyFun Nat (TyFun Nat Nat -> Type))
data QuotSym1 (l_a1H4X :: Nat) (l_a1H4W :: TyFun Nat Nat)
type QuotSym2 (t_a1H4U :: Nat) (t_a1H4V :: Nat) = Quot t_a1H4U t_a1H4V
data RemSym0 (l_a1H4K :: TyFun Nat (TyFun Nat Nat -> Type))
data RemSym1 (l_a1H4I :: Nat) (l_a1H4H :: TyFun Nat Nat)
type RemSym2 (t_a1H4F :: Nat) (t_a1H4G :: Nat) = Rem t_a1H4F t_a1H4G
data QuotRemSym0 (l_a1H5p :: TyFun Nat (TyFun Nat (Nat, Nat) -> Type))
data QuotRemSym1 (l_a1H5n :: Nat) (l_a1H5m :: TyFun Nat (Nat, Nat))
type QuotRemSym2 (t_a1H5k :: Nat) (t_a1H5l :: Nat) = QuotRem t_a1H5k t_a1H5l
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_a1IzS -> (a_a1IzT -> b_a1IzS) -> Maybe a_a1IzT -> b_a1IzS
sMaybe_ :: forall (t_a1IAs :: b_a1IzS) (t_a1IAt :: TyFun a_a1IzT b_a1IzS -> Type) (t_a1IAu :: Maybe a_a1IzT). Sing t_a1IAs -> Sing t_a1IAt -> Sing t_a1IAu -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1IAs) t_a1IAt) t_a1IAu :: b_a1IzS)
sIsJust :: forall (t_a1IW4 :: Maybe a_a1IRX). Sing t_a1IW4 -> Sing (Apply IsJustSym0 t_a1IW4 :: Bool)
sIsNothing :: forall (t_a1IW3 :: Maybe a_a1IRW). Sing t_a1IW3 -> Sing (Apply IsNothingSym0 t_a1IW3 :: Bool)
sFromJust :: forall (t_a1IW2 :: Maybe a_a1IRV). Sing t_a1IW2 -> Sing (Apply FromJustSym0 t_a1IW2 :: a_a1IRV)
sFromMaybe :: forall (t_a1IW0 :: a_a1IRU) (t_a1IW1 :: Maybe a_a1IRU). Sing t_a1IW0 -> Sing t_a1IW1 -> Sing (Apply (Apply FromMaybeSym0 t_a1IW0) t_a1IW1 :: a_a1IRU)
sListToMaybe :: forall (t_a1IVY :: [a_a1IRS]). Sing t_a1IVY -> Sing (Apply ListToMaybeSym0 t_a1IVY :: Maybe a_a1IRS)
sMaybeToList :: forall (t_a1IVZ :: Maybe a_a1IRT). Sing t_a1IVZ -> Sing (Apply MaybeToListSym0 t_a1IVZ :: [a_a1IRT])
sCatMaybes :: forall (t_a1IVX :: [Maybe a_a1IRR]). Sing t_a1IVX -> Sing (Apply CatMaybesSym0 t_a1IVX :: [a_a1IRR])
sMapMaybe :: forall (t_a1IVV :: TyFun a_a1IRP (Maybe b_a1IRQ) -> Type) (t_a1IVW :: [a_a1IRP]). Sing t_a1IVV -> Sing t_a1IVW -> Sing (Apply (Apply MapMaybeSym0 t_a1IVV) t_a1IVW :: [b_a1IRQ])
type NothingSym0 = Nothing
data JustSym0 (l_a12OA :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Oz :: a3530822107858468865) = Just t_a12Oz
data Maybe_Sym0 (l_a1IAk :: TyFun b6989586621679419480 (TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type) -> Type))
data Maybe_Sym1 (l_a1IAi :: b6989586621679419480) (l_a1IAh :: TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type))
data Maybe_Sym2 (l_a1IAe :: b6989586621679419480) (l_a1IAf :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (l_a1IAd :: TyFun (Maybe a6989586621679419481) b6989586621679419480)
type Maybe_Sym3 (t_a1IAa :: b6989586621679419480) (t_a1IAb :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (t_a1IAc :: Maybe a6989586621679419481) = Maybe_ t_a1IAa t_a1IAb t_a1IAc
data IsJustSym0 (l_a1IVS :: TyFun (Maybe a6989586621679420601) Bool)
type IsJustSym1 (t_a1IVR :: Maybe a6989586621679420601) = IsJust t_a1IVR
data IsNothingSym0 (l_a1IVO :: TyFun (Maybe a6989586621679420600) Bool)
type IsNothingSym1 (t_a1IVN :: Maybe a6989586621679420600) = IsNothing t_a1IVN
data FromJustSym0 (l_a1IVJ :: TyFun (Maybe a6989586621679420599) a6989586621679420599)
type FromJustSym1 (t_a1IVI :: Maybe a6989586621679420599) = FromJust t_a1IVI
data FromMaybeSym0 (l_a1IVy :: TyFun a6989586621679420598 (TyFun (Maybe a6989586621679420598) a6989586621679420598 -> Type))
data FromMaybeSym1 (l_a1IVw :: a6989586621679420598) (l_a1IVv :: TyFun (Maybe a6989586621679420598) a6989586621679420598)
type FromMaybeSym2 (t_a1IVt :: a6989586621679420598) (t_a1IVu :: Maybe a6989586621679420598) = FromMaybe t_a1IVt t_a1IVu
data ListToMaybeSym0 (l_a1IVk :: TyFun [a6989586621679420596] (Maybe a6989586621679420596))
type ListToMaybeSym1 (t_a1IVj :: [a6989586621679420596]) = ListToMaybe t_a1IVj
data MaybeToListSym0 (l_a1IVp :: TyFun (Maybe a6989586621679420597) [a6989586621679420597])
type MaybeToListSym1 (t_a1IVo :: Maybe a6989586621679420597) = MaybeToList t_a1IVo
data CatMaybesSym0 (l_a1IVd :: TyFun [Maybe a6989586621679420595] [a6989586621679420595])
type CatMaybesSym1 (t_a1IVc :: [Maybe a6989586621679420595]) = CatMaybes t_a1IVc
data MapMaybeSym0 (l_a1IUB :: TyFun (TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (TyFun [a6989586621679420593] [b6989586621679420594] -> Type))
data MapMaybeSym1 (l_a1IUz :: TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (l_a1IUy :: TyFun [a6989586621679420593] [b6989586621679420594])
type MapMaybeSym2 (t_a1IUw :: TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (t_a1IUx :: [a6989586621679420593]) = MapMaybe t_a1IUw t_a1IUx
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.Let6989586621679420772RsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679420772RsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679420772RsSym2
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.Let6989586621679420785Scrutinee_6989586621679420628Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679420785Scrutinee_6989586621679420628Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Maybe.Let6989586621679420785Scrutinee_6989586621679420628Sym2
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_a1IzS -> (a_a1IzT -> b_a1IzS) -> Maybe a_a1IzT -> b_a1IzS
type NothingSym0 = Nothing
data JustSym0 (l_a12OA :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Oz :: a3530822107858468865) = Just t_a12Oz
data Maybe_Sym0 (l_a1IAk :: TyFun b6989586621679419480 (TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type) -> Type))
data Maybe_Sym1 (l_a1IAi :: b6989586621679419480) (l_a1IAh :: TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type))
data Maybe_Sym2 (l_a1IAe :: b6989586621679419480) (l_a1IAf :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (l_a1IAd :: TyFun (Maybe a6989586621679419481) b6989586621679419480)
type Maybe_Sym3 (t_a1IAa :: b6989586621679419480) (t_a1IAb :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (t_a1IAc :: Maybe a6989586621679419481) = Maybe_ t_a1IAa t_a1IAb t_a1IAc
data IsJustSym0 (l_a1IVS :: TyFun (Maybe a6989586621679420601) Bool)
type IsJustSym1 (t_a1IVR :: Maybe a6989586621679420601) = IsJust t_a1IVR
data IsNothingSym0 (l_a1IVO :: TyFun (Maybe a6989586621679420600) Bool)
type IsNothingSym1 (t_a1IVN :: Maybe a6989586621679420600) = IsNothing t_a1IVN
data FromJustSym0 (l_a1IVJ :: TyFun (Maybe a6989586621679420599) a6989586621679420599)
type FromJustSym1 (t_a1IVI :: Maybe a6989586621679420599) = FromJust t_a1IVI
data FromMaybeSym0 (l_a1IVy :: TyFun a6989586621679420598 (TyFun (Maybe a6989586621679420598) a6989586621679420598 -> Type))
data FromMaybeSym1 (l_a1IVw :: a6989586621679420598) (l_a1IVv :: TyFun (Maybe a6989586621679420598) a6989586621679420598)
type FromMaybeSym2 (t_a1IVt :: a6989586621679420598) (t_a1IVu :: Maybe a6989586621679420598) = FromMaybe t_a1IVt t_a1IVu
data MaybeToListSym0 (l_a1IVp :: TyFun (Maybe a6989586621679420597) [a6989586621679420597])
type MaybeToListSym1 (t_a1IVo :: Maybe a6989586621679420597) = MaybeToList t_a1IVo
data ListToMaybeSym0 (l_a1IVk :: TyFun [a6989586621679420596] (Maybe a6989586621679420596))
type ListToMaybeSym1 (t_a1IVj :: [a6989586621679420596]) = ListToMaybe t_a1IVj
data CatMaybesSym0 (l_a1IVd :: TyFun [Maybe a6989586621679420595] [a6989586621679420595])
type CatMaybesSym1 (t_a1IVc :: [Maybe a6989586621679420595]) = CatMaybes t_a1IVc
data MapMaybeSym0 (l_a1IUB :: TyFun (TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (TyFun [a6989586621679420593] [b6989586621679420594] -> Type))
data MapMaybeSym1 (l_a1IUz :: TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (l_a1IUy :: TyFun [a6989586621679420593] [b6989586621679420594])
type MapMaybeSym2 (t_a1IUw :: TyFun a6989586621679420593 (Maybe b6989586621679420594) -> Type) (t_a1IUx :: [a6989586621679420593]) = MapMaybe t_a1IUw t_a1IUx


-- | 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_a1KQu :: Type) where {
    type family FromString (arg_a1KQv :: Symbol) :: a_a1KQu;
}
class SIsString a_a1KQu
sFromString :: forall (t_a1KQz :: Symbol). SIsString a_a1KQu => Sing t_a1KQz -> Sing (Apply FromStringSym0 t_a1KQz :: a_a1KQu)
data FromStringSym0 (l_a1KQx :: TyFun Symbol a6989586621679428198)
type FromStringSym1 (t_a1KQw :: Symbol) = FromString t_a1KQw
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_a1KQu :: Type) where {
    type family FromString (arg_a1KQv :: Symbol) :: a_a1KQu;
}
data FromStringSym0 (l_a1KQx :: TyFun Symbol a6989586621679428198)
type FromStringSym1 (t_a1KQw :: Symbol) = FromString t_a1KQw


-- | 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_a1L1i :: Type) where {
    type family (+) (arg_a1L1m :: a_a1L1i) (arg_a1L1n :: a_a1L1i) :: a_a1L1i;
    type family (-) (arg_a1L1v :: a_a1L1i) (arg_a1L1w :: a_a1L1i) :: a_a1L1i;
    type family (*) (arg_a1L1E :: a_a1L1i) (arg_a1L1F :: a_a1L1i) :: a_a1L1i;
    type family Negate (arg_a1L1N :: a_a1L1i) :: a_a1L1i;
    type family Abs (arg_a1L1R :: a_a1L1i) :: a_a1L1i;
    type family Signum (arg_a1L1V :: a_a1L1i) :: a_a1L1i;
    type family FromInteger (arg_a1L1Z :: Nat) :: a_a1L1i;
    type (-) a_a1L2e a_a1L2f =
        Apply (Apply TFHelper_6989586621679428928Sym0 a_a1L2e) a_a1L2f;
    type Negate a_a1L2u = Apply Negate_6989586621679428943Sym0 a_a1L2u;
}
class SNum a_a1L1i
(%+) :: forall (t_a1L2A :: a_a1L1i) (t_a1L2B :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2A -> Sing t_a1L2B -> Sing (Apply (Apply (+@#@$) t_a1L2A) t_a1L2B :: a_a1L1i)
(%-) :: forall (t_a1L2C :: a_a1L1i) (t_a1L2D :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2C -> Sing t_a1L2D -> Sing (Apply (Apply (-@#@$) t_a1L2C) t_a1L2D :: a_a1L1i)
(%*) :: forall (t_a1L2E :: a_a1L1i) (t_a1L2F :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2E -> Sing t_a1L2F -> Sing (Apply (Apply (*@#@$) t_a1L2E) t_a1L2F :: a_a1L1i)
sNegate :: forall (t_a1L2G :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2G -> Sing (Apply NegateSym0 t_a1L2G :: a_a1L1i)
sAbs :: forall (t_a1L2H :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2H -> Sing (Apply AbsSym0 t_a1L2H :: a_a1L1i)
sSignum :: forall (t_a1L2I :: a_a1L1i). SNum a_a1L1i => Sing t_a1L2I -> Sing (Apply SignumSym0 t_a1L2I :: a_a1L1i)
sFromInteger :: forall (t_a1L2J :: Nat). SNum a_a1L1i => Sing t_a1L2J -> Sing (Apply FromIntegerSym0 t_a1L2J :: a_a1L1i)
(%-) :: forall (t_a1L2C :: a_a1L1i) (t_a1L2D :: a_a1L1i). (SNum a_a1L1i, (Apply (Apply (-@#@$) t_a1L2C) t_a1L2D :: a_a1L1i) ~ Apply (Apply TFHelper_6989586621679428928Sym0 t_a1L2C) t_a1L2D) => Sing t_a1L2C -> Sing t_a1L2D -> Sing (Apply (Apply (-@#@$) t_a1L2C) t_a1L2D :: a_a1L1i)
sNegate :: forall (t_a1L2G :: a_a1L1i). (SNum a_a1L1i, (Apply NegateSym0 t_a1L2G :: a_a1L1i) ~ Apply Negate_6989586621679428943Sym0 t_a1L2G) => Sing t_a1L2G -> Sing (Apply NegateSym0 t_a1L2G :: a_a1L1i)
sSubtract :: forall (t_a1LCv :: a_a1LBX) (t_a1LCw :: a_a1LBX). SNum a_a1LBX => Sing t_a1LCv -> Sing t_a1LCw -> Sing (Apply (Apply SubtractSym0 t_a1LCv) t_a1LCw :: a_a1LBX)
data (+@#@$) (l_a1L1t :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (+@#@$$) (l_a1L1r :: a6989586621679428868) (l_a1L1q :: TyFun a6989586621679428868 a6989586621679428868)
type (+@#@$$$) (t_a1L1o :: a6989586621679428868) (t_a1L1p :: a6989586621679428868) = (+) t_a1L1o t_a1L1p
data (-@#@$) (l_a1L1C :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (-@#@$$) (l_a1L1A :: a6989586621679428868) (l_a1L1z :: TyFun a6989586621679428868 a6989586621679428868)
type (-@#@$$$) (t_a1L1x :: a6989586621679428868) (t_a1L1y :: a6989586621679428868) = (-) t_a1L1x t_a1L1y
data (*@#@$) (l_a1L1L :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (*@#@$$) (l_a1L1J :: a6989586621679428868) (l_a1L1I :: TyFun a6989586621679428868 a6989586621679428868)
type (*@#@$$$) (t_a1L1G :: a6989586621679428868) (t_a1L1H :: a6989586621679428868) = (*) t_a1L1G t_a1L1H
data NegateSym0 (l_a1L1P :: TyFun a6989586621679428868 a6989586621679428868)
type NegateSym1 (t_a1L1O :: a6989586621679428868) = Negate t_a1L1O
data AbsSym0 (l_a1L1T :: TyFun a6989586621679428868 a6989586621679428868)
type AbsSym1 (t_a1L1S :: a6989586621679428868) = Abs t_a1L1S
data SignumSym0 (l_a1L1X :: TyFun a6989586621679428868 a6989586621679428868)
type SignumSym1 (t_a1L1W :: a6989586621679428868) = Signum t_a1L1W
data FromIntegerSym0 (l_a1L21 :: TyFun Nat a6989586621679428868)
type FromIntegerSym1 (t_a1L20 :: Nat) = FromInteger t_a1L20
data SubtractSym0 (l_a1LCp :: TyFun a6989586621679431141 (TyFun a6989586621679431141 a6989586621679431141 -> Type))
data SubtractSym1 (l_a1LCn :: a6989586621679431141) (l_a1LCm :: TyFun a6989586621679431141 a6989586621679431141)
type SubtractSym2 (t_a1LCk :: a6989586621679431141) (t_a1LCl :: a6989586621679431141) = Subtract t_a1LCk t_a1LCl
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_6989586621679428928Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.TFHelper_6989586621679428928Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Num.Negate_6989586621679428943Sym0


-- | Defines and exports promoted and singleton versions of definitions
--   from GHC.Num.
module Data.Promotion.Prelude.Num
class PNum (a_a1L1i :: Type) where {
    type family (+) (arg_a1L1m :: a_a1L1i) (arg_a1L1n :: a_a1L1i) :: a_a1L1i;
    type family (-) (arg_a1L1v :: a_a1L1i) (arg_a1L1w :: a_a1L1i) :: a_a1L1i;
    type family (*) (arg_a1L1E :: a_a1L1i) (arg_a1L1F :: a_a1L1i) :: a_a1L1i;
    type family Negate (arg_a1L1N :: a_a1L1i) :: a_a1L1i;
    type family Abs (arg_a1L1R :: a_a1L1i) :: a_a1L1i;
    type family Signum (arg_a1L1V :: a_a1L1i) :: a_a1L1i;
    type family FromInteger (arg_a1L1Z :: Nat) :: a_a1L1i;
    type (-) a_a1L2e a_a1L2f =
        Apply (Apply TFHelper_6989586621679428928Sym0 a_a1L2e) a_a1L2f;
    type Negate a_a1L2u = Apply Negate_6989586621679428943Sym0 a_a1L2u;
}
data (+@#@$) (l_a1L1t :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (+@#@$$) (l_a1L1r :: a6989586621679428868) (l_a1L1q :: TyFun a6989586621679428868 a6989586621679428868)
type (+@#@$$$) (t_a1L1o :: a6989586621679428868) (t_a1L1p :: a6989586621679428868) = (+) t_a1L1o t_a1L1p
data (-@#@$) (l_a1L1C :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (-@#@$$) (l_a1L1A :: a6989586621679428868) (l_a1L1z :: TyFun a6989586621679428868 a6989586621679428868)
type (-@#@$$$) (t_a1L1x :: a6989586621679428868) (t_a1L1y :: a6989586621679428868) = (-) t_a1L1x t_a1L1y
data (*@#@$) (l_a1L1L :: TyFun a6989586621679428868 (TyFun a6989586621679428868 a6989586621679428868 -> Type))
data (*@#@$$) (l_a1L1J :: a6989586621679428868) (l_a1L1I :: TyFun a6989586621679428868 a6989586621679428868)
type (*@#@$$$) (t_a1L1G :: a6989586621679428868) (t_a1L1H :: a6989586621679428868) = (*) t_a1L1G t_a1L1H
data NegateSym0 (l_a1L1P :: TyFun a6989586621679428868 a6989586621679428868)
type NegateSym1 (t_a1L1O :: a6989586621679428868) = Negate t_a1L1O
data AbsSym0 (l_a1L1T :: TyFun a6989586621679428868 a6989586621679428868)
type AbsSym1 (t_a1L1S :: a6989586621679428868) = Abs t_a1L1S
data SignumSym0 (l_a1L1X :: TyFun a6989586621679428868 a6989586621679428868)
type SignumSym1 (t_a1L1W :: a6989586621679428868) = Signum t_a1L1W
data FromIntegerSym0 (l_a1L21 :: TyFun Nat a6989586621679428868)
type FromIntegerSym1 (t_a1L20 :: Nat) = FromInteger t_a1L20
data SubtractSym0 (l_a1LCp :: TyFun a6989586621679431141 (TyFun a6989586621679431141 a6989586621679431141 -> Type))
data SubtractSym1 (l_a1LCn :: a6989586621679431141) (l_a1LCm :: TyFun a6989586621679431141 a6989586621679431141)
type SubtractSym2 (t_a1LCk :: a6989586621679431141) (t_a1LCl :: a6989586621679431141) = Subtract t_a1LCk t_a1LCl


-- | Provides promoted definitions related to type-level comparisons.
module Data.Promotion.Prelude.Ord
class PEq a_a1hAK => POrd (a_a1hAK :: Type) where {
    type family Compare (arg_a1i0y :: a_a1hAK) (arg_a1i0z :: a_a1hAK) :: Ordering;
    type family (<) (arg_a1i0H :: a_a1hAK) (arg_a1i0I :: a_a1hAK) :: Bool;
    type family (<=) (arg_a1i0Q :: a_a1hAK) (arg_a1i0R :: a_a1hAK) :: Bool;
    type family (>) (arg_a1i0Z :: a_a1hAK) (arg_a1i10 :: a_a1hAK) :: Bool;
    type family (>=) (arg_a1i18 :: a_a1hAK) (arg_a1i19 :: a_a1hAK) :: Bool;
    type family Max (arg_a1i1h :: a_a1hAK) (arg_a1i1i :: a_a1hAK) :: a_a1hAK;
    type family Min (arg_a1i1q :: a_a1hAK) (arg_a1i1r :: a_a1hAK) :: a_a1hAK;
    type Compare a_a1i26 a_a1i27 =
        Apply (Apply Compare_6989586621679317444Sym0 a_a1i26) a_a1i27;
    type (<) a_a1i2D a_a1i2E =
        Apply (Apply TFHelper_6989586621679317477Sym0 a_a1i2D) a_a1i2E;
    type (<=) a_a1i3a a_a1i3b =
        Apply (Apply TFHelper_6989586621679317510Sym0 a_a1i3a) a_a1i3b;
    type (>) a_a1i3H a_a1i3I =
        Apply (Apply TFHelper_6989586621679317543Sym0 a_a1i3H) a_a1i3I;
    type (>=) a_a1i4e a_a1i4f =
        Apply (Apply TFHelper_6989586621679317576Sym0 a_a1i4e) a_a1i4f;
    type Max a_a1i4L a_a1i4M =
        Apply (Apply Max_6989586621679317609Sym0 a_a1i4L) a_a1i4M;
    type Min a_a1i5i a_a1i5j =
        Apply (Apply Min_6989586621679317642Sym0 a_a1i5i) a_a1i5j;
}
data ThenCmpSym0 (l_a1jOg :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jOe :: Ordering) (l_a1jOd :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jOb :: Ordering) (t_a1jOc :: Ordering) = ThenCmp t_a1jOb t_a1jOc
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
data CompareSym0 (l_a1i0F :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Ordering -> Type))
data CompareSym1 (l_a1i0D :: a6989586621679315746) (l_a1i0C :: TyFun a6989586621679315746 Ordering)
type CompareSym2 (t_a1i0A :: a6989586621679315746) (t_a1i0B :: a6989586621679315746) = Compare t_a1i0A t_a1i0B
data (<@#@$) (l_a1i0O :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (<@#@$$) (l_a1i0M :: a6989586621679315746) (l_a1i0L :: TyFun a6989586621679315746 Bool)
type (<@#@$$$) (t_a1i0J :: a6989586621679315746) (t_a1i0K :: a6989586621679315746) = (<) t_a1i0J t_a1i0K
data (<=@#@$) (l_a1i0X :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (<=@#@$$) (l_a1i0V :: a6989586621679315746) (l_a1i0U :: TyFun a6989586621679315746 Bool)
type (<=@#@$$$) (t_a1i0S :: a6989586621679315746) (t_a1i0T :: a6989586621679315746) = (<=) t_a1i0S t_a1i0T
data (>@#@$) (l_a1i16 :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>@#@$$) (l_a1i14 :: a6989586621679315746) (l_a1i13 :: TyFun a6989586621679315746 Bool)
type (>@#@$$$) (t_a1i11 :: a6989586621679315746) (t_a1i12 :: a6989586621679315746) = (>) t_a1i11 t_a1i12
data (>=@#@$) (l_a1i1f :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>=@#@$$) (l_a1i1d :: a6989586621679315746) (l_a1i1c :: TyFun a6989586621679315746 Bool)
type (>=@#@$$$) (t_a1i1a :: a6989586621679315746) (t_a1i1b :: a6989586621679315746) = (>=) t_a1i1a t_a1i1b
data MaxSym0 (l_a1i1o :: TyFun a6989586621679315746 (TyFun a6989586621679315746 a6989586621679315746 -> Type))
data MaxSym1 (l_a1i1m :: a6989586621679315746) (l_a1i1l :: TyFun a6989586621679315746 a6989586621679315746)
type MaxSym2 (t_a1i1j :: a6989586621679315746) (t_a1i1k :: a6989586621679315746) = Max t_a1i1j t_a1i1k
data MinSym0 (l_a1i1x :: TyFun a6989586621679315746 (TyFun a6989586621679315746 a6989586621679315746 -> Type))
data MinSym1 (l_a1i1v :: a6989586621679315746) (l_a1i1u :: TyFun a6989586621679315746 a6989586621679315746)
type MinSym2 (t_a1i1s :: a6989586621679315746) (t_a1i1t :: a6989586621679315746) = Min t_a1i1s t_a1i1t
data ComparingSym0 (l_a1i0q :: TyFun (TyFun b6989586621679315736 a6989586621679315735 -> Type) (TyFun b6989586621679315736 (TyFun b6989586621679315736 Ordering -> Type) -> Type))
data ComparingSym1 (l_a1i0o :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (l_a1i0n :: TyFun b6989586621679315736 (TyFun b6989586621679315736 Ordering -> Type))
data ComparingSym2 (l_a1i0k :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (l_a1i0l :: b6989586621679315736) (l_a1i0j :: TyFun b6989586621679315736 Ordering)
type ComparingSym3 (t_a1i0g :: TyFun b6989586621679315736 a6989586621679315735 -> Type) (t_a1i0h :: b6989586621679315736) (t_a1i0i :: b6989586621679315736) = Comparing t_a1i0g t_a1i0h t_a1i0i


-- | 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_a1eEc :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (==@#@$$) (l_a1eEa :: a6989586621679304361) (l_a1eE9 :: TyFun a6989586621679304361 Bool)
type (==@#@$$$) (t_a1eE7 :: a6989586621679304361) (t_a1eE8 :: a6989586621679304361) = (==) t_a1eE7 t_a1eE8
data (/=@#@$) (l_a1eEj :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (/=@#@$$) (l_a1eEh :: a6989586621679304361) (l_a1eEg :: TyFun a6989586621679304361 Bool)
type (/=@#@$$$) (t_a1eEe :: a6989586621679304361) (t_a1eEf :: a6989586621679304361) = (/=) t_a1eEe t_a1eEf


-- | 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_a1N4d :: TyFun a_a1MZa (TyFun b_a1MZb b_a1MZb -> Type) -> Type) (t_a1N4e :: b_a1MZb) (t_a1N4f :: [a_a1MZa]). Sing t_a1N4d -> Sing t_a1N4e -> Sing t_a1N4f -> Sing (Apply (Apply (Apply FoldrSym0 t_a1N4d) t_a1N4e) t_a1N4f :: b_a1MZb)
sMap :: forall (t_a1N4b :: TyFun a_a1MZ8 b_a1MZ9 -> Type) (t_a1N4c :: [a_a1MZ8]). Sing t_a1N4b -> Sing t_a1N4c -> Sing (Apply (Apply MapSym0 t_a1N4b) t_a1N4c :: [b_a1MZ9])
(%++) :: forall (t_a1N49 :: [a_a1MZ7]) (t_a1N4a :: [a_a1MZ7]). Sing t_a1N49 -> Sing t_a1N4a -> Sing (Apply (Apply (++@#@$) t_a1N49) t_a1N4a :: [a_a1MZ7])
infixr 5 %++
sOtherwise :: Sing (OtherwiseSym0 :: Bool)
sId :: forall (t_a1N48 :: a_a1MZ6). Sing t_a1N48 -> Sing (Apply IdSym0 t_a1N48 :: a_a1MZ6)
sConst :: forall (t_a1N44 :: a_a1MZ4) (t_a1N45 :: b_a1MZ5). Sing t_a1N44 -> Sing t_a1N45 -> Sing (Apply (Apply ConstSym0 t_a1N44) t_a1N45 :: a_a1MZ4)
(%.) :: forall (t_a1N41 :: TyFun b_a1MZ1 c_a1MZ2 -> Type) (t_a1N42 :: TyFun a_a1MZ3 b_a1MZ1 -> Type) (t_a1N43 :: a_a1MZ3). Sing t_a1N41 -> Sing t_a1N42 -> Sing t_a1N43 -> Sing (Apply (Apply (Apply (.@#@$) t_a1N41) t_a1N42) t_a1N43 :: c_a1MZ2)
infixr 9 %.
(%$) :: forall (t_a1N3W :: TyFun a_a1MYV b_a1MYW -> Type) (t_a1N3X :: a_a1MYV). Sing t_a1N3W -> Sing t_a1N3X -> Sing (Apply (Apply ($@#@$) t_a1N3W) t_a1N3X :: b_a1MYW)
infixr 0 %$
(%$!) :: forall (t_a1N3U :: TyFun a_a1MYT b_a1MYU -> Type) (t_a1N3V :: a_a1MYT). Sing t_a1N3U -> Sing t_a1N3V -> Sing (Apply (Apply ($!@#@$) t_a1N3U) t_a1N3V :: b_a1MYU)
infixr 0 %$!
sFlip :: forall (t_a1N3Y :: TyFun a_a1MYY (TyFun b_a1MYZ c_a1MZ0 -> Type) -> Type) (t_a1N3Z :: b_a1MYZ) (t_a1N40 :: a_a1MYY). Sing t_a1N3Y -> Sing t_a1N3Z -> Sing t_a1N40 -> Sing (Apply (Apply (Apply FlipSym0 t_a1N3Y) t_a1N3Z) t_a1N40 :: c_a1MZ0)
sAsTypeOf :: forall (t_a1N46 :: a_a1MYX) (t_a1N47 :: a_a1MYX). Sing t_a1N46 -> Sing t_a1N47 -> Sing (Apply (Apply AsTypeOfSym0 t_a1N46) t_a1N47 :: a_a1MYX)
sSeq :: forall (t_a1N3S :: a_a1MYR) (t_a1N3T :: b_a1MYS). Sing t_a1N3S -> Sing t_a1N3T -> Sing (Apply (Apply SeqSym0 t_a1N3S) t_a1N3T :: b_a1MYS)
infixr 0 `sSeq`
data FoldrSym0 (l_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
type (++@#@$$$) (t_a1N2N :: [a6989586621679436421]) (t_a1N2O :: [a6989586621679436421]) = (++) t_a1N2N t_a1N2O
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data ($!@#@$) (l_a1N0W :: TyFun (TyFun a6989586621679436407 b6989586621679436408 -> Type) (TyFun a6989586621679436407 b6989586621679436408 -> Type))
data ($!@#@$$) (l_a1N0U :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (l_a1N0T :: TyFun a6989586621679436407 b6989586621679436408)
type ($!@#@$$$) (t_a1N0R :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (t_a1N0S :: a6989586621679436407) = ($!) t_a1N0R t_a1N0S
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
type FlipSym3 (t_a1N1l :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (t_a1N1m :: b6989586621679436413) (t_a1N1n :: a6989586621679436412) = Flip t_a1N1l t_a1N1m t_a1N1n
data AsTypeOfSym0 (l_a1N2C :: TyFun a6989586621679436411 (TyFun a6989586621679436411 a6989586621679436411 -> Type))
data AsTypeOfSym1 (l_a1N2A :: a6989586621679436411) (l_a1N2z :: TyFun a6989586621679436411 a6989586621679436411)
type AsTypeOfSym2 (t_a1N2x :: a6989586621679436411) (t_a1N2y :: a6989586621679436411) = AsTypeOf t_a1N2x t_a1N2y
data SeqSym0 (l_a1N0M :: TyFun a6989586621679436405 (TyFun b6989586621679436406 b6989586621679436406 -> Type))
data SeqSym1 (l_a1N0K :: a6989586621679436405) (l_a1N0J :: TyFun b6989586621679436406 b6989586621679436406)
type SeqSym2 (t_a1N0H :: a6989586621679436405) (t_a1N0I :: b6989586621679436406) = Seq t_a1N0H t_a1N0I
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.Let6989586621679436694GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679436694GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679436694GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679436694GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679436597Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679436597Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679436597Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Lambda_6989586621679436597Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679436540VxSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Base.Let6989586621679436540VxSym1


-- | 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_a1N49 :: [a_a1MZ7]) (t_a1N4a :: [a_a1MZ7]). Sing t_a1N49 -> Sing t_a1N4a -> Sing (Apply (Apply (++@#@$) t_a1N49) t_a1N4a :: [a_a1MZ7])
infixr 5 %++
sHead :: forall (t_a1W9b :: [a_a1SWk]). Sing t_a1W9b -> Sing (Apply HeadSym0 t_a1W9b :: a_a1SWk)
sLast :: forall (t_a1W9a :: [a_a1SWj]). Sing t_a1W9a -> Sing (Apply LastSym0 t_a1W9a :: a_a1SWj)
sTail :: forall (t_a1W99 :: [a_a1SWi]). Sing t_a1W99 -> Sing (Apply TailSym0 t_a1W99 :: [a_a1SWi])
sInit :: forall (t_a1W98 :: [a_a1SWh]). Sing t_a1W98 -> Sing (Apply InitSym0 t_a1W98 :: [a_a1SWh])
sNull :: forall (t_a1W95 :: [a_a1SWg]). Sing t_a1W95 -> Sing (Apply NullSym0 t_a1W95 :: Bool)
sLength :: forall (t_a1W6D :: [a_a1SUq]). Sing t_a1W6D -> Sing (Apply LengthSym0 t_a1W6D :: Nat)
sMap :: forall (t_a1N4b :: TyFun a_a1MZ8 b_a1MZ9 -> Type) (t_a1N4c :: [a_a1MZ8]). Sing t_a1N4b -> Sing t_a1N4c -> Sing (Apply (Apply MapSym0 t_a1N4b) t_a1N4c :: [b_a1MZ9])
sReverse :: forall (t_a1W92 :: [a_a1SWf]). Sing t_a1W92 -> Sing (Apply ReverseSym0 t_a1W92 :: [a_a1SWf])
sIntersperse :: forall (t_a1W8Y :: a_a1SWe) (t_a1W8Z :: [a_a1SWe]). Sing t_a1W8Y -> Sing t_a1W8Z -> Sing (Apply (Apply IntersperseSym0 t_a1W8Y) t_a1W8Z :: [a_a1SWe])
sIntercalate :: forall (t_a1W90 :: [a_a1SWd]) (t_a1W91 :: [[a_a1SWd]]). Sing t_a1W90 -> Sing t_a1W91 -> Sing (Apply (Apply IntercalateSym0 t_a1W90) t_a1W91 :: [a_a1SWd])
sTranspose :: forall (t_a1W9c :: [[a_a1SUo]]). Sing t_a1W9c -> Sing (Apply TransposeSym0 t_a1W9c :: [[a_a1SUo]])
sSubsequences :: forall (t_a1W8X :: [a_a1SWc]). Sing t_a1W8X -> Sing (Apply SubsequencesSym0 t_a1W8X :: [[a_a1SWc]])
sPermutations :: forall (t_a1W8T :: [a_a1SW9]). Sing t_a1W8T -> Sing (Apply PermutationsSym0 t_a1W8T :: [[a_a1SW9]])
sFoldl :: forall (t_a15O9 :: TyFun b_a15MN (TyFun a_a15MM b_a15MN -> Type) -> Type) (t_a15Oa :: b_a15MN) (t_a15Ob :: [a_a15MM]). Sing t_a15O9 -> Sing t_a15Oa -> Sing t_a15Ob -> Sing (Apply (Apply (Apply FoldlSym0 t_a15O9) t_a15Oa) t_a15Ob :: b_a15MN)
sFoldl' :: forall (t_a1W8O :: TyFun b_a1SW8 (TyFun a_a1SW7 b_a1SW8 -> Type) -> Type) (t_a1W8P :: b_a1SW8) (t_a1W8Q :: [a_a1SW7]). Sing t_a1W8O -> Sing t_a1W8P -> Sing t_a1W8Q -> Sing (Apply (Apply (Apply Foldl'Sym0 t_a1W8O) t_a1W8P) t_a1W8Q :: b_a1SW8)
sFoldl1 :: forall (t_a1W8G :: TyFun a_a1SW6 (TyFun a_a1SW6 a_a1SW6 -> Type) -> Type) (t_a1W8H :: [a_a1SW6]). Sing t_a1W8G -> Sing t_a1W8H -> Sing (Apply (Apply Foldl1Sym0 t_a1W8G) t_a1W8H :: a_a1SW6)
sFoldl1' :: forall (t_a1W8R :: TyFun a_a1SW5 (TyFun a_a1SW5 a_a1SW5 -> Type) -> Type) (t_a1W8S :: [a_a1SW5]). Sing t_a1W8R -> Sing t_a1W8S -> Sing (Apply (Apply Foldl1'Sym0 t_a1W8R) t_a1W8S :: a_a1SW5)
sFoldr :: forall (t_a1N4d :: TyFun a_a1MZa (TyFun b_a1MZb b_a1MZb -> Type) -> Type) (t_a1N4e :: b_a1MZb) (t_a1N4f :: [a_a1MZa]). Sing t_a1N4d -> Sing t_a1N4e -> Sing t_a1N4f -> Sing (Apply (Apply (Apply FoldrSym0 t_a1N4d) t_a1N4e) t_a1N4f :: b_a1MZb)
sFoldr1 :: forall (t_a1W8E :: TyFun a_a1SW4 (TyFun a_a1SW4 a_a1SW4 -> Type) -> Type) (t_a1W8F :: [a_a1SW4]). Sing t_a1W8E -> Sing t_a1W8F -> Sing (Apply (Apply Foldr1Sym0 t_a1W8E) t_a1W8F :: a_a1SW4)
sConcat :: forall (t_a1W8D :: [[a_a1SW3]]). Sing t_a1W8D -> Sing (Apply ConcatSym0 t_a1W8D :: [a_a1SW3])
sConcatMap :: forall (t_a1W8B :: TyFun a_a1SW1 [b_a1SW2] -> Type) (t_a1W8C :: [a_a1SW1]). Sing t_a1W8B -> Sing t_a1W8C -> Sing (Apply (Apply ConcatMapSym0 t_a1W8B) t_a1W8C :: [b_a1SW2])
sAnd :: forall (t_a1W8A :: [Bool]). Sing t_a1W8A -> Sing (Apply AndSym0 t_a1W8A :: Bool)
sOr :: forall (t_a1W8z :: [Bool]). Sing t_a1W8z -> Sing (Apply OrSym0 t_a1W8z :: Bool)
sAny :: forall (t_a1W8o :: TyFun a_a1SVZ Bool -> Type) (t_a1W8p :: [a_a1SVZ]). Sing t_a1W8o -> Sing t_a1W8p -> Sing (Apply (Apply AnySym0 t_a1W8o) t_a1W8p :: Bool)
sAll :: forall (t_a1W8x :: TyFun a_a1SW0 Bool -> Type) (t_a1W8y :: [a_a1SW0]). Sing t_a1W8x -> Sing t_a1W8y -> Sing (Apply (Apply AllSym0 t_a1W8x) t_a1W8y :: Bool)
sSum :: forall (t_a1W6F :: [a_a1SUs]). SNum a_a1SUs => Sing t_a1W6F -> Sing (Apply SumSym0 t_a1W6F :: a_a1SUs)
sProduct :: forall (t_a1W6E :: [a_a1SUr]). SNum a_a1SUr => Sing t_a1W6E -> Sing (Apply ProductSym0 t_a1W6E :: a_a1SUr)
sMaximum :: forall (t_a1W8M :: [a_a1SUB]). SOrd a_a1SUB => Sing t_a1W8M -> Sing (Apply MaximumSym0 t_a1W8M :: a_a1SUB)
sMinimum :: forall (t_a1W8N :: [a_a1SUA]). SOrd a_a1SUA => Sing t_a1W8N -> Sing (Apply MinimumSym0 t_a1W8N :: a_a1SUA)
sScanl :: forall (t_a1W8j :: TyFun b_a1SVX (TyFun a_a1SVY b_a1SVX -> Type) -> Type) (t_a1W8k :: b_a1SVX) (t_a1W8l :: [a_a1SVY]). Sing t_a1W8j -> Sing t_a1W8k -> Sing t_a1W8l -> Sing (Apply (Apply (Apply ScanlSym0 t_a1W8j) t_a1W8k) t_a1W8l :: [b_a1SVX])
sScanl1 :: forall (t_a1W8m :: TyFun a_a1SVW (TyFun a_a1SVW a_a1SVW -> Type) -> Type) (t_a1W8n :: [a_a1SVW]). Sing t_a1W8m -> Sing t_a1W8n -> Sing (Apply (Apply Scanl1Sym0 t_a1W8m) t_a1W8n :: [a_a1SVW])
sScanr :: forall (t_a1W8g :: TyFun a_a1SVU (TyFun b_a1SVV b_a1SVV -> Type) -> Type) (t_a1W8h :: b_a1SVV) (t_a1W8i :: [a_a1SVU]). Sing t_a1W8g -> Sing t_a1W8h -> Sing t_a1W8i -> Sing (Apply (Apply (Apply ScanrSym0 t_a1W8g) t_a1W8h) t_a1W8i :: [b_a1SVV])
sScanr1 :: forall (t_a1W8e :: TyFun a_a1SVT (TyFun a_a1SVT a_a1SVT -> Type) -> Type) (t_a1W8f :: [a_a1SVT]). Sing t_a1W8e -> Sing t_a1W8f -> Sing (Apply (Apply Scanr1Sym0 t_a1W8e) t_a1W8f :: [a_a1SVT])
sMapAccumL :: forall (t_a1W8b :: TyFun acc_a1SVQ (TyFun x_a1SVR (acc_a1SVQ, y_a1SVS) -> Type) -> Type) (t_a1W8c :: acc_a1SVQ) (t_a1W8d :: [x_a1SVR]). Sing t_a1W8b -> Sing t_a1W8c -> Sing t_a1W8d -> Sing (Apply (Apply (Apply MapAccumLSym0 t_a1W8b) t_a1W8c) t_a1W8d :: (acc_a1SVQ, [y_a1SVS]))
sMapAccumR :: forall (t_a1W88 :: TyFun acc_a1SVN (TyFun x_a1SVO (acc_a1SVN, y_a1SVP) -> Type) -> Type) (t_a1W89 :: acc_a1SVN) (t_a1W8a :: [x_a1SVO]). Sing t_a1W88 -> Sing t_a1W89 -> Sing t_a1W8a -> Sing (Apply (Apply (Apply MapAccumRSym0 t_a1W88) t_a1W89) t_a1W8a :: (acc_a1SVN, [y_a1SVP]))
sReplicate :: forall (t_a1W6B :: Nat) (t_a1W6C :: a_a1SUp). Sing t_a1W6B -> Sing t_a1W6C -> Sing (Apply (Apply ReplicateSym0 t_a1W6B) t_a1W6C :: [a_a1SUp])
sUnfoldr :: forall (t_a1W86 :: TyFun b_a1SVL (Maybe (a_a1SVM, b_a1SVL)) -> Type) (t_a1W87 :: b_a1SVL). Sing t_a1W86 -> Sing t_a1W87 -> Sing (Apply (Apply UnfoldrSym0 t_a1W86) t_a1W87 :: [a_a1SVM])
sTake :: forall (t_a1W6P :: Nat) (t_a1W6Q :: [a_a1SUF]). Sing t_a1W6P -> Sing t_a1W6Q -> Sing (Apply (Apply TakeSym0 t_a1W6P) t_a1W6Q :: [a_a1SUF])
sDrop :: forall (t_a1W6N :: Nat) (t_a1W6O :: [a_a1SUE]). Sing t_a1W6N -> Sing t_a1W6O -> Sing (Apply (Apply DropSym0 t_a1W6N) t_a1W6O :: [a_a1SUE])
sSplitAt :: forall (t_a1W6R :: Nat) (t_a1W6S :: [a_a1SUD]). Sing t_a1W6R -> Sing t_a1W6S -> Sing (Apply (Apply SplitAtSym0 t_a1W6R) t_a1W6S :: ([a_a1SUD], [a_a1SUD]))
sTakeWhile :: forall (t_a1W72 :: TyFun a_a1SUK Bool -> Type) (t_a1W73 :: [a_a1SUK]). Sing t_a1W72 -> Sing t_a1W73 -> Sing (Apply (Apply TakeWhileSym0 t_a1W72) t_a1W73 :: [a_a1SUK])
sDropWhile :: forall (t_a1W70 :: TyFun a_a1SUJ Bool -> Type) (t_a1W71 :: [a_a1SUJ]). Sing t_a1W70 -> Sing t_a1W71 -> Sing (Apply (Apply DropWhileSym0 t_a1W70) t_a1W71 :: [a_a1SUJ])
sDropWhileEnd :: forall (t_a1W96 :: TyFun a_a1SUI Bool -> Type) (t_a1W97 :: [a_a1SUI]). Sing t_a1W96 -> Sing t_a1W97 -> Sing (Apply (Apply DropWhileEndSym0 t_a1W96) t_a1W97 :: [a_a1SUI])
sSpan :: forall (t_a1W6V :: TyFun a_a1SUH Bool -> Type) (t_a1W6W :: [a_a1SUH]). Sing t_a1W6V -> Sing t_a1W6W -> Sing (Apply (Apply SpanSym0 t_a1W6V) t_a1W6W :: ([a_a1SUH], [a_a1SUH]))
sBreak :: forall (t_a1W6T :: TyFun a_a1SUG Bool -> Type) (t_a1W6U :: [a_a1SUG]). Sing t_a1W6T -> Sing t_a1W6U -> Sing (Apply (Apply BreakSym0 t_a1W6T) t_a1W6U :: ([a_a1SUG], [a_a1SUG]))
sGroup :: forall (t_a1W6Z :: [a_a1SUC]). SEq a_a1SUC => Sing t_a1W6Z -> Sing (Apply GroupSym0 t_a1W6Z :: [[a_a1SUC]])
sInits :: forall (t_a1W85 :: [a_a1SVK]). Sing t_a1W85 -> Sing (Apply InitsSym0 t_a1W85 :: [[a_a1SVK]])
sTails :: forall (t_a1W84 :: [a_a1SVJ]). Sing t_a1W84 -> Sing (Apply TailsSym0 t_a1W84 :: [[a_a1SVJ]])
sIsPrefixOf :: forall (t_a1W82 :: [a_a1SVI]) (t_a1W83 :: [a_a1SVI]). SEq a_a1SVI => Sing t_a1W82 -> Sing t_a1W83 -> Sing (Apply (Apply IsPrefixOfSym0 t_a1W82) t_a1W83 :: Bool)
sIsSuffixOf :: forall (t_a1W93 :: [a_a1SVH]) (t_a1W94 :: [a_a1SVH]). SEq a_a1SVH => Sing t_a1W93 -> Sing t_a1W94 -> Sing (Apply (Apply IsSuffixOfSym0 t_a1W93) t_a1W94 :: Bool)
sIsInfixOf :: forall (t_a1W8q :: [a_a1SVG]) (t_a1W8r :: [a_a1SVG]). SEq a_a1SVG => Sing t_a1W8q -> Sing t_a1W8r -> Sing (Apply (Apply IsInfixOfSym0 t_a1W8q) t_a1W8r :: Bool)
sElem :: forall (t_a1W7Z :: a_a1SVF) (t_a1W80 :: [a_a1SVF]). SEq a_a1SVF => Sing t_a1W7Z -> Sing t_a1W80 -> Sing (Apply (Apply ElemSym0 t_a1W7Z) t_a1W80 :: Bool)
infix 4 `sElem`
sNotElem :: forall (t_a1W7X :: a_a1SVE) (t_a1W7Y :: [a_a1SVE]). SEq a_a1SVE => Sing t_a1W7X -> Sing t_a1W7Y -> Sing (Apply (Apply NotElemSym0 t_a1W7X) t_a1W7Y :: Bool)
infix 4 `sNotElem`
sLookup :: forall (t_a1W6L :: a_a1SUv) (t_a1W6M :: [(a_a1SUv, b_a1SUw)]). SEq a_a1SUv => Sing t_a1W6L -> Sing t_a1W6M -> Sing (Apply (Apply LookupSym0 t_a1W6L) t_a1W6M :: Maybe b_a1SUw)
sFind :: forall (t_a1W76 :: TyFun a_a1SUR Bool -> Type) (t_a1W77 :: [a_a1SUR]). Sing t_a1W76 -> Sing t_a1W77 -> Sing (Apply (Apply FindSym0 t_a1W76) t_a1W77 :: Maybe a_a1SUR)
sFilter :: forall (t_a1W74 :: TyFun a_a1SUS Bool -> Type) (t_a1W75 :: [a_a1SUS]). Sing t_a1W74 -> Sing t_a1W75 -> Sing (Apply (Apply FilterSym0 t_a1W74) t_a1W75 :: [a_a1SUS])
sPartition :: forall (t_a1W6J :: TyFun a_a1SUu Bool -> Type) (t_a1W6K :: [a_a1SUu]). Sing t_a1W6J -> Sing t_a1W6K -> Sing (Apply (Apply PartitionSym0 t_a1W6J) t_a1W6K :: ([a_a1SUu], [a_a1SUu]))
(%!!) :: forall (t_a1W6z :: [a_a1SUn]) (t_a1W6A :: Nat). Sing t_a1W6z -> Sing t_a1W6A -> Sing (Apply (Apply (!!@#@$) t_a1W6z) t_a1W6A :: a_a1SUn)
infixl 9 %!!
sElemIndex :: forall (t_a1W7V :: a_a1SUQ) (t_a1W7W :: [a_a1SUQ]). SEq a_a1SUQ => Sing t_a1W7V -> Sing t_a1W7W -> Sing (Apply (Apply ElemIndexSym0 t_a1W7V) t_a1W7W :: Maybe Nat)
sElemIndices :: forall (t_a1W7R :: a_a1SUP) (t_a1W7S :: [a_a1SUP]). SEq a_a1SUP => Sing t_a1W7R -> Sing t_a1W7S -> Sing (Apply (Apply ElemIndicesSym0 t_a1W7R) t_a1W7S :: [Nat])
sFindIndex :: forall (t_a1W7T :: TyFun a_a1SUO Bool -> Type) (t_a1W7U :: [a_a1SUO]). Sing t_a1W7T -> Sing t_a1W7U -> Sing (Apply (Apply FindIndexSym0 t_a1W7T) t_a1W7U :: Maybe Nat)
sFindIndices :: forall (t_a1W7P :: TyFun a_a1SUN Bool -> Type) (t_a1W7Q :: [a_a1SUN]). Sing t_a1W7P -> Sing t_a1W7Q -> Sing (Apply (Apply FindIndicesSym0 t_a1W7P) t_a1W7Q :: [Nat])
sZip :: forall (t_a1W7N :: [a_a1SVC]) (t_a1W7O :: [b_a1SVD]). Sing t_a1W7N -> Sing t_a1W7O -> Sing (Apply (Apply ZipSym0 t_a1W7N) t_a1W7O :: [(a_a1SVC, b_a1SVD)])
sZip3 :: forall (t_a1W7K :: [a_a1SVz]) (t_a1W7L :: [b_a1SVA]) (t_a1W7M :: [c_a1SVB]). Sing t_a1W7K -> Sing t_a1W7L -> Sing t_a1W7M -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1W7K) t_a1W7L) t_a1W7M :: [(a_a1SVz, b_a1SVA, c_a1SVB)])
sZipWith :: forall (t_a1W7H :: TyFun a_a1SVw (TyFun b_a1SVx c_a1SVy -> Type) -> Type) (t_a1W7I :: [a_a1SVw]) (t_a1W7J :: [b_a1SVx]). Sing t_a1W7H -> Sing t_a1W7I -> Sing t_a1W7J -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1W7H) t_a1W7I) t_a1W7J :: [c_a1SVy])
sZipWith3 :: forall (t_a1W7D :: TyFun a_a1SVs (TyFun b_a1SVt (TyFun c_a1SVu d_a1SVv -> Type) -> Type) -> Type) (t_a1W7E :: [a_a1SVs]) (t_a1W7F :: [b_a1SVt]) (t_a1W7G :: [c_a1SVu]). Sing t_a1W7D -> Sing t_a1W7E -> Sing t_a1W7F -> Sing t_a1W7G -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1W7D) t_a1W7E) t_a1W7F) t_a1W7G :: [d_a1SVv])
sUnzip :: forall (t_a1W7C :: [(a_a1SVq, b_a1SVr)]). Sing t_a1W7C -> Sing (Apply UnzipSym0 t_a1W7C :: ([a_a1SVq], [b_a1SVr]))
sUnzip3 :: forall (t_a1W7B :: [(a_a1SVn, b_a1SVo, c_a1SVp)]). Sing t_a1W7B -> Sing (Apply Unzip3Sym0 t_a1W7B :: ([a_a1SVn], [b_a1SVo], [c_a1SVp]))
sUnzip4 :: forall (t_a1W7A :: [(a_a1SVj, b_a1SVk, c_a1SVl, d_a1SVm)]). Sing t_a1W7A -> Sing (Apply Unzip4Sym0 t_a1W7A :: ([a_a1SVj], [b_a1SVk], [c_a1SVl], [d_a1SVm]))
sUnzip5 :: forall (t_a1W7z :: [(a_a1SVe, b_a1SVf, c_a1SVg, d_a1SVh, e_a1SVi)]). Sing t_a1W7z -> Sing (Apply Unzip5Sym0 t_a1W7z :: ([a_a1SVe], [b_a1SVf], [c_a1SVg], [d_a1SVh], [e_a1SVi]))
sUnzip6 :: forall (t_a1W7y :: [(a_a1SV8, b_a1SV9, c_a1SVa, d_a1SVb, e_a1SVc, f_a1SVd)]). Sing t_a1W7y -> Sing (Apply Unzip6Sym0 t_a1W7y :: ([a_a1SV8], [b_a1SV9], [c_a1SVa], [d_a1SVb], [e_a1SVc], [f_a1SVd]))
sUnzip7 :: forall (t_a1W7x :: [(a_a1SV1, b_a1SV2, c_a1SV3, d_a1SV4, e_a1SV5, f_a1SV6, g_a1SV7)]). Sing t_a1W7x -> Sing (Apply Unzip7Sym0 t_a1W7x :: ([a_a1SV1], [b_a1SV2], [c_a1SV3], [d_a1SV4], [e_a1SV5], [f_a1SV6], [g_a1SV7]))
sUnlines :: forall (t_a1W7w :: [Symbol]). Sing t_a1W7w -> Sing (Apply UnlinesSym0 t_a1W7w :: Symbol)
sUnwords :: forall (t_a1W7v :: [Symbol]). Sing t_a1W7v -> Sing (Apply UnwordsSym0 t_a1W7v :: Symbol)
sNub :: forall (t_a1W81 :: [a_a1SUm]). SEq a_a1SUm => Sing t_a1W81 -> Sing (Apply NubSym0 t_a1W81 :: [a_a1SUm])
sDelete :: forall (t_a1W7r :: a_a1SV0) (t_a1W7s :: [a_a1SV0]). SEq a_a1SV0 => Sing t_a1W7r -> Sing t_a1W7s -> Sing (Apply (Apply DeleteSym0 t_a1W7r) t_a1W7s :: [a_a1SV0])
(%\\) :: forall (t_a1W7t :: [a_a1SUZ]) (t_a1W7u :: [a_a1SUZ]). SEq a_a1SUZ => Sing t_a1W7t -> Sing t_a1W7u -> Sing (Apply (Apply (\\@#@$) t_a1W7t) t_a1W7u :: [a_a1SUZ])
infix 5 %\\
sUnion :: forall (t_a1W7p :: [a_a1SUi]) (t_a1W7q :: [a_a1SUi]). SEq a_a1SUi => Sing t_a1W7p -> Sing t_a1W7q -> Sing (Apply (Apply UnionSym0 t_a1W7p) t_a1W7q :: [a_a1SUi])
sIntersect :: forall (t_a1W8v :: [a_a1SUM]) (t_a1W8w :: [a_a1SUM]). SEq a_a1SUM => Sing t_a1W8v -> Sing t_a1W8w -> Sing (Apply (Apply IntersectSym0 t_a1W8v) t_a1W8w :: [a_a1SUM])
sInsert :: forall (t_a1W7b :: a_a1SUz) (t_a1W7c :: [a_a1SUz]). SOrd a_a1SUz => Sing t_a1W7b -> Sing t_a1W7c -> Sing (Apply (Apply InsertSym0 t_a1W7b) t_a1W7c :: [a_a1SUz])
sSort :: forall (t_a1W7f :: [a_a1SUy]). SOrd a_a1SUy => Sing t_a1W7f -> Sing (Apply SortSym0 t_a1W7f :: [a_a1SUy])
sNubBy :: forall (t_a1W6x :: TyFun a_a1SUl (TyFun a_a1SUl Bool -> Type) -> Type) (t_a1W6y :: [a_a1SUl]). Sing t_a1W6x -> Sing t_a1W6y -> Sing (Apply (Apply NubBySym0 t_a1W6x) t_a1W6y :: [a_a1SUl])
sDeleteBy :: forall (t_a1W7g :: TyFun a_a1SUY (TyFun a_a1SUY Bool -> Type) -> Type) (t_a1W7h :: a_a1SUY) (t_a1W7i :: [a_a1SUY]). Sing t_a1W7g -> Sing t_a1W7h -> Sing t_a1W7i -> Sing (Apply (Apply (Apply DeleteBySym0 t_a1W7g) t_a1W7h) t_a1W7i :: [a_a1SUY])
sDeleteFirstsBy :: forall (t_a1W7j :: TyFun a_a1SUX (TyFun a_a1SUX Bool -> Type) -> Type) (t_a1W7k :: [a_a1SUX]) (t_a1W7l :: [a_a1SUX]). Sing t_a1W7j -> Sing t_a1W7k -> Sing t_a1W7l -> Sing (Apply (Apply (Apply DeleteFirstsBySym0 t_a1W7j) t_a1W7k) t_a1W7l :: [a_a1SUX])
sUnionBy :: forall (t_a1W7m :: TyFun a_a1SUj (TyFun a_a1SUj Bool -> Type) -> Type) (t_a1W7n :: [a_a1SUj]) (t_a1W7o :: [a_a1SUj]). Sing t_a1W7m -> Sing t_a1W7n -> Sing t_a1W7o -> Sing (Apply (Apply (Apply UnionBySym0 t_a1W7m) t_a1W7n) t_a1W7o :: [a_a1SUj])
sIntersectBy :: forall (t_a1W8s :: TyFun a_a1SUL (TyFun a_a1SUL Bool -> Type) -> Type) (t_a1W8t :: [a_a1SUL]) (t_a1W8u :: [a_a1SUL]). Sing t_a1W8s -> Sing t_a1W8t -> Sing t_a1W8u -> Sing (Apply (Apply (Apply IntersectBySym0 t_a1W8s) t_a1W8t) t_a1W8u :: [a_a1SUL])
sGroupBy :: forall (t_a1W6X :: TyFun a_a1SUx (TyFun a_a1SUx Bool -> Type) -> Type) (t_a1W6Y :: [a_a1SUx]). Sing t_a1W6X -> Sing t_a1W6Y -> Sing (Apply (Apply GroupBySym0 t_a1W6X) t_a1W6Y :: [[a_a1SUx]])
sSortBy :: forall (t_a1W7d :: TyFun a_a1SUW (TyFun a_a1SUW Ordering -> Type) -> Type) (t_a1W7e :: [a_a1SUW]). Sing t_a1W7d -> Sing t_a1W7e -> Sing (Apply (Apply SortBySym0 t_a1W7d) t_a1W7e :: [a_a1SUW])
sInsertBy :: forall (t_a1W78 :: TyFun a_a1SUV (TyFun a_a1SUV Ordering -> Type) -> Type) (t_a1W79 :: a_a1SUV) (t_a1W7a :: [a_a1SUV]). Sing t_a1W78 -> Sing t_a1W79 -> Sing t_a1W7a -> Sing (Apply (Apply (Apply InsertBySym0 t_a1W78) t_a1W79) t_a1W7a :: [a_a1SUV])
sMaximumBy :: forall (t_a1W8I :: TyFun a_a1SUU (TyFun a_a1SUU Ordering -> Type) -> Type) (t_a1W8J :: [a_a1SUU]). Sing t_a1W8I -> Sing t_a1W8J -> Sing (Apply (Apply MaximumBySym0 t_a1W8I) t_a1W8J :: a_a1SUU)
sMinimumBy :: forall (t_a1W8K :: TyFun a_a1SUT (TyFun a_a1SUT Ordering -> Type) -> Type) (t_a1W8L :: [a_a1SUT]). Sing t_a1W8K -> Sing t_a1W8L -> Sing (Apply (Apply MinimumBySym0 t_a1W8K) t_a1W8L :: a_a1SUT)
sGenericLength :: forall (t_a1W6t :: [a_a1SUh]). SNum i_a1SUg => Sing t_a1W6t -> Sing (Apply GenericLengthSym0 t_a1W6t :: i_a1SUg)
type NilSym0 = '[]
data (:@#@$) (l_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ
type (++@#@$$$) (t_a1N2N :: [a6989586621679436421]) (t_a1N2O :: [a6989586621679436421]) = (++) t_a1N2N t_a1N2O
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data HeadSym0 (l_a1W6h :: TyFun [a6989586621679459312] a6989586621679459312)
type HeadSym1 (t_a1W6g :: [a6989586621679459312]) = Head t_a1W6g
data LastSym0 (l_a1W6a :: TyFun [a6989586621679459311] a6989586621679459311)
type LastSym1 (t_a1W69 :: [a6989586621679459311]) = Last t_a1W69
data TailSym0 (l_a1W65 :: TyFun [a6989586621679459310] [a6989586621679459310])
type TailSym1 (t_a1W64 :: [a6989586621679459310]) = Tail t_a1W64
data InitSym0 (l_a1W5B :: TyFun [a6989586621679459309] [a6989586621679459309])
type InitSym1 (t_a1W5A :: [a6989586621679459309]) = Init t_a1W5A
data NullSym0 (l_a1W4A :: TyFun [a6989586621679459308] Bool)
type NullSym1 (t_a1W4z :: [a6989586621679459308]) = Null t_a1W4z
data LengthSym0 (l_a1VlW :: TyFun [a6989586621679459194] Nat)
type LengthSym1 (t_a1VlV :: [a6989586621679459194]) = Length t_a1VlV
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data ReverseSym0 (l_a1W41 :: TyFun [a6989586621679459307] [a6989586621679459307])
type ReverseSym1 (t_a1W40 :: [a6989586621679459307]) = Reverse t_a1W40
data IntersperseSym0 (l_a1W3I :: TyFun a6989586621679459306 (TyFun [a6989586621679459306] [a6989586621679459306] -> Type))
data IntersperseSym1 (l_a1W3G :: a6989586621679459306) (l_a1W3F :: TyFun [a6989586621679459306] [a6989586621679459306])
type IntersperseSym2 (t_a1W3D :: a6989586621679459306) (t_a1W3E :: [a6989586621679459306]) = Intersperse t_a1W3D t_a1W3E
data IntercalateSym0 (l_a1W3U :: TyFun [a6989586621679459305] (TyFun [[a6989586621679459305]] [a6989586621679459305] -> Type))
data IntercalateSym1 (l_a1W3S :: [a6989586621679459305]) (l_a1W3R :: TyFun [[a6989586621679459305]] [a6989586621679459305])
type IntercalateSym2 (t_a1W3P :: [a6989586621679459305]) (t_a1W3Q :: [[a6989586621679459305]]) = Intercalate t_a1W3P t_a1W3Q
data TransposeSym0 (l_a1W6m :: TyFun [[a6989586621679459192]] [[a6989586621679459192]])
type TransposeSym1 (t_a1W6l :: [[a6989586621679459192]]) = Transpose t_a1W6l
data SubsequencesSym0 (l_a1W3z :: TyFun [a6989586621679459304] [[a6989586621679459304]])
type SubsequencesSym1 (t_a1W3y :: [a6989586621679459304]) = Subsequences t_a1W3y
data PermutationsSym0 (l_a1VX9 :: TyFun [a6989586621679459301] [[a6989586621679459301]])
type PermutationsSym1 (t_a1VX8 :: [a6989586621679459301]) = Permutations t_a1VX8
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
data Foldl'Sym0 (l_a1VVK :: TyFun (TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (TyFun b6989586621679459300 (TyFun [a6989586621679459299] b6989586621679459300 -> Type) -> Type))
data Foldl'Sym1 (l_a1VVI :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (l_a1VVH :: TyFun b6989586621679459300 (TyFun [a6989586621679459299] b6989586621679459300 -> Type))
data Foldl'Sym2 (l_a1VVE :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (l_a1VVF :: b6989586621679459300) (l_a1VVD :: TyFun [a6989586621679459299] b6989586621679459300)
type Foldl'Sym3 (t_a1VVA :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (t_a1VVB :: b6989586621679459300) (t_a1VVC :: [a6989586621679459299]) = Foldl' t_a1VVA t_a1VVB t_a1VVC
data Foldl1Sym0 (l_a1VSj :: TyFun (TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (TyFun [a6989586621679459298] a6989586621679459298 -> Type))
data Foldl1Sym1 (l_a1VSh :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (l_a1VSg :: TyFun [a6989586621679459298] a6989586621679459298)
type Foldl1Sym2 (t_a1VSe :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (t_a1VSf :: [a6989586621679459298]) = Foldl1 t_a1VSe t_a1VSf
data Foldl1'Sym0 (l_a1VX1 :: TyFun (TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (TyFun [a6989586621679459297] a6989586621679459297 -> Type))
data Foldl1'Sym1 (l_a1VWZ :: TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (l_a1VWY :: TyFun [a6989586621679459297] a6989586621679459297)
type Foldl1'Sym2 (t_a1VWW :: TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (t_a1VWX :: [a6989586621679459297]) = Foldl1' t_a1VWW t_a1VWX
data FoldrSym0 (l_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data Foldr1Sym0 (l_a1VRM :: TyFun (TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (TyFun [a6989586621679459296] a6989586621679459296 -> Type))
data Foldr1Sym1 (l_a1VRK :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (l_a1VRJ :: TyFun [a6989586621679459296] a6989586621679459296)
type Foldr1Sym2 (t_a1VRH :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (t_a1VRI :: [a6989586621679459296]) = Foldr1 t_a1VRH t_a1VRI
data ConcatSym0 (l_a1VRD :: TyFun [[a6989586621679459295]] [a6989586621679459295])
type ConcatSym1 (t_a1VRC :: [[a6989586621679459295]]) = Concat t_a1VRC
data ConcatMapSym0 (l_a1VRs :: TyFun (TyFun a6989586621679459293 [b6989586621679459294] -> Type) (TyFun [a6989586621679459293] [b6989586621679459294] -> Type))
data ConcatMapSym1 (l_a1VRq :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (l_a1VRp :: TyFun [a6989586621679459293] [b6989586621679459294])
type ConcatMapSym2 (t_a1VRn :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (t_a1VRo :: [a6989586621679459293]) = ConcatMap t_a1VRn t_a1VRo
data AndSym0 (l_a1VRi :: TyFun [Bool] Bool)
type AndSym1 (t_a1VRh :: [Bool]) = And t_a1VRh
data OrSym0 (l_a1VRc :: TyFun [Bool] Bool)
type OrSym1 (t_a1VRb :: [Bool]) = Or t_a1VRb
data AnySym0 (l_a1VOI :: TyFun (TyFun a6989586621679459291 Bool -> Type) (TyFun [a6989586621679459291] Bool -> Type))
data AnySym1 (l_a1VOG :: TyFun a6989586621679459291 Bool -> Type) (l_a1VOF :: TyFun [a6989586621679459291] Bool)
type AnySym2 (t_a1VOD :: TyFun a6989586621679459291 Bool -> Type) (t_a1VOE :: [a6989586621679459291]) = Any t_a1VOD t_a1VOE
data AllSym0 (l_a1VR4 :: TyFun (TyFun a6989586621679459292 Bool -> Type) (TyFun [a6989586621679459292] Bool -> Type))
data AllSym1 (l_a1VR2 :: TyFun a6989586621679459292 Bool -> Type) (l_a1VR1 :: TyFun [a6989586621679459292] Bool)
type AllSym2 (t_a1VQZ :: TyFun a6989586621679459292 Bool -> Type) (t_a1VR0 :: [a6989586621679459292]) = All t_a1VQZ t_a1VR0
data SumSym0 (l_a1Vmp :: TyFun [a6989586621679459196] a6989586621679459196)
type SumSym1 (t_a1Vmo :: [a6989586621679459196]) = Sum t_a1Vmo
data ProductSym0 (l_a1Vm1 :: TyFun [a6989586621679459195] a6989586621679459195)
type ProductSym1 (t_a1Vm0 :: [a6989586621679459195]) = Product t_a1Vm0
data MaximumSym0 (l_a1VV9 :: TyFun [a6989586621679459205] a6989586621679459205)
type MaximumSym1 (t_a1VV8 :: [a6989586621679459205]) = Maximum t_a1VV8
data MinimumSym0 (l_a1VVn :: TyFun [a6989586621679459204] a6989586621679459204)
type MinimumSym1 (t_a1VVm :: [a6989586621679459204]) = Minimum t_a1VVm
data ScanlSym0 (l_a1VOe :: TyFun (TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type) -> Type))
data ScanlSym1 (l_a1VOc :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VOb :: TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type))
data ScanlSym2 (l_a1VO8 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VO9 :: b6989586621679459289) (l_a1VO7 :: TyFun [a6989586621679459290] [b6989586621679459289])
type ScanlSym3 (t_a1VO4 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (t_a1VO5 :: b6989586621679459289) (t_a1VO6 :: [a6989586621679459290]) = Scanl t_a1VO4 t_a1VO5 t_a1VO6
data Scanl1Sym0 (l_a1VOw :: TyFun (TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (TyFun [a6989586621679459288] [a6989586621679459288] -> Type))
data Scanl1Sym1 (l_a1VOu :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (l_a1VOt :: TyFun [a6989586621679459288] [a6989586621679459288])
type Scanl1Sym2 (t_a1VOr :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (t_a1VOs :: [a6989586621679459288]) = Scanl1 t_a1VOr t_a1VOs
data ScanrSym0 (l_a1VNw :: TyFun (TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type) -> Type))
data ScanrSym1 (l_a1VNu :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNt :: TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type))
data ScanrSym2 (l_a1VNq :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNr :: b6989586621679459287) (l_a1VNp :: TyFun [a6989586621679459286] [b6989586621679459287])
type ScanrSym3 (t_a1VNm :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (t_a1VNn :: b6989586621679459287) (t_a1VNo :: [a6989586621679459286]) = Scanr t_a1VNm t_a1VNn t_a1VNo
data Scanr1Sym0 (l_a1VMw :: TyFun (TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (TyFun [a6989586621679459285] [a6989586621679459285] -> Type))
data Scanr1Sym1 (l_a1VMu :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (l_a1VMt :: TyFun [a6989586621679459285] [a6989586621679459285])
type Scanr1Sym2 (t_a1VMr :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (t_a1VMs :: [a6989586621679459285]) = Scanr1 t_a1VMr t_a1VMs
data MapAccumLSym0 (l_a1VK4 :: TyFun (TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (TyFun acc6989586621679459282 (TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]) -> Type) -> Type))
data MapAccumLSym1 (l_a1VK2 :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (l_a1VK1 :: TyFun acc6989586621679459282 (TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]) -> Type))
data MapAccumLSym2 (l_a1VJY :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (l_a1VJZ :: acc6989586621679459282) (l_a1VJX :: TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]))
type MapAccumLSym3 (t_a1VJU :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (t_a1VJV :: acc6989586621679459282) (t_a1VJW :: [x6989586621679459283]) = MapAccumL t_a1VJU t_a1VJV t_a1VJW
data MapAccumRSym0 (l_a1VHx :: TyFun (TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (TyFun acc6989586621679459279 (TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]) -> Type) -> Type))
data MapAccumRSym1 (l_a1VHv :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (l_a1VHu :: TyFun acc6989586621679459279 (TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]) -> Type))
data MapAccumRSym2 (l_a1VHr :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (l_a1VHs :: acc6989586621679459279) (l_a1VHq :: TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]))
type MapAccumRSym3 (t_a1VHn :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (t_a1VHo :: acc6989586621679459279) (t_a1VHp :: [x6989586621679459280]) = MapAccumR t_a1VHn t_a1VHo t_a1VHp
data ReplicateSym0 (l_a1VlE :: TyFun Nat (TyFun a6989586621679459193 [a6989586621679459193] -> Type))
data ReplicateSym1 (l_a1VlC :: Nat) (l_a1VlB :: TyFun a6989586621679459193 [a6989586621679459193])
type ReplicateSym2 (t_a1Vlz :: Nat) (t_a1VlA :: a6989586621679459193) = Replicate t_a1Vlz t_a1VlA
data UnfoldrSym0 (l_a1VH4 :: TyFun (TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (TyFun b6989586621679459277 [a6989586621679459278] -> Type))
data UnfoldrSym1 (l_a1VH2 :: TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (l_a1VH1 :: TyFun b6989586621679459277 [a6989586621679459278])
type UnfoldrSym2 (t_a1VGZ :: TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (t_a1VH0 :: b6989586621679459277) = Unfoldr t_a1VGZ t_a1VH0
data TakeSym0 (l_a1VoJ :: TyFun Nat (TyFun [a6989586621679459209] [a6989586621679459209] -> Type))
data TakeSym1 (l_a1VoH :: Nat) (l_a1VoG :: TyFun [a6989586621679459209] [a6989586621679459209])
type TakeSym2 (t_a1VoE :: Nat) (t_a1VoF :: [a6989586621679459209]) = Take t_a1VoE t_a1VoF
data DropSym0 (l_a1Voh :: TyFun Nat (TyFun [a6989586621679459208] [a6989586621679459208] -> Type))
data DropSym1 (l_a1Vof :: Nat) (l_a1Voe :: TyFun [a6989586621679459208] [a6989586621679459208])
type DropSym2 (t_a1Voc :: Nat) (t_a1Vod :: [a6989586621679459208]) = Drop t_a1Voc t_a1Vod
data SplitAtSym0 (l_a1Vpb :: TyFun Nat (TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]) -> Type))
data SplitAtSym1 (l_a1Vp9 :: Nat) (l_a1Vp8 :: TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]))
type SplitAtSym2 (t_a1Vp6 :: Nat) (t_a1Vp7 :: [a6989586621679459207]) = SplitAt t_a1Vp6 t_a1Vp7
data TakeWhileSym0 (l_a1Vu7 :: TyFun (TyFun a6989586621679459214 Bool -> Type) (TyFun [a6989586621679459214] [a6989586621679459214] -> Type))
data TakeWhileSym1 (l_a1Vu5 :: TyFun a6989586621679459214 Bool -> Type) (l_a1Vu4 :: TyFun [a6989586621679459214] [a6989586621679459214])
type TakeWhileSym2 (t_a1Vu2 :: TyFun a6989586621679459214 Bool -> Type) (t_a1Vu3 :: [a6989586621679459214]) = TakeWhile t_a1Vu2 t_a1Vu3
data DropWhileSym0 (l_a1Vts :: TyFun (TyFun a6989586621679459213 Bool -> Type) (TyFun [a6989586621679459213] [a6989586621679459213] -> Type))
data DropWhileSym1 (l_a1Vtq :: TyFun a6989586621679459213 Bool -> Type) (l_a1Vtp :: TyFun [a6989586621679459213] [a6989586621679459213])
type DropWhileSym2 (t_a1Vtn :: TyFun a6989586621679459213 Bool -> Type) (t_a1Vto :: [a6989586621679459213]) = DropWhile t_a1Vtn t_a1Vto
data DropWhileEndSym0 (l_a1W4I :: TyFun (TyFun a6989586621679459212 Bool -> Type) (TyFun [a6989586621679459212] [a6989586621679459212] -> Type))
data DropWhileEndSym1 (l_a1W4G :: TyFun a6989586621679459212 Bool -> Type) (l_a1W4F :: TyFun [a6989586621679459212] [a6989586621679459212])
type DropWhileEndSym2 (t_a1W4D :: TyFun a6989586621679459212 Bool -> Type) (t_a1W4E :: [a6989586621679459212]) = DropWhileEnd t_a1W4D t_a1W4E
data SpanSym0 (l_a1VqR :: TyFun (TyFun a6989586621679459211 Bool -> Type) (TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]) -> Type))
data SpanSym1 (l_a1VqP :: TyFun a6989586621679459211 Bool -> Type) (l_a1VqO :: TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]))
type SpanSym2 (t_a1VqM :: TyFun a6989586621679459211 Bool -> Type) (t_a1VqN :: [a6989586621679459211]) = Span t_a1VqM t_a1VqN
data BreakSym0 (l_a1Vpm :: TyFun (TyFun a6989586621679459210 Bool -> Type) (TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]) -> Type))
data BreakSym1 (l_a1Vpk :: TyFun a6989586621679459210 Bool -> Type) (l_a1Vpj :: TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]))
type BreakSym2 (t_a1Vph :: TyFun a6989586621679459210 Bool -> Type) (t_a1Vpi :: [a6989586621679459210]) = Break t_a1Vph t_a1Vpi
data GroupSym0 (l_a1Vtj :: TyFun [a6989586621679459206] [[a6989586621679459206]])
type GroupSym1 (t_a1Vti :: [a6989586621679459206]) = Group t_a1Vti
data InitsSym0 (l_a1VGQ :: TyFun [a6989586621679459276] [[a6989586621679459276]])
type InitsSym1 (t_a1VGP :: [a6989586621679459276]) = Inits t_a1VGP
data TailsSym0 (l_a1VGH :: TyFun [a6989586621679459275] [[a6989586621679459275]])
type TailsSym1 (t_a1VGG :: [a6989586621679459275]) = Tails t_a1VGG
data IsPrefixOfSym0 (l_a1VGy :: TyFun [a6989586621679459274] (TyFun [a6989586621679459274] Bool -> Type))
data IsPrefixOfSym1 (l_a1VGw :: [a6989586621679459274]) (l_a1VGv :: TyFun [a6989586621679459274] Bool)
type IsPrefixOfSym2 (t_a1VGt :: [a6989586621679459274]) (t_a1VGu :: [a6989586621679459274]) = IsPrefixOf t_a1VGt t_a1VGu
data IsSuffixOfSym0 (l_a1W4t :: TyFun [a6989586621679459273] (TyFun [a6989586621679459273] Bool -> Type))
data IsSuffixOfSym1 (l_a1W4r :: [a6989586621679459273]) (l_a1W4q :: TyFun [a6989586621679459273] Bool)
type IsSuffixOfSym2 (t_a1W4o :: [a6989586621679459273]) (t_a1W4p :: [a6989586621679459273]) = IsSuffixOf t_a1W4o t_a1W4p
data IsInfixOfSym0 (l_a1VOU :: TyFun [a6989586621679459272] (TyFun [a6989586621679459272] Bool -> Type))
data IsInfixOfSym1 (l_a1VOS :: [a6989586621679459272]) (l_a1VOR :: TyFun [a6989586621679459272] Bool)
type IsInfixOfSym2 (t_a1VOP :: [a6989586621679459272]) (t_a1VOQ :: [a6989586621679459272]) = IsInfixOf t_a1VOP t_a1VOQ
data ElemSym0 (l_a1VFD :: TyFun a6989586621679459271 (TyFun [a6989586621679459271] Bool -> Type))
data ElemSym1 (l_a1VFB :: a6989586621679459271) (l_a1VFA :: TyFun [a6989586621679459271] Bool)
type ElemSym2 (t_a1VFy :: a6989586621679459271) (t_a1VFz :: [a6989586621679459271]) = Elem t_a1VFy t_a1VFz
data NotElemSym0 (l_a1VFr :: TyFun a6989586621679459270 (TyFun [a6989586621679459270] Bool -> Type))
data NotElemSym1 (l_a1VFp :: a6989586621679459270) (l_a1VFo :: TyFun [a6989586621679459270] Bool)
type NotElemSym2 (t_a1VFm :: a6989586621679459270) (t_a1VFn :: [a6989586621679459270]) = NotElem t_a1VFm t_a1VFn
data LookupSym0 (l_a1VnH :: TyFun a6989586621679459199 (TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200) -> Type))
data LookupSym1 (l_a1VnF :: a6989586621679459199) (l_a1VnE :: TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200))
type LookupSym2 (t_a1VnC :: a6989586621679459199) (t_a1VnD :: [(a6989586621679459199, b6989586621679459200)]) = Lookup t_a1VnC t_a1VnD
data FindSym0 (l_a1Vv2 :: TyFun (TyFun a6989586621679459221 Bool -> Type) (TyFun [a6989586621679459221] (Maybe a6989586621679459221) -> Type))
data FindSym1 (l_a1Vv0 :: TyFun a6989586621679459221 Bool -> Type) (l_a1VuZ :: TyFun [a6989586621679459221] (Maybe a6989586621679459221))
type FindSym2 (t_a1VuX :: TyFun a6989586621679459221 Bool -> Type) (t_a1VuY :: [a6989586621679459221]) = Find t_a1VuX t_a1VuY
data FilterSym0 (l_a1Vuz :: TyFun (TyFun a6989586621679459222 Bool -> Type) (TyFun [a6989586621679459222] [a6989586621679459222] -> Type))
data FilterSym1 (l_a1Vux :: TyFun a6989586621679459222 Bool -> Type) (l_a1Vuw :: TyFun [a6989586621679459222] [a6989586621679459222])
type FilterSym2 (t_a1Vuu :: TyFun a6989586621679459222 Bool -> Type) (t_a1Vuv :: [a6989586621679459222]) = Filter t_a1Vuu t_a1Vuv
data PartitionSym0 (l_a1Vnw :: TyFun (TyFun a6989586621679459198 Bool -> Type) (TyFun [a6989586621679459198] ([a6989586621679459198], [a6989586621679459198]) -> Type))
data PartitionSym1 (l_a1Vnu :: TyFun a6989586621679459198 Bool -> Type) (l_a1Vnt :: TyFun [a6989586621679459198] ([a6989586621679459198], [a6989586621679459198]))
type PartitionSym2 (t_a1Vnr :: TyFun a6989586621679459198 Bool -> Type) (t_a1Vns :: [a6989586621679459198]) = Partition t_a1Vnr t_a1Vns
data (!!@#@$) (l_a1Vlc :: TyFun [a6989586621679459191] (TyFun Nat a6989586621679459191 -> Type))
data (!!@#@$$) (l_a1Vla :: [a6989586621679459191]) (l_a1Vl9 :: TyFun Nat a6989586621679459191)
type (!!@#@$$$) (t_a1Vl7 :: [a6989586621679459191]) (t_a1Vl8 :: Nat) = (!!) t_a1Vl7 t_a1Vl8
data ElemIndexSym0 (l_a1VFe :: TyFun a6989586621679459220 (TyFun [a6989586621679459220] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1VFc :: a6989586621679459220) (l_a1VFb :: TyFun [a6989586621679459220] (Maybe Nat))
type ElemIndexSym2 (t_a1VF9 :: a6989586621679459220) (t_a1VFa :: [a6989586621679459220]) = ElemIndex t_a1VF9 t_a1VFa
data ElemIndicesSym0 (l_a1VEO :: TyFun a6989586621679459219 (TyFun [a6989586621679459219] [Nat] -> Type))
data ElemIndicesSym1 (l_a1VEM :: a6989586621679459219) (l_a1VEL :: TyFun [a6989586621679459219] [Nat])
type ElemIndicesSym2 (t_a1VEJ :: a6989586621679459219) (t_a1VEK :: [a6989586621679459219]) = ElemIndices t_a1VEJ t_a1VEK
data FindIndexSym0 (l_a1VF1 :: TyFun (TyFun a6989586621679459218 Bool -> Type) (TyFun [a6989586621679459218] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1VEZ :: TyFun a6989586621679459218 Bool -> Type) (l_a1VEY :: TyFun [a6989586621679459218] (Maybe Nat))
type FindIndexSym2 (t_a1VEW :: TyFun a6989586621679459218 Bool -> Type) (t_a1VEX :: [a6989586621679459218]) = FindIndex t_a1VEW t_a1VEX
data FindIndicesSym0 (l_a1VDW :: TyFun (TyFun a6989586621679459217 Bool -> Type) (TyFun [a6989586621679459217] [Nat] -> Type))
data FindIndicesSym1 (l_a1VDU :: TyFun a6989586621679459217 Bool -> Type) (l_a1VDT :: TyFun [a6989586621679459217] [Nat])
type FindIndicesSym2 (t_a1VDR :: TyFun a6989586621679459217 Bool -> Type) (t_a1VDS :: [a6989586621679459217]) = FindIndices t_a1VDR t_a1VDS
data ZipSym0 (l_a1VDJ :: TyFun [a6989586621679459268] (TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)] -> Type))
data ZipSym1 (l_a1VDH :: [a6989586621679459268]) (l_a1VDG :: TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)])
type ZipSym2 (t_a1VDE :: [a6989586621679459268]) (t_a1VDF :: [b6989586621679459269]) = Zip t_a1VDE t_a1VDF
data Zip3Sym0 (l_a1VDt :: TyFun [a6989586621679459265] (TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type) -> Type))
data Zip3Sym1 (l_a1VDr :: [a6989586621679459265]) (l_a1VDq :: TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type))
data Zip3Sym2 (l_a1VDn :: [a6989586621679459265]) (l_a1VDo :: [b6989586621679459266]) (l_a1VDm :: TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)])
type Zip3Sym3 (t_a1VDj :: [a6989586621679459265]) (t_a1VDk :: [b6989586621679459266]) (t_a1VDl :: [c6989586621679459267]) = Zip3 t_a1VDj t_a1VDk t_a1VDl
data ZipWithSym0 (l_a1VD9 :: TyFun (TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type) -> Type))
data ZipWithSym1 (l_a1VD7 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD6 :: TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type))
data ZipWithSym2 (l_a1VD3 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD4 :: [a6989586621679459262]) (l_a1VD2 :: TyFun [b6989586621679459263] [c6989586621679459264])
type ZipWithSym3 (t_a1VCZ :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (t_a1VD0 :: [a6989586621679459262]) (t_a1VD1 :: [b6989586621679459263]) = ZipWith t_a1VCZ t_a1VD0 t_a1VD1
data ZipWith3Sym0 (l_a1VCM :: TyFun (TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1VCK :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCJ :: TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type))
data ZipWith3Sym2 (l_a1VCG :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCH :: [a6989586621679459258]) (l_a1VCF :: TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type))
data ZipWith3Sym3 (l_a1VCB :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCC :: [a6989586621679459258]) (l_a1VCD :: [b6989586621679459259]) (l_a1VCA :: TyFun [c6989586621679459260] [d6989586621679459261])
type ZipWith3Sym4 (t_a1VCw :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (t_a1VCx :: [a6989586621679459258]) (t_a1VCy :: [b6989586621679459259]) (t_a1VCz :: [c6989586621679459260]) = ZipWith3 t_a1VCw t_a1VCx t_a1VCy t_a1VCz
data UnzipSym0 (l_a1VC3 :: TyFun [(a6989586621679459256, b6989586621679459257)] ([a6989586621679459256], [b6989586621679459257]))
type UnzipSym1 (t_a1VC2 :: [(a6989586621679459256, b6989586621679459257)]) = Unzip t_a1VC2
data Unzip3Sym0 (l_a1VBx :: TyFun [(a6989586621679459253, b6989586621679459254, c6989586621679459255)] ([a6989586621679459253], [b6989586621679459254], [c6989586621679459255]))
type Unzip3Sym1 (t_a1VBw :: [(a6989586621679459253, b6989586621679459254, c6989586621679459255)]) = Unzip3 t_a1VBw
data Unzip4Sym0 (l_a1VAZ :: TyFun [(a6989586621679459249, b6989586621679459250, c6989586621679459251, d6989586621679459252)] ([a6989586621679459249], [b6989586621679459250], [c6989586621679459251], [d6989586621679459252]))
type Unzip4Sym1 (t_a1VAY :: [(a6989586621679459249, b6989586621679459250, c6989586621679459251, d6989586621679459252)]) = Unzip4 t_a1VAY
data Unzip5Sym0 (l_a1VAp :: TyFun [(a6989586621679459244, b6989586621679459245, c6989586621679459246, d6989586621679459247, e6989586621679459248)] ([a6989586621679459244], [b6989586621679459245], [c6989586621679459246], [d6989586621679459247], [e6989586621679459248]))
type Unzip5Sym1 (t_a1VAo :: [(a6989586621679459244, b6989586621679459245, c6989586621679459246, d6989586621679459247, e6989586621679459248)]) = Unzip5 t_a1VAo
data Unzip6Sym0 (l_a1VzN :: TyFun [(a6989586621679459238, b6989586621679459239, c6989586621679459240, d6989586621679459241, e6989586621679459242, f6989586621679459243)] ([a6989586621679459238], [b6989586621679459239], [c6989586621679459240], [d6989586621679459241], [e6989586621679459242], [f6989586621679459243]))
type Unzip6Sym1 (t_a1VzM :: [(a6989586621679459238, b6989586621679459239, c6989586621679459240, d6989586621679459241, e6989586621679459242, f6989586621679459243)]) = Unzip6 t_a1VzM
data Unzip7Sym0 (l_a1Vz9 :: TyFun [(a6989586621679459231, b6989586621679459232, c6989586621679459233, d6989586621679459234, e6989586621679459235, f6989586621679459236, g6989586621679459237)] ([a6989586621679459231], [b6989586621679459232], [c6989586621679459233], [d6989586621679459234], [e6989586621679459235], [f6989586621679459236], [g6989586621679459237]))
type Unzip7Sym1 (t_a1Vz8 :: [(a6989586621679459231, b6989586621679459232, c6989586621679459233, d6989586621679459234, e6989586621679459235, f6989586621679459236, g6989586621679459237)]) = Unzip7 t_a1Vz8
data UnlinesSym0 (l_a1Vz3 :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1Vz2 :: [Symbol]) = Unlines t_a1Vz2
data UnwordsSym0 (l_a1VyH :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1VyG :: [Symbol]) = Unwords t_a1VyG
data NubSym0 (l_a1VFL :: TyFun [a6989586621679459190] [a6989586621679459190])
type NubSym1 (t_a1VFK :: [a6989586621679459190]) = Nub t_a1VFK
data DeleteSym0 (l_a1Vyl :: TyFun a6989586621679459230 (TyFun [a6989586621679459230] [a6989586621679459230] -> Type))
data DeleteSym1 (l_a1Vyj :: a6989586621679459230) (l_a1Vyi :: TyFun [a6989586621679459230] [a6989586621679459230])
type DeleteSym2 (t_a1Vyg :: a6989586621679459230) (t_a1Vyh :: [a6989586621679459230]) = Delete t_a1Vyg t_a1Vyh
data (\\@#@$) (l_a1VyA :: TyFun [a6989586621679459229] (TyFun [a6989586621679459229] [a6989586621679459229] -> Type))
data (\\@#@$$) (l_a1Vyy :: [a6989586621679459229]) (l_a1Vyx :: TyFun [a6989586621679459229] [a6989586621679459229])
type (\\@#@$$$) (t_a1Vyv :: [a6989586621679459229]) (t_a1Vyw :: [a6989586621679459229]) = (\\) t_a1Vyv t_a1Vyw
data UnionSym0 (l_a1Vy6 :: TyFun [a6989586621679459186] (TyFun [a6989586621679459186] [a6989586621679459186] -> Type))
data UnionSym1 (l_a1Vy4 :: [a6989586621679459186]) (l_a1Vy3 :: TyFun [a6989586621679459186] [a6989586621679459186])
type UnionSym2 (t_a1Vy1 :: [a6989586621679459186]) (t_a1Vy2 :: [a6989586621679459186]) = Union t_a1Vy1 t_a1Vy2
data IntersectSym0 (l_a1VQT :: TyFun [a6989586621679459216] (TyFun [a6989586621679459216] [a6989586621679459216] -> Type))
data IntersectSym1 (l_a1VQR :: [a6989586621679459216]) (l_a1VQQ :: TyFun [a6989586621679459216] [a6989586621679459216])
type IntersectSym2 (t_a1VQO :: [a6989586621679459216]) (t_a1VQP :: [a6989586621679459216]) = Intersect t_a1VQO t_a1VQP
data InsertSym0 (l_a1Vwe :: TyFun a6989586621679459203 (TyFun [a6989586621679459203] [a6989586621679459203] -> Type))
data InsertSym1 (l_a1Vwc :: a6989586621679459203) (l_a1Vwb :: TyFun [a6989586621679459203] [a6989586621679459203])
type InsertSym2 (t_a1Vw9 :: a6989586621679459203) (t_a1Vwa :: [a6989586621679459203]) = Insert t_a1Vw9 t_a1Vwa
data SortSym0 (l_a1VwA :: TyFun [a6989586621679459202] [a6989586621679459202])
type SortSym1 (t_a1Vwz :: [a6989586621679459202]) = Sort t_a1Vwz
data NubBySym0 (l_a1Vka :: TyFun (TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (TyFun [a6989586621679459189] [a6989586621679459189] -> Type))
data NubBySym1 (l_a1Vk8 :: TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (l_a1Vk7 :: TyFun [a6989586621679459189] [a6989586621679459189])
type NubBySym2 (t_a1Vk5 :: TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (t_a1Vk6 :: [a6989586621679459189]) = NubBy t_a1Vk5 t_a1Vk6
data DeleteBySym0 (l_a1VwO :: TyFun (TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (TyFun a6989586621679459228 (TyFun [a6989586621679459228] [a6989586621679459228] -> Type) -> Type))
data DeleteBySym1 (l_a1VwM :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (l_a1VwL :: TyFun a6989586621679459228 (TyFun [a6989586621679459228] [a6989586621679459228] -> Type))
data DeleteBySym2 (l_a1VwI :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (l_a1VwJ :: a6989586621679459228) (l_a1VwH :: TyFun [a6989586621679459228] [a6989586621679459228])
type DeleteBySym3 (t_a1VwE :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (t_a1VwF :: a6989586621679459228) (t_a1VwG :: [a6989586621679459228]) = DeleteBy t_a1VwE t_a1VwF t_a1VwG
data DeleteFirstsBySym0 (l_a1Vxt :: TyFun (TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (TyFun [a6989586621679459227] (TyFun [a6989586621679459227] [a6989586621679459227] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1Vxr :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (l_a1Vxq :: TyFun [a6989586621679459227] (TyFun [a6989586621679459227] [a6989586621679459227] -> Type))
data DeleteFirstsBySym2 (l_a1Vxn :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (l_a1Vxo :: [a6989586621679459227]) (l_a1Vxm :: TyFun [a6989586621679459227] [a6989586621679459227])
type DeleteFirstsBySym3 (t_a1Vxj :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (t_a1Vxk :: [a6989586621679459227]) (t_a1Vxl :: [a6989586621679459227]) = DeleteFirstsBy t_a1Vxj t_a1Vxk t_a1Vxl
data UnionBySym0 (l_a1VxP :: TyFun (TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (TyFun [a6989586621679459187] (TyFun [a6989586621679459187] [a6989586621679459187] -> Type) -> Type))
data UnionBySym1 (l_a1VxN :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (l_a1VxM :: TyFun [a6989586621679459187] (TyFun [a6989586621679459187] [a6989586621679459187] -> Type))
data UnionBySym2 (l_a1VxJ :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (l_a1VxK :: [a6989586621679459187]) (l_a1VxI :: TyFun [a6989586621679459187] [a6989586621679459187])
type UnionBySym3 (t_a1VxF :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (t_a1VxG :: [a6989586621679459187]) (t_a1VxH :: [a6989586621679459187]) = UnionBy t_a1VxF t_a1VxG t_a1VxH
data IntersectBySym0 (l_a1VPa :: TyFun (TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (TyFun [a6989586621679459215] (TyFun [a6989586621679459215] [a6989586621679459215] -> Type) -> Type))
data IntersectBySym1 (l_a1VP8 :: TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (l_a1VP7 :: TyFun [a6989586621679459215] (TyFun [a6989586621679459215] [a6989586621679459215] -> Type))
data IntersectBySym2 (l_a1VP4 :: TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (l_a1VP5 :: [a6989586621679459215]) (l_a1VP3 :: TyFun [a6989586621679459215] [a6989586621679459215])
type IntersectBySym3 (t_a1VP0 :: TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (t_a1VP1 :: [a6989586621679459215]) (t_a1VP2 :: [a6989586621679459215]) = IntersectBy t_a1VP0 t_a1VP1 t_a1VP2
data GroupBySym0 (l_a1Vsm :: TyFun (TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (TyFun [a6989586621679459201] [[a6989586621679459201]] -> Type))
data GroupBySym1 (l_a1Vsk :: TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (l_a1Vsj :: TyFun [a6989586621679459201] [[a6989586621679459201]])
type GroupBySym2 (t_a1Vsh :: TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (t_a1Vsi :: [a6989586621679459201]) = GroupBy t_a1Vsh t_a1Vsi
data SortBySym0 (l_a1Vwp :: TyFun (TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (TyFun [a6989586621679459226] [a6989586621679459226] -> Type))
data SortBySym1 (l_a1Vwn :: TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (l_a1Vwm :: TyFun [a6989586621679459226] [a6989586621679459226])
type SortBySym2 (t_a1Vwk :: TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (t_a1Vwl :: [a6989586621679459226]) = SortBy t_a1Vwk t_a1Vwl
data InsertBySym0 (l_a1Vvk :: TyFun (TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (TyFun a6989586621679459225 (TyFun [a6989586621679459225] [a6989586621679459225] -> Type) -> Type))
data InsertBySym1 (l_a1Vvi :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (l_a1Vvh :: TyFun a6989586621679459225 (TyFun [a6989586621679459225] [a6989586621679459225] -> Type))
data InsertBySym2 (l_a1Vve :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (l_a1Vvf :: a6989586621679459225) (l_a1Vvd :: TyFun [a6989586621679459225] [a6989586621679459225])
type InsertBySym3 (t_a1Vva :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (t_a1Vvb :: a6989586621679459225) (t_a1Vvc :: [a6989586621679459225]) = InsertBy t_a1Vva t_a1Vvb t_a1Vvc
data MaximumBySym0 (l_a1VSv :: TyFun (TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (TyFun [a6989586621679459224] a6989586621679459224 -> Type))
data MaximumBySym1 (l_a1VSt :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (l_a1VSs :: TyFun [a6989586621679459224] a6989586621679459224)
type MaximumBySym2 (t_a1VSq :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (t_a1VSr :: [a6989586621679459224]) = MaximumBy t_a1VSq t_a1VSr
data MinimumBySym0 (l_a1VTR :: TyFun (TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (TyFun [a6989586621679459223] a6989586621679459223 -> Type))
data MinimumBySym1 (l_a1VTP :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (l_a1VTO :: TyFun [a6989586621679459223] a6989586621679459223)
type MinimumBySym2 (t_a1VTM :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (t_a1VTN :: [a6989586621679459223]) = MinimumBy t_a1VTM t_a1VTN
data GenericLengthSym0 (l_a1VjI :: TyFun [a6989586621679459185] i6989586621679459184)
type GenericLengthSym1 (t_a1VjH :: [a6989586621679459185]) = GenericLength t_a1VjH
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.Let6989586621679471376Scrutinee_6989586621679459867Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471376Scrutinee_6989586621679459867Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471376Scrutinee_6989586621679459867Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471376Scrutinee_6989586621679459867Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679471372Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679471372Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679471372Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679471372Sym3
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.Let6989586621679470899PermsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470899PermsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470899PermsSym1
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_6989586621679470461Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470461Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470461Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470461Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470461Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679470461Sym5
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.Let6989586621679470308Scrutinee_6989586621679459781Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470308Scrutinee_6989586621679459781Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470308Scrutinee_6989586621679459781Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470308Scrutinee_6989586621679459781Sym3
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.Let6989586621679470264Scrutinee_6989586621679459787Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470264Scrutinee_6989586621679459787Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470264Scrutinee_6989586621679459787Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470264Scrutinee_6989586621679459787Sym3
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.Let6989586621679470094X_6989586621679470101Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470101Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470101Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470101Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YsSym3
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.Let6989586621679469937X_6989586621679469944Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469944Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469944Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469944Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469938Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469938Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469938Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937X_6989586621679469938Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S''Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S''Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S''Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937S''Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469937YsSym3
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.Let6989586621679469839Scrutinee_6989586621679459893Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459893Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459893Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469839Scrutinee_6989586621679459893Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469821Nub'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469821Nub'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469821Nub'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.Let6989586621679468929X_6989586621679468930Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929X_6989586621679468930Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929X_6989586621679468930Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468929ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993X_6989586621679468994Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993X_6989586621679468994Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993X_6989586621679468994Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468993ZsSym2
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.Let6989586621679468836X_6989586621679468837Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836X_6989586621679468837Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836X_6989586621679468837Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468836ZsSym2
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.Let6989586621679468508Scrutinee_6989586621679459895Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468508Scrutinee_6989586621679459895Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468508Scrutinee_6989586621679459895Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468508Scrutinee_6989586621679459895Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468508Scrutinee_6989586621679459895Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468484NubBy'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468484NubBy'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468484NubBy'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468484NubBy'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.Let6989586621679471424Init'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471424Init'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471424Init'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471424Init'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471325RevSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471325RevSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471325RevSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471269FSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471269FSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471269FSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471269FSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917InterleaveSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968X_6989586621679470969Sym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968UsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470968ZsSym7
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176X_6989586621679471177Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679471176ZsSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470917Interleave'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470816LgoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470816LgoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470816LgoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470816LgoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470816LgoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470848Z'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470790XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470790XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470776XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470776XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470711MinBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470711MinBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470711MinBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470711MinBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470711MinBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470741Scrutinee_6989586621679459845Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470741Scrutinee_6989586621679459845Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470741Scrutinee_6989586621679459845Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470741Scrutinee_6989586621679459845Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470741Scrutinee_6989586621679459845Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470698XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470698XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470698XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470627MaxBySym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470627MaxBySym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470627MaxBySym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470627MaxBySym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470627MaxBySym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470657Scrutinee_6989586621679459839Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470657Scrutinee_6989586621679459839Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470657Scrutinee_6989586621679459839Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470657Scrutinee_6989586621679459839Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470657Scrutinee_6989586621679459839Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470614XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470614XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470614XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470571XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470571XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470571XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470571XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470410XsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470245XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470245XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470245XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470245XsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470095Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470095Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470095Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094X_6989586621679470095Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094S'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679470094YSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469904Scrutinee_6989586621679459797Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469904Scrutinee_6989586621679459797Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469733Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469733Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469733Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469710BuildListSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469710BuildListSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469710BuildListSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469710BuildListSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469591Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469591Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469591Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469559Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469559Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469559Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469525Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469525Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469525Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469489Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469489Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469489Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469451Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469451Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469451Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469411Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469411Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Lambda_6989586621679469411Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469384GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469384GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469384GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469271Scrutinee_6989586621679459835Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469271Scrutinee_6989586621679459835Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469271Scrutinee_6989586621679459835Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469271Scrutinee_6989586621679459835Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469199Scrutinee_6989586621679459837Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469199Scrutinee_6989586621679459837Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469199Scrutinee_6989586621679459837Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469199Scrutinee_6989586621679459837Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469180YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469180YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469180YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469180YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469131Scrutinee_6989586621679459851Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469131Scrutinee_6989586621679459851Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469131Scrutinee_6989586621679459851Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469102Scrutinee_6989586621679459863Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469102Scrutinee_6989586621679459863Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469102Scrutinee_6989586621679459863Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469074Scrutinee_6989586621679459865Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469074Scrutinee_6989586621679459865Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469074Scrutinee_6989586621679459865Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469061XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469061XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679469061XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468914Scrutinee_6989586621679459869Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468914Scrutinee_6989586621679459869Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468914Scrutinee_6989586621679459869Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468901XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468901XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468901XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468821Scrutinee_6989586621679459871Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468821Scrutinee_6989586621679459871Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468821Scrutinee_6989586621679459871Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468808XsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468808XsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468808XsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468768Scrutinee_6989586621679459873Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468768Scrutinee_6989586621679459873Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468768Scrutinee_6989586621679459873Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468740Scrutinee_6989586621679459875Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468740Scrutinee_6989586621679459875Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468740Scrutinee_6989586621679459875Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468706Scrutinee_6989586621679459885Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468706Scrutinee_6989586621679459885Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468706Scrutinee_6989586621679459885Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468706Scrutinee_6989586621679459885Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468659Scrutinee_6989586621679459887Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468659Scrutinee_6989586621679459887Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468659Scrutinee_6989586621679459887Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468659Scrutinee_6989586621679459887Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468621Sum'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468621Sum'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468621Sum'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468597ProdSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468597ProdSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468597ProdSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468576Scrutinee_6989586621679459889Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468576Scrutinee_6989586621679459889Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468549Scrutinee_6989586621679459891Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468549Scrutinee_6989586621679459891Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.Let6989586621679468549Scrutinee_6989586621679459891Sym2


-- | Defines the SShow singleton version of the Show type class.
module Data.Singletons.Prelude.Show
class PShow (a_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}
class SShow a_a2S7Q
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). SShow a_a2S7Q => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). SShow a_a2S7Q => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). SShow a_a2S7Q => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol)
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). (SShow a_a2S7Q, (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 t_a2SLs) t_a2SLt) t_a2SLu) => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). (SShow a_a2S7Q, (Apply Show_Sym0 t_a2SLv :: Symbol) ~ Apply Show__6989586621679696602Sym0 t_a2SLv) => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). (SShow a_a2S7Q, (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol) ~ Apply (Apply ShowList_6989586621679696620Sym0 t_a2SLw) t_a2SLx) => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: 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_a2SL6 :: a_a2S7B) (t_a2SL7 :: Symbol). SShow a_a2S7B => Sing t_a2SL6 -> Sing t_a2SL7 -> Sing (Apply (Apply ShowsSym0 t_a2SL6) t_a2SL7 :: Symbol)
sShowListWith :: forall (t_a2SL3 :: TyFun a_a2S7A (TyFun Symbol Symbol -> Type) -> Type) (t_a2SL4 :: [a_a2S7A]) (t_a2SL5 :: Symbol). Sing t_a2SL3 -> Sing t_a2SL4 -> Sing t_a2SL5 -> Sing (Apply (Apply (Apply ShowListWithSym0 t_a2SL3) t_a2SL4) t_a2SL5 :: Symbol)
sShowChar :: forall (t_a2SKW :: Symbol) (t_a2SKX :: Symbol). Sing t_a2SKW -> Sing t_a2SKX -> Sing (Apply (Apply ShowCharSym0 t_a2SKW) t_a2SKX :: Symbol)
sShowString :: forall (t_a2SKT :: Symbol) (t_a2SKU :: Symbol). Sing t_a2SKT -> Sing t_a2SKU -> Sing (Apply (Apply ShowStringSym0 t_a2SKT) t_a2SKU :: Symbol)
sShowParen :: forall (t_a2SKY :: Bool) (t_a2SKZ :: TyFun Symbol Symbol -> Type) (t_a2SL0 :: Symbol). Sing t_a2SKY -> Sing t_a2SKZ -> Sing t_a2SL0 -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SKY) t_a2SKZ) t_a2SL0 :: Symbol)
sShowSpace :: forall (t_a2SKS :: Symbol). Sing t_a2SKS -> Sing (Apply ShowSpaceSym0 t_a2SKS :: Symbol)
sShowCommaSpace :: forall (t_a2SKV :: Symbol). Sing t_a2SKV -> Sing (Apply ShowCommaSpaceSym0 t_a2SKV :: Symbol)
sAppPrec :: Sing (AppPrecSym0 :: Nat)
sAppPrec1 :: Sing (AppPrec1Sym0 :: Nat)
data ShowsPrecSym0 (l_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data Show_Sym0 (l_a2SEL :: TyFun a6989586621679694510 Symbol)
type Show_Sym1 (t_a2SEK :: a6989586621679694510) = Show_ t_a2SEK
data ShowListSym0 (l_a2SEU :: TyFun [a6989586621679694510] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SES :: [a6989586621679694510]) (l_a2SER :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SEP :: [a6989586621679694510]) (t_a2SEQ :: Symbol) = ShowList t_a2SEP t_a2SEQ
data (<>@#@$) l_a1CjE
data (<>@#@$$) (l_a1CjC :: Symbol) l_a1CjB
type (<>@#@$$$) (t_a1Cjz :: Symbol) (t_a1CjA :: Symbol) = (<>) t_a1Cjz t_a1CjA
data ShowsSym0 (l_a2SEm :: TyFun a6989586621679694495 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2SEk :: a6989586621679694495) (l_a2SEj :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2SEh :: a6989586621679694495) (t_a2SEi :: Symbol) = Shows t_a2SEh t_a2SEi
data ShowListWithSym0 (l_a2SDE :: TyFun (TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679694494] (TyFun Symbol Symbol -> Type) -> Type))
data ShowListWithSym1 (l_a2SDC :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (l_a2SDB :: TyFun [a6989586621679694494] (TyFun Symbol Symbol -> Type))
data ShowListWithSym2 (l_a2SDy :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (l_a2SDz :: [a6989586621679694494]) (l_a2SDx :: TyFun Symbol Symbol)
type ShowListWithSym3 (t_a2SDu :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (t_a2SDv :: [a6989586621679694494]) (t_a2SDw :: Symbol) = ShowListWith t_a2SDu t_a2SDv t_a2SDw
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2SBG :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2SBF :: Symbol) = ShowSpace t_a2SBF
data ShowCommaSpaceSym0 (l_a2SCd :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2SCc :: Symbol) = ShowCommaSpace t_a2SCc
type AppPrecSym0 = AppPrec
type AppPrec1Sym0 = AppPrec1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711911Sym0
instance Data.Singletons.Prelude.Show.PShow Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711911Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711911Sym2
instance Data.Singletons.Prelude.Show.SShow Data.Void.Void
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711865Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711865Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711865Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711820Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711820Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711820Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711776Sym0
instance Data.Singletons.Prelude.Show.PShow (GHC.Base.NonEmpty a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711776Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711776Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711726Sym0
instance Data.Singletons.Prelude.Show.PShow (Data.Either.Either a b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711726Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711726Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711670Sym0
instance Data.Singletons.Prelude.Show.PShow (GHC.Base.Maybe a)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711670Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711670Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711623Sym0
instance Data.Singletons.Prelude.Show.PShow ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711623Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679711623Sym2
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_6989586621679696916Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e, f, g)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696916Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696916Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696876Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e, f)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696876Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696876Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696837Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d, e)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696837Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696837Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696799Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c, d)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696799Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696799Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696762Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b, c)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696762Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696762Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696726Sym0
instance Data.Singletons.Prelude.Show.PShow (a, b)
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696726Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696726Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696691Sym0
instance Data.Singletons.Prelude.Show.PShow GHC.Types.Symbol
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696691Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696691Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696653Sym0
instance Data.Singletons.Prelude.Show.PShow [a]
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696653Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696653Sym2
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_6989586621679696582Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696582Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowsPrec_6989586621679696582Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Show__6989586621679696602Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowList_6989586621679696620Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.ShowList_6989586621679696620Sym0
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_6989586621679696448Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679696448Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679696448Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679696448Sym3
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.Let6989586621679696492ShowlSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679696492ShowlSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679696492ShowlSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679696492ShowlSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Let6989586621679696492ShowlSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679696364Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Show.Lambda_6989586621679696364Sym1


-- | Exports a promoted version of <a>Show</a>
module Data.Promotion.Prelude.Show
class PShow (a_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}

-- | 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_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data Show_Sym0 (l_a2SEL :: TyFun a6989586621679694510 Symbol)
type Show_Sym1 (t_a2SEK :: a6989586621679694510) = Show_ t_a2SEK
data ShowListSym0 (l_a2SEU :: TyFun [a6989586621679694510] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SES :: [a6989586621679694510]) (l_a2SER :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SEP :: [a6989586621679694510]) (t_a2SEQ :: Symbol) = ShowList t_a2SEP t_a2SEQ
data (<>@#@$) l_a1CjE
data (<>@#@$$) (l_a1CjC :: Symbol) l_a1CjB
type (<>@#@$$$) (t_a1Cjz :: Symbol) (t_a1CjA :: Symbol) = (<>) t_a1Cjz t_a1CjA
data ShowsSym0 (l_a2SEm :: TyFun a6989586621679694495 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2SEk :: a6989586621679694495) (l_a2SEj :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2SEh :: a6989586621679694495) (t_a2SEi :: Symbol) = Shows t_a2SEh t_a2SEi
data ShowListWithSym0 (l_a2SDE :: TyFun (TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (TyFun [a6989586621679694494] (TyFun Symbol Symbol -> Type) -> Type))
data ShowListWithSym1 (l_a2SDC :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (l_a2SDB :: TyFun [a6989586621679694494] (TyFun Symbol Symbol -> Type))
data ShowListWithSym2 (l_a2SDy :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (l_a2SDz :: [a6989586621679694494]) (l_a2SDx :: TyFun Symbol Symbol)
type ShowListWithSym3 (t_a2SDu :: TyFun a6989586621679694494 (TyFun Symbol Symbol -> Type) -> Type) (t_a2SDv :: [a6989586621679694494]) (t_a2SDw :: Symbol) = ShowListWith t_a2SDu t_a2SDv t_a2SDw
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2SBG :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2SBF :: Symbol) = ShowSpace t_a2SBF
data ShowCommaSpaceSym0 (l_a2SCd :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2SCc :: Symbol) = ShowCommaSpace t_a2SCc
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_a1N48 :: a_a1MZ6). Sing t_a1N48 -> Sing (Apply IdSym0 t_a1N48 :: a_a1MZ6)
sConst :: forall (t_a1N44 :: a_a1MZ4) (t_a1N45 :: b_a1MZ5). Sing t_a1N44 -> Sing t_a1N45 -> Sing (Apply (Apply ConstSym0 t_a1N44) t_a1N45 :: a_a1MZ4)
(%.) :: forall (t_a1N41 :: TyFun b_a1MZ1 c_a1MZ2 -> Type) (t_a1N42 :: TyFun a_a1MZ3 b_a1MZ1 -> Type) (t_a1N43 :: a_a1MZ3). Sing t_a1N41 -> Sing t_a1N42 -> Sing t_a1N43 -> Sing (Apply (Apply (Apply (.@#@$) t_a1N41) t_a1N42) t_a1N43 :: c_a1MZ2)
infixr 9 %.
sFlip :: forall (t_a1N3Y :: TyFun a_a1MYY (TyFun b_a1MYZ c_a1MZ0 -> Type) -> Type) (t_a1N3Z :: b_a1MYZ) (t_a1N40 :: a_a1MYY). Sing t_a1N3Y -> Sing t_a1N3Z -> Sing t_a1N40 -> Sing (Apply (Apply (Apply FlipSym0 t_a1N3Y) t_a1N3Z) t_a1N40 :: c_a1MZ0)
(%$) :: forall (t_a1N3W :: TyFun a_a1MYV b_a1MYW -> Type) (t_a1N3X :: a_a1MYV). Sing t_a1N3W -> Sing t_a1N3X -> Sing (Apply (Apply ($@#@$) t_a1N3W) t_a1N3X :: b_a1MYW)
infixr 0 %$
(%&) :: forall (t_a3fln :: a_a3fjS) (t_a3flo :: TyFun a_a3fjS b_a3fjT -> Type). Sing t_a3fln -> Sing t_a3flo -> Sing (Apply (Apply (&@#@$) t_a3fln) t_a3flo :: b_a3fjT)
infixl 1 %&
sOn :: forall (t_a3flp :: TyFun b_a3fjU (TyFun b_a3fjU c_a3fjV -> Type) -> Type) (t_a3flq :: TyFun a_a3fjW b_a3fjU -> Type) (t_a3flr :: a_a3fjW) (t_a3fls :: a_a3fjW). Sing t_a3flp -> Sing t_a3flq -> Sing t_a3flr -> Sing t_a3fls -> Sing (Apply (Apply (Apply (Apply OnSym0 t_a3flp) t_a3flq) t_a3flr) t_a3fls :: c_a3fjV)
infixl 0 `sOn`
data IdSym0 (l_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
type FlipSym3 (t_a1N1l :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (t_a1N1m :: b6989586621679436413) (t_a1N1n :: a6989586621679436412) = Flip t_a1N1l t_a1N1m t_a1N1n
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data (&@#@$) (l_a3fka :: TyFun a6989586621679783668 (TyFun (TyFun a6989586621679783668 b6989586621679783669 -> Type) b6989586621679783669 -> Type))
data (&@#@$$) (l_a3fk8 :: a6989586621679783668) (l_a3fk7 :: TyFun (TyFun a6989586621679783668 b6989586621679783669 -> Type) b6989586621679783669)
type (&@#@$$$) (t_a3fk5 :: a6989586621679783668) (t_a3fk6 :: TyFun a6989586621679783668 b6989586621679783669 -> Type) = (&) t_a3fk5 t_a3fk6
data OnSym0 (l_a3fkw :: TyFun (TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (TyFun (TyFun a6989586621679783672 b6989586621679783670 -> Type) (TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type) -> Type) -> Type))
data OnSym1 (l_a3fku :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkt :: TyFun (TyFun a6989586621679783672 b6989586621679783670 -> Type) (TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type) -> Type))
data OnSym2 (l_a3fkq :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkr :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (l_a3fkp :: TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type))
data OnSym3 (l_a3fkl :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkm :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (l_a3fkn :: a6989586621679783672) (l_a3fkk :: TyFun a6989586621679783672 c6989586621679783671)
type OnSym4 (t_a3fkg :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (t_a3fkh :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (t_a3fki :: a6989586621679783672) (t_a3fkj :: a6989586621679783672) = On t_a3fkg t_a3fkh t_a3fki t_a3fkj
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_6989586621679783722Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679783722Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679783722Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679783722Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679783722Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Function.Lambda_6989586621679783722Sym5


-- | 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_af7d -> Type)
sMap :: forall (t_a3iiS :: TyFun a_a3hGS b_a3hGT -> Type) (t_a3iiT :: NonEmpty a_a3hGS). Sing t_a3iiS -> Sing t_a3iiT -> Sing (Apply (Apply MapSym0 t_a3iiS) t_a3iiT :: NonEmpty b_a3hGT)
sIntersperse :: forall (t_a3iiQ :: a_a3hGI) (t_a3iiR :: NonEmpty a_a3hGI). Sing t_a3iiQ -> Sing t_a3iiR -> Sing (Apply (Apply IntersperseSym0 t_a3iiQ) t_a3iiR :: NonEmpty a_a3hGI)
sScanl :: forall (t_a3ijr :: TyFun b_a3hGN (TyFun a_a3hGO b_a3hGN -> Type) -> Type) (t_a3ijs :: b_a3hGN) (t_a3ijt :: [a_a3hGO]). Sing t_a3ijr -> Sing t_a3ijs -> Sing t_a3ijt -> Sing (Apply (Apply (Apply ScanlSym0 t_a3ijr) t_a3ijs) t_a3ijt :: NonEmpty b_a3hGN)
sScanr :: forall (t_a3iju :: TyFun a_a3hGL (TyFun b_a3hGM b_a3hGM -> Type) -> Type) (t_a3ijv :: b_a3hGM) (t_a3ijw :: [a_a3hGL]). Sing t_a3iju -> Sing t_a3ijv -> Sing t_a3ijw -> Sing (Apply (Apply (Apply ScanrSym0 t_a3iju) t_a3ijv) t_a3ijw :: NonEmpty b_a3hGM)
sScanl1 :: forall (t_a3ijx :: TyFun a_a3hGK (TyFun a_a3hGK a_a3hGK -> Type) -> Type) (t_a3ijy :: NonEmpty a_a3hGK). Sing t_a3ijx -> Sing t_a3ijy -> Sing (Apply (Apply Scanl1Sym0 t_a3ijx) t_a3ijy :: NonEmpty a_a3hGK)
sScanr1 :: forall (t_a3ijz :: TyFun a_a3hGJ (TyFun a_a3hGJ a_a3hGJ -> Type) -> Type) (t_a3ijA :: NonEmpty a_a3hGJ). Sing t_a3ijz -> Sing t_a3ijA -> Sing (Apply (Apply Scanr1Sym0 t_a3ijz) t_a3ijA :: NonEmpty a_a3hGJ)
sTranspose :: forall (t_a3ijU :: NonEmpty (NonEmpty a_a3hGa)). Sing t_a3ijU -> Sing (Apply TransposeSym0 t_a3ijU :: NonEmpty (NonEmpty a_a3hGa))
sSortBy :: forall (t_a3ijh :: TyFun a_a3hG9 (TyFun a_a3hG9 Ordering -> Type) -> Type) (t_a3iji :: NonEmpty a_a3hG9). Sing t_a3ijh -> Sing t_a3iji -> Sing (Apply (Apply SortBySym0 t_a3ijh) t_a3iji :: NonEmpty a_a3hG9)
sSortWith :: forall (t_a3ijj :: TyFun a_a3hG8 o_a3hG7 -> Type) (t_a3ijk :: NonEmpty a_a3hG8). SOrd o_a3hG7 => Sing t_a3ijj -> Sing t_a3ijk -> Sing (Apply (Apply SortWithSym0 t_a3ijj) t_a3ijk :: NonEmpty a_a3hG8)
sLength :: forall (t_a3ijR :: NonEmpty a_a3hHb). Sing t_a3ijR -> Sing (Apply LengthSym0 t_a3ijR :: Nat)
sHead :: forall (t_a3ijJ :: NonEmpty a_a3hH4). Sing t_a3ijJ -> Sing (Apply HeadSym0 t_a3ijJ :: a_a3hH4)
sTail :: forall (t_a3ijI :: NonEmpty a_a3hH3). Sing t_a3ijI -> Sing (Apply TailSym0 t_a3ijI :: [a_a3hH3])
sLast :: forall (t_a3ijH :: NonEmpty a_a3hH2). Sing t_a3ijH -> Sing (Apply LastSym0 t_a3ijH :: a_a3hH2)
sInit :: forall (t_a3ijG :: NonEmpty a_a3hH1). Sing t_a3ijG -> Sing (Apply InitSym0 t_a3ijG :: [a_a3hH1])
(%<|) :: forall (t_a3ijC :: a_a3hH0) (t_a3ijD :: NonEmpty a_a3hH0). Sing t_a3ijC -> Sing t_a3ijD -> Sing (Apply (Apply (<|@#@$) t_a3ijC) t_a3ijD :: NonEmpty a_a3hH0)
sCons :: forall (t_a3ijE :: a_a3hGZ) (t_a3ijF :: NonEmpty a_a3hGZ). Sing t_a3ijE -> Sing t_a3ijF -> Sing (Apply (Apply ConsSym0 t_a3ijE) t_a3ijF :: NonEmpty a_a3hGZ)
sUncons :: forall (t_a3ijN :: NonEmpty a_a3hH7). Sing t_a3ijN -> Sing (Apply UnconsSym0 t_a3ijN :: (a_a3hH7, Maybe (NonEmpty a_a3hH7)))
sUnfoldr :: forall (t_a3ijK :: TyFun a_a3hH5 (b_a3hH6, Maybe a_a3hH5) -> Type) (t_a3ijL :: a_a3hH5). Sing t_a3ijK -> Sing t_a3ijL -> Sing (Apply (Apply UnfoldrSym0 t_a3ijK) t_a3ijL :: NonEmpty b_a3hH6)
sSort :: forall (t_a3ijB :: NonEmpty a_a3hGY). SOrd a_a3hGY => Sing t_a3ijB -> Sing (Apply SortSym0 t_a3ijB :: NonEmpty a_a3hGY)
sReverse :: forall (t_a3ijg :: NonEmpty a_a3hGH). Sing t_a3ijg -> Sing (Apply ReverseSym0 t_a3ijg :: NonEmpty a_a3hGH)
sInits :: forall (t_a3ijn :: [a_a3hGR]). Sing t_a3ijn -> Sing (Apply InitsSym0 t_a3ijn :: NonEmpty [a_a3hGR])
sTails :: forall (t_a3ijo :: [a_a3hGQ]). Sing t_a3ijo -> Sing (Apply TailsSym0 t_a3ijo :: NonEmpty [a_a3hGQ])
sUnfold :: forall (t_a3ijO :: TyFun a_a3hH9 (b_a3hHa, Maybe a_a3hH9) -> Type) (t_a3ijP :: a_a3hH9). Sing t_a3ijO -> Sing t_a3ijP -> Sing (Apply (Apply UnfoldSym0 t_a3ijO) t_a3ijP :: NonEmpty b_a3hHa)
sInsert :: forall (t_a3ijp :: a_a3hGP) (t_a3ijq :: [a_a3hGP]). SOrd a_a3hGP => Sing t_a3ijp -> Sing t_a3ijq -> Sing (Apply (Apply InsertSym0 t_a3ijp) t_a3ijq :: NonEmpty a_a3hGP)
sTake :: forall (t_a3iiV :: Nat) (t_a3iiW :: NonEmpty a_a3hGG). Sing t_a3iiV -> Sing t_a3iiW -> Sing (Apply (Apply TakeSym0 t_a3iiV) t_a3iiW :: [a_a3hGG])
sDrop :: forall (t_a3iiX :: Nat) (t_a3iiY :: NonEmpty a_a3hGF). Sing t_a3iiX -> Sing t_a3iiY -> Sing (Apply (Apply DropSym0 t_a3iiX) t_a3iiY :: [a_a3hGF])
sSplitAt :: forall (t_a3iiZ :: Nat) (t_a3ij0 :: NonEmpty a_a3hGE). Sing t_a3iiZ -> Sing t_a3ij0 -> Sing (Apply (Apply SplitAtSym0 t_a3iiZ) t_a3ij0 :: ([a_a3hGE], [a_a3hGE]))
sTakeWhile :: forall (t_a3ij1 :: TyFun a_a3hGD Bool -> Type) (t_a3ij2 :: NonEmpty a_a3hGD). Sing t_a3ij1 -> Sing t_a3ij2 -> Sing (Apply (Apply TakeWhileSym0 t_a3ij1) t_a3ij2 :: [a_a3hGD])
sDropWhile :: forall (t_a3ij3 :: TyFun a_a3hGC Bool -> Type) (t_a3ij4 :: NonEmpty a_a3hGC). Sing t_a3ij3 -> Sing t_a3ij4 -> Sing (Apply (Apply DropWhileSym0 t_a3ij3) t_a3ij4 :: [a_a3hGC])
sSpan :: forall (t_a3ij5 :: TyFun a_a3hGB Bool -> Type) (t_a3ij6 :: NonEmpty a_a3hGB). Sing t_a3ij5 -> Sing t_a3ij6 -> Sing (Apply (Apply SpanSym0 t_a3ij5) t_a3ij6 :: ([a_a3hGB], [a_a3hGB]))
sBreak :: forall (t_a3ij7 :: TyFun a_a3hGA Bool -> Type) (t_a3ij8 :: NonEmpty a_a3hGA). Sing t_a3ij7 -> Sing t_a3ij8 -> Sing (Apply (Apply BreakSym0 t_a3ij7) t_a3ij8 :: ([a_a3hGA], [a_a3hGA]))
sFilter :: forall (t_a3ij9 :: TyFun a_a3hGz Bool -> Type) (t_a3ija :: NonEmpty a_a3hGz). Sing t_a3ij9 -> Sing t_a3ija -> Sing (Apply (Apply FilterSym0 t_a3ij9) t_a3ija :: [a_a3hGz])
sPartition :: forall (t_a3ijb :: TyFun a_a3hGy Bool -> Type) (t_a3ijc :: NonEmpty a_a3hGy). Sing t_a3ijb -> Sing t_a3ijc -> Sing (Apply (Apply PartitionSym0 t_a3ijb) t_a3ijc :: ([a_a3hGy], [a_a3hGy]))
sGroup :: forall (t_a3iiP :: [a_a3hGx]). SEq a_a3hGx => Sing t_a3iiP -> Sing (Apply GroupSym0 t_a3iiP :: [NonEmpty a_a3hGx])
sGroupBy :: forall (t_a3iiE :: TyFun a_a3hGw (TyFun a_a3hGw Bool -> Type) -> Type) (t_a3iiF :: [a_a3hGw]). Sing t_a3iiE -> Sing t_a3iiF -> Sing (Apply (Apply GroupBySym0 t_a3iiE) t_a3iiF :: [NonEmpty a_a3hGw])
sGroupWith :: forall (t_a3iiG :: TyFun a_a3hGv b_a3hGu -> Type) (t_a3iiH :: [a_a3hGv]). SEq b_a3hGu => Sing t_a3iiG -> Sing t_a3iiH -> Sing (Apply (Apply GroupWithSym0 t_a3iiG) t_a3iiH :: [NonEmpty a_a3hGv])
sGroupAllWith :: forall (t_a3iiI :: TyFun a_a3hGt b_a3hGs -> Type) (t_a3iiJ :: [a_a3hGt]). SOrd b_a3hGs => Sing t_a3iiI -> Sing t_a3iiJ -> Sing (Apply (Apply GroupAllWithSym0 t_a3iiI) t_a3iiJ :: [NonEmpty a_a3hGt])
sGroup1 :: forall (t_a3iiM :: NonEmpty a_a3hGr). SEq a_a3hGr => Sing t_a3iiM -> Sing (Apply Group1Sym0 t_a3iiM :: NonEmpty (NonEmpty a_a3hGr))
sGroupBy1 :: forall (t_a3iiK :: TyFun a_a3hGq (TyFun a_a3hGq Bool -> Type) -> Type) (t_a3iiL :: NonEmpty a_a3hGq). Sing t_a3iiK -> Sing t_a3iiL -> Sing (Apply (Apply GroupBy1Sym0 t_a3iiK) t_a3iiL :: NonEmpty (NonEmpty a_a3hGq))
sGroupWith1 :: forall (t_a3iiN :: TyFun a_a3hGp b_a3hGo -> Type) (t_a3iiO :: NonEmpty a_a3hGp). SEq b_a3hGo => Sing t_a3iiN -> Sing t_a3iiO -> Sing (Apply (Apply GroupWith1Sym0 t_a3iiN) t_a3iiO :: NonEmpty (NonEmpty a_a3hGp))
sGroupAllWith1 :: forall (t_a3ijl :: TyFun a_a3hGn b_a3hGm -> Type) (t_a3ijm :: NonEmpty a_a3hGn). SOrd b_a3hGm => Sing t_a3ijl -> Sing t_a3ijm -> Sing (Apply (Apply GroupAllWith1Sym0 t_a3ijl) t_a3ijm :: NonEmpty (NonEmpty a_a3hGn))
sIsPrefixOf :: forall (t_a3iiC :: [a_a3hGl]) (t_a3iiD :: NonEmpty a_a3hGl). SEq a_a3hGl => Sing t_a3iiC -> Sing t_a3iiD -> Sing (Apply (Apply IsPrefixOfSym0 t_a3iiC) t_a3iiD :: Bool)
sNub :: forall (t_a3iit :: NonEmpty a_a3hGc). SEq a_a3hGc => Sing t_a3iit -> Sing (Apply NubSym0 t_a3iit :: NonEmpty a_a3hGc)
sNubBy :: forall (t_a3iir :: TyFun a_a3hGb (TyFun a_a3hGb Bool -> Type) -> Type) (t_a3iis :: NonEmpty a_a3hGb). Sing t_a3iir -> Sing t_a3iis -> Sing (Apply (Apply NubBySym0 t_a3iir) t_a3iis :: NonEmpty a_a3hGb)
(%!!) :: forall (t_a3iiA :: NonEmpty a_a3hGk) (t_a3iiB :: Nat). Sing t_a3iiA -> Sing t_a3iiB -> Sing (Apply (Apply (!!@#@$) t_a3iiA) t_a3iiB :: a_a3hGk)
sZip :: forall (t_a3iiy :: NonEmpty a_a3hGi) (t_a3iiz :: NonEmpty b_a3hGj). Sing t_a3iiy -> Sing t_a3iiz -> Sing (Apply (Apply ZipSym0 t_a3iiy) t_a3iiz :: NonEmpty (a_a3hGi, b_a3hGj))
sZipWith :: forall (t_a3iiv :: TyFun a_a3hGf (TyFun b_a3hGg c_a3hGh -> Type) -> Type) (t_a3iiw :: NonEmpty a_a3hGf) (t_a3iix :: NonEmpty b_a3hGg). Sing t_a3iiv -> Sing t_a3iiw -> Sing t_a3iix -> Sing (Apply (Apply (Apply ZipWithSym0 t_a3iiv) t_a3iiw) t_a3iix :: NonEmpty c_a3hGh)
sUnzip :: forall (t_a3iiu :: NonEmpty (a_a3hGd, b_a3hGe)). Sing t_a3iiu -> Sing (Apply UnzipSym0 t_a3iiu :: (NonEmpty a_a3hGd, NonEmpty b_a3hGe))
sFromList :: forall (t_a3ijd :: [a_a3hGX]). Sing t_a3ijd -> Sing (Apply FromListSym0 t_a3ijd :: NonEmpty a_a3hGX)
sToList :: forall (t_a3iiU :: NonEmpty a_a3hGW). Sing t_a3iiU -> Sing (Apply ToListSym0 t_a3iiU :: [a_a3hGW])
sNonEmpty_ :: forall (t_a3ijM :: [a_a3hH8]). Sing t_a3ijM -> Sing (Apply NonEmpty_Sym0 t_a3ijM :: Maybe (NonEmpty a_a3hH8))
sXor :: forall (t_a3ijQ :: NonEmpty Bool). Sing t_a3ijQ -> Sing (Apply XorSym0 t_a3ijQ :: Bool)
data (:|@#@$) (l_a12PC :: TyFun a6989586621679067899 (TyFun [a6989586621679067899] (NonEmpty a6989586621679067899) -> Type))
data (:|@#@$$) (l_a12PA :: a6989586621679067899) (l_a12Pz :: TyFun [a6989586621679067899] (NonEmpty a6989586621679067899))
type (:|@#@$$$) (t_a12Px :: a6989586621679067899) (t_a12Py :: [a6989586621679067899]) = (:|) t_a12Px t_a12Py
data MapSym0 (l_a3iaw :: TyFun (TyFun a6989586621679792782 b6989586621679792783 -> Type) (TyFun (NonEmpty a6989586621679792782) (NonEmpty b6989586621679792783) -> Type))
data MapSym1 (l_a3iau :: TyFun a6989586621679792782 b6989586621679792783 -> Type) (l_a3iat :: TyFun (NonEmpty a6989586621679792782) (NonEmpty b6989586621679792783))
type MapSym2 (t_a3iar :: TyFun a6989586621679792782 b6989586621679792783 -> Type) (t_a3ias :: NonEmpty a6989586621679792782) = Map t_a3iar t_a3ias
data IntersperseSym0 (l_a3iah :: TyFun a6989586621679792772 (TyFun (NonEmpty a6989586621679792772) (NonEmpty a6989586621679792772) -> Type))
data IntersperseSym1 (l_a3iaf :: a6989586621679792772) (l_a3iae :: TyFun (NonEmpty a6989586621679792772) (NonEmpty a6989586621679792772))
type IntersperseSym2 (t_a3iac :: a6989586621679792772) (t_a3iad :: NonEmpty a6989586621679792772) = Intersperse t_a3iac t_a3iad
data ScanlSym0 (l_a3iei :: TyFun (TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (TyFun b6989586621679792777 (TyFun [a6989586621679792778] (NonEmpty b6989586621679792777) -> Type) -> Type))
data ScanlSym1 (l_a3ieg :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (l_a3ief :: TyFun b6989586621679792777 (TyFun [a6989586621679792778] (NonEmpty b6989586621679792777) -> Type))
data ScanlSym2 (l_a3iec :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (l_a3ied :: b6989586621679792777) (l_a3ieb :: TyFun [a6989586621679792778] (NonEmpty b6989586621679792777))
type ScanlSym3 (t_a3ie8 :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (t_a3ie9 :: b6989586621679792777) (t_a3iea :: [a6989586621679792778]) = Scanl t_a3ie8 t_a3ie9 t_a3iea
data ScanrSym0 (l_a3ieC :: TyFun (TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (TyFun b6989586621679792776 (TyFun [a6989586621679792775] (NonEmpty b6989586621679792776) -> Type) -> Type))
data ScanrSym1 (l_a3ieA :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (l_a3iez :: TyFun b6989586621679792776 (TyFun [a6989586621679792775] (NonEmpty b6989586621679792776) -> Type))
data ScanrSym2 (l_a3iew :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (l_a3iex :: b6989586621679792776) (l_a3iev :: TyFun [a6989586621679792775] (NonEmpty b6989586621679792776))
type ScanrSym3 (t_a3ies :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (t_a3iet :: b6989586621679792776) (t_a3ieu :: [a6989586621679792775]) = Scanr t_a3ies t_a3iet t_a3ieu
data Scanl1Sym0 (l_a3ieR :: TyFun (TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792774) (NonEmpty a6989586621679792774) -> Type))
data Scanl1Sym1 (l_a3ieP :: TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (l_a3ieO :: TyFun (NonEmpty a6989586621679792774) (NonEmpty a6989586621679792774))
type Scanl1Sym2 (t_a3ieM :: TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (t_a3ieN :: NonEmpty a6989586621679792774) = Scanl1 t_a3ieM t_a3ieN
data Scanr1Sym0 (l_a3if3 :: TyFun (TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792773) (NonEmpty a6989586621679792773) -> Type))
data Scanr1Sym1 (l_a3if1 :: TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (l_a3if0 :: TyFun (NonEmpty a6989586621679792773) (NonEmpty a6989586621679792773))
type Scanr1Sym2 (t_a3ieY :: TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (t_a3ieZ :: NonEmpty a6989586621679792773) = Scanr1 t_a3ieY t_a3ieZ
data TransposeSym0 (l_a3iin :: TyFun (NonEmpty (NonEmpty a6989586621679792738)) (NonEmpty (NonEmpty a6989586621679792738)))
type TransposeSym1 (t_a3iim :: NonEmpty (NonEmpty a6989586621679792738)) = Transpose t_a3iim
data SortBySym0 (l_a3id7 :: TyFun (TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (TyFun (NonEmpty a6989586621679792737) (NonEmpty a6989586621679792737) -> Type))
data SortBySym1 (l_a3id5 :: TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (l_a3id4 :: TyFun (NonEmpty a6989586621679792737) (NonEmpty a6989586621679792737))
type SortBySym2 (t_a3id2 :: TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (t_a3id3 :: NonEmpty a6989586621679792737) = SortBy t_a3id2 t_a3id3
data SortWithSym0 (l_a3ido :: TyFun (TyFun a6989586621679792736 o6989586621679792735 -> Type) (TyFun (NonEmpty a6989586621679792736) (NonEmpty a6989586621679792736) -> Type))
data SortWithSym1 (l_a3idm :: TyFun a6989586621679792736 o6989586621679792735 -> Type) (l_a3idl :: TyFun (NonEmpty a6989586621679792736) (NonEmpty a6989586621679792736))
type SortWithSym2 (t_a3idj :: TyFun a6989586621679792736 o6989586621679792735 -> Type) (t_a3idk :: NonEmpty a6989586621679792736) = SortWith t_a3idj t_a3idk
data LengthSym0 (l_a3ii4 :: TyFun (NonEmpty a6989586621679792801) Nat)
type LengthSym1 (t_a3ii3 :: NonEmpty a6989586621679792801) = Length t_a3ii3
data HeadSym0 (l_a3ig0 :: TyFun (NonEmpty a6989586621679792794) a6989586621679792794)
type HeadSym1 (t_a3ifZ :: NonEmpty a6989586621679792794) = Head t_a3ifZ
data TailSym0 (l_a3ifV :: TyFun (NonEmpty a6989586621679792793) [a6989586621679792793])
type TailSym1 (t_a3ifU :: NonEmpty a6989586621679792793) = Tail t_a3ifU
data LastSym0 (l_a3ifP :: TyFun (NonEmpty a6989586621679792792) a6989586621679792792)
type LastSym1 (t_a3ifO :: NonEmpty a6989586621679792792) = Last t_a3ifO
data InitSym0 (l_a3ifJ :: TyFun (NonEmpty a6989586621679792791) [a6989586621679792791])
type InitSym1 (t_a3ifI :: NonEmpty a6989586621679792791) = Init t_a3ifI
data (<|@#@$) (l_a3ifm :: TyFun a6989586621679792790 (TyFun (NonEmpty a6989586621679792790) (NonEmpty a6989586621679792790) -> Type))
data (<|@#@$$) (l_a3ifk :: a6989586621679792790) (l_a3ifj :: TyFun (NonEmpty a6989586621679792790) (NonEmpty a6989586621679792790))
type (<|@#@$$$) (t_a3ifh :: a6989586621679792790) (t_a3ifi :: NonEmpty a6989586621679792790) = (<|) t_a3ifh t_a3ifi
data ConsSym0 (l_a3ifC :: TyFun a6989586621679792789 (TyFun (NonEmpty a6989586621679792789) (NonEmpty a6989586621679792789) -> Type))
data ConsSym1 (l_a3ifA :: a6989586621679792789) (l_a3ifz :: TyFun (NonEmpty a6989586621679792789) (NonEmpty a6989586621679792789))
type ConsSym2 (t_a3ifx :: a6989586621679792789) (t_a3ify :: NonEmpty a6989586621679792789) = Cons t_a3ifx t_a3ify
data UnconsSym0 (l_a3ih6 :: TyFun (NonEmpty a6989586621679792797) (a6989586621679792797, Maybe (NonEmpty a6989586621679792797)))
type UnconsSym1 (t_a3ih5 :: NonEmpty a6989586621679792797) = Uncons t_a3ih5
data UnfoldrSym0 (l_a3ig9 :: TyFun (TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (TyFun a6989586621679792795 (NonEmpty b6989586621679792796) -> Type))
data UnfoldrSym1 (l_a3ig7 :: TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (l_a3ig6 :: TyFun a6989586621679792795 (NonEmpty b6989586621679792796))
type UnfoldrSym2 (t_a3ig4 :: TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (t_a3ig5 :: a6989586621679792795) = Unfoldr t_a3ig4 t_a3ig5
data SortSym0 (l_a3ifd :: TyFun (NonEmpty a6989586621679792788) (NonEmpty a6989586621679792788))
type SortSym1 (t_a3ifc :: NonEmpty a6989586621679792788) = Sort t_a3ifc
data ReverseSym0 (l_a3icY :: TyFun (NonEmpty a6989586621679792771) (NonEmpty a6989586621679792771))
type ReverseSym1 (t_a3icX :: NonEmpty a6989586621679792771) = Reverse t_a3icX
data InitsSym0 (l_a3idK :: TyFun [a6989586621679792781] (NonEmpty [a6989586621679792781]))
type InitsSym1 (t_a3idJ :: [a6989586621679792781]) = Inits t_a3idJ
data TailsSym0 (l_a3idR :: TyFun [a6989586621679792780] (NonEmpty [a6989586621679792780]))
type TailsSym1 (t_a3idQ :: [a6989586621679792780]) = Tails t_a3idQ
data UnfoldSym0 (l_a3ihg :: TyFun (TyFun a6989586621679792799 (b6989586621679792800, Maybe a6989586621679792799) -> Type) (TyFun a6989586621679792799 (NonEmpty b6989586621679792800) -> Type))
data UnfoldSym1 (l_a3ihe :: TyFun a6989586621679792799 (b6989586621679792800, Maybe a6989586621679792799) -> Type) (l_a3ihd :: TyFun a6989586621679792799 (NonEmpty b6989586621679792800))
data InsertSym0 (l_a3ie0 :: TyFun a6989586621679792779 (TyFun [a6989586621679792779] (NonEmpty a6989586621679792779) -> Type))
data InsertSym1 (l_a3idY :: a6989586621679792779) (l_a3idX :: TyFun [a6989586621679792779] (NonEmpty a6989586621679792779))
type InsertSym2 (t_a3idV :: a6989586621679792779) (t_a3idW :: [a6989586621679792779]) = Insert t_a3idV t_a3idW
data TakeSym0 (l_a3iaO :: TyFun Nat (TyFun (NonEmpty a6989586621679792770) [a6989586621679792770] -> Type))
data TakeSym1 (l_a3iaM :: Nat) (l_a3iaL :: TyFun (NonEmpty a6989586621679792770) [a6989586621679792770])
type TakeSym2 (t_a3iaJ :: Nat) (t_a3iaK :: NonEmpty a6989586621679792770) = Take t_a3iaJ t_a3iaK
data DropSym0 (l_a3ib1 :: TyFun Nat (TyFun (NonEmpty a6989586621679792769) [a6989586621679792769] -> Type))
data DropSym1 (l_a3iaZ :: Nat) (l_a3iaY :: TyFun (NonEmpty a6989586621679792769) [a6989586621679792769])
type DropSym2 (t_a3iaW :: Nat) (t_a3iaX :: NonEmpty a6989586621679792769) = Drop t_a3iaW t_a3iaX
data SplitAtSym0 (l_a3ibe :: TyFun Nat (TyFun (NonEmpty a6989586621679792768) ([a6989586621679792768], [a6989586621679792768]) -> Type))
data SplitAtSym1 (l_a3ibc :: Nat) (l_a3ibb :: TyFun (NonEmpty a6989586621679792768) ([a6989586621679792768], [a6989586621679792768]))
type SplitAtSym2 (t_a3ib9 :: Nat) (t_a3iba :: NonEmpty a6989586621679792768) = SplitAt t_a3ib9 t_a3iba
data TakeWhileSym0 (l_a3ibr :: TyFun (TyFun a6989586621679792767 Bool -> Type) (TyFun (NonEmpty a6989586621679792767) [a6989586621679792767] -> Type))
data TakeWhileSym1 (l_a3ibp :: TyFun a6989586621679792767 Bool -> Type) (l_a3ibo :: TyFun (NonEmpty a6989586621679792767) [a6989586621679792767])
type TakeWhileSym2 (t_a3ibm :: TyFun a6989586621679792767 Bool -> Type) (t_a3ibn :: NonEmpty a6989586621679792767) = TakeWhile t_a3ibm t_a3ibn
data DropWhileSym0 (l_a3ibE :: TyFun (TyFun a6989586621679792766 Bool -> Type) (TyFun (NonEmpty a6989586621679792766) [a6989586621679792766] -> Type))
data DropWhileSym1 (l_a3ibC :: TyFun a6989586621679792766 Bool -> Type) (l_a3ibB :: TyFun (NonEmpty a6989586621679792766) [a6989586621679792766])
type DropWhileSym2 (t_a3ibz :: TyFun a6989586621679792766 Bool -> Type) (t_a3ibA :: NonEmpty a6989586621679792766) = DropWhile t_a3ibz t_a3ibA
data SpanSym0 (l_a3ibR :: TyFun (TyFun a6989586621679792765 Bool -> Type) (TyFun (NonEmpty a6989586621679792765) ([a6989586621679792765], [a6989586621679792765]) -> Type))
data SpanSym1 (l_a3ibP :: TyFun a6989586621679792765 Bool -> Type) (l_a3ibO :: TyFun (NonEmpty a6989586621679792765) ([a6989586621679792765], [a6989586621679792765]))
type SpanSym2 (t_a3ibM :: TyFun a6989586621679792765 Bool -> Type) (t_a3ibN :: NonEmpty a6989586621679792765) = Span t_a3ibM t_a3ibN
data BreakSym0 (l_a3ic4 :: TyFun (TyFun a6989586621679792764 Bool -> Type) (TyFun (NonEmpty a6989586621679792764) ([a6989586621679792764], [a6989586621679792764]) -> Type))
data BreakSym1 (l_a3ic2 :: TyFun a6989586621679792764 Bool -> Type) (l_a3ic1 :: TyFun (NonEmpty a6989586621679792764) ([a6989586621679792764], [a6989586621679792764]))
type BreakSym2 (t_a3ibZ :: TyFun a6989586621679792764 Bool -> Type) (t_a3ic0 :: NonEmpty a6989586621679792764) = Break t_a3ibZ t_a3ic0
data FilterSym0 (l_a3ich :: TyFun (TyFun a6989586621679792763 Bool -> Type) (TyFun (NonEmpty a6989586621679792763) [a6989586621679792763] -> Type))
data FilterSym1 (l_a3icf :: TyFun a6989586621679792763 Bool -> Type) (l_a3ice :: TyFun (NonEmpty a6989586621679792763) [a6989586621679792763])
type FilterSym2 (t_a3icc :: TyFun a6989586621679792763 Bool -> Type) (t_a3icd :: NonEmpty a6989586621679792763) = Filter t_a3icc t_a3icd
data PartitionSym0 (l_a3icu :: TyFun (TyFun a6989586621679792762 Bool -> Type) (TyFun (NonEmpty a6989586621679792762) ([a6989586621679792762], [a6989586621679792762]) -> Type))
data PartitionSym1 (l_a3ics :: TyFun a6989586621679792762 Bool -> Type) (l_a3icr :: TyFun (NonEmpty a6989586621679792762) ([a6989586621679792762], [a6989586621679792762]))
type PartitionSym2 (t_a3icp :: TyFun a6989586621679792762 Bool -> Type) (t_a3icq :: NonEmpty a6989586621679792762) = Partition t_a3icp t_a3icq
data GroupSym0 (l_a3ia8 :: TyFun [a6989586621679792761] [NonEmpty a6989586621679792761])
type GroupSym1 (t_a3ia7 :: [a6989586621679792761]) = Group t_a3ia7
data GroupBySym0 (l_a3i6m :: TyFun (TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (TyFun [a6989586621679792760] [NonEmpty a6989586621679792760] -> Type))
data GroupBySym1 (l_a3i6k :: TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (l_a3i6j :: TyFun [a6989586621679792760] [NonEmpty a6989586621679792760])
type GroupBySym2 (t_a3i6h :: TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (t_a3i6i :: [a6989586621679792760]) = GroupBy t_a3i6h t_a3i6i
data GroupWithSym0 (l_a3i8p :: TyFun (TyFun a6989586621679792759 b6989586621679792758 -> Type) (TyFun [a6989586621679792759] [NonEmpty a6989586621679792759] -> Type))
data GroupWithSym1 (l_a3i8n :: TyFun a6989586621679792759 b6989586621679792758 -> Type) (l_a3i8m :: TyFun [a6989586621679792759] [NonEmpty a6989586621679792759])
type GroupWithSym2 (t_a3i8k :: TyFun a6989586621679792759 b6989586621679792758 -> Type) (t_a3i8l :: [a6989586621679792759]) = GroupWith t_a3i8k t_a3i8l
data GroupAllWithSym0 (l_a3i8C :: TyFun (TyFun a6989586621679792757 b6989586621679792756 -> Type) (TyFun [a6989586621679792757] [NonEmpty a6989586621679792757] -> Type))
data GroupAllWithSym1 (l_a3i8A :: TyFun a6989586621679792757 b6989586621679792756 -> Type) (l_a3i8z :: TyFun [a6989586621679792757] [NonEmpty a6989586621679792757])
type GroupAllWithSym2 (t_a3i8x :: TyFun a6989586621679792757 b6989586621679792756 -> Type) (t_a3i8y :: [a6989586621679792757]) = GroupAllWith t_a3i8x t_a3i8y
data Group1Sym0 (l_a3i9O :: TyFun (NonEmpty a6989586621679792755) (NonEmpty (NonEmpty a6989586621679792755)))
type Group1Sym1 (t_a3i9N :: NonEmpty a6989586621679792755) = Group1 t_a3i9N
data GroupBy1Sym0 (l_a3i8P :: TyFun (TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679792754) (NonEmpty (NonEmpty a6989586621679792754)) -> Type))
data GroupBy1Sym1 (l_a3i8N :: TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (l_a3i8M :: TyFun (NonEmpty a6989586621679792754) (NonEmpty (NonEmpty a6989586621679792754)))
type GroupBy1Sym2 (t_a3i8K :: TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (t_a3i8L :: NonEmpty a6989586621679792754) = GroupBy1 t_a3i8K t_a3i8L
data GroupWith1Sym0 (l_a3i9X :: TyFun (TyFun a6989586621679792753 b6989586621679792752 -> Type) (TyFun (NonEmpty a6989586621679792753) (NonEmpty (NonEmpty a6989586621679792753)) -> Type))
data GroupWith1Sym1 (l_a3i9V :: TyFun a6989586621679792753 b6989586621679792752 -> Type) (l_a3i9U :: TyFun (NonEmpty a6989586621679792753) (NonEmpty (NonEmpty a6989586621679792753)))
type GroupWith1Sym2 (t_a3i9S :: TyFun a6989586621679792753 b6989586621679792752 -> Type) (t_a3i9T :: NonEmpty a6989586621679792753) = GroupWith1 t_a3i9S t_a3i9T
data GroupAllWith1Sym0 (l_a3idz :: TyFun (TyFun a6989586621679792751 b6989586621679792750 -> Type) (TyFun (NonEmpty a6989586621679792751) (NonEmpty (NonEmpty a6989586621679792751)) -> Type))
data GroupAllWith1Sym1 (l_a3idx :: TyFun a6989586621679792751 b6989586621679792750 -> Type) (l_a3idw :: TyFun (NonEmpty a6989586621679792751) (NonEmpty (NonEmpty a6989586621679792751)))
type GroupAllWith1Sym2 (t_a3idu :: TyFun a6989586621679792751 b6989586621679792750 -> Type) (t_a3idv :: NonEmpty a6989586621679792751) = GroupAllWith1 t_a3idu t_a3idv
data IsPrefixOfSym0 (l_a3i69 :: TyFun [a6989586621679792749] (TyFun (NonEmpty a6989586621679792749) Bool -> Type))
data IsPrefixOfSym1 (l_a3i67 :: [a6989586621679792749]) (l_a3i66 :: TyFun (NonEmpty a6989586621679792749) Bool)
type IsPrefixOfSym2 (t_a3i64 :: [a6989586621679792749]) (t_a3i65 :: NonEmpty a6989586621679792749) = IsPrefixOf t_a3i64 t_a3i65
data NubSym0 (l_a3i4a :: TyFun (NonEmpty a6989586621679792740) (NonEmpty a6989586621679792740))
type NubSym1 (t_a3i49 :: NonEmpty a6989586621679792740) = Nub t_a3i49
data NubBySym0 (l_a3i3E :: TyFun (TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679792739) (NonEmpty a6989586621679792739) -> Type))
data NubBySym1 (l_a3i3C :: TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (l_a3i3B :: TyFun (NonEmpty a6989586621679792739) (NonEmpty a6989586621679792739))
type NubBySym2 (t_a3i3z :: TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (t_a3i3A :: NonEmpty a6989586621679792739) = NubBy t_a3i3z t_a3i3A
data (!!@#@$) (l_a3i5M :: TyFun (NonEmpty a6989586621679792748) (TyFun Nat a6989586621679792748 -> Type))
data (!!@#@$$) (l_a3i5K :: NonEmpty a6989586621679792748) (l_a3i5J :: TyFun Nat a6989586621679792748)
type (!!@#@$$$) (t_a3i5H :: NonEmpty a6989586621679792748) (t_a3i5I :: Nat) = (!!) t_a3i5H t_a3i5I
data ZipSym0 (l_a3i5z :: TyFun (NonEmpty a6989586621679792746) (TyFun (NonEmpty b6989586621679792747) (NonEmpty (a6989586621679792746, b6989586621679792747)) -> Type))
data ZipSym1 (l_a3i5x :: NonEmpty a6989586621679792746) (l_a3i5w :: TyFun (NonEmpty b6989586621679792747) (NonEmpty (a6989586621679792746, b6989586621679792747)))
type ZipSym2 (t_a3i5u :: NonEmpty a6989586621679792746) (t_a3i5v :: NonEmpty b6989586621679792747) = Zip t_a3i5u t_a3i5v
data ZipWithSym0 (l_a3i5k :: TyFun (TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792743) (TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745) -> Type) -> Type))
data ZipWithSym1 (l_a3i5i :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (l_a3i5h :: TyFun (NonEmpty a6989586621679792743) (TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745) -> Type))
data ZipWithSym2 (l_a3i5e :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (l_a3i5f :: NonEmpty a6989586621679792743) (l_a3i5d :: TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745))
type ZipWithSym3 (t_a3i5a :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (t_a3i5b :: NonEmpty a6989586621679792743) (t_a3i5c :: NonEmpty b6989586621679792744) = ZipWith t_a3i5a t_a3i5b t_a3i5c
data UnzipSym0 (l_a3i4f :: TyFun (NonEmpty (a6989586621679792741, b6989586621679792742)) (NonEmpty a6989586621679792741, NonEmpty b6989586621679792742))
type UnzipSym1 (t_a3i4e :: NonEmpty (a6989586621679792741, b6989586621679792742)) = Unzip t_a3i4e
data FromListSym0 (l_a3icD :: TyFun [a6989586621679792787] (NonEmpty a6989586621679792787))
type FromListSym1 (t_a3icC :: [a6989586621679792787]) = FromList t_a3icC
data ToListSym0 (l_a3iaE :: TyFun (NonEmpty a6989586621679792786) [a6989586621679792786])
type ToListSym1 (t_a3iaD :: NonEmpty a6989586621679792786) = ToList t_a3iaD
data NonEmpty_Sym0 (l_a3ih0 :: TyFun [a6989586621679792798] (Maybe (NonEmpty a6989586621679792798)))
type NonEmpty_Sym1 (t_a3igZ :: [a6989586621679792798]) = NonEmpty_ t_a3igZ
data XorSym0 (l_a3ihB :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a3ihA :: NonEmpty Bool) = Xor t_a3ihA
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.Let6989586621679794370GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794370GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794370GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794370GoSym2
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.Let6989586621679795064Xor'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795064Xor'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795064Xor'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795064Xor'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795044Scrutinee_6989586621679792966Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795044Scrutinee_6989586621679792966Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795008Scrutinee_6989586621679792976Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679795008Scrutinee_6989586621679792976Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794975GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794975GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794975GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794990Scrutinee_6989586621679792980Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794990Scrutinee_6989586621679792980Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794990Scrutinee_6989586621679792980Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522X_6989586621679794523Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522X_6989586621679794523Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522X_6989586621679794523Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794522ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394X_6989586621679794395Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394X_6989586621679794395Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394X_6989586621679794395Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394X_6989586621679794395Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394X_6989586621679794395Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394YsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394YsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394YsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394YsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394YsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394ZsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394ZsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394ZsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394ZsSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794394ZsSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237X_6989586621679794238Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237X_6989586621679794238Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237X_6989586621679794238Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237AsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237AsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237AsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237BsSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237BsSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Let6989586621679794237BsSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679794201Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679794201Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679794201Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.List.NonEmpty.Lambda_6989586621679794201Sym3


-- | 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_a12PC :: TyFun a6989586621679067899 (TyFun [a6989586621679067899] (NonEmpty a6989586621679067899) -> Type))
data (:|@#@$$) (l_a12PA :: a6989586621679067899) (l_a12Pz :: TyFun [a6989586621679067899] (NonEmpty a6989586621679067899))
type (:|@#@$$$) (t_a12Px :: a6989586621679067899) (t_a12Py :: [a6989586621679067899]) = (:|) t_a12Px t_a12Py
data MapSym0 (l_a3iaw :: TyFun (TyFun a6989586621679792782 b6989586621679792783 -> Type) (TyFun (NonEmpty a6989586621679792782) (NonEmpty b6989586621679792783) -> Type))
data MapSym1 (l_a3iau :: TyFun a6989586621679792782 b6989586621679792783 -> Type) (l_a3iat :: TyFun (NonEmpty a6989586621679792782) (NonEmpty b6989586621679792783))
type MapSym2 (t_a3iar :: TyFun a6989586621679792782 b6989586621679792783 -> Type) (t_a3ias :: NonEmpty a6989586621679792782) = Map t_a3iar t_a3ias
data IntersperseSym0 (l_a3iah :: TyFun a6989586621679792772 (TyFun (NonEmpty a6989586621679792772) (NonEmpty a6989586621679792772) -> Type))
data IntersperseSym1 (l_a3iaf :: a6989586621679792772) (l_a3iae :: TyFun (NonEmpty a6989586621679792772) (NonEmpty a6989586621679792772))
type IntersperseSym2 (t_a3iac :: a6989586621679792772) (t_a3iad :: NonEmpty a6989586621679792772) = Intersperse t_a3iac t_a3iad
data ScanlSym0 (l_a3iei :: TyFun (TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (TyFun b6989586621679792777 (TyFun [a6989586621679792778] (NonEmpty b6989586621679792777) -> Type) -> Type))
data ScanlSym1 (l_a3ieg :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (l_a3ief :: TyFun b6989586621679792777 (TyFun [a6989586621679792778] (NonEmpty b6989586621679792777) -> Type))
data ScanlSym2 (l_a3iec :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (l_a3ied :: b6989586621679792777) (l_a3ieb :: TyFun [a6989586621679792778] (NonEmpty b6989586621679792777))
type ScanlSym3 (t_a3ie8 :: TyFun b6989586621679792777 (TyFun a6989586621679792778 b6989586621679792777 -> Type) -> Type) (t_a3ie9 :: b6989586621679792777) (t_a3iea :: [a6989586621679792778]) = Scanl t_a3ie8 t_a3ie9 t_a3iea
data ScanrSym0 (l_a3ieC :: TyFun (TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (TyFun b6989586621679792776 (TyFun [a6989586621679792775] (NonEmpty b6989586621679792776) -> Type) -> Type))
data ScanrSym1 (l_a3ieA :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (l_a3iez :: TyFun b6989586621679792776 (TyFun [a6989586621679792775] (NonEmpty b6989586621679792776) -> Type))
data ScanrSym2 (l_a3iew :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (l_a3iex :: b6989586621679792776) (l_a3iev :: TyFun [a6989586621679792775] (NonEmpty b6989586621679792776))
type ScanrSym3 (t_a3ies :: TyFun a6989586621679792775 (TyFun b6989586621679792776 b6989586621679792776 -> Type) -> Type) (t_a3iet :: b6989586621679792776) (t_a3ieu :: [a6989586621679792775]) = Scanr t_a3ies t_a3iet t_a3ieu
data Scanl1Sym0 (l_a3ieR :: TyFun (TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792774) (NonEmpty a6989586621679792774) -> Type))
data Scanl1Sym1 (l_a3ieP :: TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (l_a3ieO :: TyFun (NonEmpty a6989586621679792774) (NonEmpty a6989586621679792774))
type Scanl1Sym2 (t_a3ieM :: TyFun a6989586621679792774 (TyFun a6989586621679792774 a6989586621679792774 -> Type) -> Type) (t_a3ieN :: NonEmpty a6989586621679792774) = Scanl1 t_a3ieM t_a3ieN
data Scanr1Sym0 (l_a3if3 :: TyFun (TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792773) (NonEmpty a6989586621679792773) -> Type))
data Scanr1Sym1 (l_a3if1 :: TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (l_a3if0 :: TyFun (NonEmpty a6989586621679792773) (NonEmpty a6989586621679792773))
type Scanr1Sym2 (t_a3ieY :: TyFun a6989586621679792773 (TyFun a6989586621679792773 a6989586621679792773 -> Type) -> Type) (t_a3ieZ :: NonEmpty a6989586621679792773) = Scanr1 t_a3ieY t_a3ieZ
data TransposeSym0 (l_a3iin :: TyFun (NonEmpty (NonEmpty a6989586621679792738)) (NonEmpty (NonEmpty a6989586621679792738)))
type TransposeSym1 (t_a3iim :: NonEmpty (NonEmpty a6989586621679792738)) = Transpose t_a3iim
data SortBySym0 (l_a3id7 :: TyFun (TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (TyFun (NonEmpty a6989586621679792737) (NonEmpty a6989586621679792737) -> Type))
data SortBySym1 (l_a3id5 :: TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (l_a3id4 :: TyFun (NonEmpty a6989586621679792737) (NonEmpty a6989586621679792737))
type SortBySym2 (t_a3id2 :: TyFun a6989586621679792737 (TyFun a6989586621679792737 Ordering -> Type) -> Type) (t_a3id3 :: NonEmpty a6989586621679792737) = SortBy t_a3id2 t_a3id3
data SortWithSym0 (l_a3ido :: TyFun (TyFun a6989586621679792736 o6989586621679792735 -> Type) (TyFun (NonEmpty a6989586621679792736) (NonEmpty a6989586621679792736) -> Type))
data SortWithSym1 (l_a3idm :: TyFun a6989586621679792736 o6989586621679792735 -> Type) (l_a3idl :: TyFun (NonEmpty a6989586621679792736) (NonEmpty a6989586621679792736))
type SortWithSym2 (t_a3idj :: TyFun a6989586621679792736 o6989586621679792735 -> Type) (t_a3idk :: NonEmpty a6989586621679792736) = SortWith t_a3idj t_a3idk
data LengthSym0 (l_a3ii4 :: TyFun (NonEmpty a6989586621679792801) Nat)
type LengthSym1 (t_a3ii3 :: NonEmpty a6989586621679792801) = Length t_a3ii3
data HeadSym0 (l_a3ig0 :: TyFun (NonEmpty a6989586621679792794) a6989586621679792794)
type HeadSym1 (t_a3ifZ :: NonEmpty a6989586621679792794) = Head t_a3ifZ
data TailSym0 (l_a3ifV :: TyFun (NonEmpty a6989586621679792793) [a6989586621679792793])
type TailSym1 (t_a3ifU :: NonEmpty a6989586621679792793) = Tail t_a3ifU
data LastSym0 (l_a3ifP :: TyFun (NonEmpty a6989586621679792792) a6989586621679792792)
type LastSym1 (t_a3ifO :: NonEmpty a6989586621679792792) = Last t_a3ifO
data InitSym0 (l_a3ifJ :: TyFun (NonEmpty a6989586621679792791) [a6989586621679792791])
type InitSym1 (t_a3ifI :: NonEmpty a6989586621679792791) = Init t_a3ifI
data (<|@#@$) (l_a3ifm :: TyFun a6989586621679792790 (TyFun (NonEmpty a6989586621679792790) (NonEmpty a6989586621679792790) -> Type))
data (<|@#@$$) (l_a3ifk :: a6989586621679792790) (l_a3ifj :: TyFun (NonEmpty a6989586621679792790) (NonEmpty a6989586621679792790))
type (<|@#@$$$) (t_a3ifh :: a6989586621679792790) (t_a3ifi :: NonEmpty a6989586621679792790) = (<|) t_a3ifh t_a3ifi
data ConsSym0 (l_a3ifC :: TyFun a6989586621679792789 (TyFun (NonEmpty a6989586621679792789) (NonEmpty a6989586621679792789) -> Type))
data ConsSym1 (l_a3ifA :: a6989586621679792789) (l_a3ifz :: TyFun (NonEmpty a6989586621679792789) (NonEmpty a6989586621679792789))
type ConsSym2 (t_a3ifx :: a6989586621679792789) (t_a3ify :: NonEmpty a6989586621679792789) = Cons t_a3ifx t_a3ify
data UnconsSym0 (l_a3ih6 :: TyFun (NonEmpty a6989586621679792797) (a6989586621679792797, Maybe (NonEmpty a6989586621679792797)))
type UnconsSym1 (t_a3ih5 :: NonEmpty a6989586621679792797) = Uncons t_a3ih5
data UnfoldrSym0 (l_a3ig9 :: TyFun (TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (TyFun a6989586621679792795 (NonEmpty b6989586621679792796) -> Type))
data UnfoldrSym1 (l_a3ig7 :: TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (l_a3ig6 :: TyFun a6989586621679792795 (NonEmpty b6989586621679792796))
type UnfoldrSym2 (t_a3ig4 :: TyFun a6989586621679792795 (b6989586621679792796, Maybe a6989586621679792795) -> Type) (t_a3ig5 :: a6989586621679792795) = Unfoldr t_a3ig4 t_a3ig5
data SortSym0 (l_a3ifd :: TyFun (NonEmpty a6989586621679792788) (NonEmpty a6989586621679792788))
type SortSym1 (t_a3ifc :: NonEmpty a6989586621679792788) = Sort t_a3ifc
data ReverseSym0 (l_a3icY :: TyFun (NonEmpty a6989586621679792771) (NonEmpty a6989586621679792771))
type ReverseSym1 (t_a3icX :: NonEmpty a6989586621679792771) = Reverse t_a3icX
data InitsSym0 (l_a3idK :: TyFun [a6989586621679792781] (NonEmpty [a6989586621679792781]))
type InitsSym1 (t_a3idJ :: [a6989586621679792781]) = Inits t_a3idJ
data TailsSym0 (l_a3idR :: TyFun [a6989586621679792780] (NonEmpty [a6989586621679792780]))
type TailsSym1 (t_a3idQ :: [a6989586621679792780]) = Tails t_a3idQ
data UnfoldSym0 (l_a3ihg :: TyFun (TyFun a6989586621679792799 (b6989586621679792800, Maybe a6989586621679792799) -> Type) (TyFun a6989586621679792799 (NonEmpty b6989586621679792800) -> Type))
data UnfoldSym1 (l_a3ihe :: TyFun a6989586621679792799 (b6989586621679792800, Maybe a6989586621679792799) -> Type) (l_a3ihd :: TyFun a6989586621679792799 (NonEmpty b6989586621679792800))
data InsertSym0 (l_a3ie0 :: TyFun a6989586621679792779 (TyFun [a6989586621679792779] (NonEmpty a6989586621679792779) -> Type))
data InsertSym1 (l_a3idY :: a6989586621679792779) (l_a3idX :: TyFun [a6989586621679792779] (NonEmpty a6989586621679792779))
type InsertSym2 (t_a3idV :: a6989586621679792779) (t_a3idW :: [a6989586621679792779]) = Insert t_a3idV t_a3idW
data TakeSym0 (l_a3iaO :: TyFun Nat (TyFun (NonEmpty a6989586621679792770) [a6989586621679792770] -> Type))
data TakeSym1 (l_a3iaM :: Nat) (l_a3iaL :: TyFun (NonEmpty a6989586621679792770) [a6989586621679792770])
type TakeSym2 (t_a3iaJ :: Nat) (t_a3iaK :: NonEmpty a6989586621679792770) = Take t_a3iaJ t_a3iaK
data DropSym0 (l_a3ib1 :: TyFun Nat (TyFun (NonEmpty a6989586621679792769) [a6989586621679792769] -> Type))
data DropSym1 (l_a3iaZ :: Nat) (l_a3iaY :: TyFun (NonEmpty a6989586621679792769) [a6989586621679792769])
type DropSym2 (t_a3iaW :: Nat) (t_a3iaX :: NonEmpty a6989586621679792769) = Drop t_a3iaW t_a3iaX
data SplitAtSym0 (l_a3ibe :: TyFun Nat (TyFun (NonEmpty a6989586621679792768) ([a6989586621679792768], [a6989586621679792768]) -> Type))
data SplitAtSym1 (l_a3ibc :: Nat) (l_a3ibb :: TyFun (NonEmpty a6989586621679792768) ([a6989586621679792768], [a6989586621679792768]))
type SplitAtSym2 (t_a3ib9 :: Nat) (t_a3iba :: NonEmpty a6989586621679792768) = SplitAt t_a3ib9 t_a3iba
data TakeWhileSym0 (l_a3ibr :: TyFun (TyFun a6989586621679792767 Bool -> Type) (TyFun (NonEmpty a6989586621679792767) [a6989586621679792767] -> Type))
data TakeWhileSym1 (l_a3ibp :: TyFun a6989586621679792767 Bool -> Type) (l_a3ibo :: TyFun (NonEmpty a6989586621679792767) [a6989586621679792767])
type TakeWhileSym2 (t_a3ibm :: TyFun a6989586621679792767 Bool -> Type) (t_a3ibn :: NonEmpty a6989586621679792767) = TakeWhile t_a3ibm t_a3ibn
data DropWhileSym0 (l_a3ibE :: TyFun (TyFun a6989586621679792766 Bool -> Type) (TyFun (NonEmpty a6989586621679792766) [a6989586621679792766] -> Type))
data DropWhileSym1 (l_a3ibC :: TyFun a6989586621679792766 Bool -> Type) (l_a3ibB :: TyFun (NonEmpty a6989586621679792766) [a6989586621679792766])
type DropWhileSym2 (t_a3ibz :: TyFun a6989586621679792766 Bool -> Type) (t_a3ibA :: NonEmpty a6989586621679792766) = DropWhile t_a3ibz t_a3ibA
data SpanSym0 (l_a3ibR :: TyFun (TyFun a6989586621679792765 Bool -> Type) (TyFun (NonEmpty a6989586621679792765) ([a6989586621679792765], [a6989586621679792765]) -> Type))
data SpanSym1 (l_a3ibP :: TyFun a6989586621679792765 Bool -> Type) (l_a3ibO :: TyFun (NonEmpty a6989586621679792765) ([a6989586621679792765], [a6989586621679792765]))
type SpanSym2 (t_a3ibM :: TyFun a6989586621679792765 Bool -> Type) (t_a3ibN :: NonEmpty a6989586621679792765) = Span t_a3ibM t_a3ibN
data BreakSym0 (l_a3ic4 :: TyFun (TyFun a6989586621679792764 Bool -> Type) (TyFun (NonEmpty a6989586621679792764) ([a6989586621679792764], [a6989586621679792764]) -> Type))
data BreakSym1 (l_a3ic2 :: TyFun a6989586621679792764 Bool -> Type) (l_a3ic1 :: TyFun (NonEmpty a6989586621679792764) ([a6989586621679792764], [a6989586621679792764]))
type BreakSym2 (t_a3ibZ :: TyFun a6989586621679792764 Bool -> Type) (t_a3ic0 :: NonEmpty a6989586621679792764) = Break t_a3ibZ t_a3ic0
data FilterSym0 (l_a3ich :: TyFun (TyFun a6989586621679792763 Bool -> Type) (TyFun (NonEmpty a6989586621679792763) [a6989586621679792763] -> Type))
data FilterSym1 (l_a3icf :: TyFun a6989586621679792763 Bool -> Type) (l_a3ice :: TyFun (NonEmpty a6989586621679792763) [a6989586621679792763])
type FilterSym2 (t_a3icc :: TyFun a6989586621679792763 Bool -> Type) (t_a3icd :: NonEmpty a6989586621679792763) = Filter t_a3icc t_a3icd
data PartitionSym0 (l_a3icu :: TyFun (TyFun a6989586621679792762 Bool -> Type) (TyFun (NonEmpty a6989586621679792762) ([a6989586621679792762], [a6989586621679792762]) -> Type))
data PartitionSym1 (l_a3ics :: TyFun a6989586621679792762 Bool -> Type) (l_a3icr :: TyFun (NonEmpty a6989586621679792762) ([a6989586621679792762], [a6989586621679792762]))
type PartitionSym2 (t_a3icp :: TyFun a6989586621679792762 Bool -> Type) (t_a3icq :: NonEmpty a6989586621679792762) = Partition t_a3icp t_a3icq
data GroupSym0 (l_a3ia8 :: TyFun [a6989586621679792761] [NonEmpty a6989586621679792761])
type GroupSym1 (t_a3ia7 :: [a6989586621679792761]) = Group t_a3ia7
data GroupBySym0 (l_a3i6m :: TyFun (TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (TyFun [a6989586621679792760] [NonEmpty a6989586621679792760] -> Type))
data GroupBySym1 (l_a3i6k :: TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (l_a3i6j :: TyFun [a6989586621679792760] [NonEmpty a6989586621679792760])
type GroupBySym2 (t_a3i6h :: TyFun a6989586621679792760 (TyFun a6989586621679792760 Bool -> Type) -> Type) (t_a3i6i :: [a6989586621679792760]) = GroupBy t_a3i6h t_a3i6i
data GroupWithSym0 (l_a3i8p :: TyFun (TyFun a6989586621679792759 b6989586621679792758 -> Type) (TyFun [a6989586621679792759] [NonEmpty a6989586621679792759] -> Type))
data GroupWithSym1 (l_a3i8n :: TyFun a6989586621679792759 b6989586621679792758 -> Type) (l_a3i8m :: TyFun [a6989586621679792759] [NonEmpty a6989586621679792759])
type GroupWithSym2 (t_a3i8k :: TyFun a6989586621679792759 b6989586621679792758 -> Type) (t_a3i8l :: [a6989586621679792759]) = GroupWith t_a3i8k t_a3i8l
data GroupAllWithSym0 (l_a3i8C :: TyFun (TyFun a6989586621679792757 b6989586621679792756 -> Type) (TyFun [a6989586621679792757] [NonEmpty a6989586621679792757] -> Type))
data GroupAllWithSym1 (l_a3i8A :: TyFun a6989586621679792757 b6989586621679792756 -> Type) (l_a3i8z :: TyFun [a6989586621679792757] [NonEmpty a6989586621679792757])
type GroupAllWithSym2 (t_a3i8x :: TyFun a6989586621679792757 b6989586621679792756 -> Type) (t_a3i8y :: [a6989586621679792757]) = GroupAllWith t_a3i8x t_a3i8y
data Group1Sym0 (l_a3i9O :: TyFun (NonEmpty a6989586621679792755) (NonEmpty (NonEmpty a6989586621679792755)))
type Group1Sym1 (t_a3i9N :: NonEmpty a6989586621679792755) = Group1 t_a3i9N
data GroupBy1Sym0 (l_a3i8P :: TyFun (TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679792754) (NonEmpty (NonEmpty a6989586621679792754)) -> Type))
data GroupBy1Sym1 (l_a3i8N :: TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (l_a3i8M :: TyFun (NonEmpty a6989586621679792754) (NonEmpty (NonEmpty a6989586621679792754)))
type GroupBy1Sym2 (t_a3i8K :: TyFun a6989586621679792754 (TyFun a6989586621679792754 Bool -> Type) -> Type) (t_a3i8L :: NonEmpty a6989586621679792754) = GroupBy1 t_a3i8K t_a3i8L
data GroupWith1Sym0 (l_a3i9X :: TyFun (TyFun a6989586621679792753 b6989586621679792752 -> Type) (TyFun (NonEmpty a6989586621679792753) (NonEmpty (NonEmpty a6989586621679792753)) -> Type))
data GroupWith1Sym1 (l_a3i9V :: TyFun a6989586621679792753 b6989586621679792752 -> Type) (l_a3i9U :: TyFun (NonEmpty a6989586621679792753) (NonEmpty (NonEmpty a6989586621679792753)))
type GroupWith1Sym2 (t_a3i9S :: TyFun a6989586621679792753 b6989586621679792752 -> Type) (t_a3i9T :: NonEmpty a6989586621679792753) = GroupWith1 t_a3i9S t_a3i9T
data GroupAllWith1Sym0 (l_a3idz :: TyFun (TyFun a6989586621679792751 b6989586621679792750 -> Type) (TyFun (NonEmpty a6989586621679792751) (NonEmpty (NonEmpty a6989586621679792751)) -> Type))
data GroupAllWith1Sym1 (l_a3idx :: TyFun a6989586621679792751 b6989586621679792750 -> Type) (l_a3idw :: TyFun (NonEmpty a6989586621679792751) (NonEmpty (NonEmpty a6989586621679792751)))
type GroupAllWith1Sym2 (t_a3idu :: TyFun a6989586621679792751 b6989586621679792750 -> Type) (t_a3idv :: NonEmpty a6989586621679792751) = GroupAllWith1 t_a3idu t_a3idv
data IsPrefixOfSym0 (l_a3i69 :: TyFun [a6989586621679792749] (TyFun (NonEmpty a6989586621679792749) Bool -> Type))
data IsPrefixOfSym1 (l_a3i67 :: [a6989586621679792749]) (l_a3i66 :: TyFun (NonEmpty a6989586621679792749) Bool)
type IsPrefixOfSym2 (t_a3i64 :: [a6989586621679792749]) (t_a3i65 :: NonEmpty a6989586621679792749) = IsPrefixOf t_a3i64 t_a3i65
data NubSym0 (l_a3i4a :: TyFun (NonEmpty a6989586621679792740) (NonEmpty a6989586621679792740))
type NubSym1 (t_a3i49 :: NonEmpty a6989586621679792740) = Nub t_a3i49
data NubBySym0 (l_a3i3E :: TyFun (TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (TyFun (NonEmpty a6989586621679792739) (NonEmpty a6989586621679792739) -> Type))
data NubBySym1 (l_a3i3C :: TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (l_a3i3B :: TyFun (NonEmpty a6989586621679792739) (NonEmpty a6989586621679792739))
type NubBySym2 (t_a3i3z :: TyFun a6989586621679792739 (TyFun a6989586621679792739 Bool -> Type) -> Type) (t_a3i3A :: NonEmpty a6989586621679792739) = NubBy t_a3i3z t_a3i3A
data (!!@#@$) (l_a3i5M :: TyFun (NonEmpty a6989586621679792748) (TyFun Nat a6989586621679792748 -> Type))
data (!!@#@$$) (l_a3i5K :: NonEmpty a6989586621679792748) (l_a3i5J :: TyFun Nat a6989586621679792748)
type (!!@#@$$$) (t_a3i5H :: NonEmpty a6989586621679792748) (t_a3i5I :: Nat) = (!!) t_a3i5H t_a3i5I
data ZipSym0 (l_a3i5z :: TyFun (NonEmpty a6989586621679792746) (TyFun (NonEmpty b6989586621679792747) (NonEmpty (a6989586621679792746, b6989586621679792747)) -> Type))
data ZipSym1 (l_a3i5x :: NonEmpty a6989586621679792746) (l_a3i5w :: TyFun (NonEmpty b6989586621679792747) (NonEmpty (a6989586621679792746, b6989586621679792747)))
type ZipSym2 (t_a3i5u :: NonEmpty a6989586621679792746) (t_a3i5v :: NonEmpty b6989586621679792747) = Zip t_a3i5u t_a3i5v
data ZipWithSym0 (l_a3i5k :: TyFun (TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (TyFun (NonEmpty a6989586621679792743) (TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745) -> Type) -> Type))
data ZipWithSym1 (l_a3i5i :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (l_a3i5h :: TyFun (NonEmpty a6989586621679792743) (TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745) -> Type))
data ZipWithSym2 (l_a3i5e :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (l_a3i5f :: NonEmpty a6989586621679792743) (l_a3i5d :: TyFun (NonEmpty b6989586621679792744) (NonEmpty c6989586621679792745))
type ZipWithSym3 (t_a3i5a :: TyFun a6989586621679792743 (TyFun b6989586621679792744 c6989586621679792745 -> Type) -> Type) (t_a3i5b :: NonEmpty a6989586621679792743) (t_a3i5c :: NonEmpty b6989586621679792744) = ZipWith t_a3i5a t_a3i5b t_a3i5c
data UnzipSym0 (l_a3i4f :: TyFun (NonEmpty (a6989586621679792741, b6989586621679792742)) (NonEmpty a6989586621679792741, NonEmpty b6989586621679792742))
type UnzipSym1 (t_a3i4e :: NonEmpty (a6989586621679792741, b6989586621679792742)) = Unzip t_a3i4e
data FromListSym0 (l_a3icD :: TyFun [a6989586621679792787] (NonEmpty a6989586621679792787))
type FromListSym1 (t_a3icC :: [a6989586621679792787]) = FromList t_a3icC
data ToListSym0 (l_a3iaE :: TyFun (NonEmpty a6989586621679792786) [a6989586621679792786])
type ToListSym1 (t_a3iaD :: NonEmpty a6989586621679792786) = ToList t_a3iaD
data NonEmpty_Sym0 (l_a3ih0 :: TyFun [a6989586621679792798] (Maybe (NonEmpty a6989586621679792798)))
type NonEmpty_Sym1 (t_a3igZ :: [a6989586621679792798]) = NonEmpty_ t_a3igZ
data XorSym0 (l_a3ihB :: TyFun (NonEmpty Bool) Bool)
type XorSym1 (t_a3ihA :: NonEmpty Bool) = Xor t_a3ihA


-- | 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_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
type FlipSym3 (t_a1N1l :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (t_a1N1m :: b6989586621679436413) (t_a1N1n :: a6989586621679436412) = Flip t_a1N1l t_a1N1m t_a1N1n
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data (&@#@$) (l_a3fka :: TyFun a6989586621679783668 (TyFun (TyFun a6989586621679783668 b6989586621679783669 -> Type) b6989586621679783669 -> Type))
data (&@#@$$) (l_a3fk8 :: a6989586621679783668) (l_a3fk7 :: TyFun (TyFun a6989586621679783668 b6989586621679783669 -> Type) b6989586621679783669)
type (&@#@$$$) (t_a3fk5 :: a6989586621679783668) (t_a3fk6 :: TyFun a6989586621679783668 b6989586621679783669 -> Type) = (&) t_a3fk5 t_a3fk6
data OnSym0 (l_a3fkw :: TyFun (TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (TyFun (TyFun a6989586621679783672 b6989586621679783670 -> Type) (TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type) -> Type) -> Type))
data OnSym1 (l_a3fku :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkt :: TyFun (TyFun a6989586621679783672 b6989586621679783670 -> Type) (TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type) -> Type))
data OnSym2 (l_a3fkq :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkr :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (l_a3fkp :: TyFun a6989586621679783672 (TyFun a6989586621679783672 c6989586621679783671 -> Type))
data OnSym3 (l_a3fkl :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (l_a3fkm :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (l_a3fkn :: a6989586621679783672) (l_a3fkk :: TyFun a6989586621679783672 c6989586621679783671)
type OnSym4 (t_a3fkg :: TyFun b6989586621679783670 (TyFun b6989586621679783670 c6989586621679783671 -> Type) -> Type) (t_a3fkh :: TyFun a6989586621679783672 b6989586621679783670 -> Type) (t_a3fki :: a6989586621679783672) (t_a3fkj :: a6989586621679783672) = On t_a3fkg t_a3fkh t_a3fki t_a3fkj


-- | Defines the promoted and singleton version of Bounded, <a>PBounded</a>
--   and <a>SBounded</a>
module Data.Singletons.Prelude.Enum
class PBounded (a_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
class SBounded a_a3AD7
sMinBound :: SBounded a_a3AD7 => Sing (MinBoundSym0 :: a_a3AD7)
sMaxBound :: SBounded a_a3AD7 => Sing (MaxBoundSym0 :: a_a3AD7)
class PEnum (a_a3BFG :: Type) where {
    type family Succ (arg_a3BPa :: a_a3BFG) :: a_a3BFG;
    type family Pred (arg_a3BPe :: a_a3BFG) :: a_a3BFG;
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type family EnumFromTo (arg_a3BPq :: a_a3BFG) (arg_a3BPr :: a_a3BFG) :: [a_a3BFG];
    type family EnumFromThenTo (arg_a3BPz :: a_a3BFG) (arg_a3BPA :: a_a3BFG) (arg_a3BPB :: a_a3BFG) :: [a_a3BFG];
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
class SEnum a_a3BFG
sSucc :: forall (t_a3BTD :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTD -> Sing (Apply SuccSym0 t_a3BTD :: a_a3BFG)
sPred :: forall (t_a3BTE :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTE -> Sing (Apply PredSym0 t_a3BTE :: a_a3BFG)
sToEnum :: forall (t_a3BTF :: Nat). SEnum a_a3BFG => Sing t_a3BTF -> Sing (Apply ToEnumSym0 t_a3BTF :: a_a3BFG)
sFromEnum :: forall (t_a3BTG :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTG -> Sing (Apply FromEnumSym0 t_a3BTG :: Nat)
sEnumFromTo :: forall (t_a3BTH :: a_a3BFG) (t_a3BTI :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTH -> Sing t_a3BTI -> Sing (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG])
sEnumFromThenTo :: forall (t_a3BTJ :: a_a3BFG) (t_a3BTK :: a_a3BFG) (t_a3BTL :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTJ -> Sing t_a3BTK -> Sing t_a3BTL -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG])
sSucc :: forall (t_a3BTD :: a_a3BFG). (SEnum a_a3BFG, (Apply SuccSym0 t_a3BTD :: a_a3BFG) ~ Apply Succ_6989586621679870235Sym0 t_a3BTD) => Sing t_a3BTD -> Sing (Apply SuccSym0 t_a3BTD :: a_a3BFG)
sPred :: forall (t_a3BTE :: a_a3BFG). (SEnum a_a3BFG, (Apply PredSym0 t_a3BTE :: a_a3BFG) ~ Apply Pred_6989586621679870248Sym0 t_a3BTE) => Sing t_a3BTE -> Sing (Apply PredSym0 t_a3BTE :: a_a3BFG)
sEnumFromTo :: forall (t_a3BTH :: a_a3BFG) (t_a3BTI :: a_a3BFG). (SEnum a_a3BFG, (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG]) ~ Apply (Apply EnumFromTo_6989586621679870266Sym0 t_a3BTH) t_a3BTI) => Sing t_a3BTH -> Sing t_a3BTI -> Sing (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG])
sEnumFromThenTo :: forall (t_a3BTJ :: a_a3BFG) (t_a3BTK :: a_a3BFG) (t_a3BTL :: a_a3BFG). (SEnum a_a3BFG, (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG]) ~ Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 t_a3BTJ) t_a3BTK) t_a3BTL) => Sing t_a3BTJ -> Sing t_a3BTK -> Sing t_a3BTL -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG])
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3BPc :: TyFun a6989586621679869588 a6989586621679869588)
type SuccSym1 (t_a3BPb :: a6989586621679869588) = Succ t_a3BPb
data PredSym0 (l_a3BPg :: TyFun a6989586621679869588 a6989586621679869588)
type PredSym1 (t_a3BPf :: a6989586621679869588) = Pred t_a3BPf
data ToEnumSym0 (l_a3BPk :: TyFun Nat a6989586621679869588)
type ToEnumSym1 (t_a3BPj :: Nat) = ToEnum t_a3BPj
data FromEnumSym0 (l_a3BPo :: TyFun a6989586621679869588 Nat)
type FromEnumSym1 (t_a3BPn :: a6989586621679869588) = FromEnum t_a3BPn
data EnumFromToSym0 (l_a3BPx :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromToSym1 (l_a3BPv :: a6989586621679869588) (l_a3BPu :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromToSym2 (t_a3BPs :: a6989586621679869588) (t_a3BPt :: a6989586621679869588) = EnumFromTo t_a3BPs t_a3BPt
data EnumFromThenToSym0 (l_a3BPM :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BPK :: a6989586621679869588) (l_a3BPJ :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromThenToSym2 (l_a3BPG :: a6989586621679869588) (l_a3BPH :: a6989586621679869588) (l_a3BPF :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromThenToSym3 (t_a3BPC :: a6989586621679869588) (t_a3BPD :: a6989586621679869588) (t_a3BPE :: a6989586621679869588) = EnumFromThenTo t_a3BPC t_a3BPD t_a3BPE
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679888845Sym0
instance Data.Singletons.Prelude.Enum.PEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679888835Sym0
instance Data.Singletons.Prelude.Enum.SEnum ()
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679888820Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679888810Sym0
instance Data.Singletons.Prelude.Enum.SEnum GHC.Types.Ordering
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679888788Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Bool
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679888778Sym0
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_6989586621679870407Sym0
instance Data.Singletons.Prelude.Enum.PEnum GHC.Types.Nat
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679870407Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679870407Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679870371Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679870371Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.FromEnum_6989586621679870349Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.ToEnum_6989586621679870338Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679870327Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Succ_6989586621679870316Sym0
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_6989586621679870235Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Pred_6989586621679870248Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679870266Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromTo_6989586621679870266Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679870296Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679870296Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.EnumFromThenTo_6989586621679870296Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_6989586621679870223Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Lambda_6989586621679870223Sym1
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.Let6989586621679870115GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870115GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870115GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870115GoSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870115GoSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870143Scrutinee_6989586621679869625Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870143Scrutinee_6989586621679869625Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870143Scrutinee_6989586621679869625Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870143Scrutinee_6989586621679869625Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679870143Scrutinee_6989586621679869625Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Go_upSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869953DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869916Scrutinee_6989586621679869639Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Go_dnSym6
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771Y'Sym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869771DeltaSym5
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym3
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym4
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Enum.Let6989586621679869734Scrutinee_6989586621679869649Sym5
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_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
class PEnum (a_a3BFG :: Type) where {
    type family Succ (arg_a3BPa :: a_a3BFG) :: a_a3BFG;
    type family Pred (arg_a3BPe :: a_a3BFG) :: a_a3BFG;
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type family EnumFromTo (arg_a3BPq :: a_a3BFG) (arg_a3BPr :: a_a3BFG) :: [a_a3BFG];
    type family EnumFromThenTo (arg_a3BPz :: a_a3BFG) (arg_a3BPA :: a_a3BFG) (arg_a3BPB :: a_a3BFG) :: [a_a3BFG];
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data SuccSym0 (l_a3BPc :: TyFun a6989586621679869588 a6989586621679869588)
type SuccSym1 (t_a3BPb :: a6989586621679869588) = Succ t_a3BPb
data PredSym0 (l_a3BPg :: TyFun a6989586621679869588 a6989586621679869588)
type PredSym1 (t_a3BPf :: a6989586621679869588) = Pred t_a3BPf
data ToEnumSym0 (l_a3BPk :: TyFun Nat a6989586621679869588)
type ToEnumSym1 (t_a3BPj :: Nat) = ToEnum t_a3BPj
data FromEnumSym0 (l_a3BPo :: TyFun a6989586621679869588 Nat)
type FromEnumSym1 (t_a3BPn :: a6989586621679869588) = FromEnum t_a3BPn
data EnumFromToSym0 (l_a3BPx :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromToSym1 (l_a3BPv :: a6989586621679869588) (l_a3BPu :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromToSym2 (t_a3BPs :: a6989586621679869588) (t_a3BPt :: a6989586621679869588) = EnumFromTo t_a3BPs t_a3BPt
data EnumFromThenToSym0 (l_a3BPM :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BPK :: a6989586621679869588) (l_a3BPJ :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromThenToSym2 (l_a3BPG :: a6989586621679869588) (l_a3BPH :: a6989586621679869588) (l_a3BPF :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromThenToSym3 (t_a3BPC :: a6989586621679869588) (t_a3BPD :: a6989586621679869588) (t_a3BPE :: a6989586621679869588) = EnumFromThenTo t_a3BPC t_a3BPD t_a3BPE


-- | 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_a1dXJ -> a_a1dXJ -> Bool -> a_a1dXJ

-- | 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_a1eck :: TyFun Bool Bool)
type NotSym1 (t_a1ecj :: Bool) = Not t_a1ecj
data (&&@#@$) (l_a1e6e :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1e6c :: Bool) (l_a1e6b :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1e69 :: Bool) (t_a1e6a :: Bool) = (&&) t_a1e69 t_a1e6a
data (||@#@$) (l_a1e9q :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e9o :: Bool) (l_a1e9n :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e9l :: Bool) (t_a1e9m :: Bool) = (||) t_a1e9l t_a1e9m
data Bool_Sym0 (l_a1dXZ :: TyFun a6989586621679301795 (TyFun a6989586621679301795 (TyFun Bool a6989586621679301795 -> Type) -> Type))
data Bool_Sym1 (l_a1dXX :: a6989586621679301795) (l_a1dXW :: TyFun a6989586621679301795 (TyFun Bool a6989586621679301795 -> Type))
data Bool_Sym2 (l_a1dXT :: a6989586621679301795) (l_a1dXU :: a6989586621679301795) (l_a1dXS :: TyFun Bool a6989586621679301795)
type Bool_Sym3 (t_a1dXP :: a6989586621679301795) (t_a1dXQ :: a6989586621679301795) (t_a1dXR :: Bool) = Bool_ t_a1dXP t_a1dXQ t_a1dXR
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_a3RVZ :: TyFun Type Type)
type DemoteSym1 (t_a3RVY :: Type) = Demote t_a3RVY
data SameKindSym0 l_a3RW6
data SameKindSym1 (l_a3RW4 :: k6989586621679027079) l_a3RW3
type SameKindSym2 (t_a3RW1 :: k6989586621679027079) (t_a3RW2 :: k6989586621679027079) = SameKind t_a3RW1 t_a3RW2
data KindOfSym0 l_a3RW9
type KindOfSym1 (t_a3RW8 :: k6989586621679027082) = KindOf t_a3RW8
data (~>@#@$) l_a3RWg
data (~>@#@$$) (l_a3RWe :: Type) l_a3RWd
type (~>@#@$$$) (t_a3RWb :: Type) (t_a3RWc :: Type) = (~>) t_a3RWb t_a3RWc
data ApplySym0 (l_a3RWn :: TyFun ((~>) k16989586621679025218 k26989586621679025219) (TyFun k16989586621679025218 k26989586621679025219 -> Type))
data ApplySym1 (l_a3RWl :: (~>) k16989586621679025218 k26989586621679025219) (l_a3RWk :: TyFun k16989586621679025218 k26989586621679025219)
type ApplySym2 (t_a3RWi :: (~>) k16989586621679025218 k26989586621679025219) (t_a3RWj :: k16989586621679025218) = Apply t_a3RWi t_a3RWj
data (@@@#@$) l_a3RWu
data (@@@#@$$) (l_a3RWs :: (~>) k16989586621679031313 k6989586621679031312) l_a3RWr
type (@@@#@$$$) (t_a3RWp :: (~>) k16989586621679031313 k6989586621679031312) (t_a3RWq :: k16989586621679031313) = (@@) t_a3RWp t_a3RWq
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_a1hAK => POrd (a_a1hAK :: Type) where {
    type family Compare (arg_a1i0y :: a_a1hAK) (arg_a1i0z :: a_a1hAK) :: Ordering;
    type family (<) (arg_a1i0H :: a_a1hAK) (arg_a1i0I :: a_a1hAK) :: Bool;
    type family (<=) (arg_a1i0Q :: a_a1hAK) (arg_a1i0R :: a_a1hAK) :: Bool;
    type family (>) (arg_a1i0Z :: a_a1hAK) (arg_a1i10 :: a_a1hAK) :: Bool;
    type family (>=) (arg_a1i18 :: a_a1hAK) (arg_a1i19 :: a_a1hAK) :: Bool;
    type family Max (arg_a1i1h :: a_a1hAK) (arg_a1i1i :: a_a1hAK) :: a_a1hAK;
    type family Min (arg_a1i1q :: a_a1hAK) (arg_a1i1r :: a_a1hAK) :: a_a1hAK;
    type Compare a_a1i26 a_a1i27 =
        Apply (Apply Compare_6989586621679317444Sym0 a_a1i26) a_a1i27;
    type (<) a_a1i2D a_a1i2E =
        Apply (Apply TFHelper_6989586621679317477Sym0 a_a1i2D) a_a1i2E;
    type (<=) a_a1i3a a_a1i3b =
        Apply (Apply TFHelper_6989586621679317510Sym0 a_a1i3a) a_a1i3b;
    type (>) a_a1i3H a_a1i3I =
        Apply (Apply TFHelper_6989586621679317543Sym0 a_a1i3H) a_a1i3I;
    type (>=) a_a1i4e a_a1i4f =
        Apply (Apply TFHelper_6989586621679317576Sym0 a_a1i4e) a_a1i4f;
    type Max a_a1i4L a_a1i4M =
        Apply (Apply Max_6989586621679317609Sym0 a_a1i4L) a_a1i4M;
    type Min a_a1i5i a_a1i5j =
        Apply (Apply Min_6989586621679317642Sym0 a_a1i5i) a_a1i5j;
}
class SEq a_a1hAK => SOrd a_a1hAK
sCompare :: forall (t_a1i5z :: a_a1hAK) (t_a1i5A :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5z -> Sing t_a1i5A -> Sing (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering)
(%<) :: forall (t_a1i5B :: a_a1hAK) (t_a1i5C :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5B -> Sing t_a1i5C -> Sing (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool)
(%<=) :: forall (t_a1i5D :: a_a1hAK) (t_a1i5E :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5D -> Sing t_a1i5E -> Sing (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool)
(%>) :: forall (t_a1i5F :: a_a1hAK) (t_a1i5G :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5F -> Sing t_a1i5G -> Sing (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool)
(%>=) :: forall (t_a1i5H :: a_a1hAK) (t_a1i5I :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5H -> Sing t_a1i5I -> Sing (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool)
sMax :: forall (t_a1i5J :: a_a1hAK) (t_a1i5K :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5J -> Sing t_a1i5K -> Sing (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK)
sMin :: forall (t_a1i5L :: a_a1hAK) (t_a1i5M :: a_a1hAK). SOrd a_a1hAK => Sing t_a1i5L -> Sing t_a1i5M -> Sing (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK)
sCompare :: forall (t_a1i5z :: a_a1hAK) (t_a1i5A :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering) ~ Apply (Apply Compare_6989586621679317444Sym0 t_a1i5z) t_a1i5A) => Sing t_a1i5z -> Sing t_a1i5A -> Sing (Apply (Apply CompareSym0 t_a1i5z) t_a1i5A :: Ordering)
(%<) :: forall (t_a1i5B :: a_a1hAK) (t_a1i5C :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool) ~ Apply (Apply TFHelper_6989586621679317477Sym0 t_a1i5B) t_a1i5C) => Sing t_a1i5B -> Sing t_a1i5C -> Sing (Apply (Apply (<@#@$) t_a1i5B) t_a1i5C :: Bool)
(%<=) :: forall (t_a1i5D :: a_a1hAK) (t_a1i5E :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool) ~ Apply (Apply TFHelper_6989586621679317510Sym0 t_a1i5D) t_a1i5E) => Sing t_a1i5D -> Sing t_a1i5E -> Sing (Apply (Apply (<=@#@$) t_a1i5D) t_a1i5E :: Bool)
(%>) :: forall (t_a1i5F :: a_a1hAK) (t_a1i5G :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool) ~ Apply (Apply TFHelper_6989586621679317543Sym0 t_a1i5F) t_a1i5G) => Sing t_a1i5F -> Sing t_a1i5G -> Sing (Apply (Apply (>@#@$) t_a1i5F) t_a1i5G :: Bool)
(%>=) :: forall (t_a1i5H :: a_a1hAK) (t_a1i5I :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool) ~ Apply (Apply TFHelper_6989586621679317576Sym0 t_a1i5H) t_a1i5I) => Sing t_a1i5H -> Sing t_a1i5I -> Sing (Apply (Apply (>=@#@$) t_a1i5H) t_a1i5I :: Bool)
sMax :: forall (t_a1i5J :: a_a1hAK) (t_a1i5K :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK) ~ Apply (Apply Max_6989586621679317609Sym0 t_a1i5J) t_a1i5K) => Sing t_a1i5J -> Sing t_a1i5K -> Sing (Apply (Apply MaxSym0 t_a1i5J) t_a1i5K :: a_a1hAK)
sMin :: forall (t_a1i5L :: a_a1hAK) (t_a1i5M :: a_a1hAK). (SOrd a_a1hAK, (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK) ~ Apply (Apply Min_6989586621679317642Sym0 t_a1i5L) t_a1i5M) => Sing t_a1i5L -> Sing t_a1i5M -> Sing (Apply (Apply MinSym0 t_a1i5L) t_a1i5M :: a_a1hAK)
sThenCmp :: forall (t_a1jOl :: Ordering) (t_a1jOm :: Ordering). Sing t_a1jOl -> Sing t_a1jOm -> Sing (Apply (Apply ThenCmpSym0 t_a1jOl) t_a1jOm :: Ordering)
sFoldl :: forall (t_a15O9 :: TyFun b_a15MN (TyFun a_a15MM b_a15MN -> Type) -> Type) (t_a15Oa :: b_a15MN) (t_a15Ob :: [a_a15MM]). Sing t_a15O9 -> Sing t_a15Oa -> Sing t_a15Ob -> Sing (Apply (Apply (Apply FoldlSym0 t_a15O9) t_a15Oa) t_a15Ob :: b_a15MN)

-- | 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_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
class SBounded a_a3AD7
sMinBound :: SBounded a_a3AD7 => Sing (MinBoundSym0 :: a_a3AD7)
sMaxBound :: SBounded a_a3AD7 => Sing (MaxBoundSym0 :: a_a3AD7)
class PEnum (a_a3BFG :: Type) where {
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
class SEnum a_a3BFG
sToEnum :: forall (t_a3BTF :: Nat). SEnum a_a3BFG => Sing t_a3BTF -> Sing (Apply ToEnumSym0 t_a3BTF :: a_a3BFG)
sFromEnum :: forall (t_a3BTG :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTG -> Sing (Apply FromEnumSym0 t_a3BTG :: Nat)
class PShow (a_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}
class SShow a_a2S7Q
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). SShow a_a2S7Q => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). SShow a_a2S7Q => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). SShow a_a2S7Q => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol)
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). (SShow a_a2S7Q, (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 t_a2SLs) t_a2SLt) t_a2SLu) => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). (SShow a_a2S7Q, (Apply Show_Sym0 t_a2SLv :: Symbol) ~ Apply Show__6989586621679696602Sym0 t_a2SLv) => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). (SShow a_a2S7Q, (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol) ~ Apply (Apply ShowList_6989586621679696620Sym0 t_a2SLw) t_a2SLx) => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol)
sShowString :: forall (t_a2SKT :: Symbol) (t_a2SKU :: Symbol). Sing t_a2SKT -> Sing t_a2SKU -> Sing (Apply (Apply ShowStringSym0 t_a2SKT) t_a2SKU :: Symbol)
sShowParen :: forall (t_a2SKY :: Bool) (t_a2SKZ :: TyFun Symbol Symbol -> Type) (t_a2SL0 :: Symbol). Sing t_a2SKY -> Sing t_a2SKZ -> Sing t_a2SL0 -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SKY) t_a2SKZ) t_a2SL0 :: Symbol)
sShowSpace :: forall (t_a2SKS :: Symbol). Sing t_a2SKS -> Sing (Apply ShowSpaceSym0 t_a2SKS :: Symbol)
sShowChar :: forall (t_a2SKW :: Symbol) (t_a2SKX :: Symbol). Sing t_a2SKW -> Sing t_a2SKX -> Sing (Apply (Apply ShowCharSym0 t_a2SKW) t_a2SKX :: Symbol)
sShowCommaSpace :: forall (t_a2SKV :: Symbol). Sing t_a2SKV -> Sing (Apply ShowCommaSpaceSym0 t_a2SKV :: Symbol)
(%.) :: forall (t_a1N41 :: TyFun b_a1MZ1 c_a1MZ2 -> Type) (t_a1N42 :: TyFun a_a1MZ3 b_a1MZ1 -> Type) (t_a1N43 :: a_a1MZ3). Sing t_a1N41 -> Sing t_a1N42 -> Sing t_a1N43 -> Sing (Apply (Apply (Apply (.@#@$) t_a1N41) t_a1N42) t_a1N43 :: c_a1MZ2)
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_a1Cb7 :: TyFun k06989586621679393946 k6989586621679393947)
type ErrorSym1 (t_a1Cb6 :: k06989586621679393946) = Error t_a1Cb6

-- | 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_a1eEc :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (==@#@$$) (l_a1eEa :: a6989586621679304361) (l_a1eE9 :: TyFun a6989586621679304361 Bool)
type (==@#@$$$) (t_a1eE7 :: a6989586621679304361) (t_a1eE8 :: a6989586621679304361) = (==) t_a1eE7 t_a1eE8
data (>@#@$) (l_a1i16 :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>@#@$$) (l_a1i14 :: a6989586621679315746) (l_a1i13 :: TyFun a6989586621679315746 Bool)
type (>@#@$$$) (t_a1i11 :: a6989586621679315746) (t_a1i12 :: a6989586621679315746) = (>) t_a1i11 t_a1i12
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data CompareSym0 (l_a1i0F :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Ordering -> Type))
data CompareSym1 (l_a1i0D :: a6989586621679315746) (l_a1i0C :: TyFun a6989586621679315746 Ordering)
type CompareSym2 (t_a1i0A :: a6989586621679315746) (t_a1i0B :: a6989586621679315746) = Compare t_a1i0A t_a1i0B
data ThenCmpSym0 (l_a1jOg :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jOe :: Ordering) (l_a1jOd :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jOb :: Ordering) (t_a1jOc :: Ordering) = ThenCmp t_a1jOb t_a1jOc
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data ShowsPrecSym0 (l_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2SBG :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2SBF :: Symbol) = ShowSpace t_a2SBF
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowCommaSpaceSym0 (l_a2SCd :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2SCc :: Symbol) = ShowCommaSpace t_a2SCc
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data (:@#@$) (l_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ

-- | 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_aj5Q b_aj5R -> Type)
either_ :: (a_a3Ua1 -> c_a3Ua2) -> (b_a3Ua3 -> c_a3Ua2) -> Either a_a3Ua1 b_a3Ua3 -> c_a3Ua2
sEither_ :: forall (t_a3UaU :: TyFun a_a3Ua1 c_a3Ua2 -> Type) (t_a3UaV :: TyFun b_a3Ua3 c_a3Ua2 -> Type) (t_a3UaW :: Either a_a3Ua1 b_a3Ua3). Sing t_a3UaU -> Sing t_a3UaV -> Sing t_a3UaW -> Sing (Apply (Apply (Apply Either_Sym0 t_a3UaU) t_a3UaV) t_a3UaW :: c_a3Ua2)
sLefts :: forall (t_a3Uze :: [Either a_a3Usl b_a3Usm]). Sing t_a3Uze -> Sing (Apply LeftsSym0 t_a3Uze :: [a_a3Usl])
sRights :: forall (t_a3Uzd :: [Either a_a3Usj b_a3Usk]). Sing t_a3Uzd -> Sing (Apply RightsSym0 t_a3Uzd :: [b_a3Usk])
sPartitionEithers :: forall (t_a3Uzc :: [Either a_a3Ush b_a3Usi]). Sing t_a3Uzc -> Sing (Apply PartitionEithersSym0 t_a3Uzc :: ([a_a3Ush], [b_a3Usi]))
sIsLeft :: forall (t_a3Uzb :: Either a_a3Usf b_a3Usg). Sing t_a3Uzb -> Sing (Apply IsLeftSym0 t_a3Uzb :: Bool)
sIsRight :: forall (t_a3Uza :: Either a_a3Usd b_a3Use). Sing t_a3Uza -> Sing (Apply IsRightSym0 t_a3Uza :: Bool)
data LeftSym0 (l_a12Pc :: TyFun a6989586621679083190 (Either a6989586621679083190 b6989586621679083191))
type LeftSym1 (t_a12Pb :: a6989586621679083190) = Left t_a12Pb
data RightSym0 (l_a12Pf :: TyFun b6989586621679083191 (Either a6989586621679083190 b6989586621679083191))
type RightSym1 (t_a12Pe :: b6989586621679083191) = Right t_a12Pe
data Either_Sym0 (l_a3UaL :: TyFun (TyFun a6989586621679940661 c6989586621679940662 -> Type) (TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type) -> Type))
data Either_Sym1 (l_a3UaJ :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaI :: TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type))
data Either_Sym2 (l_a3UaF :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaG :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (l_a3UaE :: TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662)
type Either_Sym3 (t_a3UaB :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (t_a3UaC :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (t_a3UaD :: Either a6989586621679940661 b6989586621679940663) = Either_ t_a3UaB t_a3UaC t_a3UaD
data LeftsSym0 (l_a3Uz4 :: TyFun [Either a6989586621679941797 b6989586621679941798] [a6989586621679941797])
type LeftsSym1 (t_a3Uz3 :: [Either a6989586621679941797 b6989586621679941798]) = Lefts t_a3Uz3
data RightsSym0 (l_a3UyX :: TyFun [Either a6989586621679941795 b6989586621679941796] [b6989586621679941796])
type RightsSym1 (t_a3UyW :: [Either a6989586621679941795 b6989586621679941796]) = Rights t_a3UyW
data IsLeftSym0 (l_a3Uyd :: TyFun (Either a6989586621679941791 b6989586621679941792) Bool)
type IsLeftSym1 (t_a3Uyc :: Either a6989586621679941791 b6989586621679941792) = IsLeft t_a3Uyc
data IsRightSym0 (l_a3Uy9 :: TyFun (Either a6989586621679941789 b6989586621679941790) Bool)
type IsRightSym1 (t_a3Uy8 :: Either a6989586621679941789 b6989586621679941790) = IsRight t_a3Uy8
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.Let6989586621679942171LeftSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679942171LeftSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679942171LeftSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679942171RightSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679942171RightSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Singletons.Prelude.Either.Let6989586621679942171RightSym2
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_a3Ua1 -> c_a3Ua2) -> (b_a3Ua3 -> c_a3Ua2) -> Either a_a3Ua1 b_a3Ua3 -> c_a3Ua2
data LeftSym0 (l_a12Pc :: TyFun a6989586621679083190 (Either a6989586621679083190 b6989586621679083191))
type LeftSym1 (t_a12Pb :: a6989586621679083190) = Left t_a12Pb
data RightSym0 (l_a12Pf :: TyFun b6989586621679083191 (Either a6989586621679083190 b6989586621679083191))
type RightSym1 (t_a12Pe :: b6989586621679083191) = Right t_a12Pe
data Either_Sym0 (l_a3UaL :: TyFun (TyFun a6989586621679940661 c6989586621679940662 -> Type) (TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type) -> Type))
data Either_Sym1 (l_a3UaJ :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaI :: TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type))
data Either_Sym2 (l_a3UaF :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaG :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (l_a3UaE :: TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662)
type Either_Sym3 (t_a3UaB :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (t_a3UaC :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (t_a3UaD :: Either a6989586621679940661 b6989586621679940663) = Either_ t_a3UaB t_a3UaC t_a3UaD
data LeftsSym0 (l_a3Uz4 :: TyFun [Either a6989586621679941797 b6989586621679941798] [a6989586621679941797])
type LeftsSym1 (t_a3Uz3 :: [Either a6989586621679941797 b6989586621679941798]) = Lefts t_a3Uz3
data RightsSym0 (l_a3UyX :: TyFun [Either a6989586621679941795 b6989586621679941796] [b6989586621679941796])
type RightsSym1 (t_a3UyW :: [Either a6989586621679941795 b6989586621679941796]) = Rights t_a3UyW
data IsLeftSym0 (l_a3Uyd :: TyFun (Either a6989586621679941791 b6989586621679941792) Bool)
type IsLeftSym1 (t_a3Uyc :: Either a6989586621679941791 b6989586621679941792) = IsLeft t_a3Uyc
data IsRightSym0 (l_a3Uy9 :: TyFun (Either a6989586621679941789 b6989586621679941790) Bool)
type IsRightSym1 (t_a3Uy8 :: Either a6989586621679941789 b6989586621679941790) = IsRight t_a3Uy8


-- | 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_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ
type (++@#@$$$) (t_a1N2N :: [a6989586621679436421]) (t_a1N2O :: [a6989586621679436421]) = (++) t_a1N2N t_a1N2O
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data HeadSym0 (l_a1W6h :: TyFun [a6989586621679459312] a6989586621679459312)
type HeadSym1 (t_a1W6g :: [a6989586621679459312]) = Head t_a1W6g
data LastSym0 (l_a1W6a :: TyFun [a6989586621679459311] a6989586621679459311)
type LastSym1 (t_a1W69 :: [a6989586621679459311]) = Last t_a1W69
data TailSym0 (l_a1W65 :: TyFun [a6989586621679459310] [a6989586621679459310])
type TailSym1 (t_a1W64 :: [a6989586621679459310]) = Tail t_a1W64
data InitSym0 (l_a1W5B :: TyFun [a6989586621679459309] [a6989586621679459309])
type InitSym1 (t_a1W5A :: [a6989586621679459309]) = Init t_a1W5A
data NullSym0 (l_a1W4A :: TyFun [a6989586621679459308] Bool)
type NullSym1 (t_a1W4z :: [a6989586621679459308]) = Null t_a1W4z
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data ReverseSym0 (l_a1W41 :: TyFun [a6989586621679459307] [a6989586621679459307])
type ReverseSym1 (t_a1W40 :: [a6989586621679459307]) = Reverse t_a1W40
data IntersperseSym0 (l_a1W3I :: TyFun a6989586621679459306 (TyFun [a6989586621679459306] [a6989586621679459306] -> Type))
data IntersperseSym1 (l_a1W3G :: a6989586621679459306) (l_a1W3F :: TyFun [a6989586621679459306] [a6989586621679459306])
type IntersperseSym2 (t_a1W3D :: a6989586621679459306) (t_a1W3E :: [a6989586621679459306]) = Intersperse t_a1W3D t_a1W3E
data IntercalateSym0 (l_a1W3U :: TyFun [a6989586621679459305] (TyFun [[a6989586621679459305]] [a6989586621679459305] -> Type))
data IntercalateSym1 (l_a1W3S :: [a6989586621679459305]) (l_a1W3R :: TyFun [[a6989586621679459305]] [a6989586621679459305])
type IntercalateSym2 (t_a1W3P :: [a6989586621679459305]) (t_a1W3Q :: [[a6989586621679459305]]) = Intercalate t_a1W3P t_a1W3Q
data SubsequencesSym0 (l_a1W3z :: TyFun [a6989586621679459304] [[a6989586621679459304]])
type SubsequencesSym1 (t_a1W3y :: [a6989586621679459304]) = Subsequences t_a1W3y
data PermutationsSym0 (l_a1VX9 :: TyFun [a6989586621679459301] [[a6989586621679459301]])
type PermutationsSym1 (t_a1VX8 :: [a6989586621679459301]) = Permutations t_a1VX8
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
data Foldl'Sym0 (l_a1VVK :: TyFun (TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (TyFun b6989586621679459300 (TyFun [a6989586621679459299] b6989586621679459300 -> Type) -> Type))
data Foldl'Sym1 (l_a1VVI :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (l_a1VVH :: TyFun b6989586621679459300 (TyFun [a6989586621679459299] b6989586621679459300 -> Type))
data Foldl'Sym2 (l_a1VVE :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (l_a1VVF :: b6989586621679459300) (l_a1VVD :: TyFun [a6989586621679459299] b6989586621679459300)
type Foldl'Sym3 (t_a1VVA :: TyFun b6989586621679459300 (TyFun a6989586621679459299 b6989586621679459300 -> Type) -> Type) (t_a1VVB :: b6989586621679459300) (t_a1VVC :: [a6989586621679459299]) = Foldl' t_a1VVA t_a1VVB t_a1VVC
data Foldl1Sym0 (l_a1VSj :: TyFun (TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (TyFun [a6989586621679459298] a6989586621679459298 -> Type))
data Foldl1Sym1 (l_a1VSh :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (l_a1VSg :: TyFun [a6989586621679459298] a6989586621679459298)
type Foldl1Sym2 (t_a1VSe :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (t_a1VSf :: [a6989586621679459298]) = Foldl1 t_a1VSe t_a1VSf
data Foldl1'Sym0 (l_a1VX1 :: TyFun (TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (TyFun [a6989586621679459297] a6989586621679459297 -> Type))
data Foldl1'Sym1 (l_a1VWZ :: TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (l_a1VWY :: TyFun [a6989586621679459297] a6989586621679459297)
type Foldl1'Sym2 (t_a1VWW :: TyFun a6989586621679459297 (TyFun a6989586621679459297 a6989586621679459297 -> Type) -> Type) (t_a1VWX :: [a6989586621679459297]) = Foldl1' t_a1VWW t_a1VWX
data FoldrSym0 (l_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data Foldr1Sym0 (l_a1VRM :: TyFun (TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (TyFun [a6989586621679459296] a6989586621679459296 -> Type))
data Foldr1Sym1 (l_a1VRK :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (l_a1VRJ :: TyFun [a6989586621679459296] a6989586621679459296)
type Foldr1Sym2 (t_a1VRH :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (t_a1VRI :: [a6989586621679459296]) = Foldr1 t_a1VRH t_a1VRI
data ConcatSym0 (l_a1VRD :: TyFun [[a6989586621679459295]] [a6989586621679459295])
type ConcatSym1 (t_a1VRC :: [[a6989586621679459295]]) = Concat t_a1VRC
data ConcatMapSym0 (l_a1VRs :: TyFun (TyFun a6989586621679459293 [b6989586621679459294] -> Type) (TyFun [a6989586621679459293] [b6989586621679459294] -> Type))
data ConcatMapSym1 (l_a1VRq :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (l_a1VRp :: TyFun [a6989586621679459293] [b6989586621679459294])
type ConcatMapSym2 (t_a1VRn :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (t_a1VRo :: [a6989586621679459293]) = ConcatMap t_a1VRn t_a1VRo
data AndSym0 (l_a1VRi :: TyFun [Bool] Bool)
type AndSym1 (t_a1VRh :: [Bool]) = And t_a1VRh
data OrSym0 (l_a1VRc :: TyFun [Bool] Bool)
type OrSym1 (t_a1VRb :: [Bool]) = Or t_a1VRb
data AnySym0 (l_a1VOI :: TyFun (TyFun a6989586621679459291 Bool -> Type) (TyFun [a6989586621679459291] Bool -> Type))
data AnySym1 (l_a1VOG :: TyFun a6989586621679459291 Bool -> Type) (l_a1VOF :: TyFun [a6989586621679459291] Bool)
type AnySym2 (t_a1VOD :: TyFun a6989586621679459291 Bool -> Type) (t_a1VOE :: [a6989586621679459291]) = Any t_a1VOD t_a1VOE
data AllSym0 (l_a1VR4 :: TyFun (TyFun a6989586621679459292 Bool -> Type) (TyFun [a6989586621679459292] Bool -> Type))
data AllSym1 (l_a1VR2 :: TyFun a6989586621679459292 Bool -> Type) (l_a1VR1 :: TyFun [a6989586621679459292] Bool)
type AllSym2 (t_a1VQZ :: TyFun a6989586621679459292 Bool -> Type) (t_a1VR0 :: [a6989586621679459292]) = All t_a1VQZ t_a1VR0
data ScanlSym0 (l_a1VOe :: TyFun (TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type) -> Type))
data ScanlSym1 (l_a1VOc :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VOb :: TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type))
data ScanlSym2 (l_a1VO8 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VO9 :: b6989586621679459289) (l_a1VO7 :: TyFun [a6989586621679459290] [b6989586621679459289])
type ScanlSym3 (t_a1VO4 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (t_a1VO5 :: b6989586621679459289) (t_a1VO6 :: [a6989586621679459290]) = Scanl t_a1VO4 t_a1VO5 t_a1VO6
data Scanl1Sym0 (l_a1VOw :: TyFun (TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (TyFun [a6989586621679459288] [a6989586621679459288] -> Type))
data Scanl1Sym1 (l_a1VOu :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (l_a1VOt :: TyFun [a6989586621679459288] [a6989586621679459288])
type Scanl1Sym2 (t_a1VOr :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (t_a1VOs :: [a6989586621679459288]) = Scanl1 t_a1VOr t_a1VOs
data ScanrSym0 (l_a1VNw :: TyFun (TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type) -> Type))
data ScanrSym1 (l_a1VNu :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNt :: TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type))
data ScanrSym2 (l_a1VNq :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNr :: b6989586621679459287) (l_a1VNp :: TyFun [a6989586621679459286] [b6989586621679459287])
type ScanrSym3 (t_a1VNm :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (t_a1VNn :: b6989586621679459287) (t_a1VNo :: [a6989586621679459286]) = Scanr t_a1VNm t_a1VNn t_a1VNo
data Scanr1Sym0 (l_a1VMw :: TyFun (TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (TyFun [a6989586621679459285] [a6989586621679459285] -> Type))
data Scanr1Sym1 (l_a1VMu :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (l_a1VMt :: TyFun [a6989586621679459285] [a6989586621679459285])
type Scanr1Sym2 (t_a1VMr :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (t_a1VMs :: [a6989586621679459285]) = Scanr1 t_a1VMr t_a1VMs
data MapAccumLSym0 (l_a1VK4 :: TyFun (TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (TyFun acc6989586621679459282 (TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]) -> Type) -> Type))
data MapAccumLSym1 (l_a1VK2 :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (l_a1VK1 :: TyFun acc6989586621679459282 (TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]) -> Type))
data MapAccumLSym2 (l_a1VJY :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (l_a1VJZ :: acc6989586621679459282) (l_a1VJX :: TyFun [x6989586621679459283] (acc6989586621679459282, [y6989586621679459284]))
type MapAccumLSym3 (t_a1VJU :: TyFun acc6989586621679459282 (TyFun x6989586621679459283 (acc6989586621679459282, y6989586621679459284) -> Type) -> Type) (t_a1VJV :: acc6989586621679459282) (t_a1VJW :: [x6989586621679459283]) = MapAccumL t_a1VJU t_a1VJV t_a1VJW
data MapAccumRSym0 (l_a1VHx :: TyFun (TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (TyFun acc6989586621679459279 (TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]) -> Type) -> Type))
data MapAccumRSym1 (l_a1VHv :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (l_a1VHu :: TyFun acc6989586621679459279 (TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]) -> Type))
data MapAccumRSym2 (l_a1VHr :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (l_a1VHs :: acc6989586621679459279) (l_a1VHq :: TyFun [x6989586621679459280] (acc6989586621679459279, [y6989586621679459281]))
type MapAccumRSym3 (t_a1VHn :: TyFun acc6989586621679459279 (TyFun x6989586621679459280 (acc6989586621679459279, y6989586621679459281) -> Type) -> Type) (t_a1VHo :: acc6989586621679459279) (t_a1VHp :: [x6989586621679459280]) = MapAccumR t_a1VHn t_a1VHo t_a1VHp
data UnfoldrSym0 (l_a1VH4 :: TyFun (TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (TyFun b6989586621679459277 [a6989586621679459278] -> Type))
data UnfoldrSym1 (l_a1VH2 :: TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (l_a1VH1 :: TyFun b6989586621679459277 [a6989586621679459278])
type UnfoldrSym2 (t_a1VGZ :: TyFun b6989586621679459277 (Maybe (a6989586621679459278, b6989586621679459277)) -> Type) (t_a1VH0 :: b6989586621679459277) = Unfoldr t_a1VGZ t_a1VH0
data InitsSym0 (l_a1VGQ :: TyFun [a6989586621679459276] [[a6989586621679459276]])
type InitsSym1 (t_a1VGP :: [a6989586621679459276]) = Inits t_a1VGP
data TailsSym0 (l_a1VGH :: TyFun [a6989586621679459275] [[a6989586621679459275]])
type TailsSym1 (t_a1VGG :: [a6989586621679459275]) = Tails t_a1VGG
data IsPrefixOfSym0 (l_a1VGy :: TyFun [a6989586621679459274] (TyFun [a6989586621679459274] Bool -> Type))
data IsPrefixOfSym1 (l_a1VGw :: [a6989586621679459274]) (l_a1VGv :: TyFun [a6989586621679459274] Bool)
type IsPrefixOfSym2 (t_a1VGt :: [a6989586621679459274]) (t_a1VGu :: [a6989586621679459274]) = IsPrefixOf t_a1VGt t_a1VGu
data IsSuffixOfSym0 (l_a1W4t :: TyFun [a6989586621679459273] (TyFun [a6989586621679459273] Bool -> Type))
data IsSuffixOfSym1 (l_a1W4r :: [a6989586621679459273]) (l_a1W4q :: TyFun [a6989586621679459273] Bool)
type IsSuffixOfSym2 (t_a1W4o :: [a6989586621679459273]) (t_a1W4p :: [a6989586621679459273]) = IsSuffixOf t_a1W4o t_a1W4p
data IsInfixOfSym0 (l_a1VOU :: TyFun [a6989586621679459272] (TyFun [a6989586621679459272] Bool -> Type))
data IsInfixOfSym1 (l_a1VOS :: [a6989586621679459272]) (l_a1VOR :: TyFun [a6989586621679459272] Bool)
type IsInfixOfSym2 (t_a1VOP :: [a6989586621679459272]) (t_a1VOQ :: [a6989586621679459272]) = IsInfixOf t_a1VOP t_a1VOQ
data ElemSym0 (l_a1VFD :: TyFun a6989586621679459271 (TyFun [a6989586621679459271] Bool -> Type))
data ElemSym1 (l_a1VFB :: a6989586621679459271) (l_a1VFA :: TyFun [a6989586621679459271] Bool)
type ElemSym2 (t_a1VFy :: a6989586621679459271) (t_a1VFz :: [a6989586621679459271]) = Elem t_a1VFy t_a1VFz
data NotElemSym0 (l_a1VFr :: TyFun a6989586621679459270 (TyFun [a6989586621679459270] Bool -> Type))
data NotElemSym1 (l_a1VFp :: a6989586621679459270) (l_a1VFo :: TyFun [a6989586621679459270] Bool)
type NotElemSym2 (t_a1VFm :: a6989586621679459270) (t_a1VFn :: [a6989586621679459270]) = NotElem t_a1VFm t_a1VFn
data ZipSym0 (l_a1VDJ :: TyFun [a6989586621679459268] (TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)] -> Type))
data ZipSym1 (l_a1VDH :: [a6989586621679459268]) (l_a1VDG :: TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)])
type ZipSym2 (t_a1VDE :: [a6989586621679459268]) (t_a1VDF :: [b6989586621679459269]) = Zip t_a1VDE t_a1VDF
data Zip3Sym0 (l_a1VDt :: TyFun [a6989586621679459265] (TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type) -> Type))
data Zip3Sym1 (l_a1VDr :: [a6989586621679459265]) (l_a1VDq :: TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type))
data Zip3Sym2 (l_a1VDn :: [a6989586621679459265]) (l_a1VDo :: [b6989586621679459266]) (l_a1VDm :: TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)])
type Zip3Sym3 (t_a1VDj :: [a6989586621679459265]) (t_a1VDk :: [b6989586621679459266]) (t_a1VDl :: [c6989586621679459267]) = Zip3 t_a1VDj t_a1VDk t_a1VDl
data ZipWithSym0 (l_a1VD9 :: TyFun (TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type) -> Type))
data ZipWithSym1 (l_a1VD7 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD6 :: TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type))
data ZipWithSym2 (l_a1VD3 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD4 :: [a6989586621679459262]) (l_a1VD2 :: TyFun [b6989586621679459263] [c6989586621679459264])
type ZipWithSym3 (t_a1VCZ :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (t_a1VD0 :: [a6989586621679459262]) (t_a1VD1 :: [b6989586621679459263]) = ZipWith t_a1VCZ t_a1VD0 t_a1VD1
data ZipWith3Sym0 (l_a1VCM :: TyFun (TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1VCK :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCJ :: TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type))
data ZipWith3Sym2 (l_a1VCG :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCH :: [a6989586621679459258]) (l_a1VCF :: TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type))
data ZipWith3Sym3 (l_a1VCB :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCC :: [a6989586621679459258]) (l_a1VCD :: [b6989586621679459259]) (l_a1VCA :: TyFun [c6989586621679459260] [d6989586621679459261])
type ZipWith3Sym4 (t_a1VCw :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (t_a1VCx :: [a6989586621679459258]) (t_a1VCy :: [b6989586621679459259]) (t_a1VCz :: [c6989586621679459260]) = ZipWith3 t_a1VCw t_a1VCx t_a1VCy t_a1VCz
data UnzipSym0 (l_a1VC3 :: TyFun [(a6989586621679459256, b6989586621679459257)] ([a6989586621679459256], [b6989586621679459257]))
type UnzipSym1 (t_a1VC2 :: [(a6989586621679459256, b6989586621679459257)]) = Unzip t_a1VC2
data Unzip3Sym0 (l_a1VBx :: TyFun [(a6989586621679459253, b6989586621679459254, c6989586621679459255)] ([a6989586621679459253], [b6989586621679459254], [c6989586621679459255]))
type Unzip3Sym1 (t_a1VBw :: [(a6989586621679459253, b6989586621679459254, c6989586621679459255)]) = Unzip3 t_a1VBw
data Unzip4Sym0 (l_a1VAZ :: TyFun [(a6989586621679459249, b6989586621679459250, c6989586621679459251, d6989586621679459252)] ([a6989586621679459249], [b6989586621679459250], [c6989586621679459251], [d6989586621679459252]))
type Unzip4Sym1 (t_a1VAY :: [(a6989586621679459249, b6989586621679459250, c6989586621679459251, d6989586621679459252)]) = Unzip4 t_a1VAY
data Unzip5Sym0 (l_a1VAp :: TyFun [(a6989586621679459244, b6989586621679459245, c6989586621679459246, d6989586621679459247, e6989586621679459248)] ([a6989586621679459244], [b6989586621679459245], [c6989586621679459246], [d6989586621679459247], [e6989586621679459248]))
type Unzip5Sym1 (t_a1VAo :: [(a6989586621679459244, b6989586621679459245, c6989586621679459246, d6989586621679459247, e6989586621679459248)]) = Unzip5 t_a1VAo
data Unzip6Sym0 (l_a1VzN :: TyFun [(a6989586621679459238, b6989586621679459239, c6989586621679459240, d6989586621679459241, e6989586621679459242, f6989586621679459243)] ([a6989586621679459238], [b6989586621679459239], [c6989586621679459240], [d6989586621679459241], [e6989586621679459242], [f6989586621679459243]))
type Unzip6Sym1 (t_a1VzM :: [(a6989586621679459238, b6989586621679459239, c6989586621679459240, d6989586621679459241, e6989586621679459242, f6989586621679459243)]) = Unzip6 t_a1VzM
data Unzip7Sym0 (l_a1Vz9 :: TyFun [(a6989586621679459231, b6989586621679459232, c6989586621679459233, d6989586621679459234, e6989586621679459235, f6989586621679459236, g6989586621679459237)] ([a6989586621679459231], [b6989586621679459232], [c6989586621679459233], [d6989586621679459234], [e6989586621679459235], [f6989586621679459236], [g6989586621679459237]))
type Unzip7Sym1 (t_a1Vz8 :: [(a6989586621679459231, b6989586621679459232, c6989586621679459233, d6989586621679459234, e6989586621679459235, f6989586621679459236, g6989586621679459237)]) = Unzip7 t_a1Vz8
data DeleteSym0 (l_a1Vyl :: TyFun a6989586621679459230 (TyFun [a6989586621679459230] [a6989586621679459230] -> Type))
data DeleteSym1 (l_a1Vyj :: a6989586621679459230) (l_a1Vyi :: TyFun [a6989586621679459230] [a6989586621679459230])
type DeleteSym2 (t_a1Vyg :: a6989586621679459230) (t_a1Vyh :: [a6989586621679459230]) = Delete t_a1Vyg t_a1Vyh
data (\\@#@$) (l_a1VyA :: TyFun [a6989586621679459229] (TyFun [a6989586621679459229] [a6989586621679459229] -> Type))
data (\\@#@$$) (l_a1Vyy :: [a6989586621679459229]) (l_a1Vyx :: TyFun [a6989586621679459229] [a6989586621679459229])
type (\\@#@$$$) (t_a1Vyv :: [a6989586621679459229]) (t_a1Vyw :: [a6989586621679459229]) = (\\) t_a1Vyv t_a1Vyw
data IntersectSym0 (l_a1VQT :: TyFun [a6989586621679459216] (TyFun [a6989586621679459216] [a6989586621679459216] -> Type))
data IntersectSym1 (l_a1VQR :: [a6989586621679459216]) (l_a1VQQ :: TyFun [a6989586621679459216] [a6989586621679459216])
type IntersectSym2 (t_a1VQO :: [a6989586621679459216]) (t_a1VQP :: [a6989586621679459216]) = Intersect t_a1VQO t_a1VQP
data InsertSym0 (l_a1Vwe :: TyFun a6989586621679459203 (TyFun [a6989586621679459203] [a6989586621679459203] -> Type))
data InsertSym1 (l_a1Vwc :: a6989586621679459203) (l_a1Vwb :: TyFun [a6989586621679459203] [a6989586621679459203])
type InsertSym2 (t_a1Vw9 :: a6989586621679459203) (t_a1Vwa :: [a6989586621679459203]) = Insert t_a1Vw9 t_a1Vwa
data SortSym0 (l_a1VwA :: TyFun [a6989586621679459202] [a6989586621679459202])
type SortSym1 (t_a1Vwz :: [a6989586621679459202]) = Sort t_a1Vwz
data DeleteBySym0 (l_a1VwO :: TyFun (TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (TyFun a6989586621679459228 (TyFun [a6989586621679459228] [a6989586621679459228] -> Type) -> Type))
data DeleteBySym1 (l_a1VwM :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (l_a1VwL :: TyFun a6989586621679459228 (TyFun [a6989586621679459228] [a6989586621679459228] -> Type))
data DeleteBySym2 (l_a1VwI :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (l_a1VwJ :: a6989586621679459228) (l_a1VwH :: TyFun [a6989586621679459228] [a6989586621679459228])
type DeleteBySym3 (t_a1VwE :: TyFun a6989586621679459228 (TyFun a6989586621679459228 Bool -> Type) -> Type) (t_a1VwF :: a6989586621679459228) (t_a1VwG :: [a6989586621679459228]) = DeleteBy t_a1VwE t_a1VwF t_a1VwG
data DeleteFirstsBySym0 (l_a1Vxt :: TyFun (TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (TyFun [a6989586621679459227] (TyFun [a6989586621679459227] [a6989586621679459227] -> Type) -> Type))
data DeleteFirstsBySym1 (l_a1Vxr :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (l_a1Vxq :: TyFun [a6989586621679459227] (TyFun [a6989586621679459227] [a6989586621679459227] -> Type))
data DeleteFirstsBySym2 (l_a1Vxn :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (l_a1Vxo :: [a6989586621679459227]) (l_a1Vxm :: TyFun [a6989586621679459227] [a6989586621679459227])
type DeleteFirstsBySym3 (t_a1Vxj :: TyFun a6989586621679459227 (TyFun a6989586621679459227 Bool -> Type) -> Type) (t_a1Vxk :: [a6989586621679459227]) (t_a1Vxl :: [a6989586621679459227]) = DeleteFirstsBy t_a1Vxj t_a1Vxk t_a1Vxl
data IntersectBySym0 (l_a1VPa :: TyFun (TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (TyFun [a6989586621679459215] (TyFun [a6989586621679459215] [a6989586621679459215] -> Type) -> Type))
data IntersectBySym1 (l_a1VP8 :: TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (l_a1VP7 :: TyFun [a6989586621679459215] (TyFun [a6989586621679459215] [a6989586621679459215] -> Type))
data IntersectBySym2 (l_a1VP4 :: TyFun a6989586621679459215 (TyFun a6989586621679459215 Bool -> Type) -> Type) (l_a1VP5 :: [a6989586621679459215]) (l_a1VP3 :: TyFun [a6989586621679459215] [a6989586621679459215])
data SortBySym0 (l_a1Vwp :: TyFun (TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (TyFun [a6989586621679459226] [a6989586621679459226] -> Type))
data SortBySym1 (l_a1Vwn :: TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (l_a1Vwm :: TyFun [a6989586621679459226] [a6989586621679459226])
type SortBySym2 (t_a1Vwk :: TyFun a6989586621679459226 (TyFun a6989586621679459226 Ordering -> Type) -> Type) (t_a1Vwl :: [a6989586621679459226]) = SortBy t_a1Vwk t_a1Vwl
data InsertBySym0 (l_a1Vvk :: TyFun (TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (TyFun a6989586621679459225 (TyFun [a6989586621679459225] [a6989586621679459225] -> Type) -> Type))
data InsertBySym1 (l_a1Vvi :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (l_a1Vvh :: TyFun a6989586621679459225 (TyFun [a6989586621679459225] [a6989586621679459225] -> Type))
data InsertBySym2 (l_a1Vve :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (l_a1Vvf :: a6989586621679459225) (l_a1Vvd :: TyFun [a6989586621679459225] [a6989586621679459225])
type InsertBySym3 (t_a1Vva :: TyFun a6989586621679459225 (TyFun a6989586621679459225 Ordering -> Type) -> Type) (t_a1Vvb :: a6989586621679459225) (t_a1Vvc :: [a6989586621679459225]) = InsertBy t_a1Vva t_a1Vvb t_a1Vvc
data MaximumBySym0 (l_a1VSv :: TyFun (TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (TyFun [a6989586621679459224] a6989586621679459224 -> Type))
data MaximumBySym1 (l_a1VSt :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (l_a1VSs :: TyFun [a6989586621679459224] a6989586621679459224)
type MaximumBySym2 (t_a1VSq :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (t_a1VSr :: [a6989586621679459224]) = MaximumBy t_a1VSq t_a1VSr
data MinimumBySym0 (l_a1VTR :: TyFun (TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (TyFun [a6989586621679459223] a6989586621679459223 -> Type))
data MinimumBySym1 (l_a1VTP :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (l_a1VTO :: TyFun [a6989586621679459223] a6989586621679459223)
type MinimumBySym2 (t_a1VTM :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (t_a1VTN :: [a6989586621679459223]) = MinimumBy t_a1VTM t_a1VTN
data LengthSym0 (l_a1VlW :: TyFun [a6989586621679459194] Nat)
type LengthSym1 (t_a1VlV :: [a6989586621679459194]) = Length t_a1VlV
data SumSym0 (l_a1Vmp :: TyFun [a6989586621679459196] a6989586621679459196)
type SumSym1 (t_a1Vmo :: [a6989586621679459196]) = Sum t_a1Vmo
data ProductSym0 (l_a1Vm1 :: TyFun [a6989586621679459195] a6989586621679459195)
type ProductSym1 (t_a1Vm0 :: [a6989586621679459195]) = Product t_a1Vm0
data ReplicateSym0 (l_a1VlE :: TyFun Nat (TyFun a6989586621679459193 [a6989586621679459193] -> Type))
data ReplicateSym1 (l_a1VlC :: Nat) (l_a1VlB :: TyFun a6989586621679459193 [a6989586621679459193])
type ReplicateSym2 (t_a1Vlz :: Nat) (t_a1VlA :: a6989586621679459193) = Replicate t_a1Vlz t_a1VlA
data TransposeSym0 (l_a1W6m :: TyFun [[a6989586621679459192]] [[a6989586621679459192]])
type TransposeSym1 (t_a1W6l :: [[a6989586621679459192]]) = Transpose t_a1W6l
data TakeSym0 (l_a1VoJ :: TyFun Nat (TyFun [a6989586621679459209] [a6989586621679459209] -> Type))
data TakeSym1 (l_a1VoH :: Nat) (l_a1VoG :: TyFun [a6989586621679459209] [a6989586621679459209])
type TakeSym2 (t_a1VoE :: Nat) (t_a1VoF :: [a6989586621679459209]) = Take t_a1VoE t_a1VoF
data DropSym0 (l_a1Voh :: TyFun Nat (TyFun [a6989586621679459208] [a6989586621679459208] -> Type))
data DropSym1 (l_a1Vof :: Nat) (l_a1Voe :: TyFun [a6989586621679459208] [a6989586621679459208])
type DropSym2 (t_a1Voc :: Nat) (t_a1Vod :: [a6989586621679459208]) = Drop t_a1Voc t_a1Vod
data SplitAtSym0 (l_a1Vpb :: TyFun Nat (TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]) -> Type))
data SplitAtSym1 (l_a1Vp9 :: Nat) (l_a1Vp8 :: TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]))
type SplitAtSym2 (t_a1Vp6 :: Nat) (t_a1Vp7 :: [a6989586621679459207]) = SplitAt t_a1Vp6 t_a1Vp7
data TakeWhileSym0 (l_a1Vu7 :: TyFun (TyFun a6989586621679459214 Bool -> Type) (TyFun [a6989586621679459214] [a6989586621679459214] -> Type))
data TakeWhileSym1 (l_a1Vu5 :: TyFun a6989586621679459214 Bool -> Type) (l_a1Vu4 :: TyFun [a6989586621679459214] [a6989586621679459214])
type TakeWhileSym2 (t_a1Vu2 :: TyFun a6989586621679459214 Bool -> Type) (t_a1Vu3 :: [a6989586621679459214]) = TakeWhile t_a1Vu2 t_a1Vu3
data DropWhileSym0 (l_a1Vts :: TyFun (TyFun a6989586621679459213 Bool -> Type) (TyFun [a6989586621679459213] [a6989586621679459213] -> Type))
data DropWhileSym1 (l_a1Vtq :: TyFun a6989586621679459213 Bool -> Type) (l_a1Vtp :: TyFun [a6989586621679459213] [a6989586621679459213])
type DropWhileSym2 (t_a1Vtn :: TyFun a6989586621679459213 Bool -> Type) (t_a1Vto :: [a6989586621679459213]) = DropWhile t_a1Vtn t_a1Vto
data DropWhileEndSym0 (l_a1W4I :: TyFun (TyFun a6989586621679459212 Bool -> Type) (TyFun [a6989586621679459212] [a6989586621679459212] -> Type))
data DropWhileEndSym1 (l_a1W4G :: TyFun a6989586621679459212 Bool -> Type) (l_a1W4F :: TyFun [a6989586621679459212] [a6989586621679459212])
type DropWhileEndSym2 (t_a1W4D :: TyFun a6989586621679459212 Bool -> Type) (t_a1W4E :: [a6989586621679459212]) = DropWhileEnd t_a1W4D t_a1W4E
data SpanSym0 (l_a1VqR :: TyFun (TyFun a6989586621679459211 Bool -> Type) (TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]) -> Type))
data SpanSym1 (l_a1VqP :: TyFun a6989586621679459211 Bool -> Type) (l_a1VqO :: TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]))
type SpanSym2 (t_a1VqM :: TyFun a6989586621679459211 Bool -> Type) (t_a1VqN :: [a6989586621679459211]) = Span t_a1VqM t_a1VqN
data BreakSym0 (l_a1Vpm :: TyFun (TyFun a6989586621679459210 Bool -> Type) (TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]) -> Type))
data BreakSym1 (l_a1Vpk :: TyFun a6989586621679459210 Bool -> Type) (l_a1Vpj :: TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]))
type BreakSym2 (t_a1Vph :: TyFun a6989586621679459210 Bool -> Type) (t_a1Vpi :: [a6989586621679459210]) = Break t_a1Vph t_a1Vpi
data StripPrefixSym0 (l_a40dW :: TyFun [a6989586621679951006] (TyFun [a6989586621679951006] (Maybe [a6989586621679951006]) -> Type))
data StripPrefixSym1 (l_a40dU :: [a6989586621679951006]) (l_a40dT :: TyFun [a6989586621679951006] (Maybe [a6989586621679951006]))
type StripPrefixSym2 (t_a40dR :: [a6989586621679951006]) (t_a40dS :: [a6989586621679951006]) = StripPrefix t_a40dR t_a40dS
data MaximumSym0 (l_a1VV9 :: TyFun [a6989586621679459205] a6989586621679459205)
type MaximumSym1 (t_a1VV8 :: [a6989586621679459205]) = Maximum t_a1VV8
data MinimumSym0 (l_a1VVn :: TyFun [a6989586621679459204] a6989586621679459204)
type MinimumSym1 (t_a1VVm :: [a6989586621679459204]) = Minimum t_a1VVm
data GroupSym0 (l_a1Vtj :: TyFun [a6989586621679459206] [[a6989586621679459206]])
type GroupSym1 (t_a1Vti :: [a6989586621679459206]) = Group t_a1Vti
data GroupBySym0 (l_a1Vsm :: TyFun (TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (TyFun [a6989586621679459201] [[a6989586621679459201]] -> Type))
data GroupBySym1 (l_a1Vsk :: TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (l_a1Vsj :: TyFun [a6989586621679459201] [[a6989586621679459201]])
type GroupBySym2 (t_a1Vsh :: TyFun a6989586621679459201 (TyFun a6989586621679459201 Bool -> Type) -> Type) (t_a1Vsi :: [a6989586621679459201]) = GroupBy t_a1Vsh t_a1Vsi
data LookupSym0 (l_a1VnH :: TyFun a6989586621679459199 (TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200) -> Type))
data LookupSym1 (l_a1VnF :: a6989586621679459199) (l_a1VnE :: TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200))
type LookupSym2 (t_a1VnC :: a6989586621679459199) (t_a1VnD :: [(a6989586621679459199, b6989586621679459200)]) = Lookup t_a1VnC t_a1VnD
data FindSym0 (l_a1Vv2 :: TyFun (TyFun a6989586621679459221 Bool -> Type) (TyFun [a6989586621679459221] (Maybe a6989586621679459221) -> Type))
data FindSym1 (l_a1Vv0 :: TyFun a6989586621679459221 Bool -> Type) (l_a1VuZ :: TyFun [a6989586621679459221] (Maybe a6989586621679459221))
type FindSym2 (t_a1VuX :: TyFun a6989586621679459221 Bool -> Type) (t_a1VuY :: [a6989586621679459221]) = Find t_a1VuX t_a1VuY
data FilterSym0 (l_a1Vuz :: TyFun (TyFun a6989586621679459222 Bool -> Type) (TyFun [a6989586621679459222] [a6989586621679459222] -> Type))
data FilterSym1 (l_a1Vux :: TyFun a6989586621679459222 Bool -> Type) (l_a1Vuw :: TyFun [a6989586621679459222] [a6989586621679459222])
type FilterSym2 (t_a1Vuu :: TyFun a6989586621679459222 Bool -> Type) (t_a1Vuv :: [a6989586621679459222]) = Filter t_a1Vuu t_a1Vuv
data PartitionSym0 (l_a1Vnw :: TyFun (TyFun a6989586621679459198 Bool -> Type) (TyFun [a6989586621679459198] ([a6989586621679459198], [a6989586621679459198]) -> Type))
data PartitionSym1 (l_a1Vnu :: TyFun a6989586621679459198 Bool -> Type) (l_a1Vnt :: TyFun [a6989586621679459198] ([a6989586621679459198], [a6989586621679459198]))
type PartitionSym2 (t_a1Vnr :: TyFun a6989586621679459198 Bool -> Type) (t_a1Vns :: [a6989586621679459198]) = Partition t_a1Vnr t_a1Vns
data (!!@#@$) (l_a1Vlc :: TyFun [a6989586621679459191] (TyFun Nat a6989586621679459191 -> Type))
data (!!@#@$$) (l_a1Vla :: [a6989586621679459191]) (l_a1Vl9 :: TyFun Nat a6989586621679459191)
type (!!@#@$$$) (t_a1Vl7 :: [a6989586621679459191]) (t_a1Vl8 :: Nat) = (!!) t_a1Vl7 t_a1Vl8
data ElemIndexSym0 (l_a1VFe :: TyFun a6989586621679459220 (TyFun [a6989586621679459220] (Maybe Nat) -> Type))
data ElemIndexSym1 (l_a1VFc :: a6989586621679459220) (l_a1VFb :: TyFun [a6989586621679459220] (Maybe Nat))
type ElemIndexSym2 (t_a1VF9 :: a6989586621679459220) (t_a1VFa :: [a6989586621679459220]) = ElemIndex t_a1VF9 t_a1VFa
data ElemIndicesSym0 (l_a1VEO :: TyFun a6989586621679459219 (TyFun [a6989586621679459219] [Nat] -> Type))
data ElemIndicesSym1 (l_a1VEM :: a6989586621679459219) (l_a1VEL :: TyFun [a6989586621679459219] [Nat])
type ElemIndicesSym2 (t_a1VEJ :: a6989586621679459219) (t_a1VEK :: [a6989586621679459219]) = ElemIndices t_a1VEJ t_a1VEK
data FindIndexSym0 (l_a1VF1 :: TyFun (TyFun a6989586621679459218 Bool -> Type) (TyFun [a6989586621679459218] (Maybe Nat) -> Type))
data FindIndexSym1 (l_a1VEZ :: TyFun a6989586621679459218 Bool -> Type) (l_a1VEY :: TyFun [a6989586621679459218] (Maybe Nat))
type FindIndexSym2 (t_a1VEW :: TyFun a6989586621679459218 Bool -> Type) (t_a1VEX :: [a6989586621679459218]) = FindIndex t_a1VEW t_a1VEX
data FindIndicesSym0 (l_a1VDW :: TyFun (TyFun a6989586621679459217 Bool -> Type) (TyFun [a6989586621679459217] [Nat] -> Type))
data FindIndicesSym1 (l_a1VDU :: TyFun a6989586621679459217 Bool -> Type) (l_a1VDT :: TyFun [a6989586621679459217] [Nat])
type FindIndicesSym2 (t_a1VDR :: TyFun a6989586621679459217 Bool -> Type) (t_a1VDS :: [a6989586621679459217]) = FindIndices t_a1VDR t_a1VDS
data Zip4Sym0 (l_a40dH :: TyFun [a6989586621679951002] (TyFun [b6989586621679951003] (TyFun [c6989586621679951004] (TyFun [d6989586621679951005] [(a6989586621679951002, b6989586621679951003, c6989586621679951004, d6989586621679951005)] -> Type) -> Type) -> Type))
data Zip4Sym1 (l_a40dF :: [a6989586621679951002]) (l_a40dE :: TyFun [b6989586621679951003] (TyFun [c6989586621679951004] (TyFun [d6989586621679951005] [(a6989586621679951002, b6989586621679951003, c6989586621679951004, d6989586621679951005)] -> Type) -> Type))
data Zip4Sym2 (l_a40dB :: [a6989586621679951002]) (l_a40dC :: [b6989586621679951003]) (l_a40dA :: TyFun [c6989586621679951004] (TyFun [d6989586621679951005] [(a6989586621679951002, b6989586621679951003, c6989586621679951004, d6989586621679951005)] -> Type))
data Zip4Sym3 (l_a40dw :: [a6989586621679951002]) (l_a40dx :: [b6989586621679951003]) (l_a40dy :: [c6989586621679951004]) (l_a40dv :: TyFun [d6989586621679951005] [(a6989586621679951002, b6989586621679951003, c6989586621679951004, d6989586621679951005)])
type Zip4Sym4 (t_a40dr :: [a6989586621679951002]) (t_a40ds :: [b6989586621679951003]) (t_a40dt :: [c6989586621679951004]) (t_a40du :: [d6989586621679951005]) = Zip4 t_a40dr t_a40ds t_a40dt t_a40du
data Zip5Sym0 (l_a40d7 :: TyFun [a6989586621679950997] (TyFun [b6989586621679950998] (TyFun [c6989586621679950999] (TyFun [d6989586621679951000] (TyFun [e6989586621679951001] [(a6989586621679950997, b6989586621679950998, c6989586621679950999, d6989586621679951000, e6989586621679951001)] -> Type) -> Type) -> Type) -> Type))
data Zip5Sym1 (l_a40d5 :: [a6989586621679950997]) (l_a40d4 :: TyFun [b6989586621679950998] (TyFun [c6989586621679950999] (TyFun [d6989586621679951000] (TyFun [e6989586621679951001] [(a6989586621679950997, b6989586621679950998, c6989586621679950999, d6989586621679951000, e6989586621679951001)] -> Type) -> Type) -> Type))
data Zip5Sym2 (l_a40d1 :: [a6989586621679950997]) (l_a40d2 :: [b6989586621679950998]) (l_a40d0 :: TyFun [c6989586621679950999] (TyFun [d6989586621679951000] (TyFun [e6989586621679951001] [(a6989586621679950997, b6989586621679950998, c6989586621679950999, d6989586621679951000, e6989586621679951001)] -> Type) -> Type))
data Zip5Sym3 (l_a40cW :: [a6989586621679950997]) (l_a40cX :: [b6989586621679950998]) (l_a40cY :: [c6989586621679950999]) (l_a40cV :: TyFun [d6989586621679951000] (TyFun [e6989586621679951001] [(a6989586621679950997, b6989586621679950998, c6989586621679950999, d6989586621679951000, e6989586621679951001)] -> Type))
data Zip5Sym4 (l_a40cQ :: [a6989586621679950997]) (l_a40cR :: [b6989586621679950998]) (l_a40cS :: [c6989586621679950999]) (l_a40cT :: [d6989586621679951000]) (l_a40cP :: TyFun [e6989586621679951001] [(a6989586621679950997, b6989586621679950998, c6989586621679950999, d6989586621679951000, e6989586621679951001)])
type Zip5Sym5 (t_a40cK :: [a6989586621679950997]) (t_a40cL :: [b6989586621679950998]) (t_a40cM :: [c6989586621679950999]) (t_a40cN :: [d6989586621679951000]) (t_a40cO :: [e6989586621679951001]) = Zip5 t_a40cK t_a40cL t_a40cM t_a40cN t_a40cO
data Zip6Sym0 (l_a40cm :: TyFun [a6989586621679950991] (TyFun [b6989586621679950992] (TyFun [c6989586621679950993] (TyFun [d6989586621679950994] (TyFun [e6989586621679950995] (TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip6Sym1 (l_a40ck :: [a6989586621679950991]) (l_a40cj :: TyFun [b6989586621679950992] (TyFun [c6989586621679950993] (TyFun [d6989586621679950994] (TyFun [e6989586621679950995] (TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)] -> Type) -> Type) -> Type) -> Type))
data Zip6Sym2 (l_a40cg :: [a6989586621679950991]) (l_a40ch :: [b6989586621679950992]) (l_a40cf :: TyFun [c6989586621679950993] (TyFun [d6989586621679950994] (TyFun [e6989586621679950995] (TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)] -> Type) -> Type) -> Type))
data Zip6Sym3 (l_a40cb :: [a6989586621679950991]) (l_a40cc :: [b6989586621679950992]) (l_a40cd :: [c6989586621679950993]) (l_a40ca :: TyFun [d6989586621679950994] (TyFun [e6989586621679950995] (TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)] -> Type) -> Type))
data Zip6Sym4 (l_a40c5 :: [a6989586621679950991]) (l_a40c6 :: [b6989586621679950992]) (l_a40c7 :: [c6989586621679950993]) (l_a40c8 :: [d6989586621679950994]) (l_a40c4 :: TyFun [e6989586621679950995] (TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)] -> Type))
data Zip6Sym5 (l_a40bY :: [a6989586621679950991]) (l_a40bZ :: [b6989586621679950992]) (l_a40c0 :: [c6989586621679950993]) (l_a40c1 :: [d6989586621679950994]) (l_a40c2 :: [e6989586621679950995]) (l_a40bX :: TyFun [f6989586621679950996] [(a6989586621679950991, b6989586621679950992, c6989586621679950993, d6989586621679950994, e6989586621679950995, f6989586621679950996)])
type Zip6Sym6 (t_a40bR :: [a6989586621679950991]) (t_a40bS :: [b6989586621679950992]) (t_a40bT :: [c6989586621679950993]) (t_a40bU :: [d6989586621679950994]) (t_a40bV :: [e6989586621679950995]) (t_a40bW :: [f6989586621679950996]) = Zip6 t_a40bR t_a40bS t_a40bT t_a40bU t_a40bV t_a40bW
data Zip7Sym0 (l_a40bp :: TyFun [a6989586621679950984] (TyFun [b6989586621679950985] (TyFun [c6989586621679950986] (TyFun [d6989586621679950987] (TyFun [e6989586621679950988] (TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym1 (l_a40bn :: [a6989586621679950984]) (l_a40bm :: TyFun [b6989586621679950985] (TyFun [c6989586621679950986] (TyFun [d6989586621679950987] (TyFun [e6989586621679950988] (TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type) -> Type) -> Type) -> Type) -> Type))
data Zip7Sym2 (l_a40bj :: [a6989586621679950984]) (l_a40bk :: [b6989586621679950985]) (l_a40bi :: TyFun [c6989586621679950986] (TyFun [d6989586621679950987] (TyFun [e6989586621679950988] (TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type) -> Type) -> Type) -> Type))
data Zip7Sym3 (l_a40be :: [a6989586621679950984]) (l_a40bf :: [b6989586621679950985]) (l_a40bg :: [c6989586621679950986]) (l_a40bd :: TyFun [d6989586621679950987] (TyFun [e6989586621679950988] (TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type) -> Type) -> Type))
data Zip7Sym4 (l_a40b8 :: [a6989586621679950984]) (l_a40b9 :: [b6989586621679950985]) (l_a40ba :: [c6989586621679950986]) (l_a40bb :: [d6989586621679950987]) (l_a40b7 :: TyFun [e6989586621679950988] (TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type) -> Type))
data Zip7Sym5 (l_a40b1 :: [a6989586621679950984]) (l_a40b2 :: [b6989586621679950985]) (l_a40b3 :: [c6989586621679950986]) (l_a40b4 :: [d6989586621679950987]) (l_a40b5 :: [e6989586621679950988]) (l_a40b0 :: TyFun [f6989586621679950989] (TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)] -> Type))
data Zip7Sym6 (l_a40aT :: [a6989586621679950984]) (l_a40aU :: [b6989586621679950985]) (l_a40aV :: [c6989586621679950986]) (l_a40aW :: [d6989586621679950987]) (l_a40aX :: [e6989586621679950988]) (l_a40aY :: [f6989586621679950989]) (l_a40aS :: TyFun [g6989586621679950990] [(a6989586621679950984, b6989586621679950985, c6989586621679950986, d6989586621679950987, e6989586621679950988, f6989586621679950989, g6989586621679950990)])
type Zip7Sym7 (t_a40aL :: [a6989586621679950984]) (t_a40aM :: [b6989586621679950985]) (t_a40aN :: [c6989586621679950986]) (t_a40aO :: [d6989586621679950987]) (t_a40aP :: [e6989586621679950988]) (t_a40aQ :: [f6989586621679950989]) (t_a40aR :: [g6989586621679950990]) = Zip7 t_a40aL t_a40aM t_a40aN t_a40aO t_a40aP t_a40aQ t_a40aR
data ZipWith4Sym0 (l_a40ah :: TyFun (TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950979] (TyFun [b6989586621679950980] (TyFun [c6989586621679950981] (TyFun [d6989586621679950982] [e6989586621679950983] -> Type) -> Type) -> Type) -> Type))
data ZipWith4Sym1 (l_a40af :: TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (l_a40ae :: TyFun [a6989586621679950979] (TyFun [b6989586621679950980] (TyFun [c6989586621679950981] (TyFun [d6989586621679950982] [e6989586621679950983] -> Type) -> Type) -> Type))
data ZipWith4Sym2 (l_a40ab :: TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (l_a40ac :: [a6989586621679950979]) (l_a40aa :: TyFun [b6989586621679950980] (TyFun [c6989586621679950981] (TyFun [d6989586621679950982] [e6989586621679950983] -> Type) -> Type))
data ZipWith4Sym3 (l_a40a6 :: TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (l_a40a7 :: [a6989586621679950979]) (l_a40a8 :: [b6989586621679950980]) (l_a40a5 :: TyFun [c6989586621679950981] (TyFun [d6989586621679950982] [e6989586621679950983] -> Type))
data ZipWith4Sym4 (l_a40a0 :: TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (l_a40a1 :: [a6989586621679950979]) (l_a40a2 :: [b6989586621679950980]) (l_a40a3 :: [c6989586621679950981]) (l_a409Z :: TyFun [d6989586621679950982] [e6989586621679950983])
type ZipWith4Sym5 (t_a409U :: TyFun a6989586621679950979 (TyFun b6989586621679950980 (TyFun c6989586621679950981 (TyFun d6989586621679950982 e6989586621679950983 -> Type) -> Type) -> Type) -> Type) (t_a409V :: [a6989586621679950979]) (t_a409W :: [b6989586621679950980]) (t_a409X :: [c6989586621679950981]) (t_a409Y :: [d6989586621679950982]) = ZipWith4 t_a409U t_a409V t_a409W t_a409X t_a409Y
data ZipWith5Sym0 (l_a409B :: TyFun (TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950973] (TyFun [b6989586621679950974] (TyFun [c6989586621679950975] (TyFun [d6989586621679950976] (TyFun [e6989586621679950977] [f6989586621679950978] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym1 (l_a409z :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a409y :: TyFun [a6989586621679950973] (TyFun [b6989586621679950974] (TyFun [c6989586621679950975] (TyFun [d6989586621679950976] (TyFun [e6989586621679950977] [f6989586621679950978] -> Type) -> Type) -> Type) -> Type))
data ZipWith5Sym2 (l_a409v :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a409w :: [a6989586621679950973]) (l_a409u :: TyFun [b6989586621679950974] (TyFun [c6989586621679950975] (TyFun [d6989586621679950976] (TyFun [e6989586621679950977] [f6989586621679950978] -> Type) -> Type) -> Type))
data ZipWith5Sym3 (l_a409q :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a409r :: [a6989586621679950973]) (l_a409s :: [b6989586621679950974]) (l_a409p :: TyFun [c6989586621679950975] (TyFun [d6989586621679950976] (TyFun [e6989586621679950977] [f6989586621679950978] -> Type) -> Type))
data ZipWith5Sym4 (l_a409k :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a409l :: [a6989586621679950973]) (l_a409m :: [b6989586621679950974]) (l_a409n :: [c6989586621679950975]) (l_a409j :: TyFun [d6989586621679950976] (TyFun [e6989586621679950977] [f6989586621679950978] -> Type))
data ZipWith5Sym5 (l_a409d :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (l_a409e :: [a6989586621679950973]) (l_a409f :: [b6989586621679950974]) (l_a409g :: [c6989586621679950975]) (l_a409h :: [d6989586621679950976]) (l_a409c :: TyFun [e6989586621679950977] [f6989586621679950978])
type ZipWith5Sym6 (t_a4096 :: TyFun a6989586621679950973 (TyFun b6989586621679950974 (TyFun c6989586621679950975 (TyFun d6989586621679950976 (TyFun e6989586621679950977 f6989586621679950978 -> Type) -> Type) -> Type) -> Type) -> Type) (t_a4097 :: [a6989586621679950973]) (t_a4098 :: [b6989586621679950974]) (t_a4099 :: [c6989586621679950975]) (t_a409a :: [d6989586621679950976]) (t_a409b :: [e6989586621679950977]) = ZipWith5 t_a4096 t_a4097 t_a4098 t_a4099 t_a409a t_a409b
data ZipWith6Sym0 (l_a408K :: TyFun (TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950966] (TyFun [b6989586621679950967] (TyFun [c6989586621679950968] (TyFun [d6989586621679950969] (TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym1 (l_a408I :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408H :: TyFun [a6989586621679950966] (TyFun [b6989586621679950967] (TyFun [c6989586621679950968] (TyFun [d6989586621679950969] (TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym2 (l_a408E :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408F :: [a6989586621679950966]) (l_a408D :: TyFun [b6989586621679950967] (TyFun [c6989586621679950968] (TyFun [d6989586621679950969] (TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type) -> Type) -> Type) -> Type))
data ZipWith6Sym3 (l_a408z :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408A :: [a6989586621679950966]) (l_a408B :: [b6989586621679950967]) (l_a408y :: TyFun [c6989586621679950968] (TyFun [d6989586621679950969] (TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type) -> Type) -> Type))
data ZipWith6Sym4 (l_a408t :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408u :: [a6989586621679950966]) (l_a408v :: [b6989586621679950967]) (l_a408w :: [c6989586621679950968]) (l_a408s :: TyFun [d6989586621679950969] (TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type) -> Type))
data ZipWith6Sym5 (l_a408m :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408n :: [a6989586621679950966]) (l_a408o :: [b6989586621679950967]) (l_a408p :: [c6989586621679950968]) (l_a408q :: [d6989586621679950969]) (l_a408l :: TyFun [e6989586621679950970] (TyFun [f6989586621679950971] [g6989586621679950972] -> Type))
data ZipWith6Sym6 (l_a408e :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a408f :: [a6989586621679950966]) (l_a408g :: [b6989586621679950967]) (l_a408h :: [c6989586621679950968]) (l_a408i :: [d6989586621679950969]) (l_a408j :: [e6989586621679950970]) (l_a408d :: TyFun [f6989586621679950971] [g6989586621679950972])
type ZipWith6Sym7 (t_a4086 :: TyFun a6989586621679950966 (TyFun b6989586621679950967 (TyFun c6989586621679950968 (TyFun d6989586621679950969 (TyFun e6989586621679950970 (TyFun f6989586621679950971 g6989586621679950972 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a4087 :: [a6989586621679950966]) (t_a4088 :: [b6989586621679950967]) (t_a4089 :: [c6989586621679950968]) (t_a408a :: [d6989586621679950969]) (t_a408b :: [e6989586621679950970]) (t_a408c :: [f6989586621679950971]) = ZipWith6 t_a4086 t_a4087 t_a4088 t_a4089 t_a408a t_a408b t_a408c
data ZipWith7Sym0 (l_a407H :: TyFun (TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (TyFun [a6989586621679950958] (TyFun [b6989586621679950959] (TyFun [c6989586621679950960] (TyFun [d6989586621679950961] (TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym1 (l_a407F :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407E :: TyFun [a6989586621679950958] (TyFun [b6989586621679950959] (TyFun [c6989586621679950960] (TyFun [d6989586621679950961] (TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym2 (l_a407B :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407C :: [a6989586621679950958]) (l_a407A :: TyFun [b6989586621679950959] (TyFun [c6989586621679950960] (TyFun [d6989586621679950961] (TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym3 (l_a407w :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407x :: [a6989586621679950958]) (l_a407y :: [b6989586621679950959]) (l_a407v :: TyFun [c6989586621679950960] (TyFun [d6989586621679950961] (TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type) -> Type) -> Type))
data ZipWith7Sym4 (l_a407q :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407r :: [a6989586621679950958]) (l_a407s :: [b6989586621679950959]) (l_a407t :: [c6989586621679950960]) (l_a407p :: TyFun [d6989586621679950961] (TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type) -> Type))
data ZipWith7Sym5 (l_a407j :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407k :: [a6989586621679950958]) (l_a407l :: [b6989586621679950959]) (l_a407m :: [c6989586621679950960]) (l_a407n :: [d6989586621679950961]) (l_a407i :: TyFun [e6989586621679950962] (TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type) -> Type))
data ZipWith7Sym6 (l_a407b :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a407c :: [a6989586621679950958]) (l_a407d :: [b6989586621679950959]) (l_a407e :: [c6989586621679950960]) (l_a407f :: [d6989586621679950961]) (l_a407g :: [e6989586621679950962]) (l_a407a :: TyFun [f6989586621679950963] (TyFun [g6989586621679950964] [h6989586621679950965] -> Type))
data ZipWith7Sym7 (l_a4072 :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (l_a4073 :: [a6989586621679950958]) (l_a4074 :: [b6989586621679950959]) (l_a4075 :: [c6989586621679950960]) (l_a4076 :: [d6989586621679950961]) (l_a4077 :: [e6989586621679950962]) (l_a4078 :: [f6989586621679950963]) (l_a4071 :: TyFun [g6989586621679950964] [h6989586621679950965])
type ZipWith7Sym8 (t_a406T :: TyFun a6989586621679950958 (TyFun b6989586621679950959 (TyFun c6989586621679950960 (TyFun d6989586621679950961 (TyFun e6989586621679950962 (TyFun f6989586621679950963 (TyFun g6989586621679950964 h6989586621679950965 -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) -> Type) (t_a406U :: [a6989586621679950958]) (t_a406V :: [b6989586621679950959]) (t_a406W :: [c6989586621679950960]) (t_a406X :: [d6989586621679950961]) (t_a406Y :: [e6989586621679950962]) (t_a406Z :: [f6989586621679950963]) (t_a4070 :: [g6989586621679950964]) = ZipWith7 t_a406T t_a406U t_a406V t_a406W t_a406X t_a406Y t_a406Z t_a4070
data UnlinesSym0 (l_a1Vz3 :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1Vz2 :: [Symbol]) = Unlines t_a1Vz2
data UnwordsSym0 (l_a1VyH :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1VyG :: [Symbol]) = Unwords t_a1VyG
data NubSym0 (l_a1VFL :: TyFun [a6989586621679459190] [a6989586621679459190])
type NubSym1 (t_a1VFK :: [a6989586621679459190]) = Nub t_a1VFK
data NubBySym0 (l_a1Vka :: TyFun (TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (TyFun [a6989586621679459189] [a6989586621679459189] -> Type))
data NubBySym1 (l_a1Vk8 :: TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (l_a1Vk7 :: TyFun [a6989586621679459189] [a6989586621679459189])
type NubBySym2 (t_a1Vk5 :: TyFun a6989586621679459189 (TyFun a6989586621679459189 Bool -> Type) -> Type) (t_a1Vk6 :: [a6989586621679459189]) = NubBy t_a1Vk5 t_a1Vk6
data UnionSym0 (l_a1Vy6 :: TyFun [a6989586621679459186] (TyFun [a6989586621679459186] [a6989586621679459186] -> Type))
data UnionSym1 (l_a1Vy4 :: [a6989586621679459186]) (l_a1Vy3 :: TyFun [a6989586621679459186] [a6989586621679459186])
type UnionSym2 (t_a1Vy1 :: [a6989586621679459186]) (t_a1Vy2 :: [a6989586621679459186]) = Union t_a1Vy1 t_a1Vy2
data UnionBySym0 (l_a1VxP :: TyFun (TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (TyFun [a6989586621679459187] (TyFun [a6989586621679459187] [a6989586621679459187] -> Type) -> Type))
data UnionBySym1 (l_a1VxN :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (l_a1VxM :: TyFun [a6989586621679459187] (TyFun [a6989586621679459187] [a6989586621679459187] -> Type))
data UnionBySym2 (l_a1VxJ :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (l_a1VxK :: [a6989586621679459187]) (l_a1VxI :: TyFun [a6989586621679459187] [a6989586621679459187])
type UnionBySym3 (t_a1VxF :: TyFun a6989586621679459187 (TyFun a6989586621679459187 Bool -> Type) -> Type) (t_a1VxG :: [a6989586621679459187]) (t_a1VxH :: [a6989586621679459187]) = UnionBy t_a1VxF t_a1VxG t_a1VxH
data GenericLengthSym0 (l_a1VjI :: TyFun [a6989586621679459185] i6989586621679459184)
type GenericLengthSym1 (t_a1VjH :: [a6989586621679459185]) = GenericLength t_a1VjH
data GenericTakeSym0 (l_a406N :: TyFun i6989586621679950956 (TyFun [a6989586621679950957] [a6989586621679950957] -> Type))
data GenericTakeSym1 (l_a406L :: i6989586621679950956) (l_a406K :: TyFun [a6989586621679950957] [a6989586621679950957])
type GenericTakeSym2 (t_a406I :: i6989586621679950956) (t_a406J :: [a6989586621679950957]) = GenericTake t_a406I t_a406J
data GenericDropSym0 (l_a406y :: TyFun i6989586621679950954 (TyFun [a6989586621679950955] [a6989586621679950955] -> Type))
data GenericDropSym1 (l_a406w :: i6989586621679950954) (l_a406v :: TyFun [a6989586621679950955] [a6989586621679950955])
type GenericDropSym2 (t_a406t :: i6989586621679950954) (t_a406u :: [a6989586621679950955]) = GenericDrop t_a406t t_a406u
data GenericSplitAtSym0 (l_a406j :: TyFun i6989586621679950952 (TyFun [a6989586621679950953] ([a6989586621679950953], [a6989586621679950953]) -> Type))
data GenericSplitAtSym1 (l_a406h :: i6989586621679950952) (l_a406g :: TyFun [a6989586621679950953] ([a6989586621679950953], [a6989586621679950953]))
type GenericSplitAtSym2 (t_a406e :: i6989586621679950952) (t_a406f :: [a6989586621679950953]) = GenericSplitAt t_a406e t_a406f
data GenericIndexSym0 (l_a4064 :: TyFun [a6989586621679950951] (TyFun i6989586621679950950 a6989586621679950951 -> Type))
data GenericIndexSym1 (l_a4062 :: [a6989586621679950951]) (l_a4061 :: TyFun i6989586621679950950 a6989586621679950951)
type GenericIndexSym2 (t_a405Z :: [a6989586621679950951]) (t_a4060 :: i6989586621679950950) = GenericIndex t_a405Z t_a4060
data GenericReplicateSym0 (l_a405P :: TyFun i6989586621679950948 (TyFun a6989586621679950949 [a6989586621679950949] -> Type))
data GenericReplicateSym1 (l_a405N :: i6989586621679950948) (l_a405M :: TyFun a6989586621679950949 [a6989586621679950949])
type GenericReplicateSym2 (t_a405K :: i6989586621679950948) (t_a405L :: a6989586621679950949) = GenericReplicate t_a405K t_a405L
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_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
type (++@#@$$$) (t_a1N2N :: [a6989586621679436421]) (t_a1N2O :: [a6989586621679436421]) = (++) t_a1N2N t_a1N2O
type OtherwiseSym0 = Otherwise
data IdSym0 (l_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data ($!@#@$) (l_a1N0W :: TyFun (TyFun a6989586621679436407 b6989586621679436408 -> Type) (TyFun a6989586621679436407 b6989586621679436408 -> Type))
data ($!@#@$$) (l_a1N0U :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (l_a1N0T :: TyFun a6989586621679436407 b6989586621679436408)
type ($!@#@$$$) (t_a1N0R :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (t_a1N0S :: a6989586621679436407) = ($!) t_a1N0R t_a1N0S
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
type FlipSym3 (t_a1N1l :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (t_a1N1m :: b6989586621679436413) (t_a1N1n :: a6989586621679436412) = Flip t_a1N1l t_a1N1m t_a1N1n
data UntilSym0 (l_a46tr :: TyFun (TyFun a6989586621679987975 Bool -> Type) (TyFun (TyFun a6989586621679987975 a6989586621679987975 -> Type) (TyFun a6989586621679987975 a6989586621679987975 -> Type) -> Type))
data UntilSym1 (l_a46tp :: TyFun a6989586621679987975 Bool -> Type) (l_a46to :: TyFun (TyFun a6989586621679987975 a6989586621679987975 -> Type) (TyFun a6989586621679987975 a6989586621679987975 -> Type))
data UntilSym2 (l_a46tl :: TyFun a6989586621679987975 Bool -> Type) (l_a46tm :: TyFun a6989586621679987975 a6989586621679987975 -> Type) (l_a46tk :: TyFun a6989586621679987975 a6989586621679987975)
type UntilSym3 (t_a46th :: TyFun a6989586621679987975 Bool -> Type) (t_a46ti :: TyFun a6989586621679987975 a6989586621679987975 -> Type) (t_a46tj :: a6989586621679987975) = Until t_a46th t_a46ti t_a46tj
data AsTypeOfSym0 (l_a1N2C :: TyFun a6989586621679436411 (TyFun a6989586621679436411 a6989586621679436411 -> Type))
data AsTypeOfSym1 (l_a1N2A :: a6989586621679436411) (l_a1N2z :: TyFun a6989586621679436411 a6989586621679436411)
type AsTypeOfSym2 (t_a1N2x :: a6989586621679436411) (t_a1N2y :: a6989586621679436411) = AsTypeOf t_a1N2x t_a1N2y
data SeqSym0 (l_a1N0M :: TyFun a6989586621679436405 (TyFun b6989586621679436406 b6989586621679436406 -> Type))
data SeqSym1 (l_a1N0K :: a6989586621679436405) (l_a1N0J :: TyFun b6989586621679436406 b6989586621679436406)
type SeqSym2 (t_a1N0H :: a6989586621679436405) (t_a1N0I :: b6989586621679436406) = Seq t_a1N0H t_a1N0I
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.Let6989586621679988003GoSym0
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679988003GoSym1
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679988003GoSym2
instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.Promotion.Prelude.Base.Let6989586621679988003GoSym3


-- | 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_a1IzS -> (a_a1IzT -> b_a1IzS) -> Maybe a_a1IzT -> b_a1IzS
either_ :: (a_a3Ua1 -> c_a3Ua2) -> (b_a3Ua3 -> c_a3Ua2) -> Either a_a3Ua1 b_a3Ua3 -> c_a3Ua2

-- | (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_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
type MaxBoundSym0 = MaxBound
type MinBoundSym0 = MinBound
class PEnum (a_a3BFG :: Type) where {
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type family EnumFromTo (arg_a3BPq :: a_a3BFG) (arg_a3BPr :: a_a3BFG) :: [a_a3BFG];
    type family EnumFromThenTo (arg_a3BPz :: a_a3BFG) (arg_a3BPA :: a_a3BFG) (arg_a3BPB :: a_a3BFG) :: [a_a3BFG];
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
data EnumFromThenToSym0 (l_a3BPM :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BPK :: a6989586621679869588) (l_a3BPJ :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromThenToSym2 (l_a3BPG :: a6989586621679869588) (l_a3BPH :: a6989586621679869588) (l_a3BPF :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromThenToSym3 (t_a3BPC :: a6989586621679869588) (t_a3BPD :: a6989586621679869588) (t_a3BPE :: a6989586621679869588) = EnumFromThenTo t_a3BPC t_a3BPD t_a3BPE
data EnumFromToSym0 (l_a3BPx :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromToSym1 (l_a3BPv :: a6989586621679869588) (l_a3BPu :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromToSym2 (t_a3BPs :: a6989586621679869588) (t_a3BPt :: a6989586621679869588) = EnumFromTo t_a3BPs t_a3BPt
data FromEnumSym0 (l_a3BPo :: TyFun a6989586621679869588 Nat)
type FromEnumSym1 (t_a3BPn :: a6989586621679869588) = FromEnum t_a3BPn
data ToEnumSym0 (l_a3BPk :: TyFun Nat a6989586621679869588)
type ToEnumSym1 (t_a3BPj :: Nat) = ToEnum t_a3BPj

-- | Exponentiation of type-level naturals.
class PShow (a_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}

-- | 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_a1eck :: TyFun Bool Bool)
type NotSym1 (t_a1ecj :: Bool) = Not t_a1ecj
data (&&@#@$) (l_a1e6e :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1e6c :: Bool) (l_a1e6b :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1e69 :: Bool) (t_a1e6a :: Bool) = (&&) t_a1e69 t_a1e6a
data (||@#@$) (l_a1e9q :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e9o :: Bool) (l_a1e9n :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e9l :: Bool) (t_a1e9m :: Bool) = (||) t_a1e9l t_a1e9m
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a12OA :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Oz :: a3530822107858468865) = Just t_a12Oz
data Maybe_Sym0 (l_a1IAk :: TyFun b6989586621679419480 (TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type) -> Type))
data Maybe_Sym1 (l_a1IAi :: b6989586621679419480) (l_a1IAh :: TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type))
data Maybe_Sym2 (l_a1IAe :: b6989586621679419480) (l_a1IAf :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (l_a1IAd :: TyFun (Maybe a6989586621679419481) b6989586621679419480)
type Maybe_Sym3 (t_a1IAa :: b6989586621679419480) (t_a1IAb :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (t_a1IAc :: Maybe a6989586621679419481) = Maybe_ t_a1IAa t_a1IAb t_a1IAc
data LeftSym0 (l_a12Pc :: TyFun a6989586621679083190 (Either a6989586621679083190 b6989586621679083191))
type LeftSym1 (t_a12Pb :: a6989586621679083190) = Left t_a12Pb
data RightSym0 (l_a12Pf :: TyFun b6989586621679083191 (Either a6989586621679083190 b6989586621679083191))
type RightSym1 (t_a12Pe :: b6989586621679083191) = Right t_a12Pe
data Either_Sym0 (l_a3UaL :: TyFun (TyFun a6989586621679940661 c6989586621679940662 -> Type) (TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type) -> Type))
data Either_Sym1 (l_a3UaJ :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaI :: TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type))
data Either_Sym2 (l_a3UaF :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaG :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (l_a3UaE :: TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662)
type Either_Sym3 (t_a3UaB :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (t_a3UaC :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (t_a3UaD :: Either a6989586621679940661 b6989586621679940663) = Either_ t_a3UaB t_a3UaC t_a3UaD
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data FstSym0 (l_a1cZK :: TyFun (a6989586621679297966, b6989586621679297967) a6989586621679297966)
type FstSym1 (t_a1cZJ :: (a6989586621679297966, b6989586621679297967)) = Fst t_a1cZJ
data SndSym0 (l_a1cZF :: TyFun (a6989586621679297964, b6989586621679297965) b6989586621679297965)
type SndSym1 (t_a1cZE :: (a6989586621679297964, b6989586621679297965)) = Snd t_a1cZE
data CurrySym0 (l_a1cZw :: TyFun (TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type) -> Type))
data CurrySym1 (l_a1cZu :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZt :: TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type))
data CurrySym2 (l_a1cZq :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZr :: a6989586621679297961) (l_a1cZp :: TyFun b6989586621679297962 c6989586621679297963)
type CurrySym3 (t_a1cZm :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (t_a1cZn :: a6989586621679297961) (t_a1cZo :: b6989586621679297962) = Curry t_a1cZm t_a1cZn t_a1cZo
data UncurrySym0 (l_a1cZT :: TyFun (TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960 -> Type))
data UncurrySym1 (l_a1cZR :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (l_a1cZQ :: TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960)
type UncurrySym2 (t_a1cZO :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (t_a1cZP :: (a6989586621679297958, b6989586621679297959)) = Uncurry t_a1cZO t_a1cZP
data ErrorSym0 (l_a1Cb7 :: TyFun k06989586621679393946 k6989586621679393947)
type ErrorSym1 (t_a1Cb6 :: k06989586621679393946) = Error t_a1Cb6
type UndefinedSym0 = Undefined
data (^@#@$) (l_a1CfL :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1CfJ :: Nat) (l_a1CfI :: TyFun Nat Nat)
type (^@#@$$$) (t_a1CfG :: Nat) (t_a1CfH :: Nat) = (^) t_a1CfG t_a1CfH
data ShowsPrecSym0 (l_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data Show_Sym0 (l_a2SEL :: TyFun a6989586621679694510 Symbol)
type Show_Sym1 (t_a2SEK :: a6989586621679694510) = Show_ t_a2SEK
data ShowListSym0 (l_a2SEU :: TyFun [a6989586621679694510] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SES :: [a6989586621679694510]) (l_a2SER :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SEP :: [a6989586621679694510]) (t_a2SEQ :: Symbol) = ShowList t_a2SEP t_a2SEQ
data (<>@#@$) l_a1CjE
data (<>@#@$$) (l_a1CjC :: Symbol) l_a1CjB
type (<>@#@$$$) (t_a1Cjz :: Symbol) (t_a1CjA :: Symbol) = (<>) t_a1Cjz t_a1CjA
data ShowsSym0 (l_a2SEm :: TyFun a6989586621679694495 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2SEk :: a6989586621679694495) (l_a2SEj :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2SEh :: a6989586621679694495) (t_a2SEi :: Symbol) = Shows t_a2SEh t_a2SEi
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data IdSym0 (l_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data ($!@#@$) (l_a1N0W :: TyFun (TyFun a6989586621679436407 b6989586621679436408 -> Type) (TyFun a6989586621679436407 b6989586621679436408 -> Type))
data ($!@#@$$) (l_a1N0U :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (l_a1N0T :: TyFun a6989586621679436407 b6989586621679436408)
type ($!@#@$$$) (t_a1N0R :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (t_a1N0S :: a6989586621679436407) = ($!) t_a1N0R t_a1N0S
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
data AsTypeOfSym0 (l_a1N2C :: TyFun a6989586621679436411 (TyFun a6989586621679436411 a6989586621679436411 -> Type))
data AsTypeOfSym1 (l_a1N2A :: a6989586621679436411) (l_a1N2z :: TyFun a6989586621679436411 a6989586621679436411)
type AsTypeOfSym2 (t_a1N2x :: a6989586621679436411) (t_a1N2y :: a6989586621679436411) = AsTypeOf t_a1N2x t_a1N2y
data SeqSym0 (l_a1N0M :: TyFun a6989586621679436405 (TyFun b6989586621679436406 b6989586621679436406 -> Type))
data SeqSym1 (l_a1N0K :: a6989586621679436405) (l_a1N0J :: TyFun b6989586621679436406 b6989586621679436406)
type SeqSym2 (t_a1N0H :: a6989586621679436405) (t_a1N0I :: b6989586621679436406) = Seq t_a1N0H t_a1N0I
data (:@#@$) (l_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ
type NilSym0 = '[]
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data ReverseSym0 (l_a1W41 :: TyFun [a6989586621679459307] [a6989586621679459307])
type ReverseSym1 (t_a1W40 :: [a6989586621679459307]) = Reverse t_a1W40
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data HeadSym0 (l_a1W6h :: TyFun [a6989586621679459312] a6989586621679459312)
type HeadSym1 (t_a1W6g :: [a6989586621679459312]) = Head t_a1W6g
data LastSym0 (l_a1W6a :: TyFun [a6989586621679459311] a6989586621679459311)
type LastSym1 (t_a1W69 :: [a6989586621679459311]) = Last t_a1W69
data TailSym0 (l_a1W65 :: TyFun [a6989586621679459310] [a6989586621679459310])
type TailSym1 (t_a1W64 :: [a6989586621679459310]) = Tail t_a1W64
data InitSym0 (l_a1W5B :: TyFun [a6989586621679459309] [a6989586621679459309])
type InitSym1 (t_a1W5A :: [a6989586621679459309]) = Init t_a1W5A
data NullSym0 (l_a1W4A :: TyFun [a6989586621679459308] Bool)
type NullSym1 (t_a1W4z :: [a6989586621679459308]) = Null t_a1W4z
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
data Foldl1Sym0 (l_a1VSj :: TyFun (TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (TyFun [a6989586621679459298] a6989586621679459298 -> Type))
data Foldl1Sym1 (l_a1VSh :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (l_a1VSg :: TyFun [a6989586621679459298] a6989586621679459298)
type Foldl1Sym2 (t_a1VSe :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (t_a1VSf :: [a6989586621679459298]) = Foldl1 t_a1VSe t_a1VSf
data FoldrSym0 (l_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data Foldr1Sym0 (l_a1VRM :: TyFun (TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (TyFun [a6989586621679459296] a6989586621679459296 -> Type))
data Foldr1Sym1 (l_a1VRK :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (l_a1VRJ :: TyFun [a6989586621679459296] a6989586621679459296)
type Foldr1Sym2 (t_a1VRH :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (t_a1VRI :: [a6989586621679459296]) = Foldr1 t_a1VRH t_a1VRI
data ConcatSym0 (l_a1VRD :: TyFun [[a6989586621679459295]] [a6989586621679459295])
type ConcatSym1 (t_a1VRC :: [[a6989586621679459295]]) = Concat t_a1VRC
data ConcatMapSym0 (l_a1VRs :: TyFun (TyFun a6989586621679459293 [b6989586621679459294] -> Type) (TyFun [a6989586621679459293] [b6989586621679459294] -> Type))
data ConcatMapSym1 (l_a1VRq :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (l_a1VRp :: TyFun [a6989586621679459293] [b6989586621679459294])
type ConcatMapSym2 (t_a1VRn :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (t_a1VRo :: [a6989586621679459293]) = ConcatMap t_a1VRn t_a1VRo
data MaximumBySym0 (l_a1VSv :: TyFun (TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (TyFun [a6989586621679459224] a6989586621679459224 -> Type))
data MaximumBySym1 (l_a1VSt :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (l_a1VSs :: TyFun [a6989586621679459224] a6989586621679459224)
type MaximumBySym2 (t_a1VSq :: TyFun a6989586621679459224 (TyFun a6989586621679459224 Ordering -> Type) -> Type) (t_a1VSr :: [a6989586621679459224]) = MaximumBy t_a1VSq t_a1VSr
data MinimumBySym0 (l_a1VTR :: TyFun (TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (TyFun [a6989586621679459223] a6989586621679459223 -> Type))
data MinimumBySym1 (l_a1VTP :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (l_a1VTO :: TyFun [a6989586621679459223] a6989586621679459223)
type MinimumBySym2 (t_a1VTM :: TyFun a6989586621679459223 (TyFun a6989586621679459223 Ordering -> Type) -> Type) (t_a1VTN :: [a6989586621679459223]) = MinimumBy t_a1VTM t_a1VTN
data AndSym0 (l_a1VRi :: TyFun [Bool] Bool)
type AndSym1 (t_a1VRh :: [Bool]) = And t_a1VRh
data OrSym0 (l_a1VRc :: TyFun [Bool] Bool)
type OrSym1 (t_a1VRb :: [Bool]) = Or t_a1VRb
data AnySym0 (l_a1VOI :: TyFun (TyFun a6989586621679459291 Bool -> Type) (TyFun [a6989586621679459291] Bool -> Type))
data AnySym1 (l_a1VOG :: TyFun a6989586621679459291 Bool -> Type) (l_a1VOF :: TyFun [a6989586621679459291] Bool)
type AnySym2 (t_a1VOD :: TyFun a6989586621679459291 Bool -> Type) (t_a1VOE :: [a6989586621679459291]) = Any t_a1VOD t_a1VOE
data AllSym0 (l_a1VR4 :: TyFun (TyFun a6989586621679459292 Bool -> Type) (TyFun [a6989586621679459292] Bool -> Type))
data AllSym1 (l_a1VR2 :: TyFun a6989586621679459292 Bool -> Type) (l_a1VR1 :: TyFun [a6989586621679459292] Bool)
type AllSym2 (t_a1VQZ :: TyFun a6989586621679459292 Bool -> Type) (t_a1VR0 :: [a6989586621679459292]) = All t_a1VQZ t_a1VR0
data ScanlSym0 (l_a1VOe :: TyFun (TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type) -> Type))
data ScanlSym1 (l_a1VOc :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VOb :: TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type))
data ScanlSym2 (l_a1VO8 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VO9 :: b6989586621679459289) (l_a1VO7 :: TyFun [a6989586621679459290] [b6989586621679459289])
type ScanlSym3 (t_a1VO4 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (t_a1VO5 :: b6989586621679459289) (t_a1VO6 :: [a6989586621679459290]) = Scanl t_a1VO4 t_a1VO5 t_a1VO6
data Scanl1Sym0 (l_a1VOw :: TyFun (TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (TyFun [a6989586621679459288] [a6989586621679459288] -> Type))
data Scanl1Sym1 (l_a1VOu :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (l_a1VOt :: TyFun [a6989586621679459288] [a6989586621679459288])
type Scanl1Sym2 (t_a1VOr :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (t_a1VOs :: [a6989586621679459288]) = Scanl1 t_a1VOr t_a1VOs
data ScanrSym0 (l_a1VNw :: TyFun (TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type) -> Type))
data ScanrSym1 (l_a1VNu :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNt :: TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type))
data ScanrSym2 (l_a1VNq :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNr :: b6989586621679459287) (l_a1VNp :: TyFun [a6989586621679459286] [b6989586621679459287])
type ScanrSym3 (t_a1VNm :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (t_a1VNn :: b6989586621679459287) (t_a1VNo :: [a6989586621679459286]) = Scanr t_a1VNm t_a1VNn t_a1VNo
data Scanr1Sym0 (l_a1VMw :: TyFun (TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (TyFun [a6989586621679459285] [a6989586621679459285] -> Type))
data Scanr1Sym1 (l_a1VMu :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (l_a1VMt :: TyFun [a6989586621679459285] [a6989586621679459285])
type Scanr1Sym2 (t_a1VMr :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (t_a1VMs :: [a6989586621679459285]) = Scanr1 t_a1VMr t_a1VMs
data ElemSym0 (l_a1VFD :: TyFun a6989586621679459271 (TyFun [a6989586621679459271] Bool -> Type))
data ElemSym1 (l_a1VFB :: a6989586621679459271) (l_a1VFA :: TyFun [a6989586621679459271] Bool)
type ElemSym2 (t_a1VFy :: a6989586621679459271) (t_a1VFz :: [a6989586621679459271]) = Elem t_a1VFy t_a1VFz
data NotElemSym0 (l_a1VFr :: TyFun a6989586621679459270 (TyFun [a6989586621679459270] Bool -> Type))
data NotElemSym1 (l_a1VFp :: a6989586621679459270) (l_a1VFo :: TyFun [a6989586621679459270] Bool)
type NotElemSym2 (t_a1VFm :: a6989586621679459270) (t_a1VFn :: [a6989586621679459270]) = NotElem t_a1VFm t_a1VFn
data ZipSym0 (l_a1VDJ :: TyFun [a6989586621679459268] (TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)] -> Type))
data ZipSym1 (l_a1VDH :: [a6989586621679459268]) (l_a1VDG :: TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)])
type ZipSym2 (t_a1VDE :: [a6989586621679459268]) (t_a1VDF :: [b6989586621679459269]) = Zip t_a1VDE t_a1VDF
data Zip3Sym0 (l_a1VDt :: TyFun [a6989586621679459265] (TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type) -> Type))
data Zip3Sym1 (l_a1VDr :: [a6989586621679459265]) (l_a1VDq :: TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type))
data Zip3Sym2 (l_a1VDn :: [a6989586621679459265]) (l_a1VDo :: [b6989586621679459266]) (l_a1VDm :: TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)])
type Zip3Sym3 (t_a1VDj :: [a6989586621679459265]) (t_a1VDk :: [b6989586621679459266]) (t_a1VDl :: [c6989586621679459267]) = Zip3 t_a1VDj t_a1VDk t_a1VDl
data ZipWithSym0 (l_a1VD9 :: TyFun (TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type) -> Type))
data ZipWithSym1 (l_a1VD7 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD6 :: TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type))
data ZipWithSym2 (l_a1VD3 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD4 :: [a6989586621679459262]) (l_a1VD2 :: TyFun [b6989586621679459263] [c6989586621679459264])
type ZipWithSym3 (t_a1VCZ :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (t_a1VD0 :: [a6989586621679459262]) (t_a1VD1 :: [b6989586621679459263]) = ZipWith t_a1VCZ t_a1VD0 t_a1VD1
data ZipWith3Sym0 (l_a1VCM :: TyFun (TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1VCK :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCJ :: TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type))
data ZipWith3Sym2 (l_a1VCG :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCH :: [a6989586621679459258]) (l_a1VCF :: TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type))
data ZipWith3Sym3 (l_a1VCB :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCC :: [a6989586621679459258]) (l_a1VCD :: [b6989586621679459259]) (l_a1VCA :: TyFun [c6989586621679459260] [d6989586621679459261])
data UnzipSym0 (l_a1VC3 :: TyFun [(a6989586621679459256, b6989586621679459257)] ([a6989586621679459256], [b6989586621679459257]))
type UnzipSym1 (t_a1VC2 :: [(a6989586621679459256, b6989586621679459257)]) = Unzip t_a1VC2
data UnlinesSym0 (l_a1Vz3 :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1Vz2 :: [Symbol]) = Unlines t_a1Vz2
data UnwordsSym0 (l_a1VyH :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1VyG :: [Symbol]) = Unwords t_a1VyG
data UntilSym0 (l_a46tr :: TyFun (TyFun a6989586621679987975 Bool -> Type) (TyFun (TyFun a6989586621679987975 a6989586621679987975 -> Type) (TyFun a6989586621679987975 a6989586621679987975 -> Type) -> Type))
data UntilSym1 (l_a46tp :: TyFun a6989586621679987975 Bool -> Type) (l_a46to :: TyFun (TyFun a6989586621679987975 a6989586621679987975 -> Type) (TyFun a6989586621679987975 a6989586621679987975 -> Type))
data UntilSym2 (l_a46tl :: TyFun a6989586621679987975 Bool -> Type) (l_a46tm :: TyFun a6989586621679987975 a6989586621679987975 -> Type) (l_a46tk :: TyFun a6989586621679987975 a6989586621679987975)
type UntilSym3 (t_a46th :: TyFun a6989586621679987975 Bool -> Type) (t_a46ti :: TyFun a6989586621679987975 a6989586621679987975 -> Type) (t_a46tj :: a6989586621679987975) = Until t_a46th t_a46ti t_a46tj
data LengthSym0 (l_a1VlW :: TyFun [a6989586621679459194] Nat)
type LengthSym1 (t_a1VlV :: [a6989586621679459194]) = Length t_a1VlV
data SumSym0 (l_a1Vmp :: TyFun [a6989586621679459196] a6989586621679459196)
type SumSym1 (t_a1Vmo :: [a6989586621679459196]) = Sum t_a1Vmo
data ProductSym0 (l_a1Vm1 :: TyFun [a6989586621679459195] a6989586621679459195)
type ProductSym1 (t_a1Vm0 :: [a6989586621679459195]) = Product t_a1Vm0
data ReplicateSym0 (l_a1VlE :: TyFun Nat (TyFun a6989586621679459193 [a6989586621679459193] -> Type))
data ReplicateSym1 (l_a1VlC :: Nat) (l_a1VlB :: TyFun a6989586621679459193 [a6989586621679459193])
type ReplicateSym2 (t_a1Vlz :: Nat) (t_a1VlA :: a6989586621679459193) = Replicate t_a1Vlz t_a1VlA
data TakeSym0 (l_a1VoJ :: TyFun Nat (TyFun [a6989586621679459209] [a6989586621679459209] -> Type))
data TakeSym1 (l_a1VoH :: Nat) (l_a1VoG :: TyFun [a6989586621679459209] [a6989586621679459209])
type TakeSym2 (t_a1VoE :: Nat) (t_a1VoF :: [a6989586621679459209]) = Take t_a1VoE t_a1VoF
data DropSym0 (l_a1Voh :: TyFun Nat (TyFun [a6989586621679459208] [a6989586621679459208] -> Type))
data DropSym1 (l_a1Vof :: Nat) (l_a1Voe :: TyFun [a6989586621679459208] [a6989586621679459208])
type DropSym2 (t_a1Voc :: Nat) (t_a1Vod :: [a6989586621679459208]) = Drop t_a1Voc t_a1Vod
data SplitAtSym0 (l_a1Vpb :: TyFun Nat (TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]) -> Type))
data SplitAtSym1 (l_a1Vp9 :: Nat) (l_a1Vp8 :: TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]))
type SplitAtSym2 (t_a1Vp6 :: Nat) (t_a1Vp7 :: [a6989586621679459207]) = SplitAt t_a1Vp6 t_a1Vp7
data TakeWhileSym0 (l_a1Vu7 :: TyFun (TyFun a6989586621679459214 Bool -> Type) (TyFun [a6989586621679459214] [a6989586621679459214] -> Type))
data TakeWhileSym1 (l_a1Vu5 :: TyFun a6989586621679459214 Bool -> Type) (l_a1Vu4 :: TyFun [a6989586621679459214] [a6989586621679459214])
type TakeWhileSym2 (t_a1Vu2 :: TyFun a6989586621679459214 Bool -> Type) (t_a1Vu3 :: [a6989586621679459214]) = TakeWhile t_a1Vu2 t_a1Vu3
data DropWhileSym0 (l_a1Vts :: TyFun (TyFun a6989586621679459213 Bool -> Type) (TyFun [a6989586621679459213] [a6989586621679459213] -> Type))
data DropWhileSym1 (l_a1Vtq :: TyFun a6989586621679459213 Bool -> Type) (l_a1Vtp :: TyFun [a6989586621679459213] [a6989586621679459213])
type DropWhileSym2 (t_a1Vtn :: TyFun a6989586621679459213 Bool -> Type) (t_a1Vto :: [a6989586621679459213]) = DropWhile t_a1Vtn t_a1Vto
data SpanSym0 (l_a1VqR :: TyFun (TyFun a6989586621679459211 Bool -> Type) (TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]) -> Type))
data SpanSym1 (l_a1VqP :: TyFun a6989586621679459211 Bool -> Type) (l_a1VqO :: TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]))
type SpanSym2 (t_a1VqM :: TyFun a6989586621679459211 Bool -> Type) (t_a1VqN :: [a6989586621679459211]) = Span t_a1VqM t_a1VqN
data BreakSym0 (l_a1Vpm :: TyFun (TyFun a6989586621679459210 Bool -> Type) (TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]) -> Type))
data BreakSym1 (l_a1Vpk :: TyFun a6989586621679459210 Bool -> Type) (l_a1Vpj :: TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]))
type BreakSym2 (t_a1Vph :: TyFun a6989586621679459210 Bool -> Type) (t_a1Vpi :: [a6989586621679459210]) = Break t_a1Vph t_a1Vpi
data LookupSym0 (l_a1VnH :: TyFun a6989586621679459199 (TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200) -> Type))
data LookupSym1 (l_a1VnF :: a6989586621679459199) (l_a1VnE :: TyFun [(a6989586621679459199, b6989586621679459200)] (Maybe b6989586621679459200))
type LookupSym2 (t_a1VnC :: a6989586621679459199) (t_a1VnD :: [(a6989586621679459199, b6989586621679459200)]) = Lookup t_a1VnC t_a1VnD
data FilterSym0 (l_a1Vuz :: TyFun (TyFun a6989586621679459222 Bool -> Type) (TyFun [a6989586621679459222] [a6989586621679459222] -> Type))
data FilterSym1 (l_a1Vux :: TyFun a6989586621679459222 Bool -> Type) (l_a1Vuw :: TyFun [a6989586621679459222] [a6989586621679459222])
type FilterSym2 (t_a1Vuu :: TyFun a6989586621679459222 Bool -> Type) (t_a1Vuv :: [a6989586621679459222]) = Filter t_a1Vuu t_a1Vuv
data (!!@#@$) (l_a1Vlc :: TyFun [a6989586621679459191] (TyFun Nat a6989586621679459191 -> Type))
data (!!@#@$$) (l_a1Vla :: [a6989586621679459191]) (l_a1Vl9 :: TyFun Nat a6989586621679459191)
type (!!@#@$$$) (t_a1Vl7 :: [a6989586621679459191]) (t_a1Vl8 :: Nat) = (!!) t_a1Vl7 t_a1Vl8


-- | 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_aj5Q b_aj5R -> 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_a3AD7
sMinBound :: SBounded a_a3AD7 => Sing (MinBoundSym0 :: a_a3AD7)
sMaxBound :: SBounded a_a3AD7 => Sing (MaxBoundSym0 :: a_a3AD7)
class PBounded (a_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
type MaxBoundSym0 = MaxBound
type MinBoundSym0 = MinBound
class SEnum a_a3BFG
sToEnum :: forall (t_a3BTF :: Nat). SEnum a_a3BFG => Sing t_a3BTF -> Sing (Apply ToEnumSym0 t_a3BTF :: a_a3BFG)
sFromEnum :: forall (t_a3BTG :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTG -> Sing (Apply FromEnumSym0 t_a3BTG :: Nat)
sEnumFromTo :: forall (t_a3BTH :: a_a3BFG) (t_a3BTI :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTH -> Sing t_a3BTI -> Sing (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG])
sEnumFromThenTo :: forall (t_a3BTJ :: a_a3BFG) (t_a3BTK :: a_a3BFG) (t_a3BTL :: a_a3BFG). SEnum a_a3BFG => Sing t_a3BTJ -> Sing t_a3BTK -> Sing t_a3BTL -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG])
sEnumFromTo :: forall (t_a3BTH :: a_a3BFG) (t_a3BTI :: a_a3BFG). (SEnum a_a3BFG, (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG]) ~ Apply (Apply EnumFromTo_6989586621679870266Sym0 t_a3BTH) t_a3BTI) => Sing t_a3BTH -> Sing t_a3BTI -> Sing (Apply (Apply EnumFromToSym0 t_a3BTH) t_a3BTI :: [a_a3BFG])
sEnumFromThenTo :: forall (t_a3BTJ :: a_a3BFG) (t_a3BTK :: a_a3BFG) (t_a3BTL :: a_a3BFG). (SEnum a_a3BFG, (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG]) ~ Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 t_a3BTJ) t_a3BTK) t_a3BTL) => Sing t_a3BTJ -> Sing t_a3BTK -> Sing t_a3BTL -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t_a3BTJ) t_a3BTK) t_a3BTL :: [a_a3BFG])
class PEnum (a_a3BFG :: Type) where {
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type family EnumFromTo (arg_a3BPq :: a_a3BFG) (arg_a3BPr :: a_a3BFG) :: [a_a3BFG];
    type family EnumFromThenTo (arg_a3BPz :: a_a3BFG) (arg_a3BPA :: a_a3BFG) (arg_a3BPB :: a_a3BFG) :: [a_a3BFG];
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
data EnumFromThenToSym0 (l_a3BPM :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type))
data EnumFromThenToSym1 (l_a3BPK :: a6989586621679869588) (l_a3BPJ :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromThenToSym2 (l_a3BPG :: a6989586621679869588) (l_a3BPH :: a6989586621679869588) (l_a3BPF :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromThenToSym3 (t_a3BPC :: a6989586621679869588) (t_a3BPD :: a6989586621679869588) (t_a3BPE :: a6989586621679869588) = EnumFromThenTo t_a3BPC t_a3BPD t_a3BPE
data EnumFromToSym0 (l_a3BPx :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type))
data EnumFromToSym1 (l_a3BPv :: a6989586621679869588) (l_a3BPu :: TyFun a6989586621679869588 [a6989586621679869588])
type EnumFromToSym2 (t_a3BPs :: a6989586621679869588) (t_a3BPt :: a6989586621679869588) = EnumFromTo t_a3BPs t_a3BPt
data FromEnumSym0 (l_a3BPo :: TyFun a6989586621679869588 Nat)
type FromEnumSym1 (t_a3BPn :: a6989586621679869588) = FromEnum t_a3BPn
data ToEnumSym0 (l_a3BPk :: TyFun Nat a6989586621679869588)
type ToEnumSym1 (t_a3BPj :: Nat) = ToEnum t_a3BPj

-- | 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_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}
class SShow a_a2S7Q
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). SShow a_a2S7Q => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). SShow a_a2S7Q => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). SShow a_a2S7Q => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol)
sShowsPrec :: forall (t_a2SLs :: Nat) (t_a2SLt :: a_a2S7Q) (t_a2SLu :: Symbol). (SShow a_a2S7Q, (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol) ~ Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 t_a2SLs) t_a2SLt) t_a2SLu) => Sing t_a2SLs -> Sing t_a2SLt -> Sing t_a2SLu -> Sing (Apply (Apply (Apply ShowsPrecSym0 t_a2SLs) t_a2SLt) t_a2SLu :: Symbol)
sShow_ :: forall (t_a2SLv :: a_a2S7Q). (SShow a_a2S7Q, (Apply Show_Sym0 t_a2SLv :: Symbol) ~ Apply Show__6989586621679696602Sym0 t_a2SLv) => Sing t_a2SLv -> Sing (Apply Show_Sym0 t_a2SLv :: Symbol)
sShowList :: forall (t_a2SLw :: [a_a2S7Q]) (t_a2SLx :: Symbol). (SShow a_a2S7Q, (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: Symbol) ~ Apply (Apply ShowList_6989586621679696620Sym0 t_a2SLw) t_a2SLx) => Sing t_a2SLw -> Sing t_a2SLx -> Sing (Apply (Apply ShowListSym0 t_a2SLw) t_a2SLx :: 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_a2SL6 :: a_a2S7B) (t_a2SL7 :: Symbol). SShow a_a2S7B => Sing t_a2SL6 -> Sing t_a2SL7 -> Sing (Apply (Apply ShowsSym0 t_a2SL6) t_a2SL7 :: Symbol)
sShowChar :: forall (t_a2SKW :: Symbol) (t_a2SKX :: Symbol). Sing t_a2SKW -> Sing t_a2SKX -> Sing (Apply (Apply ShowCharSym0 t_a2SKW) t_a2SKX :: Symbol)
sShowString :: forall (t_a2SKT :: Symbol) (t_a2SKU :: Symbol). Sing t_a2SKT -> Sing t_a2SKU -> Sing (Apply (Apply ShowStringSym0 t_a2SKT) t_a2SKU :: Symbol)
sShowParen :: forall (t_a2SKY :: Bool) (t_a2SKZ :: TyFun Symbol Symbol -> Type) (t_a2SL0 :: Symbol). Sing t_a2SKY -> Sing t_a2SKZ -> Sing t_a2SL0 -> Sing (Apply (Apply (Apply ShowParenSym0 t_a2SKY) t_a2SKZ) t_a2SL0 :: Symbol)
sId :: forall (t_a1N48 :: a_a1MZ6). Sing t_a1N48 -> Sing (Apply IdSym0 t_a1N48 :: a_a1MZ6)
sConst :: forall (t_a1N44 :: a_a1MZ4) (t_a1N45 :: b_a1MZ5). Sing t_a1N44 -> Sing t_a1N45 -> Sing (Apply (Apply ConstSym0 t_a1N44) t_a1N45 :: a_a1MZ4)
(%.) :: forall (t_a1N41 :: TyFun b_a1MZ1 c_a1MZ2 -> Type) (t_a1N42 :: TyFun a_a1MZ3 b_a1MZ1 -> Type) (t_a1N43 :: a_a1MZ3). Sing t_a1N41 -> Sing t_a1N42 -> Sing t_a1N43 -> Sing (Apply (Apply (Apply (.@#@$) t_a1N41) t_a1N42) t_a1N43 :: c_a1MZ2)
infixr 9 %.
(%$) :: forall (t_a1N3W :: TyFun a_a1MYV b_a1MYW -> Type) (t_a1N3X :: a_a1MYV). Sing t_a1N3W -> Sing t_a1N3X -> Sing (Apply (Apply ($@#@$) t_a1N3W) t_a1N3X :: b_a1MYW)
infixr 0 %$
(%$!) :: forall (t_a1N3U :: TyFun a_a1MYT b_a1MYU -> Type) (t_a1N3V :: a_a1MYT). Sing t_a1N3U -> Sing t_a1N3V -> Sing (Apply (Apply ($!@#@$) t_a1N3U) t_a1N3V :: b_a1MYU)
infixr 0 %$!
sFlip :: forall (t_a1N3Y :: TyFun a_a1MYY (TyFun b_a1MYZ c_a1MZ0 -> Type) -> Type) (t_a1N3Z :: b_a1MYZ) (t_a1N40 :: a_a1MYY). Sing t_a1N3Y -> Sing t_a1N3Z -> Sing t_a1N40 -> Sing (Apply (Apply (Apply FlipSym0 t_a1N3Y) t_a1N3Z) t_a1N40 :: c_a1MZ0)
sAsTypeOf :: forall (t_a1N46 :: a_a1MYX) (t_a1N47 :: a_a1MYX). Sing t_a1N46 -> Sing t_a1N47 -> Sing (Apply (Apply AsTypeOfSym0 t_a1N46) t_a1N47 :: a_a1MYX)
sSeq :: forall (t_a1N3S :: a_a1MYR) (t_a1N3T :: b_a1MYS). Sing t_a1N3S -> Sing t_a1N3T -> Sing (Apply (Apply SeqSym0 t_a1N3S) t_a1N3T :: b_a1MYS)
infixr 0 `sSeq`
sMap :: forall (t_a1N4b :: TyFun a_a1MZ8 b_a1MZ9 -> Type) (t_a1N4c :: [a_a1MZ8]). Sing t_a1N4b -> Sing t_a1N4c -> Sing (Apply (Apply MapSym0 t_a1N4b) t_a1N4c :: [b_a1MZ9])
(%++) :: forall (t_a1N49 :: [a_a1MZ7]) (t_a1N4a :: [a_a1MZ7]). Sing t_a1N49 -> Sing t_a1N4a -> Sing (Apply (Apply (++@#@$) t_a1N49) t_a1N4a :: [a_a1MZ7])
infixr 5 %++
sHead :: forall (t_a1W9b :: [a_a1SWk]). Sing t_a1W9b -> Sing (Apply HeadSym0 t_a1W9b :: a_a1SWk)
sLast :: forall (t_a1W9a :: [a_a1SWj]). Sing t_a1W9a -> Sing (Apply LastSym0 t_a1W9a :: a_a1SWj)
sTail :: forall (t_a1W99 :: [a_a1SWi]). Sing t_a1W99 -> Sing (Apply TailSym0 t_a1W99 :: [a_a1SWi])
sInit :: forall (t_a1W98 :: [a_a1SWh]). Sing t_a1W98 -> Sing (Apply InitSym0 t_a1W98 :: [a_a1SWh])
sNull :: forall (t_a1W95 :: [a_a1SWg]). Sing t_a1W95 -> Sing (Apply NullSym0 t_a1W95 :: Bool)
sReverse :: forall (t_a1W92 :: [a_a1SWf]). Sing t_a1W92 -> Sing (Apply ReverseSym0 t_a1W92 :: [a_a1SWf])
sFoldl :: forall (t_a15O9 :: TyFun b_a15MN (TyFun a_a15MM b_a15MN -> Type) -> Type) (t_a15Oa :: b_a15MN) (t_a15Ob :: [a_a15MM]). Sing t_a15O9 -> Sing t_a15Oa -> Sing t_a15Ob -> Sing (Apply (Apply (Apply FoldlSym0 t_a15O9) t_a15Oa) t_a15Ob :: b_a15MN)
sFoldl1 :: forall (t_a1W8G :: TyFun a_a1SW6 (TyFun a_a1SW6 a_a1SW6 -> Type) -> Type) (t_a1W8H :: [a_a1SW6]). Sing t_a1W8G -> Sing t_a1W8H -> Sing (Apply (Apply Foldl1Sym0 t_a1W8G) t_a1W8H :: a_a1SW6)
sFoldr :: forall (t_a1N4d :: TyFun a_a1MZa (TyFun b_a1MZb b_a1MZb -> Type) -> Type) (t_a1N4e :: b_a1MZb) (t_a1N4f :: [a_a1MZa]). Sing t_a1N4d -> Sing t_a1N4e -> Sing t_a1N4f -> Sing (Apply (Apply (Apply FoldrSym0 t_a1N4d) t_a1N4e) t_a1N4f :: b_a1MZb)
sFoldr1 :: forall (t_a1W8E :: TyFun a_a1SW4 (TyFun a_a1SW4 a_a1SW4 -> Type) -> Type) (t_a1W8F :: [a_a1SW4]). Sing t_a1W8E -> Sing t_a1W8F -> Sing (Apply (Apply Foldr1Sym0 t_a1W8E) t_a1W8F :: a_a1SW4)
sAnd :: forall (t_a1W8A :: [Bool]). Sing t_a1W8A -> Sing (Apply AndSym0 t_a1W8A :: Bool)
sOr :: forall (t_a1W8z :: [Bool]). Sing t_a1W8z -> Sing (Apply OrSym0 t_a1W8z :: Bool)
sAny :: forall (t_a1W8o :: TyFun a_a1SVZ Bool -> Type) (t_a1W8p :: [a_a1SVZ]). Sing t_a1W8o -> Sing t_a1W8p -> Sing (Apply (Apply AnySym0 t_a1W8o) t_a1W8p :: Bool)
sAll :: forall (t_a1W8x :: TyFun a_a1SW0 Bool -> Type) (t_a1W8y :: [a_a1SW0]). Sing t_a1W8x -> Sing t_a1W8y -> Sing (Apply (Apply AllSym0 t_a1W8x) t_a1W8y :: Bool)
sConcat :: forall (t_a1W8D :: [[a_a1SW3]]). Sing t_a1W8D -> Sing (Apply ConcatSym0 t_a1W8D :: [a_a1SW3])
sConcatMap :: forall (t_a1W8B :: TyFun a_a1SW1 [b_a1SW2] -> Type) (t_a1W8C :: [a_a1SW1]). Sing t_a1W8B -> Sing t_a1W8C -> Sing (Apply (Apply ConcatMapSym0 t_a1W8B) t_a1W8C :: [b_a1SW2])
sScanl :: forall (t_a1W8j :: TyFun b_a1SVX (TyFun a_a1SVY b_a1SVX -> Type) -> Type) (t_a1W8k :: b_a1SVX) (t_a1W8l :: [a_a1SVY]). Sing t_a1W8j -> Sing t_a1W8k -> Sing t_a1W8l -> Sing (Apply (Apply (Apply ScanlSym0 t_a1W8j) t_a1W8k) t_a1W8l :: [b_a1SVX])
sScanl1 :: forall (t_a1W8m :: TyFun a_a1SVW (TyFun a_a1SVW a_a1SVW -> Type) -> Type) (t_a1W8n :: [a_a1SVW]). Sing t_a1W8m -> Sing t_a1W8n -> Sing (Apply (Apply Scanl1Sym0 t_a1W8m) t_a1W8n :: [a_a1SVW])
sScanr :: forall (t_a1W8g :: TyFun a_a1SVU (TyFun b_a1SVV b_a1SVV -> Type) -> Type) (t_a1W8h :: b_a1SVV) (t_a1W8i :: [a_a1SVU]). Sing t_a1W8g -> Sing t_a1W8h -> Sing t_a1W8i -> Sing (Apply (Apply (Apply ScanrSym0 t_a1W8g) t_a1W8h) t_a1W8i :: [b_a1SVV])
sScanr1 :: forall (t_a1W8e :: TyFun a_a1SVT (TyFun a_a1SVT a_a1SVT -> Type) -> Type) (t_a1W8f :: [a_a1SVT]). Sing t_a1W8e -> Sing t_a1W8f -> Sing (Apply (Apply Scanr1Sym0 t_a1W8e) t_a1W8f :: [a_a1SVT])
sReplicate :: forall (t_a1W6B :: Nat) (t_a1W6C :: a_a1SUp). Sing t_a1W6B -> Sing t_a1W6C -> Sing (Apply (Apply ReplicateSym0 t_a1W6B) t_a1W6C :: [a_a1SUp])
sTake :: forall (t_a1W6P :: Nat) (t_a1W6Q :: [a_a1SUF]). Sing t_a1W6P -> Sing t_a1W6Q -> Sing (Apply (Apply TakeSym0 t_a1W6P) t_a1W6Q :: [a_a1SUF])
sDrop :: forall (t_a1W6N :: Nat) (t_a1W6O :: [a_a1SUE]). Sing t_a1W6N -> Sing t_a1W6O -> Sing (Apply (Apply DropSym0 t_a1W6N) t_a1W6O :: [a_a1SUE])
sSplitAt :: forall (t_a1W6R :: Nat) (t_a1W6S :: [a_a1SUD]). Sing t_a1W6R -> Sing t_a1W6S -> Sing (Apply (Apply SplitAtSym0 t_a1W6R) t_a1W6S :: ([a_a1SUD], [a_a1SUD]))
sTakeWhile :: forall (t_a1W72 :: TyFun a_a1SUK Bool -> Type) (t_a1W73 :: [a_a1SUK]). Sing t_a1W72 -> Sing t_a1W73 -> Sing (Apply (Apply TakeWhileSym0 t_a1W72) t_a1W73 :: [a_a1SUK])
sSpan :: forall (t_a1W6V :: TyFun a_a1SUH Bool -> Type) (t_a1W6W :: [a_a1SUH]). Sing t_a1W6V -> Sing t_a1W6W -> Sing (Apply (Apply SpanSym0 t_a1W6V) t_a1W6W :: ([a_a1SUH], [a_a1SUH]))
sBreak :: forall (t_a1W6T :: TyFun a_a1SUG Bool -> Type) (t_a1W6U :: [a_a1SUG]). Sing t_a1W6T -> Sing t_a1W6U -> Sing (Apply (Apply BreakSym0 t_a1W6T) t_a1W6U :: ([a_a1SUG], [a_a1SUG]))
sElem :: forall (t_a1W7Z :: a_a1SVF) (t_a1W80 :: [a_a1SVF]). SEq a_a1SVF => Sing t_a1W7Z -> Sing t_a1W80 -> Sing (Apply (Apply ElemSym0 t_a1W7Z) t_a1W80 :: Bool)
infix 4 `sElem`
sNotElem :: forall (t_a1W7X :: a_a1SVE) (t_a1W7Y :: [a_a1SVE]). SEq a_a1SVE => Sing t_a1W7X -> Sing t_a1W7Y -> Sing (Apply (Apply NotElemSym0 t_a1W7X) t_a1W7Y :: Bool)
infix 4 `sNotElem`
sLookup :: forall (t_a1W6L :: a_a1SUv) (t_a1W6M :: [(a_a1SUv, b_a1SUw)]). SEq a_a1SUv => Sing t_a1W6L -> Sing t_a1W6M -> Sing (Apply (Apply LookupSym0 t_a1W6L) t_a1W6M :: Maybe b_a1SUw)
sZip :: forall (t_a1W7N :: [a_a1SVC]) (t_a1W7O :: [b_a1SVD]). Sing t_a1W7N -> Sing t_a1W7O -> Sing (Apply (Apply ZipSym0 t_a1W7N) t_a1W7O :: [(a_a1SVC, b_a1SVD)])
sZip3 :: forall (t_a1W7K :: [a_a1SVz]) (t_a1W7L :: [b_a1SVA]) (t_a1W7M :: [c_a1SVB]). Sing t_a1W7K -> Sing t_a1W7L -> Sing t_a1W7M -> Sing (Apply (Apply (Apply Zip3Sym0 t_a1W7K) t_a1W7L) t_a1W7M :: [(a_a1SVz, b_a1SVA, c_a1SVB)])
sZipWith :: forall (t_a1W7H :: TyFun a_a1SVw (TyFun b_a1SVx c_a1SVy -> Type) -> Type) (t_a1W7I :: [a_a1SVw]) (t_a1W7J :: [b_a1SVx]). Sing t_a1W7H -> Sing t_a1W7I -> Sing t_a1W7J -> Sing (Apply (Apply (Apply ZipWithSym0 t_a1W7H) t_a1W7I) t_a1W7J :: [c_a1SVy])
sZipWith3 :: forall (t_a1W7D :: TyFun a_a1SVs (TyFun b_a1SVt (TyFun c_a1SVu d_a1SVv -> Type) -> Type) -> Type) (t_a1W7E :: [a_a1SVs]) (t_a1W7F :: [b_a1SVt]) (t_a1W7G :: [c_a1SVu]). Sing t_a1W7D -> Sing t_a1W7E -> Sing t_a1W7F -> Sing t_a1W7G -> Sing (Apply (Apply (Apply (Apply ZipWith3Sym0 t_a1W7D) t_a1W7E) t_a1W7F) t_a1W7G :: [d_a1SVv])
sUnzip :: forall (t_a1W7C :: [(a_a1SVq, b_a1SVr)]). Sing t_a1W7C -> Sing (Apply UnzipSym0 t_a1W7C :: ([a_a1SVq], [b_a1SVr]))
sUnzip3 :: forall (t_a1W7B :: [(a_a1SVn, b_a1SVo, c_a1SVp)]). Sing t_a1W7B -> Sing (Apply Unzip3Sym0 t_a1W7B :: ([a_a1SVn], [b_a1SVo], [c_a1SVp]))
sUnlines :: forall (t_a1W7w :: [Symbol]). Sing t_a1W7w -> Sing (Apply UnlinesSym0 t_a1W7w :: Symbol)
sUnwords :: forall (t_a1W7v :: [Symbol]). Sing t_a1W7v -> Sing (Apply UnwordsSym0 t_a1W7v :: Symbol)
sMaybe_ :: forall (t_a1IAs :: b_a1IzS) (t_a1IAt :: TyFun a_a1IzT b_a1IzS -> Type) (t_a1IAu :: Maybe a_a1IzT). Sing t_a1IAs -> Sing t_a1IAt -> Sing t_a1IAu -> Sing (Apply (Apply (Apply Maybe_Sym0 t_a1IAs) t_a1IAt) t_a1IAu :: b_a1IzS)
sEither_ :: forall (t_a3UaU :: TyFun a_a3Ua1 c_a3Ua2 -> Type) (t_a3UaV :: TyFun b_a3Ua3 c_a3Ua2 -> Type) (t_a3UaW :: Either a_a3Ua1 b_a3Ua3). Sing t_a3UaU -> Sing t_a3UaV -> Sing t_a3UaW -> Sing (Apply (Apply (Apply Either_Sym0 t_a3UaU) t_a3UaV) t_a3UaW :: c_a3Ua2)
sFst :: forall (t_a1d04 :: (a_a1cXY, b_a1cXZ)). Sing t_a1d04 -> Sing (Apply FstSym0 t_a1d04 :: a_a1cXY)
sSnd :: forall (t_a1d03 :: (a_a1cXW, b_a1cXX)). Sing t_a1d03 -> Sing (Apply SndSym0 t_a1d03 :: b_a1cXX)
sCurry :: forall (t_a1d00 :: TyFun (a_a1cXT, b_a1cXU) c_a1cXV -> Type) (t_a1d01 :: a_a1cXT) (t_a1d02 :: b_a1cXU). Sing t_a1d00 -> Sing t_a1d01 -> Sing t_a1d02 -> Sing (Apply (Apply (Apply CurrySym0 t_a1d00) t_a1d01) t_a1d02 :: c_a1cXV)
sUncurry :: forall (t_a1d05 :: TyFun a_a1cXQ (TyFun b_a1cXR c_a1cXS -> Type) -> Type) (t_a1d06 :: (a_a1cXQ, b_a1cXR)). Sing t_a1d05 -> Sing t_a1d06 -> Sing (Apply (Apply UncurrySym0 t_a1d05) t_a1d06 :: c_a1cXS)

-- | (Kind) This is the kind of type-level symbols. Declared here because
--   class IP needs it
data Symbol
either_ :: (a_a3Ua1 -> c_a3Ua2) -> (b_a3Ua3 -> c_a3Ua2) -> Either a_a3Ua1 b_a3Ua3 -> c_a3Ua2
maybe_ :: b_a1IzS -> (a_a1IzT -> b_a1IzS) -> Maybe a_a1IzT -> b_a1IzS
bool_ :: a_a1dXJ -> a_a1dXJ -> Bool -> a_a1dXJ

-- | <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_a1eck :: TyFun Bool Bool)
type NotSym1 (t_a1ecj :: Bool) = Not t_a1ecj
data (&&@#@$) (l_a1e6e :: TyFun Bool (TyFun Bool Bool -> Type))
data (&&@#@$$) (l_a1e6c :: Bool) (l_a1e6b :: TyFun Bool Bool)
type (&&@#@$$$) (t_a1e69 :: Bool) (t_a1e6a :: Bool) = (&&) t_a1e69 t_a1e6a
data (||@#@$) (l_a1e9q :: TyFun Bool (TyFun Bool Bool -> Type))
data (||@#@$$) (l_a1e9o :: Bool) (l_a1e9n :: TyFun Bool Bool)
type (||@#@$$$) (t_a1e9l :: Bool) (t_a1e9m :: Bool) = (||) t_a1e9l t_a1e9m
type OtherwiseSym0 = Otherwise
type NothingSym0 = Nothing
data JustSym0 (l_a12OA :: TyFun a3530822107858468865 (Maybe a3530822107858468865))
type JustSym1 (t_a12Oz :: a3530822107858468865) = Just t_a12Oz
data Maybe_Sym0 (l_a1IAk :: TyFun b6989586621679419480 (TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type) -> Type))
data Maybe_Sym1 (l_a1IAi :: b6989586621679419480) (l_a1IAh :: TyFun (TyFun a6989586621679419481 b6989586621679419480 -> Type) (TyFun (Maybe a6989586621679419481) b6989586621679419480 -> Type))
data Maybe_Sym2 (l_a1IAe :: b6989586621679419480) (l_a1IAf :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (l_a1IAd :: TyFun (Maybe a6989586621679419481) b6989586621679419480)
type Maybe_Sym3 (t_a1IAa :: b6989586621679419480) (t_a1IAb :: TyFun a6989586621679419481 b6989586621679419480 -> Type) (t_a1IAc :: Maybe a6989586621679419481) = Maybe_ t_a1IAa t_a1IAb t_a1IAc
data LeftSym0 (l_a12Pc :: TyFun a6989586621679083190 (Either a6989586621679083190 b6989586621679083191))
type LeftSym1 (t_a12Pb :: a6989586621679083190) = Left t_a12Pb
data RightSym0 (l_a12Pf :: TyFun b6989586621679083191 (Either a6989586621679083190 b6989586621679083191))
type RightSym1 (t_a12Pe :: b6989586621679083191) = Right t_a12Pe
data Either_Sym0 (l_a3UaL :: TyFun (TyFun a6989586621679940661 c6989586621679940662 -> Type) (TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type) -> Type))
data Either_Sym1 (l_a3UaJ :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaI :: TyFun (TyFun b6989586621679940663 c6989586621679940662 -> Type) (TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662 -> Type))
data Either_Sym2 (l_a3UaF :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (l_a3UaG :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (l_a3UaE :: TyFun (Either a6989586621679940661 b6989586621679940663) c6989586621679940662)
type Either_Sym3 (t_a3UaB :: TyFun a6989586621679940661 c6989586621679940662 -> Type) (t_a3UaC :: TyFun b6989586621679940663 c6989586621679940662 -> Type) (t_a3UaD :: Either a6989586621679940661 b6989586621679940663) = Either_ t_a3UaB t_a3UaC t_a3UaD
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data FstSym0 (l_a1cZK :: TyFun (a6989586621679297966, b6989586621679297967) a6989586621679297966)
type FstSym1 (t_a1cZJ :: (a6989586621679297966, b6989586621679297967)) = Fst t_a1cZJ
data SndSym0 (l_a1cZF :: TyFun (a6989586621679297964, b6989586621679297965) b6989586621679297965)
type SndSym1 (t_a1cZE :: (a6989586621679297964, b6989586621679297965)) = Snd t_a1cZE
data CurrySym0 (l_a1cZw :: TyFun (TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type) -> Type))
data CurrySym1 (l_a1cZu :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZt :: TyFun a6989586621679297961 (TyFun b6989586621679297962 c6989586621679297963 -> Type))
data CurrySym2 (l_a1cZq :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (l_a1cZr :: a6989586621679297961) (l_a1cZp :: TyFun b6989586621679297962 c6989586621679297963)
type CurrySym3 (t_a1cZm :: TyFun (a6989586621679297961, b6989586621679297962) c6989586621679297963 -> Type) (t_a1cZn :: a6989586621679297961) (t_a1cZo :: b6989586621679297962) = Curry t_a1cZm t_a1cZn t_a1cZo
data UncurrySym0 (l_a1cZT :: TyFun (TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960 -> Type))
data UncurrySym1 (l_a1cZR :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (l_a1cZQ :: TyFun (a6989586621679297958, b6989586621679297959) c6989586621679297960)
type UncurrySym2 (t_a1cZO :: TyFun a6989586621679297958 (TyFun b6989586621679297959 c6989586621679297960 -> Type) -> Type) (t_a1cZP :: (a6989586621679297958, b6989586621679297959)) = Uncurry t_a1cZO t_a1cZP
data ErrorSym0 (l_a1Cb7 :: TyFun k06989586621679393946 k6989586621679393947)
type ErrorSym1 (t_a1Cb6 :: k06989586621679393946) = Error t_a1Cb6
type UndefinedSym0 = Undefined
data (^@#@$) (l_a1CfL :: TyFun Nat (TyFun Nat Nat -> Type))
data (^@#@$$) (l_a1CfJ :: Nat) (l_a1CfI :: TyFun Nat Nat)
type (^@#@$$$) (t_a1CfG :: Nat) (t_a1CfH :: Nat) = (^) t_a1CfG t_a1CfH
data ShowsPrecSym0 (l_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data Show_Sym0 (l_a2SEL :: TyFun a6989586621679694510 Symbol)
type Show_Sym1 (t_a2SEK :: a6989586621679694510) = Show_ t_a2SEK
data ShowListSym0 (l_a2SEU :: TyFun [a6989586621679694510] (TyFun Symbol Symbol -> Type))
data ShowListSym1 (l_a2SES :: [a6989586621679694510]) (l_a2SER :: TyFun Symbol Symbol)
type ShowListSym2 (t_a2SEP :: [a6989586621679694510]) (t_a2SEQ :: Symbol) = ShowList t_a2SEP t_a2SEQ
data (<>@#@$) l_a1CjE
data (<>@#@$$) (l_a1CjC :: Symbol) l_a1CjB
type (<>@#@$$$) (t_a1Cjz :: Symbol) (t_a1CjA :: Symbol) = (<>) t_a1Cjz t_a1CjA
data ShowsSym0 (l_a2SEm :: TyFun a6989586621679694495 (TyFun Symbol Symbol -> Type))
data ShowsSym1 (l_a2SEk :: a6989586621679694495) (l_a2SEj :: TyFun Symbol Symbol)
type ShowsSym2 (t_a2SEh :: a6989586621679694495) (t_a2SEi :: Symbol) = Shows t_a2SEh t_a2SEi
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data IdSym0 (l_a1N2J :: TyFun a6989586621679436420 a6989586621679436420)
type IdSym1 (t_a1N2I :: a6989586621679436420) = Id t_a1N2I
data ConstSym0 (l_a1N2o :: TyFun a6989586621679436418 (TyFun b6989586621679436419 a6989586621679436418 -> Type))
data ConstSym1 (l_a1N2m :: a6989586621679436418) (l_a1N2l :: TyFun b6989586621679436419 a6989586621679436418)
type ConstSym2 (t_a1N2j :: a6989586621679436418) (t_a1N2k :: b6989586621679436419) = Const t_a1N2j t_a1N2k
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
data ($@#@$) (l_a1N1f :: TyFun (TyFun a6989586621679436409 b6989586621679436410 -> Type) (TyFun a6989586621679436409 b6989586621679436410 -> Type))
data ($@#@$$) (l_a1N1d :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (l_a1N1c :: TyFun a6989586621679436409 b6989586621679436410)
type ($@#@$$$) (t_a1N1a :: TyFun a6989586621679436409 b6989586621679436410 -> Type) (t_a1N1b :: a6989586621679436409) = ($) t_a1N1a t_a1N1b
data ($!@#@$) (l_a1N0W :: TyFun (TyFun a6989586621679436407 b6989586621679436408 -> Type) (TyFun a6989586621679436407 b6989586621679436408 -> Type))
data ($!@#@$$) (l_a1N0U :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (l_a1N0T :: TyFun a6989586621679436407 b6989586621679436408)
type ($!@#@$$$) (t_a1N0R :: TyFun a6989586621679436407 b6989586621679436408 -> Type) (t_a1N0S :: a6989586621679436407) = ($!) t_a1N0R t_a1N0S
data FlipSym0 (l_a1N1v :: TyFun (TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type) -> Type))
data FlipSym1 (l_a1N1t :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1s :: TyFun b6989586621679436413 (TyFun a6989586621679436412 c6989586621679436414 -> Type))
data FlipSym2 (l_a1N1p :: TyFun a6989586621679436412 (TyFun b6989586621679436413 c6989586621679436414 -> Type) -> Type) (l_a1N1q :: b6989586621679436413) (l_a1N1o :: TyFun a6989586621679436412 c6989586621679436414)
data AsTypeOfSym0 (l_a1N2C :: TyFun a6989586621679436411 (TyFun a6989586621679436411 a6989586621679436411 -> Type))
data AsTypeOfSym1 (l_a1N2A :: a6989586621679436411) (l_a1N2z :: TyFun a6989586621679436411 a6989586621679436411)
type AsTypeOfSym2 (t_a1N2x :: a6989586621679436411) (t_a1N2y :: a6989586621679436411) = AsTypeOf t_a1N2x t_a1N2y
data SeqSym0 (l_a1N0M :: TyFun a6989586621679436405 (TyFun b6989586621679436406 b6989586621679436406 -> Type))
data SeqSym1 (l_a1N0K :: a6989586621679436405) (l_a1N0J :: TyFun b6989586621679436406 b6989586621679436406)
type SeqSym2 (t_a1N0H :: a6989586621679436405) (t_a1N0I :: b6989586621679436406) = Seq t_a1N0H t_a1N0I
data (:@#@$) (l_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ
type NilSym0 = '[]
data MapSym0 (l_a1N35 :: TyFun (TyFun a6989586621679436422 b6989586621679436423 -> Type) (TyFun [a6989586621679436422] [b6989586621679436423] -> Type))
data MapSym1 (l_a1N33 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (l_a1N32 :: TyFun [a6989586621679436422] [b6989586621679436423])
type MapSym2 (t_a1N30 :: TyFun a6989586621679436422 b6989586621679436423 -> Type) (t_a1N31 :: [a6989586621679436422]) = Map t_a1N30 t_a1N31
data ReverseSym0 (l_a1W41 :: TyFun [a6989586621679459307] [a6989586621679459307])
type ReverseSym1 (t_a1W40 :: [a6989586621679459307]) = Reverse t_a1W40
data (++@#@$$) (l_a1N2Q :: [a6989586621679436421]) (l_a1N2P :: TyFun [a6989586621679436421] [a6989586621679436421])
data (++@#@$) (l_a1N2S :: TyFun [a6989586621679436421] (TyFun [a6989586621679436421] [a6989586621679436421] -> Type))
data HeadSym0 (l_a1W6h :: TyFun [a6989586621679459312] a6989586621679459312)
type HeadSym1 (t_a1W6g :: [a6989586621679459312]) = Head t_a1W6g
data LastSym0 (l_a1W6a :: TyFun [a6989586621679459311] a6989586621679459311)
type LastSym1 (t_a1W69 :: [a6989586621679459311]) = Last t_a1W69
data TailSym0 (l_a1W65 :: TyFun [a6989586621679459310] [a6989586621679459310])
type TailSym1 (t_a1W64 :: [a6989586621679459310]) = Tail t_a1W64
data InitSym0 (l_a1W5B :: TyFun [a6989586621679459309] [a6989586621679459309])
type InitSym1 (t_a1W5A :: [a6989586621679459309]) = Init t_a1W5A
data NullSym0 (l_a1W4A :: TyFun [a6989586621679459308] Bool)
type NullSym1 (t_a1W4z :: [a6989586621679459308]) = Null t_a1W4z
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
data Foldl1Sym0 (l_a1VSj :: TyFun (TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (TyFun [a6989586621679459298] a6989586621679459298 -> Type))
data Foldl1Sym1 (l_a1VSh :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (l_a1VSg :: TyFun [a6989586621679459298] a6989586621679459298)
type Foldl1Sym2 (t_a1VSe :: TyFun a6989586621679459298 (TyFun a6989586621679459298 a6989586621679459298 -> Type) -> Type) (t_a1VSf :: [a6989586621679459298]) = Foldl1 t_a1VSe t_a1VSf
data FoldrSym0 (l_a1N3m :: TyFun (TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type) -> Type))
data FoldrSym1 (l_a1N3k :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3j :: TyFun b6989586621679436425 (TyFun [a6989586621679436424] b6989586621679436425 -> Type))
data FoldrSym2 (l_a1N3g :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (l_a1N3h :: b6989586621679436425) (l_a1N3f :: TyFun [a6989586621679436424] b6989586621679436425)
type FoldrSym3 (t_a1N3c :: TyFun a6989586621679436424 (TyFun b6989586621679436425 b6989586621679436425 -> Type) -> Type) (t_a1N3d :: b6989586621679436425) (t_a1N3e :: [a6989586621679436424]) = Foldr t_a1N3c t_a1N3d t_a1N3e
data Foldr1Sym0 (l_a1VRM :: TyFun (TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (TyFun [a6989586621679459296] a6989586621679459296 -> Type))
data Foldr1Sym1 (l_a1VRK :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (l_a1VRJ :: TyFun [a6989586621679459296] a6989586621679459296)
type Foldr1Sym2 (t_a1VRH :: TyFun a6989586621679459296 (TyFun a6989586621679459296 a6989586621679459296 -> Type) -> Type) (t_a1VRI :: [a6989586621679459296]) = Foldr1 t_a1VRH t_a1VRI
data ConcatSym0 (l_a1VRD :: TyFun [[a6989586621679459295]] [a6989586621679459295])
type ConcatSym1 (t_a1VRC :: [[a6989586621679459295]]) = Concat t_a1VRC
data ConcatMapSym0 (l_a1VRs :: TyFun (TyFun a6989586621679459293 [b6989586621679459294] -> Type) (TyFun [a6989586621679459293] [b6989586621679459294] -> Type))
data ConcatMapSym1 (l_a1VRq :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (l_a1VRp :: TyFun [a6989586621679459293] [b6989586621679459294])
type ConcatMapSym2 (t_a1VRn :: TyFun a6989586621679459293 [b6989586621679459294] -> Type) (t_a1VRo :: [a6989586621679459293]) = ConcatMap t_a1VRn t_a1VRo
data AndSym0 (l_a1VRi :: TyFun [Bool] Bool)
type AndSym1 (t_a1VRh :: [Bool]) = And t_a1VRh
data OrSym0 (l_a1VRc :: TyFun [Bool] Bool)
type OrSym1 (t_a1VRb :: [Bool]) = Or t_a1VRb
data AnySym0 (l_a1VOI :: TyFun (TyFun a6989586621679459291 Bool -> Type) (TyFun [a6989586621679459291] Bool -> Type))
data AnySym1 (l_a1VOG :: TyFun a6989586621679459291 Bool -> Type) (l_a1VOF :: TyFun [a6989586621679459291] Bool)
type AnySym2 (t_a1VOD :: TyFun a6989586621679459291 Bool -> Type) (t_a1VOE :: [a6989586621679459291]) = Any t_a1VOD t_a1VOE
data AllSym0 (l_a1VR4 :: TyFun (TyFun a6989586621679459292 Bool -> Type) (TyFun [a6989586621679459292] Bool -> Type))
data AllSym1 (l_a1VR2 :: TyFun a6989586621679459292 Bool -> Type) (l_a1VR1 :: TyFun [a6989586621679459292] Bool)
type AllSym2 (t_a1VQZ :: TyFun a6989586621679459292 Bool -> Type) (t_a1VR0 :: [a6989586621679459292]) = All t_a1VQZ t_a1VR0
data ScanlSym0 (l_a1VOe :: TyFun (TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type) -> Type))
data ScanlSym1 (l_a1VOc :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VOb :: TyFun b6989586621679459289 (TyFun [a6989586621679459290] [b6989586621679459289] -> Type))
data ScanlSym2 (l_a1VO8 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (l_a1VO9 :: b6989586621679459289) (l_a1VO7 :: TyFun [a6989586621679459290] [b6989586621679459289])
type ScanlSym3 (t_a1VO4 :: TyFun b6989586621679459289 (TyFun a6989586621679459290 b6989586621679459289 -> Type) -> Type) (t_a1VO5 :: b6989586621679459289) (t_a1VO6 :: [a6989586621679459290]) = Scanl t_a1VO4 t_a1VO5 t_a1VO6
data Scanl1Sym0 (l_a1VOw :: TyFun (TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (TyFun [a6989586621679459288] [a6989586621679459288] -> Type))
data Scanl1Sym1 (l_a1VOu :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (l_a1VOt :: TyFun [a6989586621679459288] [a6989586621679459288])
type Scanl1Sym2 (t_a1VOr :: TyFun a6989586621679459288 (TyFun a6989586621679459288 a6989586621679459288 -> Type) -> Type) (t_a1VOs :: [a6989586621679459288]) = Scanl1 t_a1VOr t_a1VOs
data ScanrSym0 (l_a1VNw :: TyFun (TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type) -> Type))
data ScanrSym1 (l_a1VNu :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNt :: TyFun b6989586621679459287 (TyFun [a6989586621679459286] [b6989586621679459287] -> Type))
data ScanrSym2 (l_a1VNq :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (l_a1VNr :: b6989586621679459287) (l_a1VNp :: TyFun [a6989586621679459286] [b6989586621679459287])
type ScanrSym3 (t_a1VNm :: TyFun a6989586621679459286 (TyFun b6989586621679459287 b6989586621679459287 -> Type) -> Type) (t_a1VNn :: b6989586621679459287) (t_a1VNo :: [a6989586621679459286]) = Scanr t_a1VNm t_a1VNn t_a1VNo
data Scanr1Sym0 (l_a1VMw :: TyFun (TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (TyFun [a6989586621679459285] [a6989586621679459285] -> Type))
data Scanr1Sym1 (l_a1VMu :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (l_a1VMt :: TyFun [a6989586621679459285] [a6989586621679459285])
type Scanr1Sym2 (t_a1VMr :: TyFun a6989586621679459285 (TyFun a6989586621679459285 a6989586621679459285 -> Type) -> Type) (t_a1VMs :: [a6989586621679459285]) = Scanr1 t_a1VMr t_a1VMs
data ReplicateSym0 (l_a1VlE :: TyFun Nat (TyFun a6989586621679459193 [a6989586621679459193] -> Type))
data ReplicateSym1 (l_a1VlC :: Nat) (l_a1VlB :: TyFun a6989586621679459193 [a6989586621679459193])
type ReplicateSym2 (t_a1Vlz :: Nat) (t_a1VlA :: a6989586621679459193) = Replicate t_a1Vlz t_a1VlA
data TakeSym0 (l_a1VoJ :: TyFun Nat (TyFun [a6989586621679459209] [a6989586621679459209] -> Type))
data TakeSym1 (l_a1VoH :: Nat) (l_a1VoG :: TyFun [a6989586621679459209] [a6989586621679459209])
type TakeSym2 (t_a1VoE :: Nat) (t_a1VoF :: [a6989586621679459209]) = Take t_a1VoE t_a1VoF
data DropSym0 (l_a1Voh :: TyFun Nat (TyFun [a6989586621679459208] [a6989586621679459208] -> Type))
data DropSym1 (l_a1Vof :: Nat) (l_a1Voe :: TyFun [a6989586621679459208] [a6989586621679459208])
type DropSym2 (t_a1Voc :: Nat) (t_a1Vod :: [a6989586621679459208]) = Drop t_a1Voc t_a1Vod
data SplitAtSym0 (l_a1Vpb :: TyFun Nat (TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]) -> Type))
data SplitAtSym1 (l_a1Vp9 :: Nat) (l_a1Vp8 :: TyFun [a6989586621679459207] ([a6989586621679459207], [a6989586621679459207]))
type SplitAtSym2 (t_a1Vp6 :: Nat) (t_a1Vp7 :: [a6989586621679459207]) = SplitAt t_a1Vp6 t_a1Vp7
data TakeWhileSym0 (l_a1Vu7 :: TyFun (TyFun a6989586621679459214 Bool -> Type) (TyFun [a6989586621679459214] [a6989586621679459214] -> Type))
data TakeWhileSym1 (l_a1Vu5 :: TyFun a6989586621679459214 Bool -> Type) (l_a1Vu4 :: TyFun [a6989586621679459214] [a6989586621679459214])
type TakeWhileSym2 (t_a1Vu2 :: TyFun a6989586621679459214 Bool -> Type) (t_a1Vu3 :: [a6989586621679459214]) = TakeWhile t_a1Vu2 t_a1Vu3
data DropWhileSym0 (l_a1Vts :: TyFun (TyFun a6989586621679459213 Bool -> Type) (TyFun [a6989586621679459213] [a6989586621679459213] -> Type))
data DropWhileSym1 (l_a1Vtq :: TyFun a6989586621679459213 Bool -> Type) (l_a1Vtp :: TyFun [a6989586621679459213] [a6989586621679459213])
type DropWhileSym2 (t_a1Vtn :: TyFun a6989586621679459213 Bool -> Type) (t_a1Vto :: [a6989586621679459213]) = DropWhile t_a1Vtn t_a1Vto
data DropWhileEndSym0 (l_a1W4I :: TyFun (TyFun a6989586621679459212 Bool -> Type) (TyFun [a6989586621679459212] [a6989586621679459212] -> Type))
data DropWhileEndSym1 (l_a1W4G :: TyFun a6989586621679459212 Bool -> Type) (l_a1W4F :: TyFun [a6989586621679459212] [a6989586621679459212])
type DropWhileEndSym2 (t_a1W4D :: TyFun a6989586621679459212 Bool -> Type) (t_a1W4E :: [a6989586621679459212]) = DropWhileEnd t_a1W4D t_a1W4E
data SpanSym0 (l_a1VqR :: TyFun (TyFun a6989586621679459211 Bool -> Type) (TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]) -> Type))
data SpanSym1 (l_a1VqP :: TyFun a6989586621679459211 Bool -> Type) (l_a1VqO :: TyFun [a6989586621679459211] ([a6989586621679459211], [a6989586621679459211]))
type SpanSym2 (t_a1VqM :: TyFun a6989586621679459211 Bool -> Type) (t_a1VqN :: [a6989586621679459211]) = Span t_a1VqM t_a1VqN
data BreakSym0 (l_a1Vpm :: TyFun (TyFun a6989586621679459210 Bool -> Type) (TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]) -> Type))
data BreakSym1 (l_a1Vpk :: TyFun a6989586621679459210 Bool -> Type) (l_a1Vpj :: TyFun [a6989586621679459210] ([a6989586621679459210], [a6989586621679459210]))
type BreakSym2 (t_a1Vph :: TyFun a6989586621679459210 Bool -> Type) (t_a1Vpi :: [a6989586621679459210]) = Break t_a1Vph t_a1Vpi
data ElemSym0 (l_a1VFD :: TyFun a6989586621679459271 (TyFun [a6989586621679459271] Bool -> Type))
data ElemSym1 (l_a1VFB :: a6989586621679459271) (l_a1VFA :: TyFun [a6989586621679459271] Bool)
type ElemSym2 (t_a1VFy :: a6989586621679459271) (t_a1VFz :: [a6989586621679459271]) = Elem t_a1VFy t_a1VFz
data NotElemSym0 (l_a1VFr :: TyFun a6989586621679459270 (TyFun [a6989586621679459270] Bool -> Type))
data NotElemSym1 (l_a1VFp :: a6989586621679459270) (l_a1VFo :: TyFun [a6989586621679459270] Bool)
type NotElemSym2 (t_a1VFm :: a6989586621679459270) (t_a1VFn :: [a6989586621679459270]) = NotElem t_a1VFm t_a1VFn
data ZipSym0 (l_a1VDJ :: TyFun [a6989586621679459268] (TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)] -> Type))
data ZipSym1 (l_a1VDH :: [a6989586621679459268]) (l_a1VDG :: TyFun [b6989586621679459269] [(a6989586621679459268, b6989586621679459269)])
type ZipSym2 (t_a1VDE :: [a6989586621679459268]) (t_a1VDF :: [b6989586621679459269]) = Zip t_a1VDE t_a1VDF
data Zip3Sym0 (l_a1VDt :: TyFun [a6989586621679459265] (TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type) -> Type))
data Zip3Sym1 (l_a1VDr :: [a6989586621679459265]) (l_a1VDq :: TyFun [b6989586621679459266] (TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)] -> Type))
data Zip3Sym2 (l_a1VDn :: [a6989586621679459265]) (l_a1VDo :: [b6989586621679459266]) (l_a1VDm :: TyFun [c6989586621679459267] [(a6989586621679459265, b6989586621679459266, c6989586621679459267)])
type Zip3Sym3 (t_a1VDj :: [a6989586621679459265]) (t_a1VDk :: [b6989586621679459266]) (t_a1VDl :: [c6989586621679459267]) = Zip3 t_a1VDj t_a1VDk t_a1VDl
data ZipWithSym0 (l_a1VD9 :: TyFun (TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type) -> Type))
data ZipWithSym1 (l_a1VD7 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD6 :: TyFun [a6989586621679459262] (TyFun [b6989586621679459263] [c6989586621679459264] -> Type))
data ZipWithSym2 (l_a1VD3 :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (l_a1VD4 :: [a6989586621679459262]) (l_a1VD2 :: TyFun [b6989586621679459263] [c6989586621679459264])
type ZipWithSym3 (t_a1VCZ :: TyFun a6989586621679459262 (TyFun b6989586621679459263 c6989586621679459264 -> Type) -> Type) (t_a1VD0 :: [a6989586621679459262]) (t_a1VD1 :: [b6989586621679459263]) = ZipWith t_a1VCZ t_a1VD0 t_a1VD1
data ZipWith3Sym0 (l_a1VCM :: TyFun (TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type) -> Type))
data ZipWith3Sym1 (l_a1VCK :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCJ :: TyFun [a6989586621679459258] (TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type) -> Type))
data ZipWith3Sym2 (l_a1VCG :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCH :: [a6989586621679459258]) (l_a1VCF :: TyFun [b6989586621679459259] (TyFun [c6989586621679459260] [d6989586621679459261] -> Type))
data ZipWith3Sym3 (l_a1VCB :: TyFun a6989586621679459258 (TyFun b6989586621679459259 (TyFun c6989586621679459260 d6989586621679459261 -> Type) -> Type) -> Type) (l_a1VCC :: [a6989586621679459258]) (l_a1VCD :: [b6989586621679459259]) (l_a1VCA :: TyFun [c6989586621679459260] [d6989586621679459261])
data UnzipSym0 (l_a1VC3 :: TyFun [(a6989586621679459256, b6989586621679459257)] ([a6989586621679459256], [b6989586621679459257]))
type UnzipSym1 (t_a1VC2 :: [(a6989586621679459256, b6989586621679459257)]) = Unzip t_a1VC2
data UnlinesSym0 (l_a1Vz3 :: TyFun [Symbol] Symbol)
type UnlinesSym1 (t_a1Vz2 :: [Symbol]) = Unlines t_a1Vz2
data UnwordsSym0 (l_a1VyH :: TyFun [Symbol] Symbol)
type UnwordsSym1 (t_a1VyG :: [Symbol]) = Unwords t_a1VyG


-- | 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_a1hAK => POrd (a_a1hAK :: Type) where {
    type family Compare (arg_a1i0y :: a_a1hAK) (arg_a1i0z :: a_a1hAK) :: Ordering;
    type family (<) (arg_a1i0H :: a_a1hAK) (arg_a1i0I :: a_a1hAK) :: Bool;
    type family (<=) (arg_a1i0Q :: a_a1hAK) (arg_a1i0R :: a_a1hAK) :: Bool;
    type family (>) (arg_a1i0Z :: a_a1hAK) (arg_a1i10 :: a_a1hAK) :: Bool;
    type family (>=) (arg_a1i18 :: a_a1hAK) (arg_a1i19 :: a_a1hAK) :: Bool;
    type family Max (arg_a1i1h :: a_a1hAK) (arg_a1i1i :: a_a1hAK) :: a_a1hAK;
    type family Min (arg_a1i1q :: a_a1hAK) (arg_a1i1r :: a_a1hAK) :: a_a1hAK;
    type Compare a_a1i26 a_a1i27 =
        Apply (Apply Compare_6989586621679317444Sym0 a_a1i26) a_a1i27;
    type (<) a_a1i2D a_a1i2E =
        Apply (Apply TFHelper_6989586621679317477Sym0 a_a1i2D) a_a1i2E;
    type (<=) a_a1i3a a_a1i3b =
        Apply (Apply TFHelper_6989586621679317510Sym0 a_a1i3a) a_a1i3b;
    type (>) a_a1i3H a_a1i3I =
        Apply (Apply TFHelper_6989586621679317543Sym0 a_a1i3H) a_a1i3I;
    type (>=) a_a1i4e a_a1i4f =
        Apply (Apply TFHelper_6989586621679317576Sym0 a_a1i4e) a_a1i4f;
    type Max a_a1i4L a_a1i4M =
        Apply (Apply Max_6989586621679317609Sym0 a_a1i4L) a_a1i4M;
    type Min a_a1i5i a_a1i5j =
        Apply (Apply Min_6989586621679317642Sym0 a_a1i5i) a_a1i5j;
}
class PBounded (a_a3AD7 :: Type) where {
    type family MinBound :: a_a3AD7;
    type family MaxBound :: a_a3AD7;
}
class PEnum (a_a3BFG :: Type) where {
    type family ToEnum (arg_a3BPi :: Nat) :: a_a3BFG;
    type family FromEnum (arg_a3BPm :: a_a3BFG) :: Nat;
    type Succ a_a3BQ6 = Apply Succ_6989586621679870235Sym0 a_a3BQ6;
    type Pred a_a3BQj = Apply Pred_6989586621679870248Sym0 a_a3BQj;
    type EnumFromTo a_a3BQA a_a3BQB =
        Apply (Apply EnumFromTo_6989586621679870266Sym0 a_a3BQA) a_a3BQB;
    type EnumFromThenTo a_a3BR3 a_a3BR4 a_a3BR5 =
        Apply (Apply (Apply EnumFromThenTo_6989586621679870296Sym0 a_a3BR3) a_a3BR4) a_a3BR5;
}
class PShow (a_a2S7Q :: Type) where {
    type family ShowsPrec (arg_a2SEu :: Nat) (arg_a2SEv :: a_a2S7Q) (arg_a2SEw :: Symbol) :: Symbol;
    type family Show_ (arg_a2SEJ :: a_a2S7Q) :: Symbol;
    type family ShowList (arg_a2SEN :: [a_a2S7Q]) (arg_a2SEO :: Symbol) :: Symbol;
    type ShowsPrec a_a2SFd a_a2SFe a_a2SFf =
        Apply (Apply (Apply ShowsPrec_6989586621679696582Sym0 a_a2SFd) a_a2SFe) a_a2SFf;
    type Show_ a_a2SFz = Apply Show__6989586621679696602Sym0 a_a2SFz;
    type ShowList a_a2SFQ a_a2SFR =
        Apply (Apply ShowList_6989586621679696620Sym0 a_a2SFQ) a_a2SFR;
}

-- | <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_a1Cb7 :: TyFun k06989586621679393946 k6989586621679393947)
type ErrorSym1 (t_a1Cb6 :: k06989586621679393946) = Error t_a1Cb6

-- | The promotion of <a>undefined</a>.
type UndefinedSym0 = Undefined
type TrueSym0 = True
type FalseSym0 = False
data (==@#@$) (l_a1eEc :: TyFun a6989586621679304361 (TyFun a6989586621679304361 Bool -> Type))
data (==@#@$$) (l_a1eEa :: a6989586621679304361) (l_a1eE9 :: TyFun a6989586621679304361 Bool)
type (==@#@$$$) (t_a1eE7 :: a6989586621679304361) (t_a1eE8 :: a6989586621679304361) = (==) t_a1eE7 t_a1eE8
data (>@#@$) (l_a1i16 :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Bool -> Type))
data (>@#@$$) (l_a1i14 :: a6989586621679315746) (l_a1i13 :: TyFun a6989586621679315746 Bool)
type (>@#@$$$) (t_a1i11 :: a6989586621679315746) (t_a1i12 :: a6989586621679315746) = (>) t_a1i11 t_a1i12
type LTSym0 = LT
type EQSym0 = EQ
type GTSym0 = GT
type Tuple0Sym0 = '()
data Tuple2Sym0 (l_a12PZ :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866) -> Type))
data Tuple2Sym1 (l_a12PX :: a3530822107858468865) (l_a12PW :: TyFun b3530822107858468866 (a3530822107858468865, b3530822107858468866))
type Tuple2Sym2 (t_a12PU :: a3530822107858468865) (t_a12PV :: b3530822107858468866) = '(t_a12PU, t_a12PV)
data Tuple3Sym0 (l_a12Qp :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type) -> Type))
data Tuple3Sym1 (l_a12Qn :: a3530822107858468865) (l_a12Qm :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867) -> Type))
data Tuple3Sym2 (l_a12Qj :: a3530822107858468865) (l_a12Qk :: b3530822107858468866) (l_a12Qi :: TyFun c3530822107858468867 (a3530822107858468865, b3530822107858468866, c3530822107858468867))
type Tuple3Sym3 (t_a12Qf :: a3530822107858468865) (t_a12Qg :: b3530822107858468866) (t_a12Qh :: c3530822107858468867) = '(t_a12Qf, t_a12Qg, t_a12Qh)
data Tuple4Sym0 (l_a12R0 :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type) -> Type))
data Tuple4Sym1 (l_a12QY :: a3530822107858468865) (l_a12QX :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type) -> Type))
data Tuple4Sym2 (l_a12QU :: a3530822107858468865) (l_a12QV :: b3530822107858468866) (l_a12QT :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868) -> Type))
data Tuple4Sym3 (l_a12QP :: a3530822107858468865) (l_a12QQ :: b3530822107858468866) (l_a12QR :: c3530822107858468867) (l_a12QO :: TyFun d3530822107858468868 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868))
type Tuple4Sym4 (t_a12QK :: a3530822107858468865) (t_a12QL :: b3530822107858468866) (t_a12QM :: c3530822107858468867) (t_a12QN :: d3530822107858468868) = '(t_a12QK, t_a12QL, t_a12QM, t_a12QN)
data Tuple5Sym0 (l_a12RN :: TyFun a3530822107858468865 (TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type) -> Type))
data Tuple5Sym1 (l_a12RL :: a3530822107858468865) (l_a12RK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type) -> Type))
data Tuple5Sym2 (l_a12RH :: a3530822107858468865) (l_a12RI :: b3530822107858468866) (l_a12RG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type) -> Type))
data Tuple5Sym3 (l_a12RC :: a3530822107858468865) (l_a12RD :: b3530822107858468866) (l_a12RE :: c3530822107858468867) (l_a12RB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869) -> Type))
data Tuple5Sym4 (l_a12Rw :: a3530822107858468865) (l_a12Rx :: b3530822107858468866) (l_a12Ry :: c3530822107858468867) (l_a12Rz :: d3530822107858468868) (l_a12Rv :: TyFun e3530822107858468869 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869))
type Tuple5Sym5 (t_a12Rq :: a3530822107858468865) (t_a12Rr :: b3530822107858468866) (t_a12Rs :: c3530822107858468867) (t_a12Rt :: d3530822107858468868) (t_a12Ru :: e3530822107858468869) = '(t_a12Rq, t_a12Rr, t_a12Rs, t_a12Rt, t_a12Ru)
data Tuple6Sym0 (l_a12SN :: 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_a12SL :: a3530822107858468865) (l_a12SK :: TyFun b3530822107858468866 (TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type) -> Type))
data Tuple6Sym2 (l_a12SH :: a3530822107858468865) (l_a12SI :: b3530822107858468866) (l_a12SG :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type) -> Type))
data Tuple6Sym3 (l_a12SC :: a3530822107858468865) (l_a12SD :: b3530822107858468866) (l_a12SE :: c3530822107858468867) (l_a12SB :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type) -> Type))
data Tuple6Sym4 (l_a12Sw :: a3530822107858468865) (l_a12Sx :: b3530822107858468866) (l_a12Sy :: c3530822107858468867) (l_a12Sz :: d3530822107858468868) (l_a12Sv :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870) -> Type))
data Tuple6Sym5 (l_a12Sp :: a3530822107858468865) (l_a12Sq :: b3530822107858468866) (l_a12Sr :: c3530822107858468867) (l_a12Ss :: d3530822107858468868) (l_a12St :: e3530822107858468869) (l_a12So :: TyFun f3530822107858468870 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870))
type Tuple6Sym6 (t_a12Si :: a3530822107858468865) (t_a12Sj :: b3530822107858468866) (t_a12Sk :: c3530822107858468867) (t_a12Sl :: d3530822107858468868) (t_a12Sm :: e3530822107858468869) (t_a12Sn :: f3530822107858468870) = '(t_a12Si, t_a12Sj, t_a12Sk, t_a12Sl, t_a12Sm, t_a12Sn)
data Tuple7Sym0 (l_a12U1 :: 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_a12TZ :: a3530822107858468865) (l_a12TY :: 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_a12TV :: a3530822107858468865) (l_a12TW :: b3530822107858468866) (l_a12TU :: TyFun c3530822107858468867 (TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type) -> Type))
data Tuple7Sym3 (l_a12TQ :: a3530822107858468865) (l_a12TR :: b3530822107858468866) (l_a12TS :: c3530822107858468867) (l_a12TP :: TyFun d3530822107858468868 (TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type) -> Type))
data Tuple7Sym4 (l_a12TK :: a3530822107858468865) (l_a12TL :: b3530822107858468866) (l_a12TM :: c3530822107858468867) (l_a12TN :: d3530822107858468868) (l_a12TJ :: TyFun e3530822107858468869 (TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type) -> Type))
data Tuple7Sym5 (l_a12TD :: a3530822107858468865) (l_a12TE :: b3530822107858468866) (l_a12TF :: c3530822107858468867) (l_a12TG :: d3530822107858468868) (l_a12TH :: e3530822107858468869) (l_a12TC :: TyFun f3530822107858468870 (TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871) -> Type))
data Tuple7Sym6 (l_a12Tv :: a3530822107858468865) (l_a12Tw :: b3530822107858468866) (l_a12Tx :: c3530822107858468867) (l_a12Ty :: d3530822107858468868) (l_a12Tz :: e3530822107858468869) (l_a12TA :: f3530822107858468870) (l_a12Tu :: TyFun g3530822107858468871 (a3530822107858468865, b3530822107858468866, c3530822107858468867, d3530822107858468868, e3530822107858468869, f3530822107858468870, g3530822107858468871))
type Tuple7Sym7 (t_a12Tn :: a3530822107858468865) (t_a12To :: b3530822107858468866) (t_a12Tp :: c3530822107858468867) (t_a12Tq :: d3530822107858468868) (t_a12Tr :: e3530822107858468869) (t_a12Ts :: f3530822107858468870) (t_a12Tt :: g3530822107858468871) = '(t_a12Tn, t_a12To, t_a12Tp, t_a12Tq, t_a12Tr, t_a12Ts, t_a12Tt)
data CompareSym0 (l_a1i0F :: TyFun a6989586621679315746 (TyFun a6989586621679315746 Ordering -> Type))
data CompareSym1 (l_a1i0D :: a6989586621679315746) (l_a1i0C :: TyFun a6989586621679315746 Ordering)
type CompareSym2 (t_a1i0A :: a6989586621679315746) (t_a1i0B :: a6989586621679315746) = Compare t_a1i0A t_a1i0B
data ThenCmpSym0 (l_a1jOg :: TyFun Ordering (TyFun Ordering Ordering -> Type))
data ThenCmpSym1 (l_a1jOe :: Ordering) (l_a1jOd :: TyFun Ordering Ordering)
type ThenCmpSym2 (t_a1jOb :: Ordering) (t_a1jOc :: Ordering) = ThenCmp t_a1jOb t_a1jOc
data FoldlSym0 (l_a15Nv :: TyFun (TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type) -> Type))
data FoldlSym1 (l_a15Nt :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Ns :: TyFun b6989586621679270365 (TyFun [a6989586621679270364] b6989586621679270365 -> Type))
data FoldlSym2 (l_a15Np :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (l_a15Nq :: b6989586621679270365) (l_a15No :: TyFun [a6989586621679270364] b6989586621679270365)
type FoldlSym3 (t_a15Nl :: TyFun b6989586621679270365 (TyFun a6989586621679270364 b6989586621679270365 -> Type) -> Type) (t_a15Nm :: b6989586621679270365) (t_a15Nn :: [a6989586621679270364]) = Foldl t_a15Nl t_a15Nm t_a15Nn
type MinBoundSym0 = MinBound
type MaxBoundSym0 = MaxBound
data ShowsPrecSym0 (l_a2SEH :: TyFun Nat (TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type) -> Type))
data ShowsPrecSym1 (l_a2SEF :: Nat) (l_a2SEE :: TyFun a6989586621679694510 (TyFun Symbol Symbol -> Type))
data ShowsPrecSym2 (l_a2SEB :: Nat) (l_a2SEC :: a6989586621679694510) (l_a2SEA :: TyFun Symbol Symbol)
type ShowsPrecSym3 (t_a2SEx :: Nat) (t_a2SEy :: a6989586621679694510) (t_a2SEz :: Symbol) = ShowsPrec t_a2SEx t_a2SEy t_a2SEz
data ShowStringSym0 (l_a2SC4 :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowStringSym1 (l_a2SC2 :: Symbol) (l_a2SC1 :: TyFun Symbol Symbol)
type ShowStringSym2 (t_a2SBZ :: Symbol) (t_a2SC0 :: Symbol) = ShowString t_a2SBZ t_a2SC0
data ShowParenSym0 (l_a2SCG :: TyFun Bool (TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type) -> Type))
data ShowParenSym1 (l_a2SCE :: Bool) (l_a2SCD :: TyFun (TyFun Symbol Symbol -> Type) (TyFun Symbol Symbol -> Type))
data ShowParenSym2 (l_a2SCA :: Bool) (l_a2SCB :: TyFun Symbol Symbol -> Type) (l_a2SCz :: TyFun Symbol Symbol)
data ShowSpaceSym0 (l_a2SBG :: TyFun Symbol Symbol)
type ShowSpaceSym1 (t_a2SBF :: Symbol) = ShowSpace t_a2SBF
data ShowCharSym0 (l_a2SCq :: TyFun Symbol (TyFun Symbol Symbol -> Type))
data ShowCharSym1 (l_a2SCo :: Symbol) (l_a2SCn :: TyFun Symbol Symbol)
type ShowCharSym2 (t_a2SCl :: Symbol) (t_a2SCm :: Symbol) = ShowChar t_a2SCl t_a2SCm
data ShowCommaSpaceSym0 (l_a2SCd :: TyFun Symbol Symbol)
type ShowCommaSpaceSym1 (t_a2SCc :: Symbol) = ShowCommaSpace t_a2SCc
data (.@#@$) (l_a1N1N :: TyFun (TyFun b6989586621679436415 c6989586621679436416 -> Type) (TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type) -> Type))
data (.@#@$$) (l_a1N1L :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1K :: TyFun (TyFun a6989586621679436417 b6989586621679436415 -> Type) (TyFun a6989586621679436417 c6989586621679436416 -> Type))
data (.@#@$$$) (l_a1N1H :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (l_a1N1I :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (l_a1N1G :: TyFun a6989586621679436417 c6989586621679436416)
type (.@#@$$$$) (t_a1N1D :: TyFun b6989586621679436415 c6989586621679436416 -> Type) (t_a1N1E :: TyFun a6989586621679436417 b6989586621679436415 -> Type) (t_a1N1F :: a6989586621679436417) = (:.) t_a1N1D t_a1N1E t_a1N1F
data (:@#@$) (l_a12OU :: TyFun a3530822107858468865 (TyFun [a3530822107858468865] [a3530822107858468865] -> Type))
data (:@#@$$) (l_a12OS :: a3530822107858468865) (l_a12OR :: TyFun [a3530822107858468865] [a3530822107858468865])
type (:@#@$$$) (t_a12OP :: a3530822107858468865) (t_a12OQ :: [a3530822107858468865]) = (:) t_a12OP t_a12OQ

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