-- 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 UnicodeSyntax
--   language extension [1]. This extension enables Unicode characters to
--   be used to stand for certain ASCII character sequences, i.e. → instead
--   of ->, ∀ instead of forall and many others.
--   
--   Original idea by Péter Diviánszky.
--   
--   [1]
--   https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#unicode-syntax
@package base-unicode-symbols
@version 0.2.4.2

module Control.Applicative.Unicode

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

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

module Control.Category.Unicode

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

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

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

module Control.Arrow.Unicode

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

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

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

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

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

module Control.Monad.Unicode

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

-- | (≫) = (>>)
--   
--   U+226B, MUCH GREATER-THAN
(≫) :: Monad m => m α -> m β -> m β
infixl 1 ≫

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

-- | (↣) = (>=>)
--   
--   (U+21A3, RIGHTWARDS ARROW WITH TAIL)
(↣) :: Monad μ => (α -> μ β) -> (β -> μ γ) -> α -> μ γ
infixl 1 ↣

-- | (↢) = (<=<)
--   
--   (U+21A2, LEFTWARDS ARROW WITH TAIL)
(↢) :: Monad μ => (β -> μ γ) -> (α -> μ β) -> α -> μ γ
infixr 1 ↢

module Data.Bool.Unicode

-- | (∧) = (&&)
--   
--   U+2227, LOGICAL AND
(∧) :: Bool -> Bool -> Bool
infixr 3 ∧

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

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

-- | a ⊻ b = (a ∨ b) ∧ not (a ∧ b)
--   
--   U+22BB, XOR
(⊻) :: Bool -> Bool -> Bool
infixr 3 ⊻

-- | a ⊼ b = not (a ∧ b)
--   
--   U+22bc, NAND
(⊼) :: Bool -> Bool -> Bool
infixr 3 ⊼

-- | a ⊽ b = not (a ∨ b)
--   
--   U+22bd, NOR
(⊽) :: Bool -> Bool -> Bool
infixr 3 ⊽

module Data.Eq.Unicode

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

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

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

module Data.Foldable.Unicode

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

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

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

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

module Data.Function.Unicode

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

module Data.List.Unicode

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

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

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

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

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

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

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

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

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

-- | (‼) = (!!)
--   
--   U+203C, DOUBLE EXCLAMATION MARK
(‼) :: [α] -> Int -> α
infixl 9 ‼

-- | Epsilon, the empty word (or list)
--   
--   (ε) = []
--   
--   (U+3B5, GREEK SMALL LETTER EPSILON)
𝜀 :: [a]

module Data.Monoid.Unicode

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

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

module Data.Ord.Unicode

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

-- | (≥) = (>=)
--   
--   U+2265, GREATER-THAN OR EQUAL TO
(≥) :: Ord α => α -> α -> Bool
infix 4 ≥

-- | (≮) = (>=)
--   
--   U+226E, NOT LESS-THAN
(≮) :: Ord α => α -> α -> Bool
infix 4 ≮

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

module Data.String.Unicode

-- | Epsilon, the empty word (or list)
--   
--   (ε) = []
--   
--   (U+3B5, GREEK SMALL LETTER EPSILON)
𝜀 :: [a]

module Numeric.Natural.Unicode

-- | U+2115, DOUBLE-STRUCK CAPITAL N
type ℕ = Natural

module Prelude.Unicode

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

-- | (∧) = (&&)
--   
--   U+2227, LOGICAL AND
(∧) :: Bool -> Bool -> Bool
infixr 3 ∧

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

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

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

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

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

-- | (≥) = (>=)
--   
--   U+2265, GREATER-THAN OR EQUAL TO
(≥) :: Ord α => α -> α -> Bool
infix 4 ≥

-- | (≮) = (>=)
--   
--   U+226E, NOT LESS-THAN
(≮) :: Ord α => α -> α -> Bool
infix 4 ≮

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

-- | a − b = a - b
--   
--   U+2212, MINUS SIGN
(−) :: Num a => a -> a -> a
infixl 6 −

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

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

-- | (×) = (*)
--   
--   U+00D7, MULTIPLICATION SIGN
(×) :: Num α => α -> α -> α
infixl 7 ×

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

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

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

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

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

-- | (‼) = (!!)
--   
--   U+203C, DOUBLE EXCLAMATION MARK
(‼) :: [α] -> Int -> α
infixl 9 ‼

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

-- | a ∣ b = mod a b == 0
--   
--   U+2223, DIVIDES
(∣) :: Integral a => a -> a -> Bool
infix 4 ∣

-- | a ∤ b = not (a ∣ b)
--   
--   U+2224, DOES NOT DIVIDE
(∤) :: Integral a => a -> a -> Bool
infix 4 ∤

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

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

-- | Epsilon, the empty word (or list)
--   
--   (ε) = []
--   
--   (U+3B5, GREEK SMALL LETTER EPSILON)
𝜀 :: [a]
