/** * @since 1.0.0 */ import * as internal from "@effect/query/internal_effect_untraced/described" /** * @since 1.0.0 * @category symbols */ export const DescribedTypeId: unique symbol = internal.DescribedTypeId /** * @since 1.0.0 * @category symbols */ export type DescribedTypeId = typeof DescribedTypeId /** * A `Described` is a value of type `A` along with a string description of * that value. The description may be used to generate a hash associated with * the value, so values that are equal should have the same description and * values that are not equal should have different descriptions. * * @since 1.0.0 * @category models */ export interface Described extends Described.Proto { readonly value: A readonly description: string } /** * @since 1.0.0 */ export declare namespace Described { /** * @since 1.0.0 * @category models */ export interface Proto { readonly [DescribedTypeId]: DescribedTypeId } } /** * Constructs a new `Described` from a value and a description. * * @since 1.0.0 * @category constructors */ export const make: (value: A, description: string) => Described = internal.make