def step
bend-collections@1.0.0.0 · src/containers/bitset.bend:512
import bend-collections@1.0.0.0/src/containers/bitset.bend as Bitset
import Base
import bend-collections@1.0.0.0/src/containers/types/bitset.bend as E
512def step(s: Bitset, op: E.Op) -> Bitset & E.Obs:
513 match op:
514 case E.Length{}:
515 obs_nat(length(s))
516 case E.Get{i}:
517 obs_bit(get(s, i))
518 case E.Set{i}:
519 obs_unit(set(s, i))
520 case E.Clear{i}:
521 obs_unit(clear(s, i))
522 case E.Count{}:
523 obs_nat(count(s))
524 case E.Union{ys}:
525 obs_unit(comb_bits(KOr{}, s, ys))
526 case E.Intersection{ys}:
527 obs_unit(comb_bits(KAnd{}, s, ys))
528 case E.Difference{ys}:
529 obs_unit(comb_bits(KDiff{}, s, ys))
530 case E.Xor{ys}:
531 obs_unit(comb_bits(KXor{}, s, ys))
532
533 case E.ToList{}:
534 obs_list(to_list(s))