def update

stelliferous@0.0.2.0 · proofs/traversal_visit_witness.bend:86

import stelliferous@0.0.2.0/proofs/traversal_visit_witness.bend as TraversalVisitWitness
import Base
import stelliferous@0.0.2.0/traversal_array.bend as Traversal
import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness

86def update(~Reader: Type,~Element: Data,~Context: Data,~ReaderEvidence: @-reader: Reader -> Data,
87  ~read: Reader -> Context -> Reader & Traversal.Visited<Context,Element>,~combine: Element -> Element -> Element,
88  ~read_preserves: @-reader: Reader -> @context: Context -> ReaderEvidence(reader) -> Sample<Reader,Element,Context,reader,read(reader,context)>,
89  +depth: Nat,count: Nat,-reader: Reader,-state: Traversal.State<&1,&1,Reader,Array<Element>,Context>,+reader_evidence: ReaderEvidence(reader),
90  evidence: TraversalWitness.StateEvidence<Reader,Element,Context,reader,depth,state>) ->
91  TraversalWitness.StateEvidence<Reader,Element,Context,reader,depth,Traversal.visit_update(~Reader,~Element,~Context,~read,~combine,count,state)>:
92  match count:
93    case 0n: evidence
94    case 1n+rest:
95      update(~Reader,~Element,~Context,~ReaderEvidence,~read,~combine,~read_preserves,depth,rest,reader,
96        Traversal.visit_update_step(~Reader,~Element,~Context,~read,~combine,state),reader_evidence,
97        update_step(~Reader,~Element,~Context,~ReaderEvidence,~read,~combine,~read_preserves,depth,reader,state,reader_evidence,evidence))

Uses (10)

Used by (0)

No other definition uses this definition.