{-# LANGUAGE NoImplicitPrelude, UnicodeSyntax #-} {-| Module : Data.List.Unicode Copyright : (c) 2009–2010 Roel van Dijk License : BSD3 (see the file LICENSE) Maintainer : Roel van Dijk -} module Data.List.Unicode ( (⧺) , (∈), (∋), (∉), (∌) , (∪), (∖), (∆), (∩) ) where ------------------------------------------------------------------------------- -- Imports ------------------------------------------------------------------------------- -- from base: import Data.Bool ( Bool ) import Data.Eq ( Eq ) import Data.Function ( flip ) import Data.List ( (++), elem, notElem, union, (\\), intersect ) ------------------------------------------------------------------------------- -- Fixities ------------------------------------------------------------------------------- infix 4 ∈ infix 4 ∋ infix 4 ∉ infix 4 ∌ infixr 5 ⧺ infixl 6 ∪ infixr 6 ∩ infixl 9 ∖ infixl 9 ∆ ------------------------------------------------------------------------------- -- Symbols ------------------------------------------------------------------------------- {-| (⧺) = ('++') U+29FA, DOUBLE PLUS -} (⧺) ∷ [α] → [α] → [α] (⧺) = (++) {-| (∈) = 'elem' U+2208, ELEMENT OF -} (∈) ∷ Eq α ⇒ α → [α] → Bool (∈) = elem {-| (∋) = 'flip' (∈) U+220B, CONTAINS AS MEMBER -} (∋) ∷ Eq α ⇒ [α] → α → Bool (∋) = flip (∈) {-| (∉) = 'notElem' U+2209, NOT AN ELEMENT OF -} (∉) ∷ Eq α ⇒ α → [α] → Bool (∉) = notElem {-| (∌) = 'flip' (∉) U+220C, DOES NOT CONTAIN AS MEMBER -} (∌) ∷ Eq α ⇒ [α] → α → Bool (∌) = flip (∉) {-| (∪) = 'union' U+222A, UNION -} (∪) ∷ Eq α ⇒ [α] → [α] → [α] (∪) = union {-| (∖) = ('\\') U+2216, SET MINUS -} (∖) ∷ Eq α ⇒ [α] → [α] → [α] (∖) = (\\) {-| Symmetric difference a ∆ b = (a ∖ b) ∪ (b ∖ a) U+2206, INCREMENT -} (∆) ∷ Eq α ⇒ [α] → [α] → [α] a ∆ b = (a ∖ b) ∪ (b ∖ a) {-| (∩) = 'intersect' U+2229, INTERSECTION -} (∩) ∷ Eq α ⇒ [α] → [α] → [α] (∩) = intersect