std.effect.st.string
Types
type StringBuf s = <opaque>
Values
The Eff
monad provides composable effect via a Row
of effects (r
) and produces a value of type a
.
let { assert_eq, ? } = import! std.test
let st = import! std.effect.st
let string_buf = import! std.effect.st.string
let { (*>) } = import! std.applicative
let { Eff, run_pure, ? } = import! std.effect
let action =
do buf = string_buf.new
seq string_buf.push_str buf "field:"
seq string_buf.push_str buf " "
seq string_buf.push_str buf "123"
string_buf.read buf
assert_eq (run_pure (st.run_state action)) "field: 123"