symantic-lib-0.0.4.20180831: Symantics for common types.

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Lib.Enum

Contents

Description

Symantic for Enum.

Synopsis

Class Sym_Enum

class Sym_Enum term where Source #

Methods

toEnum :: Enum a => term Int -> term a Source #

fromEnum :: Enum a => term a -> term Int Source #

succ :: Enum a => term a -> term a Source #

pred :: Enum a => term a -> term a Source #

succ :: Sym_Enum (UnT term) => Trans term => Enum a => term a -> term a Source #

pred :: Sym_Enum (UnT term) => Trans term => Enum a => term a -> term a Source #

toEnum :: Sym_Enum (UnT term) => Trans term => Enum a => term Int -> term a Source #

fromEnum :: Sym_Enum (UnT term) => Trans term => Enum a => term a -> term Int Source #

Instances
Sym_Enum View Source # 
Instance details

Defined in Language.Symantic.Lib.Enum

Methods

toEnum :: Enum a => View Int -> View a Source #

fromEnum :: Enum a => View a -> View Int Source #

succ :: Enum a => View a -> View a Source #

pred :: Enum a => View a -> View a Source #

Sym_Enum Eval Source # 
Instance details

Defined in Language.Symantic.Lib.Enum

Methods

toEnum :: Enum a => Eval Int -> Eval a Source #

fromEnum :: Enum a => Eval a -> Eval Int Source #

succ :: Enum a => Eval a -> Eval a Source #

pred :: Enum a => Eval a -> Eval a Source #

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

Defined in Language.Symantic.Lib.Enum

Methods

toEnum :: Enum a => BetaT term Int -> BetaT term a Source #

fromEnum :: Enum a => BetaT term a -> BetaT term Int Source #

succ :: Enum a => BetaT term a -> BetaT term a Source #

pred :: Enum a => BetaT term a -> BetaT term a Source #

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

Defined in Language.Symantic.Lib.Enum

Methods

toEnum :: Enum a => Dup r1 r2 Int -> Dup r1 r2 a Source #

fromEnum :: Enum a => Dup r1 r2 a -> Dup r1 r2 Int Source #

succ :: Enum a => Dup r1 r2 a -> Dup r1 r2 a Source #

pred :: Enum a => Dup r1 r2 a -> Dup r1 r2 a Source #

Types

tyEnum :: Source src => Type src vs a -> Type src vs (Enum a) Source #

Terms

teEnum_succ :: TermDef Enum '[Proxy a] (Enum a #> (a -> a)) Source #

teEnum_pred :: TermDef Enum '[Proxy a] (Enum a #> (a -> a)) Source #

Orphan instances

ClassInstancesFor Enum Source # 
Instance details

Methods

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

TypeInstancesFor Enum Source # 
Instance details

Methods

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

NameTyOf Enum Source # 
Instance details

Methods

nameTyOf :: proxy Enum -> Mod NameTy #

isNameTyOp :: proxy Enum -> Bool #

FixityOf Enum Source # 
Instance details

Methods

fixityOf :: proxy Enum -> Maybe Fixity #

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

Methods

moduleFor :: (PathMod, Module src ss) #

Gram_Term_AtomsFor src ss g Enum Source # 
Instance details

Methods

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