// ets_tracing: off
import * as O from "@effect-ts/system/Option"
import type { Equal } from "../../Equal/index.js"
/**
* Returns `true` if `ma` contains `a`
*
* @ets_data_first elem_
*/
export function elem(E: Equal): (a: A) => (ma: O.Option) => boolean {
const el = elem_(E)
return (a) => (ma) => el(ma, a)
}
/**
* Returns `true` if `ma` contains `a`
*/
export function elem_(E: Equal): (ma: O.Option, a: A) => boolean {
return (ma, a) => (O.isNone(ma) ? false : E.equals(a, ma.value))
}