UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

19 lines (15 loc) • 541 B
import type { None, Option } from "."; import type { Args, Fn } from "../HKT"; declare module "../typeclass/HKT" { interface HKTRegistry { Option: RegisterHKT<Option$$HKT$$Builder, Option$$HKT$$Extractor>; } } export interface Option$$HKT$$Builder extends Fn<[unknown], Option<unknown>> { def: ([x]: Args<this>) => Option<typeof x>; } export interface Option$$HKT$$Extractor extends Fn<[Option<unknown>], unknown> { def: ([o]: Args<this>) => typeof o extends None ? never : typeof o extends Option<infer T> ? T : never; }