diff --git a/src/cache/cache.ts b/src/cache/cache.ts
index 20783d3..39dbc6d 100644
--- a/src/cache/cache.ts
+++ b/src/cache/cache.ts
@@ -3,8 +3,9 @@ import {
OperationDefinitionNode,
OperationTypeNode,
} from "@0no-co/graphql.web";
-import { Option, Result } from "@swan-io/boxed";
+import { Array, Option, Result } from "@swan-io/boxed";
import { P, match } from "ts-pattern";
+import { Connection, Edge } from "../types";
import {
DEEP_MERGE_DELETE,
containsAll,
@@ -217,12 +218,14 @@ export class ClientCache {
update(
cacheKey: symbol,
path: (symbol | string)[],
- updater: (value: A) => Partial,
+ updater: (value: A) => A,
) {
this.get(cacheKey).map((cachedAncestor) => {
const value = path.reduce