import { type Value } from "./Value.js"; import { type Raw_Optional_Value } from "../Raw_Optional_Value.js"; /** * Why this type and not use for example 'null | T'? * the 'null | T' is vulnerable. If you have a parametrized function 'foo() null | T' and T is null | number, * you cannot discern if a return value is null because of the function or because of the data * this 'Optional_Value' type makes it possible to have recursive optional types like this: Optional_Value> */ export interface Optional_Value { __optional_value: true; __get_raw(): Raw_Optional_Value; }