import { type $ } from "https://deno.land/x/fun@v2.0.0/examples/hkts.ts";
definition: T extends Fix<infer F> ? F : T extends _<infer N> ? S[N] : T extends any[] ? [K in keyof T]: $<T[K], S> : T extends (...as: infer AS) => infer R ? (...as: $<AS, S>) => $<R, S> : T extends Promise<infer I> ? Promise<$<I, S>> : T extends object ? [K in keyof T]: $<T[K], S> : T extends Primitives ? T : never