import { dual, isFunction as isFunction$1 } from "./dist-esm-Function.js";
const isString = (input) => typeof input === "string";
const isNumber = (input) => typeof input === "number";
const isFunction = isFunction$1;
const isRecordOrArray = (input) => typeof input === "object" && input !== null;
const isObject = (input) => isRecordOrArray(input) || isFunction(input);
const hasProperty = /* @__PURE__ */ dual(2, (self, property) => isObject(self) && property in self);
const isTagged = /* @__PURE__ */ dual(2, (self, tag) => hasProperty(self, "_tag") && self["_tag"] === tag);
const isRecord = (input) => isRecordOrArray(input) && !Array.isArray(input);
export {
  hasProperty,
  isFunction,
  isNumber,
  isObject,
  isRecord,
  isRecordOrArray,
  isString,
  isTagged
};
//# sourceMappingURL=dist-esm-Predicate.js.map
