symantic-lib-0.0.3.20180213: Symantics for common types.

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Lib.Sequences

Contents

Description

Symantic for Sequences.

Synopsis

Class Sym_SemiSequence

class Sym_SemiSequence term where Source #

Methods

intersperse :: SemiSequence s => term (Element s) -> term s -> term s Source #

cons :: SemiSequence s => term (Element s) -> term s -> term s Source #

snoc :: SemiSequence s => term s -> term (Element s) -> term s Source #

reverse :: SemiSequence s => term s -> term s Source #

intersperse :: Sym_SemiSequence (UnT term) => Trans term => SemiSequence s => term (Element s) -> term s -> term s Source #

cons :: Sym_SemiSequence (UnT term) => Trans term => SemiSequence s => term (Element s) -> term s -> term s Source #

snoc :: Sym_SemiSequence (UnT term) => Trans term => SemiSequence s => term s -> term (Element s) -> term s Source #

reverse :: Sym_SemiSequence (UnT term) => Trans term => SemiSequence s => term s -> term s Source #

Instances

Sym_SemiSequence View Source # 

Methods

intersperse :: SemiSequence s => View (Element s) -> View s -> View s Source #

cons :: SemiSequence s => View (Element s) -> View s -> View s Source #

snoc :: SemiSequence s => View s -> View (Element s) -> View s Source #

reverse :: SemiSequence s => View s -> View s Source #

Sym_SemiSequence Eval Source # 

Methods

intersperse :: SemiSequence s => Eval (Element s) -> Eval s -> Eval s Source #

cons :: SemiSequence s => Eval (Element s) -> Eval s -> Eval s Source #

snoc :: SemiSequence s => Eval s -> Eval (Element s) -> Eval s Source #

reverse :: SemiSequence s => Eval s -> Eval s Source #

(Sym_SemiSequence term, Sym_Lambda term) => Sym_SemiSequence (BetaT term) Source # 

Methods

intersperse :: SemiSequence s => BetaT term (Element s) -> BetaT term s -> BetaT term s Source #

cons :: SemiSequence s => BetaT term (Element s) -> BetaT term s -> BetaT term s Source #

snoc :: SemiSequence s => BetaT term s -> BetaT term (Element s) -> BetaT term s Source #

reverse :: SemiSequence s => BetaT term s -> BetaT term s Source #

(Sym_SemiSequence r1, Sym_SemiSequence r2) => Sym_SemiSequence (Dup r1 r2) Source # 

Methods

intersperse :: SemiSequence s => Dup r1 r2 (Element s) -> Dup r1 r2 s -> Dup r1 r2 s Source #

cons :: SemiSequence s => Dup r1 r2 (Element s) -> Dup r1 r2 s -> Dup r1 r2 s Source #

snoc :: SemiSequence s => Dup r1 r2 s -> Dup r1 r2 (Element s) -> Dup r1 r2 s Source #

reverse :: SemiSequence s => Dup r1 r2 s -> Dup r1 r2 s Source #

Types

tySemiSequence :: Source src => Type src vs a -> Type src vs (SemiSequence a) Source #

s0 :: Source src => LenInj vs => KindInj (K s) => Type src (Proxy s ': vs) s Source #

Terms

Class Sym_IsSequence

class Sym_IsSequence term where Source #

Methods

filter :: IsSequence s => term (Element s -> Bool) -> term s -> term s Source #

filter :: Sym_IsSequence (UnT term) => Trans term => IsSequence s => term (Element s -> Bool) -> term s -> term s Source #

Instances

Sym_IsSequence View Source # 

Methods

filter :: IsSequence s => View (Element s -> Bool) -> View s -> View s Source #

Sym_IsSequence Eval Source # 

Methods

filter :: IsSequence s => Eval (Element s -> Bool) -> Eval s -> Eval s Source #

(Sym_IsSequence term, Sym_Lambda term) => Sym_IsSequence (BetaT term) Source # 

Methods

filter :: IsSequence s => BetaT term (Element s -> Bool) -> BetaT term s -> BetaT term s Source #

(Sym_IsSequence r1, Sym_IsSequence r2) => Sym_IsSequence (Dup r1 r2) Source # 

Methods

filter :: IsSequence s => Dup r1 r2 (Element s -> Bool) -> Dup r1 r2 s -> Dup r1 r2 s Source #

Types

tyIsSequence :: Source src => Type src vs a -> Type src vs (IsSequence a) Source #

Terms

teIsSequence_filter :: TermDef IsSequence '[Proxy s, Proxy e] ((IsSequence s # (e #~ Element s)) #> ((e -> Bool) -> s -> s)) Source #

Orphan instances

ClassInstancesFor (* -> Constraint) SemiSequence Source # 

Methods

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

ClassInstancesFor (* -> Constraint) IsSequence Source # 

Methods

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

TypeInstancesFor (* -> Constraint) SemiSequence Source # 

Methods

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

TypeInstancesFor (* -> Constraint) IsSequence Source # 

Methods

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

NameTyOf (* -> Constraint) SemiSequence Source # 

Methods

nameTyOf :: proxy c -> Mod NameTy #

isNameTyOp :: proxy c -> Bool #

NameTyOf (* -> Constraint) IsSequence Source # 

Methods

nameTyOf :: proxy c -> Mod NameTy #

isNameTyOp :: proxy c -> Bool #

FixityOf (* -> Constraint) SemiSequence Source # 

Methods

fixityOf :: proxy c -> Maybe Fixity #

FixityOf (* -> Constraint) IsSequence Source # 

Methods

fixityOf :: proxy c -> Maybe Fixity #

(Source src, SymInj (* -> Constraint) ss IsSequence) => ModuleFor (* -> Constraint) src ss IsSequence Source # 
(Source src, SymInj (* -> Constraint) ss SemiSequence) => ModuleFor (* -> Constraint) src ss SemiSequence Source # 
Gram_Term_AtomsFor (* -> Constraint) src ss g IsSequence Source # 
Gram_Term_AtomsFor (* -> Constraint) src ss g SemiSequence Source #