-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Unicode alternatives for common functions and operators
--   
--   This package defines new symbols for a number of functions, operators
--   and types in the base package.
--   
--   All symbols are documented with their actual definition and
--   information regarding their Unicode code point. They should be
--   completely interchangeable with their definitions.
--   
--   For further Unicode goodness you can enable the <tt>UnicodeSyntax</tt>
--   language extension &lt;math&gt;. This extension enables Unicode
--   characters to be used to stand for certain ASCII character sequences,
--   i.e. → instead of <tt>-&gt;</tt>, ∀ instead of <tt>forall</tt> and
--   many others.
--   
--   Original idea by Péter Diviánszky.
--   
--   &lt;math&gt;
--   <a>http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#unicode-syntax</a>
@package base-unicode-symbols
@version 0.2.2.4


module Data.Ord.Unicode

-- | (≤) = (<a>&lt;=</a>)
--   
--   U+2264, LESS-THAN OR EQUAL TO
(≤) :: Ord α => α -> α -> Bool
infix 4 ≤

-- | (≥) = (<a>&gt;=</a>)
--   
--   U+2265, GREATER-THAN OR EQUAL TO
(≥) :: Ord α => α -> α -> Bool
infix 4 ≥

-- | (≮) = (<a>&gt;=</a>)
--   
--   U+226E, NOT LESS-THAN
(≮) :: Ord α => α -> α -> Bool
infix 4 ≮

-- | (≯) = (<a>&lt;=</a>)
--   
--   U+226F, NOT GREATER-THAN
(≯) :: Ord α => α -> α -> Bool
infix 4 ≯


module Data.Monoid.Unicode

-- | (∅) = <a>mempty</a>
--   
--   U+2205, EMPTY SET
(∅) :: Monoid α => α

-- | (⊕) = <a>mappend</a>
--   
--   U+2295, CIRCLED PLUS
(⊕) :: Monoid α => α -> α -> α
infixr 6 ⊕


module Data.List.Unicode

-- | (⧺) = (<a>++</a>)
--   
--   U+29FA, DOUBLE PLUS
(⧺) :: [α] -> [α] -> [α]
infixr 5 ⧺

-- | (∈) = <a>elem</a>
--   
--   U+2208, ELEMENT OF
(∈) :: Eq α => α -> [α] -> Bool
infix 4 ∈

-- | (∋) = <a>flip</a> (∈)
--   
--   U+220B, CONTAINS AS MEMBER
(∋) :: Eq α => [α] -> α -> Bool
infix 4 ∋

-- | (∉) = <a>notElem</a>
--   
--   U+2209, NOT AN ELEMENT OF
(∉) :: Eq α => α -> [α] -> Bool
infix 4 ∉

-- | (∌) = <a>flip</a> (∉)
--   
--   U+220C, DOES NOT CONTAIN AS MEMBER
(∌) :: Eq α => [α] -> α -> Bool
infix 4 ∌

-- | (∪) = <a>union</a>
--   
--   U+222A, UNION
(∪) :: Eq α => [α] -> [α] -> [α]
infixl 6 ∪

-- | (∖) = (<a>\\</a>)
--   
--   U+2216, SET MINUS
(∖) :: Eq α => [α] -> [α] -> [α]
infixl 9 ∖

-- | Symmetric difference
--   
--   a ∆ b = (a ∖ b) ∪ (b ∖ a)
--   
--   U+2206, INCREMENT
(∆) :: Eq α => [α] -> [α] -> [α]
infixl 9 ∆

-- | (∩) = <a>intersect</a>
--   
--   U+2229, INTERSECTION
(∩) :: Eq α => [α] -> [α] -> [α]
infixr 6 ∩


module Data.Function.Unicode

-- | (∘) = (<a>.</a>)
--   
--   U+2218, RING OPERATOR
(∘) :: (β -> γ) -> (α -> β) -> (α -> γ)
infixr 9 ∘


module Data.Foldable.Unicode

-- | (∈) = <a>elem</a>
--   
--   U+2208, ELEMENT OF
(∈) :: (Foldable t, Eq α) => α -> t α -> Bool
infix 4 ∈

-- | (∋) = <a>flip</a> (∈)
--   
--   U+220B, CONTAINS AS MEMBER
(∋) :: (Foldable t, Eq α) => t α -> α -> Bool
infix 4 ∋

-- | (∉) = <a>notElem</a>
--   
--   U+2209, NOT AN ELEMENT OF
(∉) :: (Foldable t, Eq α) => α -> t α -> Bool
infix 4 ∉

-- | (∌) = <a>flip</a> (∉)
--   
--   U+220C, DOES NOT CONTAIN AS MEMBER
(∌) :: (Foldable t, Eq α) => t α -> α -> Bool
infix 4 ∌


module Data.Eq.Unicode

-- | (≡) = (<a>==</a>)
--   
--   U+2261, IDENTICAL TO
(≡) :: Eq α => α -> α -> Bool
infix 4 ≡

-- | (≢) = (<a>/=</a>)
--   
--   U+2262, NOT IDENTICAL TO
(≢) :: Eq α => α -> α -> Bool
infix 4 ≢

-- | (≠) = (<a>/=</a>)
--   
--   U+2260, NOT EQUAL TO
(≠) :: Eq α => α -> α -> Bool
infix 4 ≠


module Data.Bool.Unicode

-- | (∧) = (<a>&amp;&amp;</a>)
--   
--   U+2227, LOGICAL AND
(∧) :: Bool -> Bool -> Bool
infixr 3 ∧

-- | (∨) = (<a>||</a>)
--   
--   U+2228, LOGICAL OR
(∨) :: Bool -> Bool -> Bool
infixr 2 ∨

-- | (¬) = <a>not</a>
--   
--   U+00AC, NOT SIGN
(¬) :: Bool -> Bool


module Prelude.Unicode

-- | (¬) = <a>not</a>
--   
--   U+00AC, NOT SIGN
(¬) :: Bool -> Bool

-- | (∧) = (<a>&amp;&amp;</a>)
--   
--   U+2227, LOGICAL AND
(∧) :: Bool -> Bool -> Bool
infixr 3 ∧

-- | (∨) = (<a>||</a>)
--   
--   U+2228, LOGICAL OR
(∨) :: Bool -> Bool -> Bool
infixr 2 ∨

-- | (≡) = (<a>==</a>)
--   
--   U+2261, IDENTICAL TO
(≡) :: Eq α => α -> α -> Bool
infix 4 ≡

-- | (≢) = (<a>/=</a>)
--   
--   U+2262, NOT IDENTICAL TO
(≢) :: Eq α => α -> α -> Bool
infix 4 ≢

-- | (≠) = (<a>/=</a>)
--   
--   U+2260, NOT EQUAL TO
(≠) :: Eq α => α -> α -> Bool
infix 4 ≠

-- | (≤) = (<a>&lt;=</a>)
--   
--   U+2264, LESS-THAN OR EQUAL TO
(≤) :: Ord α => α -> α -> Bool
infix 4 ≤

-- | (≥) = (<a>&gt;=</a>)
--   
--   U+2265, GREATER-THAN OR EQUAL TO
(≥) :: Ord α => α -> α -> Bool
infix 4 ≥

-- | (≮) = (<a>&gt;=</a>)
--   
--   U+226E, NOT LESS-THAN
(≮) :: Ord α => α -> α -> Bool
infix 4 ≮

-- | (≯) = (<a>&lt;=</a>)
--   
--   U+226F, NOT GREATER-THAN
(≯) :: Ord α => α -> α -> Bool
infix 4 ≯

-- | π = <a>pi</a>
--   
--   U+03C0, GREEK SMALL LETTER PI
π :: Floating α => α

-- | (÷) = (<a>/</a>)
--   
--   U+00F7, DIVISION SIGN
(÷) :: Fractional α => α -> α -> α
infixl 7 ÷

-- | (⋅) = (<a>*</a>)
--   
--   U+22C5, DOT OPERATOR
(⋅) :: Num α => α -> α -> α
infixl 7 ⋅

-- | (∘) = (<a>.</a>)
--   
--   U+2218, RING OPERATOR
(∘) :: (β -> γ) -> (α -> β) -> (α -> γ)
infixr 9 ∘

-- | (⧺) = (<a>++</a>)
--   
--   U+29FA, DOUBLE PLUS
(⧺) :: [α] -> [α] -> [α]
infixr 5 ⧺

-- | (∈) = <a>elem</a>
--   
--   U+2208, ELEMENT OF
(∈) :: Eq α => α -> [α] -> Bool
infix 4 ∈

-- | (∉) = <a>notElem</a>
--   
--   U+2209, NOT AN ELEMENT OF
(∉) :: Eq α => α -> [α] -> Bool
infix 4 ∉

-- | (⊥) = <a>undefined</a>
--   
--   U+22A5, UP TACK
(⊥) :: α

-- | U+2124, DOUBLE-STRUCK CAPITAL Z
type ℤ = Integer

-- | U+2124, DOUBLE-STRUCK CAPITAL Q
type ℚ = Ratio ℤ


module Control.Monad.Unicode

-- | (≫=) = (<a>&gt;&gt;=</a>)
--   
--   (U+226B, MUCH GREATER-THAN) + (U+3D, EQUALS SIGN)
(≫=) :: Monad m => m α -> (α -> m β) -> m β
infixl 1 ≫=

-- | (≫) = (<a>&gt;&gt;</a>)
--   
--   U+226B, MUCH GREATER-THAN
(≫) :: Monad m => m α -> m β -> m β
infixl 1 ≫

-- | (=≪) = (<a>=&lt;&lt;</a>)
--   
--   (U+3D, EQUALS SIGN) + (U+226A, MUCH LESS-THAN)
(=≪) :: Monad m => (α -> m β) -> m α -> m β
infixr 1 =≪


module Control.Category.Unicode

-- | (∘) = (<a>.</a>)
--   
--   U+2218, RING OPERATOR
(∘) :: Category c => c β γ -> c α β -> c α γ
infixr 9 ∘

-- | (⋙) = (<a>&gt;&gt;&gt;</a>)
--   
--   U+22D9, VERY MUCH GREATER-THAN
(⋙) :: Category c => c α β -> c β γ -> c α γ
infixr 1 ⋙

-- | (⋘) = (<a>&lt;&lt;&lt;</a>)
--   
--   U+22D8, VERY MUCH LESS-THAN
(⋘) :: Category c => c β γ -> c α β -> c α γ
infixr 1 ⋘


module Control.Arrow.Unicode

-- | (⋙) = (<a>&gt;&gt;&gt;</a>)
--   
--   U+22D9, VERY MUCH GREATER-THAN
(⋙) :: Category c => c α β -> c β γ -> c α γ
infixr 1 ⋙

-- | (⋘) = (<a>&lt;&lt;&lt;</a>)
--   
--   U+22D8, VERY MUCH LESS-THAN
(⋘) :: Category c => c β γ -> c α β -> c α γ
infixr 1 ⋘

-- | (⁂) = (<a>***</a>)
--   
--   U+2042, ASTERISM
(⁂) :: Arrow a => a α β -> a α' β' -> a (α, α') (β, β')
infixr 3 `⁂`

-- | (⧻) = (<a>+++</a>)
--   
--   U+29FB, TRIPLE PLUS
(⧻) :: ArrowChoice a => a α β -> a α' β' -> a (Either α α') (Either β β')
infixr 2 ⧻

-- | (⫴) = (<a>|||</a>)
--   
--   U+2AF4, TRIPLE VERTICAL BAR BINARY RELATION
(⫴) :: ArrowChoice a => a α δ -> a β δ -> a (Either α β) δ
infixr 2 ⫴


module Control.Applicative.Unicode

-- | (⊛) = <a>&lt;*&gt;</a>
--   
--   U+229B, CIRCLED ASTERISK OPERATOR
(⊛) :: Applicative f => f (α -> β) -> f α -> f β
infixl 4 ⊛

-- | (∅) = <a>empty</a>
--   
--   U+2205, EMPTY SET
(∅) :: Alternative f => f α
