hunk.code_window: interface Transition {
     sources: Set<Signal<any>>;
     effects: Computation<any>[];
     promises: Set<Promise<any>>;
     running: boolean;
   }
   export function createRoot<T>(fn: (dispose: () => void) => T, detachedOwner?: Owner): T {
     detachedOwner && (Owner = detachedOwner);
  
hunk.labels: keep keep keep keep add keep keep keep keep keep
hunk.after_edit:   disposed: Set<Computation<any>>;
  
hunk.file_path: packages/solid/src/reactive/signal.ts
hunk.type: add
file: import { createRoot, createSignal, createMemo } from "solid-js";
  import { pairwise } from "../src";
  
  describe("Pairwise operator", () => {
    test("simple pairwise", () => {
      createRoot(() => {
        const [s, set] = createSignal("Hi"),
          r = createMemo(pairwise(s));
        expect(r()).toEqual([undefined, "Hi"]);
        set("Lo");
        expect(r()).toEqual(["Hi", "Lo"]);
      });
    });
  
    test("simple pairwise curried", () => {
      createRoot(() => {
        const [s, set] = createSignal("Hi"),
          pair = pairwise(),
          r = createMemo(pair(s));
        expect(r()).toEqual([undefined, "Hi"]);
        set("Lo");
        expect(r()).toEqual(["Hi", "Lo"]);
      });
    });
  });
  