···11{
22 "name": "purus-ts",
33- "version": "0.1.0-alpha.9",
33+ "version": "0.1.0-alpha.10",
44 "description": "Pure TypeScript effect system with fiber-based concurrency, brands, refinements, and pattern matching",
55 "type": "module",
66 "main": "./dist/index.js",
+5-4
src/data/guards.ts
···2727export const isArray = (x: unknown) => Array.isArray(x)
28282929/** Type guard for Set values */
3030-export const isSet = (x: unknown): x is Set<unknown> => x instanceof Set
3030+export const isSet = (x: unknown): x is ReadonlySet<unknown> => x instanceof Set
31313232/** Type guard for Map values */
3333-export const isMap = (x: unknown): x is Map<unknown, unknown> => x instanceof Map
3333+export const isMap = (x: unknown): x is ReadonlyMap<unknown, unknown> =>
3434+ x instanceof Map
34353536// =============================================================================
3637// Number Property Guards
···74757576/** Combines two guards with logical AND - both must pass */
7677export const and =
7777- <A, B extends A, C extends B>(g1: (x: A) => x is B, g2: (x: B) => x is C) =>
7878- (x: A): x is C =>
7878+ <A, B extends A, C extends A>(g1: (x: A) => x is B, g2: (x: A) => x is C) =>
7979+ (x: A): x is B & C =>
7980 g1(x) && g2(x)
80818182/** Combines two guards with logical OR - either must pass */