def step
bend-collections@1.0.0.0 · src/containers/bitlist.bend:300
import bend-collections@1.0.0.0/src/containers/bitlist.bend as Bitlist
import Base
import bend-collections@1.0.0.0/src/containers/types/bitlist.bend as E
300def step(s: Bitlist, op: E.Op) -> Bitlist & E.Obs:
301 match op:
302 case E.Length{}:
303 obs_nat(length(s))
304 case E.Limit{}:
305 obs_limit(limit(s))
306 case E.Get{+i}:
307 obs_bit(get(s, i))
308 case E.Assign{+i, +v}:
309 obs_unit(assign(s, i, v))
310 case E.Push{+v}:
311 obs_unit(push(s, v))
312 case E.Pop{}:
313 obs_bit(pop(s))
314 case E.Clear{}:
315 (clear(s), E.OUnit{Done{Unit{}}})
316 case E.Count{}:
317 obs_nat(count(s))
318 case E.ToList{}:
319 obs_bits(to_list(s))