thy1016/mooncmd/monads does not have a README file
fn[E, A, B] EventWriter::bind(self : EventWriter[E, A], f : (A) -> EventWriter[E, B]) -> EventWriter[E, B]fn[E, A, B] EventWriter::traverse(arr : Array[A], f : (A) -> EventWriter[E, B]) -> EventWriter[E, Array[B]]pub struct Reader[Env, A] {
// private fields
}test "ask" {
let reader = Reader::ask()
inspect(reader.run("hello"), content="hello")
}///|
test "asks" {
let reader = Reader::asks(fn { env => env + 1 })
inspect!(reader.run(41), content="42")
}///|
test "Reader::bind" {
let reader1 = Reader::pure(5)
let reader2 = reader1.bind(fn { x => Reader::pure(x * 2) })
inspect!(reader2.run(0), content="10")
}///|
test "Reader::local_" {
let reader = Reader::new(fn { env => env * 2 })
let modified = reader.local_(fn { env => env + 1 })
inspect!(modified.run(5), content="12")
}///|
test "Reader::new" {
let reader : Reader[String, Int] = Reader::new(fn { env => env.length() })
inspect!(reader.run("hello"), content="5")
}test "Reader::pure" {
let reader = Reader::pure("constant")
inspect(reader.run(42), content="constant")
}///|
test "Reader::run" {
let reader = Reader::new(fn { env => env + 1 })
inspect!(reader.run(41), content="42")
}type State[S, V]Install
Download zipCommand-side event sourcing kernel for MoonBit: pure command handlers, auto-wrapped EventMessage metadata (correlation/causation), optimistic concurrency with duplicate-version rejection, SQLite event store, projections and snapshots.