{-# LANGUAGE NoImplicitPrelude, UnicodeSyntax #-}
{-|
Module : Data.IntSet.Unicode
Copyright : (c) 2009–2010 Roel van Dijk
License : BSD3 (see the file LICENSE)
Maintainer : Roel van Dijk <vandijk.roel@gmail.com>
-}
module Data.IntSet.Unicode
( (∈), (∉)
, (∅)
, (∪), (∩)
, (⊆), (⊇), (⊈), (⊉)
, (⊂), (⊃), (⊄), (⊅)
) where
-------------------------------------------------------------------------------
-- Imports
-------------------------------------------------------------------------------
-- from base:
import Data.Bool ( Bool, not )
import Data.Function ( flip )
import Data.Int ( Int )
-- from base-unicode-symbols:
import Data.Eq.Unicode ( (≢) )
import Data.Bool.Unicode ( (∧) )
-- from containers:
import Data.IntSet ( IntSet
, member, notMember
, empty
, union, intersection
, isSubsetOf, isProperSubsetOf
)
-------------------------------------------------------------------------------
-- Fixities
-------------------------------------------------------------------------------
infix 4 ∈
infix 4 ∉
-------------------------------------------------------------------------------
-- Symbols
-------------------------------------------------------------------------------
{- |
(∈) = 'member'
U+2208, ELEMENT OF
-}
(∈) ∷ Int -> IntSet → Bool
(∈) = member
{- |
(∉) = 'notMember'
U+2209, NOT AN ELEMENT OF
-}
(∉) ∷ Int -> IntSet → Bool
(∉) = notMember
{- |
(∅) = 'empty'
U+2205, EMPTY SET
-}
(∅) ∷ IntSet
(∅) = empty
{- |
(∪) = 'union'
U+222A, UNION
-}
(∪) ∷ IntSet → IntSet → IntSet
(∪) = union
{- |
(∩) = 'intersection'
U+2229, INTERSECTION
-}
(∩) ∷ IntSet → IntSet → IntSet
(∩) = intersection
{- |
(⊆) = 'isSubsetOf'
U+2286, SUBSET OF OR EQUAL TO
-}
(⊆) ∷ IntSet → IntSet → Bool
(⊆) = isSubsetOf
{- |
(⊇) = 'flip' (⊆)
U+2287, SUPERSET OF OR EQUAL TO
-}
(⊇) ∷ IntSet → IntSet → Bool
(⊇) = flip (⊆)
{- |
x ⊈ y = (x ≢ y) ∧ (x ⊄ y)
U+2288, NEITHER A SUBSET OF NOR EQUAL TO
-}
(⊈) ∷ IntSet → IntSet → Bool
x ⊈ y = (x ≢ y) ∧ (x ⊄ y)
{- |
x ⊉ y = (x ≢ y) ∧ (x ⊅ y)
U+2289, NEITHER A SUPERSET OF NOR EQUAL TO
-}
(⊉) ∷ IntSet → IntSet → Bool
x ⊉ y = (x ≢ y) ∧ (x ⊅ y)
{- |
(⊂) = 'isProperSubsetOf'
U+2282, SUBSET OF
-}
(⊂) ∷ IntSet → IntSet → Bool
(⊂) = isProperSubsetOf
{- |
(⊃) = 'flip' (⊂)
U+2283, SUPERSET OF
-}
(⊃) ∷ IntSet → IntSet → Bool
(⊃) = flip (⊂)
{- |
x ⊄ y = 'not' (x ⊂ y)
U+2284, NOT A SUBSET OF
-}
(⊄) ∷ IntSet → IntSet → Bool
x ⊄ y = not (x ⊂ y)
{- |
x ⊅ y = 'not' (x ⊃ y)
U+2285, NOT A SUPERSET OF
-}
(⊅) ∷ IntSet → IntSet → Bool
x ⊅ y = not (x ⊃ y)