type-combinators-0.2.4.3: A collection of data types for type-level programming

CopyrightCopyright (C) 2015 Kyle Carter
LicenseBSD3
MaintainerKyle Carter <kylcarte@indiana.edu>
Stabilityexperimental
PortabilityRankNTypes
Safe HaskellNone
LanguageHaskell2010

Type.Family.Maybe

Description

Convenient type families for working with type-level Maybes.

Synopsis

Documentation

type family MaybeC (mc :: Maybe Constraint) :: Constraint where ... Source #

Take a Maybe Constraint to a Constraint.

Equations

MaybeC Nothing = ØC 
MaybeC (Just c) = c 

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

type family (f :: k -> l) <$> (a :: Maybe k) :: Maybe l where ... infixr 4 Source #

Map over a type-level Maybe.

Equations

f <$> Nothing = Nothing 
f <$> (Just a) = Just (f a) 

maybeFmapCong :: (f ~ g, a ~ b) :- ((f <$> a) ~ (g <$> b)) Source #

type family (f :: Maybe (k -> l)) <&> (a :: k) :: Maybe l where ... infixl 5 Source #

Equations

Nothing <&> a = Nothing 
(Just f) <&> a = Just (f a) 

maybePamfCong :: (f ~ g, a ~ b) :- ((f <&> a) ~ (g <&> b)) Source #

type family (f :: Maybe (k -> l)) <*> (a :: Maybe k) :: Maybe l where ... infixr 4 Source #

Equations

Nothing <*> a = Nothing 
f <*> Nothing = Nothing 
(Just f) <*> (Just a) = Just (f a) 

maybeApCong :: (f ~ g, a ~ b) :- ((f <*> a) ~ (g <*> b)) Source #

type family (a :: Maybe k) <|> (b :: Maybe k) :: Maybe k where ... infixr 4 Source #

Equations

Nothing <|> a = a 
a <|> Nothing = a 
(Just a) <|> (Just b) = Just a 

maybeAltCong :: (a ~ c, b ~ d) :- ((a <|> b) ~ (c <|> d)) Source #

type family FromJust (m :: Maybe k) :: k where ... Source #

Equations

FromJust (Just a) = a