singletons-2.5.1: A framework for generating singleton types

Copyright | (C) 2013-2014 Richard Eisenberg Jan Stolarek
License | BSD-style (see LICENSE)
Maintainer | Ryan Scott
Stability | experimental
Portability | non-portable
Safe Haskell | None
Language | Haskell2010

Data.Singletons.Prelude.Maybe

Contents

- Singletons from `Data.Maybe`
- Defunctionalization symbols

Description

Defines functions and datatypes relating to the singleton for `Maybe`, including a singletons version of all the definitions in `Data.Maybe`.

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

Synopsis

- data family Sing :: k -> Type
- type SMaybe = (Sing :: Maybe a -> Type)
- maybe_ :: b -> (a -> b) -> Maybe a -> b
- type family Maybe_ (a :: b) (a :: (~>) a b) (a :: Maybe a) :: b where ...
- sMaybe_ :: forall b a (t :: b) (t :: (~>) a b) (t :: Maybe a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply Maybe_Sym0 t) t) t :: b)
- type family IsJust (a :: Maybe a) :: Bool where ...
- sIsJust :: forall a (t :: Maybe a). Sing t -> Sing (Apply IsJustSym0 t :: Bool)
- type family IsNothing (a :: Maybe a) :: Bool where ...
- sIsNothing :: forall a (t :: Maybe a). Sing t -> Sing (Apply IsNothingSym0 t :: Bool)
- type family FromJust (a :: Maybe a) :: a where ...
- sFromJust :: forall a (t :: Maybe a). Sing t -> Sing (Apply FromJustSym0 t :: a)
- type family FromMaybe (a :: a) (a :: Maybe a) :: a where ...
- sFromMaybe :: forall a (t :: a) (t :: Maybe a). Sing t -> Sing t -> Sing (Apply (Apply FromMaybeSym0 t) t :: a)
- type family ListToMaybe (a :: [a]) :: Maybe a where ...
- sListToMaybe :: forall a (t :: [a]). Sing t -> Sing (Apply ListToMaybeSym0 t :: Maybe a)
- type family MaybeToList (a :: Maybe a) :: [a] where ...
- sMaybeToList :: forall a (t :: Maybe a). Sing t -> Sing (Apply MaybeToListSym0 t :: [a])
- type family CatMaybes (a :: [Maybe a]) :: [a] where ...
- sCatMaybes :: forall a (t :: [Maybe a]). Sing t -> Sing (Apply CatMaybesSym0 t :: [a])
- type family MapMaybe (a :: (~>) a (Maybe b)) (a :: [a]) :: [b] where ...
- sMapMaybe :: forall a b (t :: (~>) a (Maybe b)) (t :: [a]). Sing t -> Sing t -> Sing (Apply (Apply MapMaybeSym0 t) t :: [b])
- type NothingSym0 = Nothing
- data JustSym0 :: forall (a3530822107858468865 :: Type). (~>) a3530822107858468865 (Maybe (a3530822107858468865 :: Type))
- type JustSym1 (t6989586621679301555 :: a3530822107858468865) = Just t6989586621679301555
- data Maybe_Sym0 :: forall a6989586621679495150 b6989586621679495149. (~>) b6989586621679495149 ((~>) ((~>) a6989586621679495150 b6989586621679495149) ((~>) (Maybe a6989586621679495150) b6989586621679495149))
- data Maybe_Sym1 (a6989586621679495167 :: b6989586621679495149) :: forall a6989586621679495150. (~>) ((~>) a6989586621679495150 b6989586621679495149) ((~>) (Maybe a6989586621679495150) b6989586621679495149)
- data Maybe_Sym2 (a6989586621679495167 :: b6989586621679495149) (a6989586621679495168 :: (~>) a6989586621679495150 b6989586621679495149) :: (~>) (Maybe a6989586621679495150) b6989586621679495149
- type Maybe_Sym3 (a6989586621679495167 :: b6989586621679495149) (a6989586621679495168 :: (~>) a6989586621679495150 b6989586621679495149) (a6989586621679495169 :: Maybe a6989586621679495150) = Maybe_ a6989586621679495167 a6989586621679495168 a6989586621679495169
- data IsJustSym0 :: forall a6989586621679496579. (~>) (Maybe a6989586621679496579) Bool
- type IsJustSym1 (a6989586621679496783 :: Maybe a6989586621679496579) = IsJust a6989586621679496783
- data IsNothingSym0 :: forall a6989586621679496578. (~>) (Maybe a6989586621679496578) Bool
- type IsNothingSym1 (a6989586621679496781 :: Maybe a6989586621679496578) = IsNothing a6989586621679496781
- data FromJustSym0 :: forall a6989586621679496577. (~>) (Maybe a6989586621679496577) a6989586621679496577
- type FromJustSym1 (a6989586621679496778 :: Maybe a6989586621679496577) = FromJust a6989586621679496778
- data FromMaybeSym0 :: forall a6989586621679496576. (~>) a6989586621679496576 ((~>) (Maybe a6989586621679496576) a6989586621679496576)
- data FromMaybeSym1 (a6989586621679496768 :: a6989586621679496576) :: (~>) (Maybe a6989586621679496576) a6989586621679496576
- type FromMaybeSym2 (a6989586621679496768 :: a6989586621679496576) (a6989586621679496769 :: Maybe a6989586621679496576) = FromMaybe a6989586621679496768 a6989586621679496769
- data ListToMaybeSym0 :: forall a6989586621679496574. (~>) [a6989586621679496574] (Maybe a6989586621679496574)
- type ListToMaybeSym1 (a6989586621679496762 :: [a6989586621679496574]) = ListToMaybe a6989586621679496762
- data MaybeToListSym0 :: forall a6989586621679496575. (~>) (Maybe a6989586621679496575) [a6989586621679496575]
- type MaybeToListSym1 (a6989586621679496765 :: Maybe a6989586621679496575) = MaybeToList a6989586621679496765
- data CatMaybesSym0 :: forall a6989586621679496573. (~>) [Maybe a6989586621679496573] [a6989586621679496573]
- type CatMaybesSym1 (a6989586621679496757 :: [Maybe a6989586621679496573]) = CatMaybes a6989586621679496757
- data MapMaybeSym0 :: forall a6989586621679496571 b6989586621679496572. (~>) ((~>) a6989586621679496571 (Maybe b6989586621679496572)) ((~>) [a6989586621679496571] [b6989586621679496572])
- data MapMaybeSym1 (a6989586621679496738 :: (~>) a6989586621679496571 (Maybe b6989586621679496572)) :: (~>) [a6989586621679496571] [b6989586621679496572]
- type MapMaybeSym2 (a6989586621679496738 :: (~>) a6989586621679496571 (Maybe b6989586621679496572)) (a6989586621679496739 :: [a6989586621679496571]) = MapMaybe a6989586621679496738 a6989586621679496739

# Documentation

data family Sing :: k -> Type Source #

The singleton kind-indexed data family.

Instances

SDecide k => TestCoercion (Sing :: k -> Type) Source # |
Instance details Defined in Data.Singletons.Decide Methods testCoercion :: Sing a -> Sing b -> Maybe (Coercion a b) Source #
SDecide k => TestEquality (Sing :: k -> Type) Source # |
Instance details Defined in Data.Singletons.Decide Methods testEquality :: Sing a -> Sing b -> Maybe (a :~: b) Source #
Show (SSymbol s) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> SSymbol s -> ShowS Source # show :: SSymbol s -> String Source # showList :: [SSymbol s] -> ShowS Source #
Show (SNat n) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> SNat n -> ShowS Source # show :: SNat n -> String Source # showList :: [SNat n] -> ShowS Source #
Eq (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods (==) :: Sing a -> Sing a -> Bool Source # (/=) :: Sing a -> Sing a -> Bool Source #
Ord (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods compare :: Sing a -> Sing a -> Ordering Source # (<) :: Sing a -> Sing a -> Bool Source # (<=) :: Sing a -> Sing a -> Bool Source # (>) :: Sing a -> Sing a -> Bool Source # (>=) :: Sing a -> Sing a -> Bool Source # max :: Sing a -> Sing a -> Sing a Source # min :: Sing a -> Sing a -> Sing a Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing [a]) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing a) Source # |
Instance details Defined in Data.Singletons.TypeRepTYPE Methods showsPrec :: Int -> Sing a -> ShowS Source # show :: Sing a -> String Source # showList :: [Sing a] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e, ShowSing f) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b, ShowSing c, ShowSing d, ShowSing e, ShowSing f, ShowSing g) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing b) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing m => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing (Maybe a) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Monoid Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing Bool => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing Bool => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
ShowSing a => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
(ShowSing a, ShowSing [a]) => Show (Sing z) Source # |
Instance details Defined in Data.Singletons.ShowSing Methods showsPrec :: Int -> Sing z -> ShowS Source # show :: Sing z -> String Source # showList :: [Sing z] -> ShowS Source #
data Sing (a :: Bool) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Bool) where

- SFalse :: forall (a :: Bool). Sing False
- STrue :: forall (a :: Bool). Sing True

data Sing (a :: Ordering) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Ordering) where

- SLT :: forall (a :: Ordering). Sing LT
- SEQ :: forall (a :: Ordering). Sing EQ
- SGT :: forall (a :: Ordering). Sing GT

data Sing (n :: Nat) Source # |

Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Nat) where

- SNat :: forall (n :: Nat). KnownNat n => Sing n

data Sing (n :: Symbol) Source # |

Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Symbol) where

- SSym :: forall (n :: Symbol). KnownSymbol n => Sing n

data Sing (a :: ()) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: ()) where

- STuple0 :: forall (a :: ()). Sing ()

data Sing (a :: Void) Source # |
Instance details Defined in Data.Singletons.Prelude.Instances data Sing (a :: Void)
data Sing (a :: All) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: All) where

- SAll :: forall (a :: All) (n :: Bool). {..} -> Sing (All n)

data Sing (a :: Any) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: Any) where

- SAny :: forall (a :: Any) (n :: Bool). {..} -> Sing (Any n)

data Sing (a :: PErrorMessage) Source # |

Instance details

Defined in Data.Singletons.TypeError

data Sing (a :: PErrorMessage) where

- SText :: forall (a :: PErrorMessage) (t :: Symbol). Sing t -> Sing (Text t)
- SShowType :: forall (a :: PErrorMessage) t (ty :: t). Sing ty -> Sing (ShowType ty :: ErrorMessage' Symbol)
- (:%<>:) :: forall (a :: PErrorMessage) (e1 :: ErrorMessage' Symbol) (e2 :: ErrorMessage' Symbol). Sing e1 -> Sing e2 -> Sing (e1 :<>: e2)
- (:%$$:) :: forall (a :: PErrorMessage) (e1 :: ErrorMessage' Symbol) (e2 :: ErrorMessage' Symbol). Sing e1 -> Sing e2 -> Sing (e1 :$$: e2)

data Sing (b :: [a]) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: [a]) where

- SNil :: forall k (b :: [k]). Sing ([] :: [k])
- SCons :: forall a (b :: [a]) (n :: a) (n :: [a]). Sing n -> Sing n -> Sing (n ': n)

data Sing (b :: Maybe a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Maybe a) where

- SNothing :: forall a (b :: Maybe a). Sing (Nothing :: Maybe a)
- SJust :: forall a (b :: Maybe a) (n :: a). Sing n -> Sing (Just n)

newtype Sing (a :: TYPE rep) Source #

A choice of singleton for the kind ``TYPE` rep` (for some `RuntimeRep` `rep`), an instantiation of which is the famous kind `Type`.

Conceivably, one could generalize this instance to `Sing :: k -> Type` for any kind `k`, and remove all other `Sing` instances. We don't adopt this design, however, since it is far more convenient in practice to work with explicit singleton values than `TypeRep`s (for instance, `TypeRep`s are more difficult to pattern match on, and require extra runtime checks).

We cannot produce explicit singleton values for everything in ``TYPE` rep`, however, since it is an open kind, so we reach for `TypeRep` in this one particular case.

Instance details Defined in Data.Singletons.TypeRepTYPE newtype Sing (a :: TYPE rep) = STypeRep (TypeRep a)
data Sing (b :: Min a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Min a) where

- SMin :: forall a (b :: Min a) (n :: a). {..} -> Sing (Min n)

data Sing (b :: Max a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Max a) where

- SMax :: forall a (b :: Max a) (n :: a). {..} -> Sing (Max n)

data Sing (b :: First a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: First a) where

- SFirst :: forall a (b :: First a) (n :: a). {..} -> Sing (First n)

data Sing (b :: Last a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Last a) where

- SLast :: forall a (b :: Last a) (n :: a). {..} -> Sing (Last n)

data Sing (a :: WrappedMonoid m) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: WrappedMonoid m) where

- SWrapMonoid :: forall m (a :: WrappedMonoid m) (n :: m). {..} -> Sing (WrapMonoid n)

data Sing (b :: Option a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Option a) where

- SOption :: forall a (b :: Option a) (n :: Maybe a). {..} -> Sing (Option n)

data Sing (b :: Identity a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Identity a) where

- SIdentity :: forall a (b :: Identity a) (n :: a). {..} -> Sing (Identity n)

data Sing (b :: First a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: First a) where

- SFirst :: forall a (b :: First a) (n :: Maybe a). {..} -> Sing (First n)

data Sing (b :: Last a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: Last a) where

- SLast :: forall a (b :: Last a) (n :: Maybe a). {..} -> Sing (Last n)

data Sing (b :: Dual a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Dual a) where

- SDual :: forall a (b :: Dual a) (n :: a). {..} -> Sing (Dual n)

data Sing (b :: Sum a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Sum a) where

- SSum :: forall a (b :: Sum a) (n :: a). {..} -> Sing (Sum n)

data Sing (b :: Product a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Product a) where

- SProduct :: forall a (b :: Product a) (n :: a). {..} -> Sing (Product n)

data Sing (b :: Down a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Ord

data Sing (b :: Down a) where

- SDown :: forall a (b :: Down a) (n :: a). Sing n -> Sing (Down n)

data Sing (b :: NonEmpty a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: NonEmpty a) where

- (:%|) :: forall a (b :: NonEmpty a) (n :: a) (n :: [a]). Sing n -> Sing n -> Sing (n :| n)

data Sing (c :: Either a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: Either a b) where

- SLeft :: forall a b (c :: Either a b) (n :: a). Sing n -> Sing (Left n :: Either a b)
- SRight :: forall a b (c :: Either a b) (n :: b). Sing n -> Sing (Right n :: Either a b)

data Sing (c :: (a, b)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: (a, b)) where

- STuple2 :: forall a b (c :: (a, b)) (n :: a) (n :: b). Sing n -> Sing n -> Sing ((,) n n)

data Sing (c :: Arg a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

data Sing (c :: Arg a b) where

- SArg :: forall a b (c :: Arg a b) (n :: a) (n :: b). Sing n -> Sing n -> Sing (Arg n n)

newtype Sing (f :: k1 ~> k2) Source # |

Instance details

Defined in Data.Singletons.Internal

newtype Sing (f :: k1 ~> k2) = SLambda {

- applySing :: forall (t :: k1). Sing t -> Sing (f @@ t)

}

data Sing (d :: (a, b, c)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (d :: (a, b, c)) where

- STuple3 :: forall a b c (d :: (a, b, c)) (n :: a) (n :: b) (n :: c). Sing n -> Sing n -> Sing n -> Sing ((,,) n n n)

data Sing (c :: Const a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Const

data Sing (c :: Const a b) where

- SConst :: forall k a (b :: k) (c :: Const a b) (a :: a). {..} -> Sing (Const a :: Const a b)

data Sing (e :: (a, b, c, d)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (e :: (a, b, c, d)) where

- STuple4 :: forall a b c d (e :: (a, b, c, d)) (n :: a) (n :: b) (n :: c) (n :: d). Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,) n n n n)

data Sing (f :: (a, b, c, d, e)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (f :: (a, b, c, d, e)) where

- STuple5 :: forall a b c d e (f :: (a, b, c, d, e)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,) n n n n n)

data Sing (g :: (a, b, c, d, e, f)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (g :: (a, b, c, d, e, f)) where

- STuple6 :: forall a b c d e f (g :: (a, b, c, d, e, f)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e) (n :: f). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,,) n n n n n n)

data Sing (h :: (a, b, c, d, e, f, g)) Source # |

Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (h :: (a, b, c, d, e, f, g)) where

- STuple7 :: forall a b c d e f g (h :: (a, b, c, d, e, f, g)) (n :: a) (n :: b) (n :: c) (n :: d) (n :: e) (n :: f) (n :: g). Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing n -> Sing ((,,,,,,) n n n n n n n)

Though Haddock doesn't show it, the `Sing` instance above declares constructors

    SNothing :: Sing Nothing
    SJust    :: Sing a -> Sing (Just a)

type SMaybe = (Sing :: Maybe a -> Type) Source #

`SBool` is a kind-restricted synonym for `Sing`: `type SMaybe (a :: Maybe k) = Sing a`

# Singletons from `Data.Maybe`

maybe_ :: b -> (a -> b) -> Maybe a -> b Source #

type family Maybe_ (a :: b) (a :: (~>) a b) (a :: Maybe a) :: b where ... Source #

Equations

Maybe_ n _ Nothing = n |
Maybe_ _ f (Just x) = Apply f x |

sMaybe_ :: forall b a (t :: b) (t :: (~>) a b) (t :: Maybe a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply Maybe_Sym0 t) t) t :: b) Source #

The preceding two definitions are derived from the function `maybe` in `Data.Maybe`. The extra underscore is to avoid name clashes with the type `Maybe`.

type family IsJust (a :: Maybe a) :: Bool where ... Source #

Equations

IsJust Nothing = FalseSym0 |
IsJust (Just _) = TrueSym0 |

sIsJust :: forall a (t :: Maybe a). Sing t -> Sing (Apply IsJustSym0 t :: Bool) Source #

type family IsNothing (a :: Maybe a) :: Bool where ... Source #

Equations

IsNothing Nothing = TrueSym0 |
IsNothing (Just _) = FalseSym0 |

sIsNothing :: forall a (t :: Maybe a). Sing t -> Sing (Apply IsNothingSym0 t :: Bool) Source #

type family FromJust (a :: Maybe a) :: a where ... Source #

Equations

FromJust Nothing = Apply ErrorSym0 "Maybe.fromJust: Nothing" |
FromJust (Just x) = x |

sFromJust :: forall a (t :: Maybe a). Sing t -> Sing (Apply FromJustSym0 t :: a) Source #

type family FromMaybe (a :: a) (a :: Maybe a) :: a where ... Source #

Equations

FromMaybe d x = Case_6989586621679496774 d x x |

sFromMaybe :: forall a (t :: a) (t :: Maybe a). Sing t -> Sing t -> Sing (Apply (Apply FromMaybeSym0 t) t :: a) Source #

type family ListToMaybe (a :: [a]) :: Maybe a where ... Source #

Equations

ListToMaybe '[] = NothingSym0 |
ListToMaybe ((:) a _) = Apply JustSym0 a |

sListToMaybe :: forall a (t :: [a]). Sing t -> Sing (Apply ListToMaybeSym0 t :: Maybe a) Source #

type family MaybeToList (a :: Maybe a) :: [a] where ... Source #

Equations

MaybeToList Nothing = '[] |
MaybeToList (Just x) = Apply (Apply (:@#@$) x) '[] |

sMaybeToList :: forall a (t :: Maybe a). Sing t -> Sing (Apply MaybeToListSym0 t :: [a]) Source #

type family CatMaybes (a :: [Maybe a]) :: [a] where ... Source #

Equations

CatMaybes '[] = '[] |
CatMaybes ((:) (Just x) xs) = Apply (Apply (:@#@$) x) (Apply CatMaybesSym0 xs) |
CatMaybes ((:) Nothing xs) = Apply CatMaybesSym0 xs |

sCatMaybes :: forall a (t :: [Maybe a]). Sing t -> Sing (Apply CatMaybesSym0 t :: [a]) Source #

type family MapMaybe (a :: (~>) a (Maybe b)) (a :: [a]) :: [b] where ... Source #

Equations

MapMaybe _ '[] = '[] |
MapMaybe f ((:) x xs) = Case_6989586621679496753 f x xs (Let6989586621679496749Scrutinee_6989586621679496606Sym3 f x xs) |

sMapMaybe :: forall a b (t :: (~>) a (Maybe b)) (t :: [a]). Sing t -> Sing t -> Sing (Apply (Apply MapMaybeSym0 t) t :: [b]) Source #

# Defunctionalization symbols

type NothingSym0 = Nothing Source #

data JustSym0 :: forall (a3530822107858468865 :: Type). (~>) a3530822107858468865 (Maybe (a3530822107858468865 :: Type)) Source #

Instances

SingI (JustSym0 :: TyFun a (Maybe a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Instances Methods sing :: Sing JustSym0 Source #
SuppressUnusedWarnings (JustSym0 :: TyFun a3530822107858468865 (Maybe a3530822107858468865) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Instances Methods suppressUnusedWarnings :: () Source #
type Apply (JustSym0 :: TyFun a (Maybe a) -> Type) (t6989586621679301555 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Instances type Apply (JustSym0 :: TyFun a (Maybe a) -> Type) (t6989586621679301555 :: a) = Just t6989586621679301555

type JustSym1 (t6989586621679301555 :: a3530822107858468865) = Just t6989586621679301555 Source #

data Maybe_Sym0 :: forall a6989586621679495150 b6989586621679495149. (~>) b6989586621679495149 ((~>) ((~>) a6989586621679495150 b6989586621679495149) ((~>) (Maybe a6989586621679495150) b6989586621679495149)) Source #

Instances

SingI (Maybe_Sym0 :: TyFun b ((a ~> b) ~> (Maybe a ~> b)) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing Maybe_Sym0 Source #
SuppressUnusedWarnings (Maybe_Sym0 :: TyFun b6989586621679495149 ((a6989586621679495150 ~> b6989586621679495149) ~> (Maybe a6989586621679495150 ~> b6989586621679495149)) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (Maybe_Sym0 :: TyFun b6989586621679495149 ((a6989586621679495150 ~> b6989586621679495149) ~> (Maybe a6989586621679495150 ~> b6989586621679495149)) -> Type) (a6989586621679495167 :: b6989586621679495149) Source # |

Instance details

Defined in Data.Singletons.Prelude.Maybe

type Apply (Maybe_Sym0 :: TyFun b6989586621679495149 ((a6989586621679495150 ~> b6989586621679495149) ~> (Maybe a6989586621679495150 ~> b6989586621679495149)) -> Type) (a6989586621679495167 :: b6989586621679495149) = (Maybe_Sym1 a6989586621679495167 a6989586621679495150 :: TyFun (a6989586621679495150 ~> b6989586621679495149) (Maybe a6989586621679495150 ~> b6989586621679495149) -> Type)

data Maybe_Sym1 (a6989586621679495167 :: b6989586621679495149) :: forall a6989586621679495150. (~>) ((~>) a6989586621679495150 b6989586621679495149) ((~>) (Maybe a6989586621679495150) b6989586621679495149) Source #

Instances

SingI d => SingI (Maybe_Sym1 d a :: TyFun (a ~> b) (Maybe a ~> b) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing (Maybe_Sym1 d a) Source #
SuppressUnusedWarnings (Maybe_Sym1 a6989586621679495167 a6989586621679495150 :: TyFun (a6989586621679495150 ~> b6989586621679495149) (Maybe a6989586621679495150 ~> b6989586621679495149) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (Maybe_Sym1 a6989586621679495167 a6989586621679495150 :: TyFun (a6989586621679495150 ~> b6989586621679495149) (Maybe a6989586621679495150 ~> b6989586621679495149) -> Type) (a6989586621679495168 :: a6989586621679495150 ~> b6989586621679495149) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (Maybe_Sym1 a6989586621679495167 a6989586621679495150 :: TyFun (a6989586621679495150 ~> b6989586621679495149) (Maybe a6989586621679495150 ~> b6989586621679495149) -> Type) (a6989586621679495168 :: a6989586621679495150 ~> b6989586621679495149) = Maybe_Sym2 a6989586621679495167 a6989586621679495168

data Maybe_Sym2 (a6989586621679495167 :: b6989586621679495149) (a6989586621679495168 :: (~>) a6989586621679495150 b6989586621679495149) :: (~>) (Maybe a6989586621679495150) b6989586621679495149 Source #

Instances

(SingI d1, SingI d2) => SingI (Maybe_Sym2 d1 d2 :: TyFun (Maybe a) b -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing (Maybe_Sym2 d1 d2) Source #
SuppressUnusedWarnings (Maybe_Sym2 a6989586621679495168 a6989586621679495167 :: TyFun (Maybe a6989586621679495150) b6989586621679495149 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (Maybe_Sym2 a6989586621679495168 a6989586621679495167 :: TyFun (Maybe a) b -> Type) (a6989586621679495169 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (Maybe_Sym2 a6989586621679495168 a6989586621679495167 :: TyFun (Maybe a) b -> Type) (a6989586621679495169 :: Maybe a) = Maybe_ a6989586621679495168 a6989586621679495167 a6989586621679495169

type Maybe_Sym3 (a6989586621679495167 :: b6989586621679495149) (a6989586621679495168 :: (~>) a6989586621679495150 b6989586621679495149) (a6989586621679495169 :: Maybe a6989586621679495150) = Maybe_ a6989586621679495167 a6989586621679495168 a6989586621679495169 Source #

data IsJustSym0 :: forall a6989586621679496579. (~>) (Maybe a6989586621679496579) Bool Source #

Instances

SingI (IsJustSym0 :: TyFun (Maybe a) Bool -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing IsJustSym0 Source #
SuppressUnusedWarnings (IsJustSym0 :: TyFun (Maybe a6989586621679496579) Bool -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (IsJustSym0 :: TyFun (Maybe a) Bool -> Type) (a6989586621679496783 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (IsJustSym0 :: TyFun (Maybe a) Bool -> Type) (a6989586621679496783 :: Maybe a) = IsJust a6989586621679496783

type IsJustSym1 (a6989586621679496783 :: Maybe a6989586621679496579) = IsJust a6989586621679496783 Source #

data IsNothingSym0 :: forall a6989586621679496578. (~>) (Maybe a6989586621679496578) Bool Source #

Instances

SingI (IsNothingSym0 :: TyFun (Maybe a) Bool -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing IsNothingSym0 Source #
SuppressUnusedWarnings (IsNothingSym0 :: TyFun (Maybe a6989586621679496578) Bool -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (IsNothingSym0 :: TyFun (Maybe a) Bool -> Type) (a6989586621679496781 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (IsNothingSym0 :: TyFun (Maybe a) Bool -> Type) (a6989586621679496781 :: Maybe a) = IsNothing a6989586621679496781

type IsNothingSym1 (a6989586621679496781 :: Maybe a6989586621679496578) = IsNothing a6989586621679496781 Source #

data FromJustSym0 :: forall a6989586621679496577. (~>) (Maybe a6989586621679496577) a6989586621679496577 Source #

Instances

SingI (FromJustSym0 :: TyFun (Maybe a) a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing FromJustSym0 Source #
SuppressUnusedWarnings (FromJustSym0 :: TyFun (Maybe a6989586621679496577) a6989586621679496577 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (FromJustSym0 :: TyFun (Maybe a) a -> Type) (a6989586621679496778 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (FromJustSym0 :: TyFun (Maybe a) a -> Type) (a6989586621679496778 :: Maybe a) = FromJust a6989586621679496778

type FromJustSym1 (a6989586621679496778 :: Maybe a6989586621679496577) = FromJust a6989586621679496778 Source #

data FromMaybeSym0 :: forall a6989586621679496576. (~>) a6989586621679496576 ((~>) (Maybe a6989586621679496576) a6989586621679496576) Source #

Instances

SingI (FromMaybeSym0 :: TyFun a (Maybe a ~> a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing FromMaybeSym0 Source #
SuppressUnusedWarnings (FromMaybeSym0 :: TyFun a6989586621679496576 (Maybe a6989586621679496576 ~> a6989586621679496576) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (FromMaybeSym0 :: TyFun a6989586621679496576 (Maybe a6989586621679496576 ~> a6989586621679496576) -> Type) (a6989586621679496768 :: a6989586621679496576) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (FromMaybeSym0 :: TyFun a6989586621679496576 (Maybe a6989586621679496576 ~> a6989586621679496576) -> Type) (a6989586621679496768 :: a6989586621679496576) = FromMaybeSym1 a6989586621679496768

data FromMaybeSym1 (a6989586621679496768 :: a6989586621679496576) :: (~>) (Maybe a6989586621679496576) a6989586621679496576 Source #

Instances

SingI d => SingI (FromMaybeSym1 d :: TyFun (Maybe a) a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing (FromMaybeSym1 d) Source #
SuppressUnusedWarnings (FromMaybeSym1 a6989586621679496768 :: TyFun (Maybe a6989586621679496576) a6989586621679496576 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (FromMaybeSym1 a6989586621679496768 :: TyFun (Maybe a) a -> Type) (a6989586621679496769 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (FromMaybeSym1 a6989586621679496768 :: TyFun (Maybe a) a -> Type) (a6989586621679496769 :: Maybe a) = FromMaybe a6989586621679496768 a6989586621679496769

type FromMaybeSym2 (a6989586621679496768 :: a6989586621679496576) (a6989586621679496769 :: Maybe a6989586621679496576) = FromMaybe a6989586621679496768 a6989586621679496769 Source #

data ListToMaybeSym0 :: forall a6989586621679496574. (~>) [a6989586621679496574] (Maybe a6989586621679496574) Source #

Instances

SingI (ListToMaybeSym0 :: TyFun [a] (Maybe a) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing ListToMaybeSym0 Source #
SuppressUnusedWarnings (ListToMaybeSym0 :: TyFun [a6989586621679496574] (Maybe a6989586621679496574) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (ListToMaybeSym0 :: TyFun [a] (Maybe a) -> Type) (a6989586621679496762 :: [a]) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (ListToMaybeSym0 :: TyFun [a] (Maybe a) -> Type) (a6989586621679496762 :: [a]) = ListToMaybe a6989586621679496762

type ListToMaybeSym1 (a6989586621679496762 :: [a6989586621679496574]) = ListToMaybe a6989586621679496762 Source #

data MaybeToListSym0 :: forall a6989586621679496575. (~>) (Maybe a6989586621679496575) [a6989586621679496575] Source #

Instances

SingI (MaybeToListSym0 :: TyFun (Maybe a) [a] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing MaybeToListSym0 Source #
SuppressUnusedWarnings (MaybeToListSym0 :: TyFun (Maybe a6989586621679496575) [a6989586621679496575] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (MaybeToListSym0 :: TyFun (Maybe a) [a] -> Type) (a6989586621679496765 :: Maybe a) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (MaybeToListSym0 :: TyFun (Maybe a) [a] -> Type) (a6989586621679496765 :: Maybe a) = MaybeToList a6989586621679496765

type MaybeToListSym1 (a6989586621679496765 :: Maybe a6989586621679496575) = MaybeToList a6989586621679496765 Source #

data CatMaybesSym0 :: forall a6989586621679496573. (~>) [Maybe a6989586621679496573] [a6989586621679496573] Source #

Instances

SingI (CatMaybesSym0 :: TyFun [Maybe a] [a] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing CatMaybesSym0 Source #
SuppressUnusedWarnings (CatMaybesSym0 :: TyFun [Maybe a6989586621679496573] [a6989586621679496573] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (CatMaybesSym0 :: TyFun [Maybe a] [a] -> Type) (a6989586621679496757 :: [Maybe a]) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (CatMaybesSym0 :: TyFun [Maybe a] [a] -> Type) (a6989586621679496757 :: [Maybe a]) = CatMaybes a6989586621679496757

type CatMaybesSym1 (a6989586621679496757 :: [Maybe a6989586621679496573]) = CatMaybes a6989586621679496757 Source #

data MapMaybeSym0 :: forall a6989586621679496571 b6989586621679496572. (~>) ((~>) a6989586621679496571 (Maybe b6989586621679496572)) ((~>) [a6989586621679496571] [b6989586621679496572]) Source #

Instances

SingI (MapMaybeSym0 :: TyFun (a ~> Maybe b) ([a] ~> [b]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing MapMaybeSym0 Source #
SuppressUnusedWarnings (MapMaybeSym0 :: TyFun (a6989586621679496571 ~> Maybe b6989586621679496572) ([a6989586621679496571] ~> [b6989586621679496572]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (MapMaybeSym0 :: TyFun (a6989586621679496571 ~> Maybe b6989586621679496572) ([a6989586621679496571] ~> [b6989586621679496572]) -> Type) (a6989586621679496738 :: a6989586621679496571 ~> Maybe b6989586621679496572) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (MapMaybeSym0 :: TyFun (a6989586621679496571 ~> Maybe b6989586621679496572) ([a6989586621679496571] ~> [b6989586621679496572]) -> Type) (a6989586621679496738 :: a6989586621679496571 ~> Maybe b6989586621679496572) = MapMaybeSym1 a6989586621679496738

data MapMaybeSym1 (a6989586621679496738 :: (~>) a6989586621679496571 (Maybe b6989586621679496572)) :: (~>) [a6989586621679496571] [b6989586621679496572] Source #

Instances

SingI d => SingI (MapMaybeSym1 d :: TyFun [a] [b] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods sing :: Sing (MapMaybeSym1 d) Source #
SuppressUnusedWarnings (MapMaybeSym1 a6989586621679496738 :: TyFun [a6989586621679496571] [b6989586621679496572] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe Methods suppressUnusedWarnings :: () Source #
type Apply (MapMaybeSym1 a6989586621679496738 :: TyFun [a] [b] -> Type) (a6989586621679496739 :: [a]) Source # |
Instance details Defined in Data.Singletons.Prelude.Maybe type Apply (MapMaybeSym1 a6989586621679496738 :: TyFun [a] [b] -> Type) (a6989586621679496739 :: [a]) = MapMaybe a6989586621679496738 a6989586621679496739

type MapMaybeSym2 (a6989586621679496738 :: (~>) a6989586621679496571 (Maybe b6989586621679496572)) (a6989586621679496739 :: [a6989586621679496571]) = MapMaybe a6989586621679496738 a6989586621679496739 Source #