, .
, , 'st -> State<'st, 'a>. , run, , - , , , "parent" move turn. , - - .
, , , , , , , , /( ). , , .
- :
type State<'st, 'a> = State of ('st ->'a * 'st),
. . .
, - do! move(), let! x = turn() let! pos1 = state.Get() - , . , , , .
, :
{| let! pattern = expr in cexpr |} => builder.Bind(expr, (fun pattern -> {| cexpr |}))
, expr, Bind , , cexpr. " " expr - Get() - , - cexpr.
, , , let result = p state Bind, .