anchor.diff:              | EquateMany (_, _, _, _, _, originOpt) -> (Unit originOpt, env)
               | Handle (_, _, originOpt) -> (Unit originOpt, env)
   
  +        and evalMany exprs env =
  +            let eir =
  +                List.foldWhileRight
  +                    (fun (evaleds, env) expr ->
  +                        let (evaled, env) = eval expr env
  +                        match evaled with
  +                        | Violation _ as violation -> Left (violation, env)
  +                        | evaled -> Right (evaled :: evaleds, env))
  +                    ([], env)
  +                    exprs
  +            match eir with
  +            | Right (evaleds, env) -> Right (List.rev evaleds, env)
  +            | Left _ as left -> left
  +
           and evalDropEnv expr env =
               eval expr env |> fst
   
  
positive.code:             | ComputedStream computedStream ->
                  Right (computedStream :?> Prime.Stream<obj, Game, World>, env)
  
          and evalExprs exprs env =
              let (violations, evaleds, env) =
                  List.fold
                      (fun (violations, evaleds, env) expr ->
                          let (evaled, env) = eval expr env
                          match evaled with
                          | Violation _ as violation -> (violation :: violations, evaleds, env)
                          | evaled -> (violations, evaled :: evaleds, env))
                      ([], [], env)
                      exprs
              (violations, List.rev evaleds, env)
  
          and evalBinding expr name cachedBinding originOpt env =
              match Env.tryGetBinding name cachedBinding env with
              | None ->
  
negative.code: 
          and evalApply exprs originOpt env =
              let oldEnv = env
              match evalMany exprs env with
              | Right (evaleds, _) ->
                  match evaleds with
                  | head :: tail ->
                      match head with
  