Strategies (Spec.Strategy) #
A Strategy m spec Output plays through spec, choosing moves and interleaving effects in m,
producing a transcript-dependent result Output tr. Definitions are by structural recursion on
the spec (Hancock–Setzer), avoiding positivity issues for generic m.
run executes a strategy; mapOutput is functorial in the output family. Dependent sequential
composition Strategy.comp requires Spec.append from VCVio.Interaction.Basic.Append.
One-player strategy with monadic effects: at each node, choose a move x and continue in
m.
Instances For
Run the strategy, returning the full transcript and the dependent output.
Instances For
Map the dependent output family along a natural transformation over transcripts.
Instances For
Pointwise identity on outputs is the identity on strategies (needs a lawful functor).
mapOutput respects composition of output maps (needs a lawful functor).