{-# LANGUAGE NoImplicitPrelude, UnicodeSyntax #-}

module Data.Foldable.Unicode where

-------------------------------------------------------------------------------
-- Imports
-------------------------------------------------------------------------------

-- from base:
import Data.Bool     ( Bool )
import Data.Eq       ( Eq )
import Data.Function ( flip )
import Data.Foldable ( Foldable, elem, notElem )


-------------------------------------------------------------------------------
-- Fixities
-------------------------------------------------------------------------------

infix  4 
infix  4 
infix  4 
infix  4 


-------------------------------------------------------------------------------
-- Symbols
-------------------------------------------------------------------------------

{-|
(∈) = 'elem'

U+2208, ELEMENT OF
-}
(∈)  (Foldable t, Eq α)  α  t α  Bool
∈ :: forall (t :: * -> *) α. (Foldable t, Eq α) => α -> t α -> Bool
(∈) = α -> t α -> Bool
forall a. Eq a => a -> t a -> Bool
forall (t :: * -> *) a. (Foldable t, Eq a) => a -> t a -> Bool
elem
{-# INLINE () #-}

{-|
(∋) = 'flip' (∈)

U+220B, CONTAINS AS MEMBER
-}
(∋)  (Foldable t, Eq α)  t α  α  Bool
∋ :: forall (t :: * -> *) α. (Foldable t, Eq α) => t α -> α -> Bool
(∋) = (α -> t α -> Bool) -> t α -> α -> Bool
forall a b c. (a -> b -> c) -> b -> a -> c
flip α -> t α -> Bool
forall (t :: * -> *) α. (Foldable t, Eq α) => α -> t α -> Bool
(∈)
{-# INLINE () #-}

{-|
(∉) = 'notElem'

U+2209, NOT AN ELEMENT OF
-}
(∉)  (Foldable t, Eq α)  α  t α  Bool
∉ :: forall (t :: * -> *) α. (Foldable t, Eq α) => α -> t α -> Bool
(∉) = α -> t α -> Bool
forall (t :: * -> *) α. (Foldable t, Eq α) => α -> t α -> Bool
notElem
{-# INLINE () #-}

{-|
(∌) = 'flip' (∉)

U+220C, DOES NOT CONTAIN AS MEMBER
-}
(∌)  (Foldable t, Eq α)  t α  α  Bool
∌ :: forall (t :: * -> *) α. (Foldable t, Eq α) => t α -> α -> Bool
(∌) = (α -> t α -> Bool) -> t α -> α -> Bool
forall a b c. (a -> b -> c) -> b -> a -> c
flip α -> t α -> Bool
forall (t :: * -> *) α. (Foldable t, Eq α) => α -> t α -> Bool
(∉)
{-# INLINE () #-}