* ```
*
* @see {@link Predicate.Any}
* @see {@link Refinement.In}
* @category utility types
* @since 3.6.0
*/
export type In (property: P): (self: unknown) => self is { [K in P]: unknown }
(self: unknown, property: P): self is { [K in P]: unknown }
} = dual(
2,
(self: unknown, property: P): self is { [K in P]: unknown } =>
isObjectKeyword(self) && (property in self)
)
/**
* Checks whether a value has a `_tag` property equal to the given tag.
*
* **When to use**
*
* Use when you model tagged unions with a `_tag` field and want a quick
* `Predicate` guard for tagged values.
*
* **Details**
*
* Uses `hasProperty` and strict equality on `_tag`.
*
* **Example** (Guarding tagged values)
*
* ```ts
* import { Predicate } from "effect"
*
* const isOk = Predicate.isTagged("Ok")
*
* console.log(isOk({ _tag: "Ok", value: 1 }))
* ```
*
* @see {@link hasProperty}
* @category guards
* @since 2.0.0
*/
export const isTagged: {