anchor.diff:              match evalCodataTryUncons evalApply fnOriginOpt fnName codata world with
               | Right (Right (_, _, world)) -> Right (false, world)
               | Right (Left world) -> Right (true, world)
  -            | Left (violation, world) -> Left (violation, world)
  +            | Left error -> Left error
   
           let evalIsEmpty evalApply fnOriginOpt fnName evaledArgs world =
               match evaledArgs with
  
positive.code:             | [Codata codata] ->
                  match evalCodataIsEmpty evalApply fnOriginOpt fnName codata world with
                  | Right (empty, world) -> (Bool (not empty), world)
                  | Left (violation, world) -> (violation, world)
              | [List list] -> (Bool (List.notEmpty list), world)
              | [Ring set] -> (Bool (Set.notEmpty set), world)
              | [Table map] -> (Bool (Map.notEmpty map), world)
  
negative.code: 
          let evalFold evalApply fnOriginOpt fnName evaledArgs world =
              match evaledArgs with
              | [fn; state; String str] -> Seq.fold (fun (state, world) elem -> evalApply [fn; state; String (string elem)] fnOriginOpt world) (state, world) str
              | [fn; state; List list] -> List.fold (fun (state, world) elem -> evalApply [fn; state; elem] fnOriginOpt world) (state, world) list
              | [fn; state; Ring set] -> Set.fold (fun (state, world) elem -> evalApply [fn; state; elem] fnOriginOpt world) (state, world) set
              | [fn; state; Table map] ->
                  Map.fold (fun (state, world) key value ->
                      let elem = Tuple [|key; value|]
                      evalApply [fn; state; elem] fnOriginOpt world)
                      (state, world)
                      map
              | [_; _; _] -> (Violation ([!!"InvalidArgumentType"; !!"Container"; !!(String.capitalize fnName)], "Cannot apply " + fnName + " to a non-container.", fnOriginOpt), world)
  