Versions in this module Expand all Collapse all v0 v0.1.2 Apr 29, 2026 Changes in this version + func CheckCompletedRelation[C World, A Focus](v IndexedSuspensionView[C, A], value A, r Relation[C, A]) bool + func CheckForcingTransition[C World](f Forcing[C], t Transition[C]) bool + func CheckInvariantTransition[C World](leq Preorder[C], req Req[C], t Transition[C]) bool + func CheckRelation[C World, A Focus](v IndexedView[C, A], r Relation[C, A]) bool + func CheckTransition[C World](leq Preorder[C], t Transition[C]) bool + func Extends[C World](leq Preorder[C], w, wNext C) bool + type Forcing struct + func Force[C World](leq Preorder[C], req Req[C]) Forcing[C] + func (f Forcing[C]) Holds(world C) bool + func (f Forcing[C]) MonotoneAt(w, wNext C) bool + func (f Forcing[C]) Preorder() Preorder[C] + func (f Forcing[C]) Req() Req[C] + type ForcingExpr struct + func ForceExpr[C World](leq Preorder[C], req ReqExpr[C]) ForcingExpr[C] + func (f ForcingExpr[C]) Holds(world C) bool + func (f ForcingExpr[C]) MonotoneAt(w, wNext C) bool + func (f ForcingExpr[C]) Preorder() Preorder[C] + func (f ForcingExpr[C]) Req() ReqExpr[C] + type Indexed func(world C, index StepIndex, value A) bool + type IndexedSuspensionView struct + Index StepIndex + View SuspensionView[C, A] + func ObserveIndexedSuspension[C World, A Focus](ctx C, index StepIndex, susp *kont.Suspension[A]) IndexedSuspensionView[C, A] + func StepExprWithIndex[C World, A Focus](ctx C, index StepIndex, m kont.Expr[A]) (A, IndexedSuspensionView[C, A]) + func StepWithIndex[C World, A Focus](ctx C, index StepIndex, m kont.Cont[Resumed, A]) (A, IndexedSuspensionView[C, A]) + func WeakenIndexedSuspension[C World, A Focus](v IndexedSuspensionView[C, A], target StepIndex) (IndexedSuspensionView[C, A], bool) + func (v IndexedSuspensionView[C, A]) Ask() C + func (v IndexedSuspensionView[C, A]) Completed() bool + func (v IndexedSuspensionView[C, A]) Discard() + func (v IndexedSuspensionView[C, A]) Extract() *kont.Suspension[A] + func (v IndexedSuspensionView[C, A]) Op() Operation + func (v IndexedSuspensionView[C, A]) Resume(value Resumed) (A, IndexedSuspensionView[C, A]) + func (v IndexedSuspensionView[C, A]) ResumeTo(leq Preorder[C], value Resumed, nextWorld C) (A, IndexedSuspensionView[C, A]) + func (v IndexedSuspensionView[C, A]) ResumeWith(value Resumed, f func(C) C) (A, IndexedSuspensionView[C, A]) + type IndexedView struct + Index StepIndex + View View[C, A] + func ObserveIndexed[C World, A Focus](ctx C, index StepIndex, value A) IndexedView[C, A] + func WeakenIndexedView[C World, A Focus](v IndexedView[C, A], target StepIndex) (IndexedView[C, A], bool) + func (v IndexedView[C, A]) Ask() C + func (v IndexedView[C, A]) Extract() A + type Preorder func(w, wNext C) bool + func DiscreteWorlds[C comparable]() Preorder[C] + func TotalWorlds[C World]() Preorder[C] + func (leq Preorder[C]) Extends(w, wNext C) bool + func (leq Preorder[C]) ReflexiveAt(w C) bool + func (leq Preorder[C]) TransitiveAt(w0, w1, w2 C) bool + type Relation struct + func Later[C World, A Focus](r Relation[C, A]) Relation[C, A] + func Relate[C World, A Focus](leq Preorder[C], hold Indexed[C, A]) Relation[C, A] + func (r Relation[C, A]) Holds(world C, index StepIndex, value A) bool + func (r Relation[C, A]) MonotoneAt(w, wNext C, index StepIndex, value A) bool + func (r Relation[C, A]) Preorder() Preorder[C] + func (r Relation[C, A]) WeakensAt(world C, strong, weak StepIndex, value A) bool + type StepIndex = kont.StepIndex + type Transition struct + After C + Before C + type World interface v0.1.1 Apr 24, 2026 v0.1.0 Apr 20, 2026 Changes in this version + func ExtractCmd[C Ambient, A Focus](v View[C, A]) A + func Run[C Ambient, A, B Focus](v View[C, A], cmd Cmd[C, A, B]) B + type Cmd func(View[C, A]) B + func Compose[C Ambient, A, B, D Focus](g Cmd[C, B, D], f Cmd[C, A, B]) Cmd[C, A, D] + func LiftCmd[C Ambient, A, B Focus](f func(A) B) Cmd[C, A, B] type Report + func (r Report) Err() error + func (r Report) FailedRule() string type RuleError + func (e RuleError) Error() string type SuspensionView + func MapContextSuspension[C, D Ambient, A Focus](v SuspensionView[C, A], f func(C) D) SuspensionView[D, A] + func WithContextSuspension[C Ambient, A Focus](v SuspensionView[C, A], ctx C) SuspensionView[C, A] v0.0.0 Mar 10, 2026 Changes in this version + func NeedExpr[C Ambient](ctx C, req ReqExpr[C]) bool + func Need[C Ambient](ctx C, req Req[C]) bool + func Reflect[A Focus](m kont.Expr[A]) kont.Cont[Resumed, A] + func Reify[A Focus](m kont.Cont[Resumed, A]) kont.Expr[A] + func StepExpr[A Focus](m kont.Expr[A]) (A, *kont.Suspension[A]) + func Step[A Focus](m kont.Cont[Resumed, A]) (A, *kont.Suspension[A]) + type Ambient interface + type Checked struct + Req Req[C] + Value A + func Guard[C Ambient, A Focus](req Req[C], value A) Checked[C, A] + func MapChecked[C Ambient, A, B Focus](c Checked[C, A], f func(A) B) Checked[C, B] + func PullbackChecked[C, D Ambient, A Focus](checked Checked[C, A], f func(D) C) Checked[D, A] + func (c Checked[C, A]) Check(ctx C) bool + func (c Checked[C, A]) IntoView(ctx C) (View[C, A], bool) + func (c Checked[C, A]) MustView(ctx C) View[C, A] + type CheckedExpr struct + Req ReqExpr[C] + Value A + func GuardExpr[C Ambient, A Focus](req ReqExpr[C], value A) CheckedExpr[C, A] + func MapCheckedExpr[C Ambient, A, B Focus](c CheckedExpr[C, A], f func(A) B) CheckedExpr[C, B] + func PullbackCheckedExpr[C, D Ambient, A Focus](checked CheckedExpr[C, A], f func(D) C) CheckedExpr[D, A] + func (c CheckedExpr[C, A]) Check(ctx C) bool + func (c CheckedExpr[C, A]) IntoView(ctx C) (View[C, A], bool) + func (c CheckedExpr[C, A]) MustView(ctx C) View[C, A] + type Focus interface + type Guarded struct + Rule Rule[C] + Value A + func GuardRule[C Ambient, A Focus](rule Rule[C], value A) Guarded[C, A] + func MapGuarded[C Ambient, A, B Focus](g Guarded[C, A], f func(A) B) Guarded[C, B] + func PullbackGuarded[C, D Ambient, A Focus](guarded Guarded[C, A], f func(D) C) Guarded[D, A] + func (g Guarded[C, A]) Check(ctx C) Report + func (g Guarded[C, A]) IntoView(ctx C) (View[C, A], Report) + type GuardedExpr struct + Rule RuleExpr[C] + Value A + func GuardRuleExpr[C Ambient, A Focus](rule RuleExpr[C], value A) GuardedExpr[C, A] + func MapGuardedExpr[C Ambient, A, B Focus](g GuardedExpr[C, A], f func(A) B) GuardedExpr[C, B] + func PullbackGuardedExpr[C, D Ambient, A Focus](guarded GuardedExpr[C, A], f func(D) C) GuardedExpr[D, A] + func (g GuardedExpr[C, A]) Check(ctx C) Report + func (g GuardedExpr[C, A]) IntoView(ctx C) (View[C, A], Report) + type Operation = kont.Operation + type Report struct + Checked int + Failed RuleError + func CheckRuleExpr[C Ambient](ctx C, rule RuleExpr[C]) Report + func CheckRule[C Ambient](ctx C, rule Rule[C]) Report + func CheckRulesExpr[C Ambient](ctx C, rules ...RuleExpr[C]) Report + func CheckRules[C Ambient](ctx C, rules ...Rule[C]) Report + func (r Report) OK() bool + type Req func(C) bool + func All[C Ambient](reqs ...Req[C]) Req[C] + func Any[C Ambient](reqs ...Req[C]) Req[C] + func False[C Ambient]() Req[C] + func Not[C Ambient](req Req[C]) Req[C] + func Pullback[C, D Ambient](req Req[D], f func(C) D) Req[C] + func ReflectReq[C Ambient](expr ReqExpr[C]) Req[C] + func True[C Ambient]() Req[C] + type ReqExpr struct + func ExprAll[C Ambient](reqs ...ReqExpr[C]) ReqExpr[C] + func ExprAny[C Ambient](reqs ...ReqExpr[C]) ReqExpr[C] + func ExprAtom[C Ambient](fn func(C) bool) ReqExpr[C] + func ExprFalse[C Ambient]() ReqExpr[C] + func ExprNot[C Ambient](inner ReqExpr[C]) ReqExpr[C] + func ExprPullback[C, D Ambient](req ReqExpr[D], f func(C) D) ReqExpr[C] + func ExprTrue[C Ambient]() ReqExpr[C] + func ReifyReq[C Ambient](req Req[C]) ReqExpr[C] + type Resumed = kont.Resumed + type Rule struct + Check Req[C] + Name string + func PullbackRule[C, D Ambient](rule Rule[C], f func(D) C) Rule[D] + func Require[C Ambient](name string, check Req[C]) Rule[C] + func (r Rule[C]) Match(ctx C) bool + func (r Rule[C]) Req() Req[C] + type RuleError string + type RuleExpr struct + Check ReqExpr[C] + Name string + func PullbackRuleExpr[C, D Ambient](rule RuleExpr[C], f func(D) C) RuleExpr[D] + func RequireExpr[C Ambient](name string, check ReqExpr[C]) RuleExpr[C] + func (r RuleExpr[C]) Match(ctx C) bool + func (r RuleExpr[C]) Req() ReqExpr[C] + type SuspensionView struct + Ctx C + Suspension *kont.Suspension[A] + func CheckSuspensionExpr[C Ambient, A Focus](ctx C, susp *kont.Suspension[A], req ReqExpr[C]) (SuspensionView[C, A], bool) + func CheckSuspension[C Ambient, A Focus](ctx C, susp *kont.Suspension[A], req Req[C]) (SuspensionView[C, A], bool) + func ObserveSuspension[C Ambient, A Focus](ctx C, susp *kont.Suspension[A]) SuspensionView[C, A] + func StepExprWith[C Ambient, A Focus](ctx C, m kont.Expr[A]) (A, SuspensionView[C, A]) + func StepWith[C Ambient, A Focus](ctx C, m kont.Cont[Resumed, A]) (A, SuspensionView[C, A]) + func (v SuspensionView[C, A]) Ask() C + func (v SuspensionView[C, A]) Discard() + func (v SuspensionView[C, A]) Extract() *kont.Suspension[A] + func (v SuspensionView[C, A]) Op() Operation + func (v SuspensionView[C, A]) Resume(value Resumed) (A, SuspensionView[C, A]) + func (v SuspensionView[C, A]) ResumeWith(value Resumed, f func(C) C) (A, SuspensionView[C, A]) + type View struct + Ctx C + Value A + func Duplicate[C Ambient, A Focus](v View[C, A]) View[C, View[C, A]] + func Extend[C Ambient, A, B Focus](v View[C, A], f func(View[C, A]) B) View[C, B] + func MapContext[C, D Ambient, A Focus](v View[C, A], f func(C) D) View[D, A] + func Map[C Ambient, A, B Focus](v View[C, A], f func(A) B) View[C, B] + func Observe[C Ambient, A Focus](ctx C, value A) View[C, A] + func Replace[C Ambient, A, B Focus](v View[C, A], value B) View[C, B] + func WithContext[C Ambient, A Focus](v View[C, A], ctx C) View[C, A] + func (v View[C, A]) Ask() C + func (v View[C, A]) Extract() A