import * as Context from "effect/Context"; import { GenericService } from "./Util/service.ts"; export interface Self< R extends { Type: string } = { Type: string }, > extends Context.ServiceClass, `Self<${R["Type"]}>`, R> {} export const Self = GenericService<{ (type: R["Type"]): Self; }>()("Alchemy::Self");