     case let .remove(todo):
         return state.remove(todo: todo)
     case let .done(todo):
-        return state.done(todo: todo)
+        return state.done(todo)
     case let .move(todo, box):
         return state.move(todo, to: box)
     }

        )
    }

    fileprivate func done(todo: ToDo) -> State {
        let todos: [ToDos.ToDoInBox] = self.todos.todos.map {
            if $0.todo.id != todo.id {
                return $0
            } else {
                return $0.toggleDone()
            }
        }

        return .init(
            tags: tags,
            todos: .init(todos: todos)
        )
    }


            tags: tags,
            todos: .init(todos: todos)
        )
    }
}

extension ToDos {
    fileprivate func done(_ todo: ToDo) -> ToDos {
        let todos: [ToDos.ToDoInBox] = self.todos.map {
            if $0.todo.id != todo.id {
                return $0
            } else {
                return $0.toggleDone()
            }
        }

        return .init(todos: todos)
    }
}

