Package CHARGED-MONADS

Classes

PtApplicative CLASS · src

PtApplicative :MMethods:
  • PT-PURE :: :A → :M :I :I :A
  • PT-LIFTA2 :: (:A * :B → :C) * :M :I :J :A * :M :J :K :B → :M :I :K :C
Instances

PtMonad CLASS · src

PtApplicative :M ⇒ PtMonad :MMethods:
  • PT-BIND :: :M :I :J :A * (:A → :M :J :K :B) → :M :I :K :B
Instances

PtMonadTransformer CLASS · src

PtMonadTransformer :TMethods:
  • PT-LIFT :: Monad :M ⇒ :M :A → :T :M :I :I :A
Instances

Macros

PT-DO (&BODY BODY) MACRO


Package CHARGED-MONADS/STATE

Types

PtState TYPE · src

Instances

Values

(EVAL-STATE ST (PTST% F-STATE)) FUNCTION · src

∀ :S1 :S2 :A. :S1 * PtState :S1 :S2 :A → :A

GET VALUE · src

∀ :S. PtState :S :S :S

(MODIFY F-ST) FUNCTION · src

∀ :S1 :S2. (:S1 → :S2) → PtState :S1 :S2 Unit

(PUT S) FUNCTION · src

∀ :S2 :S1. :S2 → PtState :S1 :S2 Unit

(RUN-STATE ST (PTST% F-STATE)) FUNCTION · src

∀ :S1 :S2 :A. :S1 * PtState :S1 :S2 :A → :S2 * :A

Package CHARGED-MONADS/STATET

Types

PtStateT TYPE · src

Instances

Values

(EVAL-STATET S (PTSTT% F-ST)) FUNCTION · src

∀ :S1 :M :S2 :A. Functor :M ⇒ :S1 * PtStateT :M :S1 :S2 :A → :M :A

(GET-STATET) FUNCTION · src

∀ :M :S. Applicative :M ⇒ Void → PtStateT :M :S :S :S

(LIFT-STATET M) FUNCTION · src

∀ :M :A :S1. Functor :M ⇒ :M :A → PtStateT :M :S1 :S1 :A

(MAP-STATET F-MSTA->NSTB M-STA) FUNCTION · src

∀ :M :S2 :A :N :S3 :B :S1. (:M (Tuple :S2 :A) → :N (Tuple :S3 :B)) * PtStateT :M :S1 :S2 :A → PtStateT :N :S1 :S3 :B

(MODIFY-STATET F-ST) FUNCTION · src

∀ :S1 :S2 :M. Applicative :M ⇒ (:S1 → :S2) → PtStateT :M :S1 :S2 Unit

(PUT-STATET S) FUNCTION · src

∀ :S2 :M :S1. Applicative :M ⇒ :S2 → PtStateT :M :S1 :S2 Unit

(RUN-STATET S (PTSTT% F-ST)) FUNCTION · src

∀ :S1 :M :S2 :A. :S1 * PtStateT :M :S1 :S2 :A → :M (Tuple :S2 :A)

Package CHARGED-MONADS/CONTT

Types

Cont TYPE · src

ContT TYPE · src

Instances

Values

(CALL-CC A->CR2-->CR1) FUNCTION · src

∀ :A :M :R2 :R3 :B :R1. ((:A → ContT :M :R2 :R3 :B) → ContT :M :R1 :R2 :A) → ContT :M :R1 :R2 :A

(EVAL-CONT CONT) FUNCTION · src

∀ :R. ContT Identity :R :R :R → :R

(EVAL-CONTT CONT) FUNCTION · src

∀ :M :R. Applicative :M ⇒ ContT :M :R :R :R → :M :R

(LIFT-CONTT M) FUNCTION · src

∀ :M :A :R. Monad :M ⇒ :M :A → ContT :M :R :R :A

(MAP-CONTT MR3->MR2 CONT) FUNCTION · src

∀ :M :R3 :R2 :R1 :A. (:M :R3 → :M :R2) * ContT :M :R1 :R2 :A → ContT :M :R1 :R3 :A

(RESET CONT) FUNCTION · src

∀ :R :A. ContT Identity :R :A :A → :R

(RESETT CONT) FUNCTION · src

∀ :M :R :A. Applicative :M ⇒ ContT :M :R :A :A → :M :R

(RUN-CONT FINAL-CONT CONT) FUNCTION · src

∀ :A :R2 :R1. (:A → :R2) * ContT Identity :R1 :R2 :A → :R1

(RUN-CONTT CONT (CONTT% THUNK)) FUNCTION · src

∀ :A :M :R2 :R1. (:A → :M :R2) * ContT :M :R1 :R2 :A → :M :R1

(SHIFT A->R2-->R1) FUNCTION · src

∀ :A :R2 :R1. ((:A → :R2) → :R1) → ContT Identity :R1 :R2 :A

(SHIFTT A->R2-->R1) FUNCTION · src

∀ :A :M :R2 :R1. ((:A → :M :R2) → :M :R1) → ContT :M :R1 :R2 :A