var _a;

import * as tsplus_module_1 from "@tsplus/stdlib/structure/Hash";
import * as tsplus_module_2 from "@tsplus/stdlib/structure/Equals";
export const isTake = isTake_1;
import { _A, _E, TakeSym } from "@effect/core/stream/Take/definition";
export class TakeInternal {
  constructor(_exit) {
    this._exit = _exit;
    this[_a] = TakeSym;
  }

  [(_a = TakeSym, tsplus_module_1.Hash.sym)]() {
    return this._exit[tsplus_module_1.Hash.sym]();
  }

  [tsplus_module_2.Equals.sym](u) {
    if (isTake_1(u)) {
      void 0;
      return tsplus_module_2.equals(u._exit, this._exit);
    }

    return false;
  }

}
/**
 * @tsplus static ets/Take/Ops isTake
 */

function isTake_1(u) {
  return typeof u === "object" && u != null && TakeSym in u;
}
/**
 * @tsplus macro remove
 */


export function concreteTake(_) {//
}
//# sourceMappingURL=TakeInternal.mjs.map