singletons-base-3.1.1: A promoted and singled version of the base library
Copyright(C) 2018 Ryan Scott
LicenseBSD-style (see LICENSE)
MaintainerRyan Scott
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Functor.Singletons

Description

Defines the promoted and singled versions of the Functor type class.

Synopsis
  • class PFunctor f where
    • type Fmap (arg :: (~>) a b) (arg :: f a) :: f b
    • type (arg :: a) <$ (arg :: f b) :: f a
  • class SFunctor f where
  • type family (a :: f a) $> (a :: b) :: f b where ...
  • (%$>) :: forall f a b (t :: f a) (t :: b). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply ($>@#@$) t) t :: f b)
  • type family (a :: (~>) a b) <$> (a :: f a) :: f b where ...
  • (%<$>) :: forall a b f (t :: (~>) a b) (t :: f a). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply (<$>@#@$) t) t :: f b)
  • type family (a :: f a) <&> (a :: (~>) a b) :: f b where ...
  • (%<&>) :: forall f a b (t :: f a) (t :: (~>) a b). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply (<&>@#@$) t) t :: f b)
  • type family Void (a :: f a) :: f () where ...
  • sVoid :: forall f a (t :: f a). SFunctor f => Sing t -> Sing (Apply VoidSym0 t :: f ())
  • data FmapSym0 :: (~>) ((~>) a b) ((~>) (f a) (f b))
  • data FmapSym1 (a6989586621679329112 :: (~>) a b) :: (~>) (f a) (f b)
  • type family FmapSym2 (a6989586621679329112 :: (~>) a b) (a6989586621679329113 :: f a) :: f b where ...
  • data (<$@#@$) :: (~>) a ((~>) (f b) (f a))
  • data (<$@#@$$) (a6989586621679329117 :: a) :: (~>) (f b) (f a)
  • type family (a6989586621679329117 :: a) <$@#@$$$ (a6989586621679329118 :: f b) :: f a where ...
  • data ($>@#@$) :: (~>) (f a) ((~>) b (f b))
  • data ($>@#@$$) (a6989586621679519960 :: f a) :: (~>) b (f b)
  • type family (a6989586621679519960 :: f a) $>@#@$$$ (a6989586621679519961 :: b) :: f b where ...
  • data (<$>@#@$) :: (~>) ((~>) a b) ((~>) (f a) (f b))
  • data (<$>@#@$$) (a6989586621679519978 :: (~>) a b) :: (~>) (f a) (f b)
  • type family (a6989586621679519978 :: (~>) a b) <$>@#@$$$ (a6989586621679519979 :: f a) :: f b where ...
  • data (<&>@#@$) :: (~>) (f a) ((~>) ((~>) a b) (f b))
  • data (<&>@#@$$) (a6989586621679519967 :: f a) :: (~>) ((~>) a b) (f b)
  • type family (a6989586621679519967 :: f a) <&>@#@$$$ (a6989586621679519968 :: (~>) a b) :: f b where ...
  • data VoidSym0 :: (~>) (f a) (f ())
  • type family VoidSym1 (a6989586621679519951 :: f a) :: f () where ...

Documentation

class PFunctor f Source #

Associated Types

type Fmap (arg :: (~>) a b) (arg :: f a) :: f b Source #

type (arg :: a) <$ (arg :: f b) :: f a infixl 4 Source #

type a <$ a = Apply (Apply TFHelper_6989586621679329121Sym0 a) a

Instances

Instances details
PFunctor Identity Source # 
Instance details

Defined in Data.Functor.Identity.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor First Source # 
Instance details

Defined in Data.Monoid.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Last Source # 
Instance details

Defined in Data.Monoid.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Down Source # 
Instance details

Defined in Data.Functor.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor First Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Last Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Max Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Min Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Dual Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Product Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Sum Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor NonEmpty Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor Maybe Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor [] Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Either a) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Proxy :: Type -> Type) Source # 
Instance details

Defined in Data.Proxy.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Arg a) Source # 
Instance details

Defined in Data.Semigroup.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor ((,) a) Source # 
Instance details

Defined in Data.Functor.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Const m :: Type -> Type) Source # 
Instance details

Defined in Data.Functor.Const.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Product f g) Source # 
Instance details

Defined in Data.Functor.Product.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Sum f g) Source # 
Instance details

Defined in Data.Functor.Sum.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

PFunctor (Compose f g) Source # 
Instance details

Defined in Data.Functor.Compose.Singletons

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

class SFunctor f where Source #

Minimal complete definition

sFmap

Methods

sFmap :: forall a b (t :: (~>) a b) (t :: f a). Sing t -> Sing t -> Sing (Apply (Apply FmapSym0 t) t :: f b) Source #

(%<$) :: forall a b (t :: a) (t :: f b). Sing t -> Sing t -> Sing (Apply (Apply (<$@#@$) t) t :: f a) infixl 4 Source #

default (%<$) :: forall a b (t :: a) (t :: f b). (Apply (Apply (<$@#@$) t) t :: f a) ~ Apply (Apply TFHelper_6989586621679329121Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply (<$@#@$) t) t :: f a) Source #

Instances

Instances details
SFunctor Identity Source # 
Instance details

Defined in Data.Functor.Identity.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Identity a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Identity b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor First Source # 
Instance details

Defined in Data.Monoid.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Last Source # 
Instance details

Defined in Data.Monoid.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Down Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Down a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Down b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor First Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Last Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Max Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Max a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Max b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Min Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Min a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Min b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Dual Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Dual a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Dual b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Product Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Product a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Product b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Sum Source # 
Instance details

Defined in Data.Semigroup.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Sum a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Sum b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor NonEmpty Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: NonEmpty a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: NonEmpty b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor Maybe Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Maybe a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Maybe b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor [] Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: [a]). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: [b]). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor (Either a) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sFmap :: forall a0 b (t1 :: a0 ~> b) (t2 :: Either a a0). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a0 b (t1 :: a0) (t2 :: Either a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor (Proxy :: Type -> Type) Source # 
Instance details

Defined in Data.Proxy.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Proxy a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Proxy b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor (Arg a) Source # 
Instance details

Defined in Data.Semigroup.Singletons

Methods

sFmap :: forall a0 b (t1 :: a0 ~> b) (t2 :: Arg a a0). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a0 b (t1 :: a0) (t2 :: Arg a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor ((,) a) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sFmap :: forall a0 b (t1 :: a0 ~> b) (t2 :: (a, a0)). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a0 b (t1 :: a0) (t2 :: (a, b)). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

SFunctor (Const m :: Type -> Type) Source # 
Instance details

Defined in Data.Functor.Const.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Const m a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Const m b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

(SFunctor f, SFunctor g) => SFunctor (Product f g) Source # 
Instance details

Defined in Data.Functor.Product.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Product f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Product f g b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

(SFunctor f, SFunctor g) => SFunctor (Sum f g) Source # 
Instance details

Defined in Data.Functor.Sum.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Sum f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Sum f g b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

(SFunctor f, SFunctor g) => SFunctor (Compose f g) Source # 
Instance details

Defined in Data.Functor.Compose.Singletons

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Compose f g a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Compose f g b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

type family (a :: f a) $> (a :: b) :: f b where ... infixl 4 Source #

Equations

a_6989586621679519953 $> a_6989586621679519955 = Apply (Apply (Apply FlipSym0 (<$@#@$)) a_6989586621679519953) a_6989586621679519955 

(%$>) :: forall f a b (t :: f a) (t :: b). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply ($>@#@$) t) t :: f b) infixl 4 Source #

type family (a :: (~>) a b) <$> (a :: f a) :: f b where ... infixl 4 Source #

Equations

a_6989586621679519971 <$> a_6989586621679519973 = Apply (Apply FmapSym0 a_6989586621679519971) a_6989586621679519973 

(%<$>) :: forall a b f (t :: (~>) a b) (t :: f a). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply (<$>@#@$) t) t :: f b) infixl 4 Source #

type family (a :: f a) <&> (a :: (~>) a b) :: f b where ... infixl 1 Source #

Equations

as <&> f = Apply (Apply (<$>@#@$) f) as 

(%<&>) :: forall f a b (t :: f a) (t :: (~>) a b). SFunctor f => Sing t -> Sing t -> Sing (Apply (Apply (<&>@#@$) t) t :: f b) infixl 1 Source #

type family Void (a :: f a) :: f () where ... Source #

Equations

Void x = Apply (Apply (<$@#@$) Tuple0Sym0) x 

sVoid :: forall f a (t :: f a). SFunctor f => Sing t -> Sing (Apply VoidSym0 t :: f ()) Source #

Defunctionalization symbols

data FmapSym0 :: (~>) ((~>) a b) ((~>) (f a) (f b)) Source #

Instances

Instances details
SFunctor f => SingI (FmapSym0 :: TyFun (a ~> b) (f a ~> f b) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sing :: Sing FmapSym0

SuppressUnusedWarnings (FmapSym0 :: TyFun (a ~> b) (f a ~> f b) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply (FmapSym0 :: TyFun (a ~> b) (f a ~> f b) -> Type) (a6989586621679329112 :: a ~> b) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply (FmapSym0 :: TyFun (a ~> b) (f a ~> f b) -> Type) (a6989586621679329112 :: a ~> b) = FmapSym1 a6989586621679329112 :: TyFun (f a) (f b) -> Type

data FmapSym1 (a6989586621679329112 :: (~>) a b) :: (~>) (f a) (f b) Source #

Instances

Instances details
SFunctor f => SingI1 (FmapSym1 :: (a ~> b) -> TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

liftSing :: forall (x :: k1). Sing x -> Sing (FmapSym1 x)

(SFunctor f, SingI d) => SingI (FmapSym1 d :: TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sing :: Sing (FmapSym1 d)

SuppressUnusedWarnings (FmapSym1 a6989586621679329112 :: TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply (FmapSym1 a6989586621679329112 :: TyFun (f a) (f b) -> Type) (a6989586621679329113 :: f a) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply (FmapSym1 a6989586621679329112 :: TyFun (f a) (f b) -> Type) (a6989586621679329113 :: f a) = Fmap a6989586621679329112 a6989586621679329113

type family FmapSym2 (a6989586621679329112 :: (~>) a b) (a6989586621679329113 :: f a) :: f b where ... Source #

Equations

FmapSym2 a6989586621679329112 a6989586621679329113 = Fmap a6989586621679329112 a6989586621679329113 

data (<$@#@$) :: (~>) a ((~>) (f b) (f a)) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI ((<$@#@$) :: TyFun a (f b ~> f a) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sing :: Sing (<$@#@$)

SuppressUnusedWarnings ((<$@#@$) :: TyFun a (f b ~> f a) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply ((<$@#@$) :: TyFun a (f b ~> f a) -> Type) (a6989586621679329117 :: a) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply ((<$@#@$) :: TyFun a (f b ~> f a) -> Type) (a6989586621679329117 :: a) = (<$@#@$$) a6989586621679329117 :: TyFun (f b) (f a) -> Type

data (<$@#@$$) (a6989586621679329117 :: a) :: (~>) (f b) (f a) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI1 ((<$@#@$$) :: a -> TyFun (f b) (f a) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

liftSing :: forall (x :: k1). Sing x -> Sing ((<$@#@$$) x)

(SFunctor f, SingI d) => SingI ((<$@#@$$) d :: TyFun (f b) (f a) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

Methods

sing :: Sing ((<$@#@$$) d)

SuppressUnusedWarnings ((<$@#@$$) a6989586621679329117 :: TyFun (f b) (f a) -> Type) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply ((<$@#@$$) a6989586621679329117 :: TyFun (f b) (f a) -> Type) (a6989586621679329118 :: f b) Source # 
Instance details

Defined in Control.Monad.Singletons.Internal

type Apply ((<$@#@$$) a6989586621679329117 :: TyFun (f b) (f a) -> Type) (a6989586621679329118 :: f b) = a6989586621679329117 <$ a6989586621679329118

type family (a6989586621679329117 :: a) <$@#@$$$ (a6989586621679329118 :: f b) :: f a where ... infixl 4 Source #

Equations

a6989586621679329117 <$@#@$$$ a6989586621679329118 = (<$) a6989586621679329117 a6989586621679329118 

data ($>@#@$) :: (~>) (f a) ((~>) b (f b)) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI (($>@#@$) :: TyFun (f a) (b ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing ($>@#@$)

SuppressUnusedWarnings (($>@#@$) :: TyFun (f a) (b ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (($>@#@$) :: TyFun (f a) (b ~> f b) -> Type) (a6989586621679519960 :: f a) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (($>@#@$) :: TyFun (f a) (b ~> f b) -> Type) (a6989586621679519960 :: f a) = ($>@#@$$) a6989586621679519960 :: TyFun b (f b) -> Type

data ($>@#@$$) (a6989586621679519960 :: f a) :: (~>) b (f b) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI1 (($>@#@$$) :: f a -> TyFun b (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing (($>@#@$$) x)

(SFunctor f, SingI d) => SingI (($>@#@$$) d :: TyFun b (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing (($>@#@$$) d)

SuppressUnusedWarnings (($>@#@$$) a6989586621679519960 :: TyFun b (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (($>@#@$$) a6989586621679519960 :: TyFun b (f b) -> Type) (a6989586621679519961 :: b) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (($>@#@$$) a6989586621679519960 :: TyFun b (f b) -> Type) (a6989586621679519961 :: b) = a6989586621679519960 $> a6989586621679519961

type family (a6989586621679519960 :: f a) $>@#@$$$ (a6989586621679519961 :: b) :: f b where ... infixl 4 Source #

Equations

a6989586621679519960 $>@#@$$$ a6989586621679519961 = ($>) a6989586621679519960 a6989586621679519961 

data (<$>@#@$) :: (~>) ((~>) a b) ((~>) (f a) (f b)) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI ((<$>@#@$) :: TyFun (a ~> b) (f a ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing (<$>@#@$)

SuppressUnusedWarnings ((<$>@#@$) :: TyFun (a ~> b) (f a ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<$>@#@$) :: TyFun (a ~> b) (f a ~> f b) -> Type) (a6989586621679519978 :: a ~> b) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<$>@#@$) :: TyFun (a ~> b) (f a ~> f b) -> Type) (a6989586621679519978 :: a ~> b) = (<$>@#@$$) a6989586621679519978 :: TyFun (f a) (f b) -> Type

data (<$>@#@$$) (a6989586621679519978 :: (~>) a b) :: (~>) (f a) (f b) infixl 4 Source #

Instances

Instances details
SFunctor f => SingI1 ((<$>@#@$$) :: (a ~> b) -> TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing ((<$>@#@$$) x)

(SFunctor f, SingI d) => SingI ((<$>@#@$$) d :: TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing ((<$>@#@$$) d)

SuppressUnusedWarnings ((<$>@#@$$) a6989586621679519978 :: TyFun (f a) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<$>@#@$$) a6989586621679519978 :: TyFun (f a) (f b) -> Type) (a6989586621679519979 :: f a) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<$>@#@$$) a6989586621679519978 :: TyFun (f a) (f b) -> Type) (a6989586621679519979 :: f a) = a6989586621679519978 <$> a6989586621679519979

type family (a6989586621679519978 :: (~>) a b) <$>@#@$$$ (a6989586621679519979 :: f a) :: f b where ... infixl 4 Source #

Equations

a6989586621679519978 <$>@#@$$$ a6989586621679519979 = (<$>) a6989586621679519978 a6989586621679519979 

data (<&>@#@$) :: (~>) (f a) ((~>) ((~>) a b) (f b)) infixl 1 Source #

Instances

Instances details
SFunctor f => SingI ((<&>@#@$) :: TyFun (f a) ((a ~> b) ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing (<&>@#@$)

SuppressUnusedWarnings ((<&>@#@$) :: TyFun (f a) ((a ~> b) ~> f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<&>@#@$) :: TyFun (f a) ((a ~> b) ~> f b) -> Type) (a6989586621679519967 :: f a) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<&>@#@$) :: TyFun (f a) ((a ~> b) ~> f b) -> Type) (a6989586621679519967 :: f a) = (<&>@#@$$) a6989586621679519967 :: TyFun (a ~> b) (f b) -> Type

data (<&>@#@$$) (a6989586621679519967 :: f a) :: (~>) ((~>) a b) (f b) infixl 1 Source #

Instances

Instances details
SFunctor f => SingI1 ((<&>@#@$$) :: f a -> TyFun (a ~> b) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing ((<&>@#@$$) x)

(SFunctor f, SingI d) => SingI ((<&>@#@$$) d :: TyFun (a ~> b) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing ((<&>@#@$$) d)

SuppressUnusedWarnings ((<&>@#@$$) a6989586621679519967 :: TyFun (a ~> b) (f b) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<&>@#@$$) a6989586621679519967 :: TyFun (a ~> b) (f b) -> Type) (a6989586621679519968 :: a ~> b) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply ((<&>@#@$$) a6989586621679519967 :: TyFun (a ~> b) (f b) -> Type) (a6989586621679519968 :: a ~> b) = a6989586621679519967 <&> a6989586621679519968

type family (a6989586621679519967 :: f a) <&>@#@$$$ (a6989586621679519968 :: (~>) a b) :: f b where ... infixl 1 Source #

Equations

a6989586621679519967 <&>@#@$$$ a6989586621679519968 = (<&>) a6989586621679519967 a6989586621679519968 

data VoidSym0 :: (~>) (f a) (f ()) Source #

Instances

Instances details
SFunctor f => SingI (VoidSym0 :: TyFun (f a) (f ()) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

Methods

sing :: Sing VoidSym0

SuppressUnusedWarnings (VoidSym0 :: TyFun (f a) (f ()) -> Type) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (VoidSym0 :: TyFun (f a) (f ()) -> Type) (a6989586621679519951 :: f a) Source # 
Instance details

Defined in Data.Functor.Singletons

type Apply (VoidSym0 :: TyFun (f a) (f ()) -> Type) (a6989586621679519951 :: f a) = Void a6989586621679519951

type family VoidSym1 (a6989586621679519951 :: f a) :: f () where ... Source #

Equations

VoidSym1 a6989586621679519951 = Void a6989586621679519951 

Orphan instances

PFunctor Down Source # 
Instance details

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

SFunctor Down Source # 
Instance details

Methods

sFmap :: forall a b (t1 :: a ~> b) (t2 :: Down a). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a b (t1 :: a) (t2 :: Down b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #

PFunctor ((,) a) Source # 
Instance details

Associated Types

type Fmap arg arg1 :: f b Source #

type arg <$ arg1 :: f a Source #

SFunctor ((,) a) Source # 
Instance details

Methods

sFmap :: forall a0 b (t1 :: a0 ~> b) (t2 :: (a, a0)). Sing t1 -> Sing t2 -> Sing (Apply (Apply FmapSym0 t1) t2) Source #

(%<$) :: forall a0 b (t1 :: a0) (t2 :: (a, b)). Sing t1 -> Sing t2 -> Sing (Apply (Apply (<$@#@$) t1) t2) Source #