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))

Uses (16)

Used by (1)