symantic-lib-0.0.5.20190614: Symantics for common types.

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Lib.Maybe

Contents

Description

Symantic for Maybe.

Synopsis

Class Sym_Maybe

class Sym_Maybe term where Source #

Minimal complete definition

Nothing

Methods

_Nothing :: term (Maybe a) Source #

_Just :: term a -> term (Maybe a) Source #

maybe :: term b -> term (a -> b) -> term (Maybe a) -> term b Source #

_Nothing :: Sym_Maybe (UnT term) => Trans term => term (Maybe a) Source #

_Just :: Sym_Maybe (UnT term) => Trans term => term a -> term (Maybe a) Source #

maybe :: Sym_Maybe (UnT term) => Trans term => term b -> term (a -> b) -> term (Maybe a) -> term b Source #

Instances
Sym_Maybe View Source # 
Instance details

Defined in Language.Symantic.Lib.Maybe

Methods

_Nothing :: View (Maybe a) Source #

_Just :: View a -> View (Maybe a) Source #

maybe :: View b -> View (a -> b) -> View (Maybe a) -> View b Source #

Sym_Maybe Eval Source # 
Instance details

Defined in Language.Symantic.Lib.Maybe

Methods

_Nothing :: Eval (Maybe a) Source #

_Just :: Eval a -> Eval (Maybe a) Source #

maybe :: Eval b -> Eval (a -> b) -> Eval (Maybe a) -> Eval b Source #

(Sym_Maybe term, Sym_Lambda term) => Sym_Maybe (BetaT term) Source # 
Instance details

Defined in Language.Symantic.Lib.Maybe

Methods

_Nothing :: BetaT term (Maybe a) Source #

_Just :: BetaT term a -> BetaT term (Maybe a) Source #

maybe :: BetaT term b -> BetaT term (a -> b) -> BetaT term (Maybe a) -> BetaT term b Source #

(Sym_Maybe r1, Sym_Maybe r2) => Sym_Maybe (Dup r1 r2) Source # 
Instance details

Defined in Language.Symantic.Lib.Maybe

Methods

_Nothing :: Dup r1 r2 (Maybe a) Source #

_Just :: Dup r1 r2 a -> Dup r1 r2 (Maybe a) Source #

maybe :: Dup r1 r2 b -> Dup r1 r2 (a -> b) -> Dup r1 r2 (Maybe a) -> Dup r1 r2 b Source #

Types

tyMaybe :: Source src => LenInj vs => Type src vs a -> Type src vs (Maybe a) Source #

Terms

teMaybe_Just :: TermDef Maybe '[Proxy a] (() #> (a -> Maybe a)) Source #

teMaybe_maybe :: TermDef Maybe '[Proxy a, Proxy b] (() #> (b -> (a -> b) -> Maybe a -> b)) Source #

Orphan instances

ClassInstancesFor Maybe Source # 
Instance details

Methods

proveConstraintFor :: Source src => proxy Maybe -> Type src vs q -> Maybe (Qual q) #

TypeInstancesFor Maybe Source # 
Instance details

Methods

expandFamFor :: Source src => proxy Maybe -> Len vs -> Const src fam -> Types src vs ts -> Maybe (Type src vs (Fam fam ts)) #

NameTyOf Maybe Source # 
Instance details

Methods

nameTyOf :: proxy Maybe -> Mod NameTy #

isNameTyOp :: proxy Maybe -> Bool #

FixityOf Maybe Source # 
Instance details

Methods

fixityOf :: proxy Maybe -> Maybe Fixity #

(Source src, SymInj ss Maybe) => ModuleFor src ss Maybe Source # 
Instance details

Methods

moduleFor :: (PathMod, Module src ss) #

Gram_Term_AtomsFor src ss g Maybe Source # 
Instance details

Methods

g_term_atomsFor :: [CF g (AST_Term src ss)] #