"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const Function = require("./dist-esm-Function.cjs");
const isString = (input) => typeof input === "string";
const isNumber = (input) => typeof input === "number";
const isFunction = Function.isFunction;
const isRecordOrArray = (input) => typeof input === "object" && input !== null;
const isObject = (input) => isRecordOrArray(input) || isFunction(input);
const hasProperty = /* @__PURE__ */ Function.dual(2, (self, property) => isObject(self) && property in self);
const isTagged = /* @__PURE__ */ Function.dual(2, (self, tag) => hasProperty(self, "_tag") && self["_tag"] === tag);
const isRecord = (input) => isRecordOrArray(input) && !Array.isArray(input);
exports.hasProperty = hasProperty;
exports.isFunction = isFunction;
exports.isNumber = isNumber;
exports.isObject = isObject;
exports.isRecord = isRecord;
exports.isRecordOrArray = isRecordOrArray;
exports.isString = isString;
exports.isTagged = isTagged;
//# sourceMappingURL=dist-esm-Predicate.cjs.map
