singletons-2.4: A framework for generating singleton types

Data.Singletons.Prelude.Function

Contents

Description

Defines singleton versions of the definitions in Data.Function.

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 Data.Function. Also, please excuse the apparent repeated variable names. This is due to an interaction between Template Haskell and Haddock.

Synopsis

# Prelude re-exports

type family Id (a :: a) :: a where ... Source #

Equations

 Id x = x

sId :: forall (t :: a). Sing t -> Sing (Apply IdSym0 t :: a) Source #

type family Const (a :: a) (a :: b) :: a where ... Source #

Equations

 Const x _ = x

sConst :: forall (t :: a) (t :: b). Sing t -> Sing t -> Sing (Apply (Apply ConstSym0 t) t :: a) Source #

type family ((a :: TyFun b c -> Type) :. (a :: TyFun a b -> Type)) (a :: a) :: c where ... Source #

Equations

 (f :. g) a_6989586621679420075 = Apply (Apply (Apply (Apply Lambda_6989586621679420080Sym0 f) g) a_6989586621679420075) a_6989586621679420075

(%.) :: forall (t :: TyFun b c -> Type) (t :: TyFun a b -> Type) (t :: a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply (.@#@$) t) t) t :: c) infixr 9 Source # type family Flip (a :: TyFun a (TyFun b c -> Type) -> Type) (a :: b) (a :: a) :: c where ... Source # Equations  Flip f x y = Apply (Apply f y) x sFlip :: forall (t :: TyFun a (TyFun b c -> Type) -> Type) (t :: b) (t :: a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply FlipSym0 t) t) t :: c) Source # type family (a :: TyFun a b -> Type)$ (a :: a) :: b where ... Source #

Equations

 f $x = Apply f x (%$) :: forall (t :: TyFun a b -> Type) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply ($@#@$) t) t :: b) infixr 0 Source #

# Other combinators

type family (a :: a) & (a :: TyFun a b -> Type) :: b where ... Source #

Equations

 x & f = Apply f x

(%&) :: forall (t :: a) (t :: TyFun a b -> Type). Sing t -> Sing t -> Sing (Apply (Apply (&@#@$) t) t :: b) infixl 1 Source # type family On (a :: TyFun b (TyFun b c -> Type) -> Type) (a :: TyFun a b -> Type) (a :: a) (a :: a) :: c where ... infixl 0 Source # Equations  On ty f a_6989586621679759204 a_6989586621679759206 = Apply (Apply (Apply (Apply (Apply (Apply Lambda_6989586621679759212Sym0 ty) f) a_6989586621679759204) a_6989586621679759206) a_6989586621679759204) a_6989586621679759206 sOn :: forall (t :: TyFun b (TyFun b c -> Type) -> Type) (t :: TyFun a b -> Type) (t :: a) (t :: a). Sing t -> Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply (Apply OnSym0 t) t) t) t :: c) infixl 0 Source # # Defunctionalization symbols data IdSym0 (l :: TyFun a6989586621679419903 a6989586621679419903) Source # Instances  SuppressUnusedWarnings (IdSym0 :: TyFun a6989586621679419903 a6989586621679419903 -> *) Source # Instance detailsMethods type Apply (IdSym0 :: TyFun a a -> *) (l :: a) Source # Instance detailstype Apply (IdSym0 :: TyFun a a -> *) (l :: a) = Id l type IdSym1 (t :: a6989586621679419903) = Id t Source # data ConstSym0 (l :: TyFun a6989586621679419901 (TyFun b6989586621679419902 a6989586621679419901 -> Type)) Source # Instances  SuppressUnusedWarnings (ConstSym0 :: TyFun a6989586621679419901 (TyFun b6989586621679419902 a6989586621679419901 -> Type) -> *) Source # Instance detailsMethods type Apply (ConstSym0 :: TyFun a6989586621679419901 (TyFun b6989586621679419902 a6989586621679419901 -> Type) -> *) (l :: a6989586621679419901) Source # Instance detailstype Apply (ConstSym0 :: TyFun a6989586621679419901 (TyFun b6989586621679419902 a6989586621679419901 -> Type) -> *) (l :: a6989586621679419901) = (ConstSym1 l :: TyFun b6989586621679419902 a6989586621679419901 -> *) data ConstSym1 (l :: a6989586621679419901) (l :: TyFun b6989586621679419902 a6989586621679419901) Source # Instances  SuppressUnusedWarnings (ConstSym1 :: a6989586621679419901 -> TyFun b6989586621679419902 a6989586621679419901 -> *) Source # Instance detailsMethods type Apply (ConstSym1 l1 :: TyFun b a -> *) (l2 :: b) Source # Instance detailstype Apply (ConstSym1 l1 :: TyFun b a -> *) (l2 :: b) = Const l1 l2 type ConstSym2 (t :: a6989586621679419901) (t :: b6989586621679419902) = Const t t Source # data (.@#@$) (l :: TyFun (TyFun b6989586621679419898 c6989586621679419899 -> Type) (TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> Type)) Source #

Instances
 SuppressUnusedWarnings ((.@#@$) :: TyFun (TyFun b6989586621679419898 c6989586621679419899 -> Type) (TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> Type) -> *) Source # Instance detailsMethods type Apply ((.@#@$) :: TyFun (TyFun b6989586621679419898 c6989586621679419899 -> Type) (TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> Type) -> *) (l :: TyFun b6989586621679419898 c6989586621679419899 -> Type) Source # Instance detailstype Apply ((.@#@$) :: TyFun (TyFun b6989586621679419898 c6989586621679419899 -> Type) (TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> Type) -> *) (l :: TyFun b6989586621679419898 c6989586621679419899 -> Type) = ((.@#@$$) l :: TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> *) data (l :: TyFun b6989586621679419898 c6989586621679419899 -> Type) .@#@$$ (l :: TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type)) Source # Instances  SuppressUnusedWarnings ((.@#@$$) :: (TyFun b6989586621679419898 c6989586621679419899 -> Type) -> TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> *) Source # Instance detailsMethods type Apply ((.@#@$$) l1 :: TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> *) (l2 :: TyFun a6989586621679419900 b6989586621679419898 -> Type) Source # Instance detailstype Apply ((.@#@$$) l1 :: TyFun (TyFun a6989586621679419900 b6989586621679419898 -> Type) (TyFun a6989586621679419900 c6989586621679419899 -> Type) -> *) (l2 :: TyFun a6989586621679419900 b6989586621679419898 -> Type) = l1 .@#@$$$ l2

data ((l :: TyFun b6989586621679419898 c6989586621679419899 -> Type) .@#@$$(l :: TyFun a6989586621679419900 b6989586621679419898 -> Type)) (l :: TyFun a6989586621679419900 c6989586621679419899) Source # Instances  SuppressUnusedWarnings ((.@#@$$$) :: (TyFun b6989586621679419898 c6989586621679419899 -> Type) -> (TyFun a6989586621679419900 b6989586621679419898 -> Type) -> TyFun a6989586621679419900 c6989586621679419899 -> *) Source # Instance detailsMethods type Apply (l1 .@#@$$l2 :: TyFun a c -> *) (l3 :: a) Source # Instance detailstype Apply (l1 .@#@$$$ l2 :: TyFun a c -> *) (l3 :: a) = (l1 :. l2) l3

type (.@#@) (t :: TyFun b6989586621679419898 c6989586621679419899 -> Type) (t :: TyFun a6989586621679419900 b6989586621679419898 -> Type) (t :: a6989586621679419900) = (:.) t t t Source #

data FlipSym0 (l :: TyFun (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> Type)) Source #

Instances
 SuppressUnusedWarnings (FlipSym0 :: TyFun (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> Type) -> *) Source # Instance detailsMethods type Apply (FlipSym0 :: TyFun (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> Type) -> *) (l :: TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) Source # Instance detailstype Apply (FlipSym0 :: TyFun (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> Type) -> *) (l :: TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) = FlipSym1 l

data FlipSym1 (l :: TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (l :: TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type)) Source #

Instances
 SuppressUnusedWarnings (FlipSym1 :: (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) -> TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> *) Source # Instance detailsMethods type Apply (FlipSym1 l1 :: TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> *) (l2 :: b6989586621679419896) Source # Instance detailstype Apply (FlipSym1 l1 :: TyFun b6989586621679419896 (TyFun a6989586621679419895 c6989586621679419897 -> Type) -> *) (l2 :: b6989586621679419896) = FlipSym2 l1 l2

data FlipSym2 (l :: TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (l :: b6989586621679419896) (l :: TyFun a6989586621679419895 c6989586621679419897) Source #

Instances
 SuppressUnusedWarnings (FlipSym2 :: (TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) -> b6989586621679419896 -> TyFun a6989586621679419895 c6989586621679419897 -> *) Source # Instance detailsMethods type Apply (FlipSym2 l1 l2 :: TyFun a c -> *) (l3 :: a) Source # Instance detailstype Apply (FlipSym2 l1 l2 :: TyFun a c -> *) (l3 :: a) = Flip l1 l2 l3

type FlipSym3 (t :: TyFun a6989586621679419895 (TyFun b6989586621679419896 c6989586621679419897 -> Type) -> Type) (t :: b6989586621679419896) (t :: a6989586621679419895) = Flip t t t Source #

data ($@#@$) (l :: TyFun (TyFun a6989586621679419892 b6989586621679419893 -> Type) (TyFun a6989586621679419892 b6989586621679419893 -> Type)) Source #

Instances
 SuppressUnusedWarnings (($@#@$) :: TyFun (TyFun a6989586621679419892 b6989586621679419893 -> Type) (TyFun a6989586621679419892 b6989586621679419893 -> Type) -> *) Source # Instance detailsMethods type Apply (($@#@$) :: TyFun (TyFun a6989586621679419892 b6989586621679419893 -> Type) (TyFun a6989586621679419892 b6989586621679419893 -> Type) -> *) (l :: TyFun a6989586621679419892 b6989586621679419893 -> Type) Source # Instance detailstype Apply (($@#@$) :: TyFun (TyFun a6989586621679419892 b6989586621679419893 -> Type) (TyFun a6989586621679419892 b6989586621679419893 -> Type) -> *) (l :: TyFun a6989586621679419892 b6989586621679419893 -> Type) = ($@#@$$) l data (l :: TyFun a6989586621679419892 b6989586621679419893 -> Type) @#@$$ (l :: TyFun a6989586621679419892 b6989586621679419893) Source # Instances  SuppressUnusedWarnings (($@#@$$) :: (TyFun a6989586621679419892 b6989586621679419893 -> Type) -> TyFun a6989586621679419892 b6989586621679419893 -> *) Source # Instance detailsMethods type Apply ((@#@$$) l1 :: TyFun a b -> *) (l2 :: a) Source # Instance detailstype Apply (($@#@$$) l1 :: TyFun a b -> *) (l2 :: a) = l1 l2 type (@#@$$$) (t :: TyFun a6989586621679419892 b6989586621679419893 -> Type) (t :: a6989586621679419892) = ($) t t Source # data (&@#@$) (l :: TyFun a6989586621679759158 (TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> Type)) Source #

Instances
 SuppressUnusedWarnings ((&@#@$) :: TyFun a6989586621679759158 (TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> Type) -> *) Source # Instance detailsMethods type Apply ((&@#@$) :: TyFun a6989586621679759158 (TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> Type) -> *) (l :: a6989586621679759158) Source # Instance detailstype Apply ((&@#@$) :: TyFun a6989586621679759158 (TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> Type) -> *) (l :: a6989586621679759158) = ((&@#@$$) l :: TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> *) data (l :: a6989586621679759158) &@#@$$ (l :: TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159) Source # Instances  SuppressUnusedWarnings ((&@#@$$) :: a6989586621679759158 -> TyFun (TyFun a6989586621679759158 b6989586621679759159 -> Type) b6989586621679759159 -> *) Source # Instance detailsMethods type Apply ((&@#@$$) l1 :: TyFun (TyFun a b -> Type) b -> *) (l2 :: TyFun a b -> Type) Source # Instance detailstype Apply ((&@#@$$) l1 :: TyFun (TyFun a b -> Type) b -> *) (l2 :: TyFun a b -> Type) = l1 & l2 type (&@#@$$$) (t :: a6989586621679759158) (t :: TyFun a6989586621679759158 b6989586621679759159 -> Type) = (&) t t Source #

data OnSym0 (l :: TyFun (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> Type)) Source #

Instances
 SuppressUnusedWarnings (OnSym0 :: TyFun (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> Type) -> *) Source # Instance detailsMethods type Apply (OnSym0 :: TyFun (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> Type) -> *) (l :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) Source # Instance detailstype Apply (OnSym0 :: TyFun (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> Type) -> *) (l :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) = (OnSym1 l :: TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> *)

data OnSym1 (l :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (l :: TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type)) Source #

Instances
 SuppressUnusedWarnings (OnSym1 :: (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) -> TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> *) Source # Instance detailsMethods type Apply (OnSym1 l1 :: TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> *) (l2 :: TyFun a6989586621679759162 b6989586621679759160 -> Type) Source # Instance detailstype Apply (OnSym1 l1 :: TyFun (TyFun a6989586621679759162 b6989586621679759160 -> Type) (TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> Type) -> *) (l2 :: TyFun a6989586621679759162 b6989586621679759160 -> Type) = OnSym2 l1 l2

data OnSym2 (l :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (l :: TyFun a6989586621679759162 b6989586621679759160 -> Type) (l :: TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type)) Source #

Instances
 SuppressUnusedWarnings (OnSym2 :: (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) -> (TyFun a6989586621679759162 b6989586621679759160 -> Type) -> TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> *) Source # Instance detailsMethods type Apply (OnSym2 l1 l2 :: TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> *) (l3 :: a6989586621679759162) Source # Instance detailstype Apply (OnSym2 l1 l2 :: TyFun a6989586621679759162 (TyFun a6989586621679759162 c6989586621679759161 -> Type) -> *) (l3 :: a6989586621679759162) = OnSym3 l1 l2 l3

data OnSym3 (l :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (l :: TyFun a6989586621679759162 b6989586621679759160 -> Type) (l :: a6989586621679759162) (l :: TyFun a6989586621679759162 c6989586621679759161) Source #

Instances
 SuppressUnusedWarnings (OnSym3 :: (TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) -> (TyFun a6989586621679759162 b6989586621679759160 -> Type) -> a6989586621679759162 -> TyFun a6989586621679759162 c6989586621679759161 -> *) Source # Instance detailsMethods type Apply (OnSym3 l1 l2 l3 :: TyFun a c -> *) (l4 :: a) Source # Instance detailstype Apply (OnSym3 l1 l2 l3 :: TyFun a c -> *) (l4 :: a) = On l1 l2 l3 l4

type OnSym4 (t :: TyFun b6989586621679759160 (TyFun b6989586621679759160 c6989586621679759161 -> Type) -> Type) (t :: TyFun a6989586621679759162 b6989586621679759160 -> Type) (t :: a6989586621679759162) (t :: a6989586621679759162) = On t t t t Source #