export const arrayEquals = <element>(
	l: array<element>,
	r: array<element>,
	opts?: ComparisonOptions<element>
): boolean =>
	l.length === r.length &&
	l.every(
		opts?.isEqual ?
			(lItem, i) => opts.isEqual!(lItem, r[i])
		:	(lItem, i) => lItem === r[i]
	)

export type validateExhaustiveKeys<
	keys extends readonly PropertyKey[],
	expectedKey extends PropertyKey
> =
	keys extends readonly [infer head, ...infer tail extends PropertyKey[]] ?
		readonly [
74:				if (r.allows(l.unit)) return l
103:							rConstraint => !rConstraint.allows(l.unit as never)
140:			: $ark.intrinsic.jsonPrimitive.allows(this.unit) ? { const: this.unit }
