-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Functions to work with unicode blocks more convenient.
--
-- A package that makes rendering of frames, blocks, subscript and
-- superscript more convenient.
@package unicode-tricks
@version 0.6.0.0
-- | Unicode has 2-by-2 blocks, this module aims to make it more convenient
-- to render such blocks.
module Data.Char.Block
-- | A data type that determines the state of the row in a block. it
-- determines the left and the right part of the row of the block.
data Row a
Row :: a -> a -> Row a
-- | The left part of a row of the block.
[left] :: Row a -> a
-- | The right part of the row of the block.
[right] :: Row a -> a
-- | A data type that determines the state of the four subparts of the
-- block.
data Block a
Block :: Row a -> Row a -> Block a
-- | The upper part of the block.
[upper] :: Block a -> Row a
-- | The lower part of the block.
[lower] :: Block a -> Row a
-- | Convert the given Block value to a block character in unicode.
-- True means that part is filled, and False means the part
-- is not filled.
filled :: Block Bool -> Char
instance Data.Traversable.Traversable Data.Char.Block.Block
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Block.Block a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Block.Block a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Block.Block a)
instance GHC.Base.Functor Data.Char.Block.Block
instance Data.Foldable.Foldable Data.Char.Block.Block
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Block.Block a)
instance Data.Traversable.Traversable Data.Char.Block.Row
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Block.Row a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Block.Row a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Block.Row a)
instance GHC.Base.Functor Data.Char.Block.Row
instance Data.Foldable.Foldable Data.Char.Block.Row
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Block.Row a)
instance GHC.Base.Applicative Data.Char.Block.Block
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Block.Block a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Block.Block
instance GHC.Base.Applicative Data.Char.Block.Row
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Block.Row a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Block.Row
-- | Unicode has a Braille segment for Braille with six dot cells, and a
-- segment for Braille with eight dot cells, this module aims to make it
-- more convenient to render such characters.
module Data.Char.Braille
-- | A datastructure to render Braille patterns with six dots cells.
data Braille6 a
Braille6 :: Row a -> Row a -> Row a -> Braille6 a
-- | The state of the top row of the Braille character.
[top] :: Braille6 a -> Row a
-- | The state of the middle row of the Braille character.
[middle] :: Braille6 a -> Row a
-- | The state of the bottom row of the Braille character.
[bottom] :: Braille6 a -> Row a
-- | A datastructure to render Braille patterns with eight dots cells.
data Braille a
Braille :: Row a -> Row a -> Row a -> Row a -> Braille a
-- | The state of the top row of the Braille character.
[row1] :: Braille a -> Row a
-- | The state of the second row of the Braille character.
[row2] :: Braille a -> Row a
-- | The state of the third row of the Braille character.
[row3] :: Braille a -> Row a
-- | The state of the bottom row of the Braille character.
[row4] :: Braille a -> Row a
-- | Convert a Braille6 value to a Braille character, by
-- putting in a given value at the two values at the bottom row.
toBraille' :: a -> Braille6 a -> Braille a
-- | Convert a Braille6 value to a Braille6 character by
-- setting the bottom row with two False values.
toBraille :: Braille6 Bool -> Braille Bool
-- | Convert the given Braille6 value to a unicode character
-- representing this Braille value.
braille6 :: Braille6 Bool -> Char
-- | Convert the given Braille value to a unicode character
-- representing this braille value.
braille :: Braille Bool -> Char
instance Data.Traversable.Traversable Data.Char.Braille.Braille
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Braille.Braille a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Braille.Braille a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Braille.Braille a)
instance GHC.Base.Functor Data.Char.Braille.Braille
instance Data.Foldable.Foldable Data.Char.Braille.Braille
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Braille.Braille a)
instance Data.Traversable.Traversable Data.Char.Braille.Braille6
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Braille.Braille6 a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Braille.Braille6 a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Braille.Braille6 a)
instance GHC.Base.Functor Data.Char.Braille.Braille6
instance Data.Foldable.Foldable Data.Char.Braille.Braille6
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Braille.Braille6 a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Braille.Braille a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Braille.Braille
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Braille.Braille6 a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Braille.Braille6
-- | The 1F0A0 code block can be used to work with cards. This
-- module makes working with the three sets of cards more convenient. The
-- first set are cards with a suit (four suits) and a rank (14 ranks),
-- which allows us to generate 56 cards. Next there are three jokes with
-- the colors red, black and white. Finally there
-- are 21 trump cards and the fool card (a tarot card which normally has
-- no number).
--
-- The module contains pattern synonyms that define common aliasses for
-- these cards.
module Data.Char.Card
-- | A data type for the card suits
data CardSuit
-- | The spades card suit.
Spades :: CardSuit
-- | The hearts card suit.
Hearts :: CardSuit
-- | The diamonds card suit.
Diamonds :: CardSuit
-- | The clubs card suit.
Clubs :: CardSuit
-- | A data type for the rank of the card.
data CardRank
-- | The ace card rank.
Ace :: CardRank
-- | Card rank 2.
R2 :: CardRank
-- | Card rank 3.
R3 :: CardRank
-- | Card rank 4.
R4 :: CardRank
-- | Card rank 5.
R5 :: CardRank
-- | Card rank 6.
R6 :: CardRank
-- | Card rank 7.
R7 :: CardRank
-- | Card rank 8.
R8 :: CardRank
-- | Card rank 9.
R9 :: CardRank
-- | Card rank 10.
R10 :: CardRank
-- | The jack card rank.
Jack :: CardRank
-- | The knight card rank.
Knight :: CardRank
-- | The queen card rank.
Queen :: CardRank
-- | The king card rank.
King :: CardRank
-- | A data type to represent the three colors for which there are jokers:
-- red, black and white.
data JokerColor
-- | The red joker.
Red :: JokerColor
-- | The black joker.
Black :: JokerColor
-- | The white joker.
White :: JokerColor
-- | A data type for the trump cards, often used for tarot.
data Trump
-- | The fool trump card, this tarot card is normally not numbered.
Fool :: Trump
-- | Tarot card I.
Trump1 :: Trump
-- | Tarot card II.
Trump2 :: Trump
-- | Tarot card III.
Trump3 :: Trump
-- | Tarot card IV.
Trump4 :: Trump
-- | Tarot card V.
Trump5 :: Trump
-- | Tarot card VI.
Trump6 :: Trump
-- | Tarot card VII.
Trump7 :: Trump
-- | Tarot card VIII.
Trump8 :: Trump
-- | Tarot card IX.
Trump9 :: Trump
-- | Tarot card X.
Trump10 :: Trump
-- | Tarot card XI.
Trump11 :: Trump
-- | Tarot card XII.
Trump12 :: Trump
-- | Tarot card XIII.
Trump13 :: Trump
-- | Tarot card XIV.
Trump14 :: Trump
-- | Tarot card XV.
Trump15 :: Trump
-- | Tarot card XVI.
Trump16 :: Trump
-- | Tarot card XVII.
Trump17 :: Trump
-- | Tarot card XVIII.
Trump18 :: Trump
-- | Tarot card XIX.
Trump19 :: Trump
-- | Tarot card XX.
Trump20 :: Trump
-- | Tarot card XXI.
Trump21 :: Trump
-- | A data type that represents the possible types of cards for which
-- there is a Unicode characters. This is the back of a card, a card with
-- a suit and rank, three jokers, and the 21 trump cards
-- and the fool.
data Card
-- | The back of the card.
Back :: Card
-- | A card that is a combination of a CardSuit and a
-- CardRank. There are 56 possibilities.
Card :: CardSuit -> CardRank -> Card
-- | Three possible JokerColor cards.
Joker :: JokerColor -> Card
Trump :: Trump -> Card
-- | The unicode character that represents the back of the card.
back :: Char
-- | Convert the given Card object to its unicode equivalent.
card :: Card -> Char
-- | Convert the given CardSuit and CardRank to the
-- equivalent unicode character for this card.
card' :: CardSuit -> CardRank -> Char
-- | Convert the given JokerColor to the unicode character which
-- represents this joker color.
joker :: JokerColor -> Char
-- | Convert the given 't:Trump' value to the unicode equivalent.
trump :: Trump -> Char
-- | Swords is an alias for the spades card suit.
pattern Swords :: CardSuit
-- | Cups is an alias for the hearts card suit.
pattern Cups :: CardSuit
-- | Pentacles is an alias for the diamonds card suit.
pattern Pentacles :: CardSuit
-- | Wands is an alias for the clubs card suit.
pattern Wands :: CardSuit
-- | In France, the jack is sometimes called the valet.
pattern Valet :: CardRank
-- | In Germany, Austria and Switzerland, the jack is sometimes
-- called the bube.
pattern Bube :: CardRank
-- | In Germany and Switzerland, the jack is sometimes called the
-- unter.
pattern Unter :: CardRank
-- | An alternative name for the jack is page.
pattern Page :: CardRank
-- | In Italy, the jack is sometimes called the fante.
pattern Fante :: CardRank
-- | In France, the knight is sometimes called the chevalier.
pattern Chevalier :: CardRank
-- | In Germany, the knight is sometimes called the ober.
pattern Ober :: CardRank
-- | In Germany, the knight is sometimes called the ritter.
pattern Ritter :: CardRank
-- | An alternative name for the jack is cavall.
pattern Cavall :: CardRank
-- | An alternative name for the jack is cavaliere.
pattern Cavaliere :: CardRank
-- | An alternative name for the queen is dame.
pattern Dame :: CardRank
-- | In Germany, the queen is sometimes called the königin.
pattern Königin :: CardRank
-- | In Italy, the queen is sometimes called the regina.
pattern Regina :: CardRank
-- | In France, the king is sometimes called the roi.
pattern Roi :: CardRank
-- | In Germany, the king is sometimes called the könig.
pattern König :: CardRank
-- | In Italy, the queen is sometimes called the re.
pattern Re :: CardRank
-- | The trump card with number II is named childhood.
pattern Childhood :: Trump
-- | The trump card with number III is named youth.
pattern Youth :: Trump
-- | The trump card with number IV is named maturity.
pattern Maturity :: Trump
-- | The trump card with number V is named old age.
pattern OldAge :: Trump
-- | The trump card with number VI is named morning.
pattern Morning :: Trump
-- | The trump card with number VII is named afternoon.
pattern Afternoon :: Trump
-- | The trump card with number VIII is named evening.
pattern Evening :: Trump
-- | The trump card with number IX is named night.
pattern Night :: Trump
-- | The trump card with number X is named earth.
pattern Earth :: Trump
-- | The trump card with number X is named air.
pattern Air :: Trump
-- | The trump card with number XI is named water.
pattern Water :: Trump
-- | The trump card with number XI is named fire.
pattern Fire :: Trump
-- | The trump card with number XII is named dance.
pattern Dance :: Trump
-- | The trump card with number XIII is named shopping.
pattern Shopping :: Trump
-- | The trump card with number XIV is named open air.
pattern OpenAir :: Trump
-- | The trump card with number XV is named visual arts.
pattern VisualArts :: Trump
-- | The trump card with number XVI is named spring.
pattern Spring :: Trump
-- | The trump card with number XVII is named summer.
pattern Summer :: Trump
-- | The trump card with number XVIII is named autumn.
pattern Autumn :: Trump
-- | The trump card with number XIX is named winter.
pattern Winter :: Trump
-- | The trump card with number XX is named the game.
pattern Game :: Trump
-- | The trump card with number XXI is named collective.
pattern Collective :: Trump
-- | The trump card with number I is named individual.
pattern Individual :: Trump
instance GHC.Show.Show Data.Char.Card.Card
instance GHC.Read.Read Data.Char.Card.Card
instance GHC.Classes.Ord Data.Char.Card.Card
instance GHC.Classes.Eq Data.Char.Card.Card
instance GHC.Show.Show Data.Char.Card.Trump
instance GHC.Read.Read Data.Char.Card.Trump
instance GHC.Classes.Ord Data.Char.Card.Trump
instance GHC.Classes.Eq Data.Char.Card.Trump
instance GHC.Enum.Enum Data.Char.Card.Trump
instance GHC.Enum.Bounded Data.Char.Card.Trump
instance GHC.Show.Show Data.Char.Card.JokerColor
instance GHC.Read.Read Data.Char.Card.JokerColor
instance GHC.Classes.Ord Data.Char.Card.JokerColor
instance GHC.Classes.Eq Data.Char.Card.JokerColor
instance GHC.Enum.Enum Data.Char.Card.JokerColor
instance GHC.Enum.Bounded Data.Char.Card.JokerColor
instance GHC.Show.Show Data.Char.Card.CardRank
instance GHC.Read.Read Data.Char.Card.CardRank
instance GHC.Classes.Ord Data.Char.Card.CardRank
instance GHC.Classes.Eq Data.Char.Card.CardRank
instance GHC.Enum.Enum Data.Char.Card.CardRank
instance GHC.Enum.Bounded Data.Char.Card.CardRank
instance GHC.Show.Show Data.Char.Card.CardSuit
instance GHC.Read.Read Data.Char.Card.CardSuit
instance GHC.Classes.Ord Data.Char.Card.CardSuit
instance GHC.Classes.Eq Data.Char.Card.CardSuit
instance GHC.Enum.Enum Data.Char.Card.CardSuit
instance GHC.Enum.Bounded Data.Char.Card.CardSuit
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Card.Card
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Card.Trump
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Card.JokerColor
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Card.CardRank
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Card.CardSuit
-- | This module defines data structures that are used in other modules,
-- for example to rotate the characters.
module Data.Char.Core
-- | The possible orientations of a unicode character, these can be
-- horizontal, or vertical.
data Orientation
-- | Horizontal orientation.
Horizontal :: Orientation
-- | Vertical orientation.
Vertical :: Orientation
-- | Possible rotations of a unicode character if that character can be
-- rotated over 0, 90, 180, and 270 degrees.
data Rotate90
-- | No rotation.
R0 :: Rotate90
-- | Rotation over 90 degrees.
R90 :: Rotate90
-- | Rotation over 180 degrees.
R180 :: Rotate90
-- | Rotation over 270 degrees.
R270 :: Rotate90
-- | A data type that specifies that an item has been given an orientation.
data Oriented a
Oriented :: a -> Orientation -> Oriented a
-- | The object that is oriented.
[oobject] :: Oriented a -> a
-- | The oriented of the oriented object.
[orientation] :: Oriented a -> Orientation
-- | Specify if one should ligate, or not. When litigation is done
-- characters that are normally written in two (or more) characters are
-- combined in one character. For example Ⅲ instead of
-- ⅠⅠⅠ.
data Ligate
-- | A ligate operation is performed on the characters.
Ligate :: Ligate
-- | No ligate operation is performed on the charaters.
NoLigate :: Ligate
-- | Specify if the given ligate function should be performed on the input,
-- if 'v:Ligate' is passed, and the identity function otherwise.
ligate :: (a -> a) -> Ligate -> a -> a
-- | Specify if the given ligate function is performed over the functor
-- object if 'v:Ligate' is passed, and the identity function
-- otherwise.
ligateF :: Functor f => (a -> a) -> Ligate -> f a -> f a
-- | A data type that lists the possible emphasis of a font. This can be
-- Bold or NoBold the Default is NoBold.
data Emphasis
-- | The characters are not stressed with boldface.
NoBold :: Emphasis
-- | The characters are stressed in boldface.
Bold :: Emphasis
-- | A data type that can be used to specify if an italic character
-- is used. The Default is NoItalic.
data ItalicType
-- | No italic characters are used.
NoItalic :: ItalicType
-- | Italic characters are used.
Italic :: ItalicType
-- | A data type that specifies if the font is with serifs or not.
-- The 'Defaul;t' is Serif.
data FontStyle
-- | The character is a character rendered without serifs.
SansSerif :: FontStyle
-- | The character is a character rendered with serifs.
Serif :: FontStyle
-- | Checks if a character is an alphabetic or numerical
-- character in ASCII. The characters
-- 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-- satisfy this predicate.
isAsciiAlphaNum :: Char -> Bool
-- | Checks if a charcter is an alphabetic character in ASCII. The
-- characters
-- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-- satisfy this predicate.
isAsciiAlpha :: Char -> Bool
instance GHC.Show.Show Data.Char.Core.Ligate
instance GHC.Read.Read Data.Char.Core.Ligate
instance GHC.Classes.Ord Data.Char.Core.Ligate
instance GHC.Classes.Eq Data.Char.Core.Ligate
instance GHC.Enum.Enum Data.Char.Core.Ligate
instance GHC.Enum.Bounded Data.Char.Core.Ligate
instance GHC.Show.Show Data.Char.Core.FontStyle
instance GHC.Read.Read Data.Char.Core.FontStyle
instance GHC.Classes.Ord Data.Char.Core.FontStyle
instance GHC.Classes.Eq Data.Char.Core.FontStyle
instance GHC.Enum.Enum Data.Char.Core.FontStyle
instance GHC.Enum.Bounded Data.Char.Core.FontStyle
instance GHC.Show.Show Data.Char.Core.ItalicType
instance GHC.Read.Read Data.Char.Core.ItalicType
instance GHC.Classes.Ord Data.Char.Core.ItalicType
instance GHC.Classes.Eq Data.Char.Core.ItalicType
instance GHC.Enum.Enum Data.Char.Core.ItalicType
instance GHC.Enum.Bounded Data.Char.Core.ItalicType
instance GHC.Show.Show Data.Char.Core.Emphasis
instance GHC.Read.Read Data.Char.Core.Emphasis
instance GHC.Classes.Ord Data.Char.Core.Emphasis
instance GHC.Classes.Eq Data.Char.Core.Emphasis
instance GHC.Enum.Enum Data.Char.Core.Emphasis
instance GHC.Enum.Bounded Data.Char.Core.Emphasis
instance GHC.Show.Show Data.Char.Core.Rotate90
instance GHC.Read.Read Data.Char.Core.Rotate90
instance GHC.Classes.Ord Data.Char.Core.Rotate90
instance GHC.Classes.Eq Data.Char.Core.Rotate90
instance GHC.Enum.Enum Data.Char.Core.Rotate90
instance GHC.Enum.Bounded Data.Char.Core.Rotate90
instance Data.Traversable.Traversable Data.Char.Core.Oriented
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Core.Oriented a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Core.Oriented a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Core.Oriented a)
instance GHC.Base.Functor Data.Char.Core.Oriented
instance Data.Foldable.Foldable Data.Char.Core.Oriented
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Core.Oriented a)
instance GHC.Show.Show Data.Char.Core.Orientation
instance GHC.Read.Read Data.Char.Core.Orientation
instance GHC.Classes.Ord Data.Char.Core.Orientation
instance GHC.Classes.Eq Data.Char.Core.Orientation
instance GHC.Enum.Enum Data.Char.Core.Orientation
instance GHC.Enum.Bounded Data.Char.Core.Orientation
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.Ligate
instance Data.Default.Class.Default Data.Char.Core.Ligate
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.FontStyle
instance Data.Default.Class.Default Data.Char.Core.FontStyle
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.ItalicType
instance Data.Default.Class.Default Data.Char.Core.ItalicType
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.Emphasis
instance Data.Default.Class.Default Data.Char.Core.Emphasis
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.Rotate90
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Core.Oriented a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Core.Oriented
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Core.Orientation
-- | One can make use of a block 2600 and block 1fa00 of
-- Unicode characters to render chess characters. One can render chess
-- characters as netral, white, or black pieces, for
-- such pieces one can render these rotated by 0, 90, 180 and 270
-- degrees. Knights can be rendered on 45, 135, 225 and 315 degrees as
-- well. Furthermore unicode allows to render an equihopper, and
-- special variants like a knight-queen, knight-rook, and
-- knight-bishop.
--
-- The module contains pattern synonyms for names that are often given to
-- the pieces.
module Data.Char.Chess
-- | The color of a chess piece, this can for most pieces be Black,
-- White, or Neutral.
data ChessColor
-- | White color.
White :: ChessColor
-- | Black color.
Black :: ChessColor
-- | Neutral chess pieces, sometimes depicted half white and half
-- black.
Neutral :: ChessColor
-- | A data type that defined binary colors (BWhite, and
-- BBlack), this is used for special chess pieces like a knight
-- queen, knight rook, and knight bishop that only have
-- no neutral color in unicode.
data ChessColorBinary
-- | White color.
BWhite :: ChessColorBinary
-- | Black color.
BBlack :: ChessColorBinary
-- | The type of chess pieces. Unicode includes an Equihopper as
-- piece as well.
data ChessPieceType
-- | The king chess piece.
King :: ChessPieceType
-- | The queen chess piece.
Queen :: ChessPieceType
-- | The rook chess piece.
Rook :: ChessPieceType
-- | The bishop chess piece.
Bishop :: ChessPieceType
-- | The knight chess piece.
Knight :: ChessPieceType
-- | The pawn chess piece.
Pawn :: ChessPieceType
-- | The equihopper chess piece.
Equihopper :: ChessPieceType
-- | Hybrid chess pieces like the knight-queen, knight-rook
-- and knight-bishop.
data ChessHybridType
-- | The knight-queen chess piece.
KnightQueen :: ChessHybridType
-- | The knight-rook chess piece.
KnightRook :: ChessHybridType
-- | The knight-bishop chess piece.
KnightBishop :: ChessHybridType
-- | Chess pieces that can be represented in Unicode. These are the
-- king, queen, rook, bishop, knight,
-- pawn, and equihopper over 0, 90, 180, and 270 degrees;
-- and the knight over 45, 135, 225, and
-- 315 degrees in Black, White and Neutral.
-- Furthermore one can draw a knight-queen, knight-rook,
-- and knight-bishop pieces can be drawn without rotation and only
-- in BBlack or BWhite.
data ChessPiece
-- | Standard pieces drawn in black, white, or neutral
-- and with rotation.
Chess90 :: ChessColor -> ChessPieceType -> Rotate90 -> ChessPiece
-- | Knights have unicode characters to render these rotated over
-- 45, 135, 225 and 315 degrees.
Chess45Knight :: ChessColor -> Rotate45 -> ChessPiece
-- | Hybrid chess pieces can only be rendered in BBlack and
-- BWhite.
ChessHybrid :: ChessHybridType -> ChessColorBinary -> ChessPiece
-- | Extra rotations that can be performed for knight chess pieces.
data Rotate45
-- | Rotation over 45 degrees.
R45 :: Rotate45
-- | Rotation over 135 degrees.
R135 :: Rotate45
-- | Rotation over 225 degrees.
R225 :: Rotate45
-- | Rotation over 315 degrees.
R315 :: Rotate45
-- | Convert the given ChessPiece to the corresponding unicode
-- character.
chessPiece :: ChessPiece -> Char
-- | A grasshopper is a queen rotated over 180 degrees.
pattern Grasshopper :: ChessColor -> ChessPiece
-- | A Nightrider is a knight rotated over 180 degrees.
pattern Nightrider :: ChessColor -> ChessPiece
-- | An amazon is alterative name for a knight-queen.
pattern Amazon :: ChessColorBinary -> ChessPiece
-- | A terror is alterative name for a knight-queen.
pattern Terror :: ChessColorBinary -> ChessPiece
-- | An omnipotent queen is alterative name for a
-- knight-queen.
pattern OmnipotentQueen :: ChessColorBinary -> ChessPiece
-- | A superqueen is alterative name for a knight-queen.
pattern Superqueen :: ChessColorBinary -> ChessPiece
-- | A chancellor is alterative name for a knight-rook.
pattern Chancellor :: ChessColorBinary -> ChessPiece
-- | A marshall is alterative name for a knight-rook.
pattern Marshall :: ChessColorBinary -> ChessPiece
-- | An empress is alterative name for a knight-rook.
pattern Empress :: ChessColorBinary -> ChessPiece
-- | A cardinal is alterative name for a knight-bishop.
pattern Cardinal :: ChessColorBinary -> ChessPiece
-- | A princess is alterative name for a knight-bishop.
pattern Princess :: ChessColorBinary -> ChessPiece
instance GHC.Show.Show Data.Char.Chess.ChessPiece
instance GHC.Read.Read Data.Char.Chess.ChessPiece
instance GHC.Classes.Ord Data.Char.Chess.ChessPiece
instance GHC.Classes.Eq Data.Char.Chess.ChessPiece
instance GHC.Show.Show Data.Char.Chess.ChessHybridType
instance GHC.Read.Read Data.Char.Chess.ChessHybridType
instance GHC.Classes.Ord Data.Char.Chess.ChessHybridType
instance GHC.Classes.Eq Data.Char.Chess.ChessHybridType
instance GHC.Enum.Enum Data.Char.Chess.ChessHybridType
instance GHC.Enum.Bounded Data.Char.Chess.ChessHybridType
instance GHC.Show.Show Data.Char.Chess.Rotate45
instance GHC.Read.Read Data.Char.Chess.Rotate45
instance GHC.Classes.Ord Data.Char.Chess.Rotate45
instance GHC.Classes.Eq Data.Char.Chess.Rotate45
instance GHC.Enum.Enum Data.Char.Chess.Rotate45
instance GHC.Enum.Bounded Data.Char.Chess.Rotate45
instance GHC.Show.Show Data.Char.Chess.ChessPieceType
instance GHC.Read.Read Data.Char.Chess.ChessPieceType
instance GHC.Classes.Ord Data.Char.Chess.ChessPieceType
instance GHC.Classes.Eq Data.Char.Chess.ChessPieceType
instance GHC.Enum.Enum Data.Char.Chess.ChessPieceType
instance GHC.Enum.Bounded Data.Char.Chess.ChessPieceType
instance GHC.Show.Show Data.Char.Chess.ChessColor
instance GHC.Read.Read Data.Char.Chess.ChessColor
instance GHC.Classes.Ord Data.Char.Chess.ChessColor
instance GHC.Classes.Eq Data.Char.Chess.ChessColor
instance GHC.Enum.Enum Data.Char.Chess.ChessColor
instance GHC.Enum.Bounded Data.Char.Chess.ChessColor
instance GHC.Show.Show Data.Char.Chess.ChessColorBinary
instance GHC.Read.Read Data.Char.Chess.ChessColorBinary
instance GHC.Classes.Ord Data.Char.Chess.ChessColorBinary
instance GHC.Classes.Eq Data.Char.Chess.ChessColorBinary
instance GHC.Enum.Enum Data.Char.Chess.ChessColorBinary
instance GHC.Enum.Bounded Data.Char.Chess.ChessColorBinary
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.ChessPiece
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.ChessHybridType
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.Rotate45
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.ChessPieceType
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.ChessColor
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Chess.ChessColorBinary
-- | Unicode has a block named Miscellaneous Symbols that
-- includes unicode characters for dice, this module aims to make it more
-- convenient to render die characters.
module Data.Char.Dice
-- | A data type to store the values of a die.
data DieValue
-- | A die with value one, represented with ⚀.
I :: DieValue
-- | A die with value two, represented with ⚁.
II :: DieValue
-- | A die with value three, represented with ⚂.
III :: DieValue
-- | A die with value four, represented with ⚃.
IV :: DieValue
-- | A die with value five, represented with ⚄.
V :: DieValue
-- | A die with value six, represented with ⚅.
VI :: DieValue
-- | Convert the given integral value to a DieValue that represents
-- the given number. If the number is less than one, or greater than six,
-- Nothing is returned.
toDieValue :: Integral i => i -> Maybe DieValue
-- | Convert the given DieValue to a unicode character that
-- represents a die with that value.
die :: DieValue -> Char
instance GHC.Show.Show Data.Char.Dice.DieValue
instance GHC.Read.Read Data.Char.Dice.DieValue
instance GHC.Classes.Ord Data.Char.Dice.DieValue
instance GHC.Classes.Eq Data.Char.Dice.DieValue
instance GHC.Enum.Enum Data.Char.Dice.DieValue
instance GHC.Enum.Bounded Data.Char.Dice.DieValue
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Dice.DieValue
-- | A module that defines values for domino pieces, and converts these to
-- unicode characters of the 1F030 unicode block.
module Data.Char.Domino
-- | A domino piece, which has two items. Depending on the orientation, the
-- items are located at the top and bottom; or left
-- and right.
data Domino a
-- | The front side of the domino piece.
Domino :: a -> a -> Domino a
-- | The part that is located at the left side in case the piece is
-- located horizontally, or at the top in case the piece is
-- located vertically.
[leftTop] :: Domino a -> a
-- | The part that is located at the right side in case the piece is
-- located horizontally, or at the bottom in case the piece
-- is located vertically.
[rightBottom] :: Domino a -> a
-- | The back side of the domino piece.
Back :: Domino a
-- | A pattern synonym that makes it more convenient to write expressions
-- that look like domino's like for example II :| IV.
pattern (:|) :: a -> a -> Domino a
-- | A type alias that specifies that OrientedDomino is an
-- Oriented type that wraps a Domino item.
type OrientedDomino a = Oriented (Domino a)
-- | A SimpleDomino is a Domino that contains DieValue
-- objects, it thus can not have an "empty" value.
type SimpleDomino = Domino DieValue
-- | A ComplexDomino is a Domino that contains Maybe
-- values wrapping a DieValue. In case of a Nothing, that
-- side is considered empty.
type ComplexDomino = Domino (Maybe DieValue)
-- | Convert a ComplexDomino value to a unicode character rendering
-- the domino value horizontally.
dominoH :: ComplexDomino -> Char
-- | Convert a SimpleDomino value to a unicode character rendering
-- the domino value horizontally.
dominoH' :: SimpleDomino -> Char
-- | Convert a ComplexDomino value to a unicode character rendering
-- the domino value vertically.
dominoV :: ComplexDomino -> Char
-- | Convert a SimpleDomino value to a unicode character rendering
-- the domino value vertically.
dominoV' :: SimpleDomino -> Char
-- | Convert an OrientedDomino to its unicode equivalent, where the
-- sides of the domino can be empty.
domino :: OrientedDomino (Maybe DieValue) -> Char
-- | Convert an OrientedDomino to its unicode equivalent, where the
-- sides of the domino can not be empty.
domino' :: OrientedDomino DieValue -> Char
instance Data.Traversable.Traversable Data.Char.Domino.Domino
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Domino.Domino a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Domino.Domino a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Domino.Domino a)
instance GHC.Base.Functor Data.Char.Domino.Domino
instance Data.Foldable.Foldable Data.Char.Domino.Domino
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Domino.Domino a)
instance GHC.Base.Applicative Data.Char.Domino.Domino
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Domino.Domino a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Domino.Domino
-- | A frame is represented as a pair of horizontal and vertical lines.
-- These can be any items, but currently only booleans and weight objects
-- are covered to convert the item to a corresponding character.
module Data.Char.Frame
-- | The weights of the frame lines, these can be Empty,
-- Light or Heavy.
data Weight
-- | The frame does not contain such line.
Empty :: Weight
-- | The frame contains such line.
Light :: Weight
-- | The frame contains such line, in boldface.
Heavy :: Weight
-- | A data type that determines the state of the horizontal lines
-- of the frame (left and right).
data Horizontal a
Horizontal :: a -> a -> Horizontal a
-- | The state of the left line of the frame.
[left] :: Horizontal a -> a
-- | The state of the right line of the frame.
[right] :: Horizontal a -> a
-- | A data type that determines the state of the vertical lines of
-- the frame (up and down).
data Vertical a
Vertical :: a -> a -> Vertical a
-- | The state of the line in the up direction of the frame.
[up] :: Vertical a -> a
-- | The state of the line in the down direction of the frame.
[down] :: Vertical a -> a
-- | A data type that specifies the four lines that should (not) be drawn
-- for the frame.
data Parts a
Parts :: Vertical a -> Horizontal a -> Parts a
-- | A type synonym that makes it more convenient to work with a
-- Parts object that wraps Bools. Usually True means
-- it should draw a line, and False that there is no line in that
-- direction.
type Simple = Parts Bool
-- | A type synonym that makes it more convenient to work with a
-- Parts object that wraps Weight objects. These specify
-- the weight .
type Weighted = Parts Weight
-- | A pattern that makes pattern matching and expressions with
-- Parts more convenient.
pattern Frame :: a -> a -> a -> a -> Parts a
-- | Convert a Simple frame to a corresponding Char. Here
-- True is mapped to a Light line.
simple :: Simple -> Char
-- | Convert a Simple frame to a corresponding Char. Here
-- True is mapped to a Heavy line.
simple' :: Simple -> Char
-- | Generate a Char where turns are done with an arc instead
-- of a corner. This can only be done for Light lines.
simpleWithArc :: Simple -> Char
-- | Converts a given Weighted to the char that can be used to
-- render frames.
weighted :: Weighted -> Char
-- | Convert a Simple frame to a Weighted frame by converting
-- True to the given Weight value.
simpleToWeighted :: Weight -> Simple -> Weighted
-- | Convert a Simple frame to a Weighted frame by converting
-- True to Light.
simpleToLight :: Simple -> Weighted
-- | Convert a Simple frame to a Weighted frame by converting
-- True to Heavy.
simpleToHeavy :: Simple -> Weighted
instance GHC.Show.Show Data.Char.Frame.Weight
instance GHC.Read.Read Data.Char.Frame.Weight
instance GHC.Classes.Ord Data.Char.Frame.Weight
instance GHC.Classes.Eq Data.Char.Frame.Weight
instance GHC.Enum.Enum Data.Char.Frame.Weight
instance GHC.Enum.Bounded Data.Char.Frame.Weight
instance Data.Traversable.Traversable Data.Char.Frame.Parts
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Frame.Parts a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Frame.Parts a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Frame.Parts a)
instance GHC.Base.Functor Data.Char.Frame.Parts
instance Data.Foldable.Foldable Data.Char.Frame.Parts
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Frame.Parts a)
instance Data.Traversable.Traversable Data.Char.Frame.Vertical
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Frame.Vertical a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Frame.Vertical a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Frame.Vertical a)
instance GHC.Base.Functor Data.Char.Frame.Vertical
instance Data.Foldable.Foldable Data.Char.Frame.Vertical
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Frame.Vertical a)
instance Data.Traversable.Traversable Data.Char.Frame.Horizontal
instance GHC.Show.Show a => GHC.Show.Show (Data.Char.Frame.Horizontal a)
instance GHC.Read.Read a => GHC.Read.Read (Data.Char.Frame.Horizontal a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Char.Frame.Horizontal a)
instance GHC.Base.Functor Data.Char.Frame.Horizontal
instance Data.Foldable.Foldable Data.Char.Frame.Horizontal
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Char.Frame.Horizontal a)
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Frame.Weight
instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Data.Char.Frame.Parts a)
instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Char.Frame.Parts a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Frame.Parts a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Frame.Parts
instance GHC.Base.Applicative Data.Char.Frame.Parts
instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Data.Char.Frame.Vertical a)
instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Char.Frame.Vertical a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Frame.Vertical a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Frame.Vertical
instance GHC.Base.Applicative Data.Char.Frame.Vertical
instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Data.Char.Frame.Horizontal a)
instance GHC.Base.Monoid a => GHC.Base.Monoid (Data.Char.Frame.Horizontal a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Char.Frame.Horizontal a)
instance Test.QuickCheck.Arbitrary.Arbitrary1 Data.Char.Frame.Horizontal
instance GHC.Base.Applicative Data.Char.Frame.Horizontal
-- | This module aims to make it more convenient to transform mathematical
-- characters to their double struck, fraktur,
-- calligraphic, etc. equivalent.
--
-- Most of the characters are defined in the 1d400 unicode block.
module Data.Char.Math
-- | Convert the given character to a mathematical symbol with the given
-- font style, in the given emphasis and in the given
-- italics type wrapped in a Just. If the character is
-- outside the A-Z and a-z range,
-- Nothing is returned.
mathAlpha :: FontStyle -> ItalicType -> Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with the given
-- font style, with a given emphasis and a given
-- italics style. This maps characters an equivalent sansSerif
-- symbol for the A-Z and a-z range.
-- For characters outside the range, the behavior is unspecified.
mathAlpha' :: FontStyle -> ItalicType -> Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- the given emphasis and in the given italics type wrapped
-- in a Just. If the character is outside the
-- A-Z and a-z range, Nothing
-- is returned.
serif :: ItalicType -> Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- a given emphasis and a given italics style. This maps
-- characters an equivalent serif symbol for the A-Z
-- and a-z range. For characters outside the range, the
-- behavior is unspecified.
serif' :: ItalicType -> Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- no bold and in the given italics type wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
serifNoBold :: ItalicType -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, not
-- in bold and in a italics type. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifNoBold' :: ItalicType -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- bold with the given italics type wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
serifBold :: ItalicType -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- bold and in a italics type. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifBold' :: ItalicType -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- the given emphasis and not in italics wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
serifNoItalic :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- a given emphasis and not in italics. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifNoItalic' :: Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- the given emphasis and in italics wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
serifItalic :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- a given emphasis and in italics. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifItalic' :: Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- no bold, and no italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
serifNoBoldNoItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- no bold and no italics. This maps characters to itself
-- for the A-Z and a-z range. For
-- characters outside the range, the behavior is unspecified.
serifNoBoldNoItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- bold, and no italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
serifBoldNoItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- bold not in italics. This maps characters an equivalent
-- serif symbol for the A-Z and a-z
-- range. For characters outside the range, the behavior is unspecified.
serifBoldNoItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- no bold, and in italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
serifNoBoldItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- no bold and in italics. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifNoBoldItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol with serifs, in
-- bold, and in italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
serifBoldItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol with serifs, with
-- in bold and in italics. This maps characters an
-- equivalent serif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
serifBoldItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in the given emphasis and in the given italics type
-- wrapped in a Just. If the character is outside the
-- A-Z and a-z range, Nothing
-- is returned.
sansSerif :: ItalicType -> Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with a given emphasis and a given italics style. This
-- maps characters an equivalent sansSerif symbol for the
-- A-Z and a-z range. For characters
-- outside the range, the behavior is unspecified.
sansSerif' :: ItalicType -> Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with no bold and in the given italics type wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifNoBold :: ItalicType -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- not in bold and in a italics type. This maps characters
-- an equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifNoBold' :: ItalicType -> Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in bold with the given italics type wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifBold :: ItalicType -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in bold and in a italics type. This maps characters an
-- equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifBold' :: ItalicType -> Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in the given emphasis and not in italics wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifNoItalic :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with a given emphasis and not in italics. This maps characters
-- an equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifNoItalic' :: Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in the given emphasis and in italics wrapped in a
-- Just. If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifItalic :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with a given emphasis and in italics. This maps characters an
-- equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifItalic' :: Emphasis -> Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with no bold, and no italics wrapped in a Just.
-- If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifNoBoldNoItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with no bold and no italics. This maps characters to
-- itself for the A-Z and a-z range.
-- For characters outside the range, the behavior is unspecified.
sansSerifNoBoldNoItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in bold, and no italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifBoldNoItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in bold not in italics. This maps characters an
-- equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifBoldNoItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with no bold, and in italics wrapped in a Just.
-- If the character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifNoBoldItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with no bold and in italics. This maps characters an
-- equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifNoBoldItalic' :: Char -> Char
-- | Convert the given character to a mathematical symbol without serifs,
-- in bold, and in italics wrapped in a Just. If the
-- character is outside the A-Z and
-- a-z range, Nothing is returned.
sansSerifBoldItalic :: Char -> Maybe Char
-- | Convert the given character to a mathematical symbol without serifs,
-- with in bold and in italics. This maps characters an
-- equivalent sansSerif symbol for the A-Z and
-- a-z range. For characters outside the range, the
-- behavior is unspecified.
sansSerifBoldItalic' :: Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with the given Emphasis in the given
-- font style wrapped in a Just data constructor. For
-- characters outside this range, Nothing is returned.
digit :: FontStyle -> Emphasis -> Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with a given Emphasis in the given
-- font style. The result for characters outside this range is
-- unspecified.
digit' :: FontStyle -> Emphasis -> Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with the given Emphasis in sans-serif
-- style wrapped in a Just data constructor. For characters
-- outside this range, Nothing is returned.
digitSansSerif :: Emphasis -> Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with a given Emphasis in sans-serif
-- style. The result for characters outside this range is unspecified.
digitSansSerif' :: Emphasis -> Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with the given Emphasis in serif style
-- wrapped in a Just data constructor. For characters outside this
-- range, Nothing is returned.
digitSerif :: Emphasis -> Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character with a given Emphasis in serif style.
-- The result for characters outside this range is unspecified.
digitSerif' :: Emphasis -> Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a non-bold serif style wrapped in a
-- Just data constructor. For characters outside this range,
-- Nothing is returned.
digitSerifRegular :: Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a non-bold serif style. The result for
-- characters outside this range is unspecified.
digitSerifRegular' :: Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a bold serif style wrapped in a Just
-- data constructor. For characters outside this range, Nothing is
-- returned.
digitSerifBold :: Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a bold serif style. The result for
-- characters outside this range is unspecified.
digitSerifBold' :: Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a non-bold sans-serif style wrapped in a
-- Just data constructor. For characters outside this range,
-- Nothing is returned.
digitSansSerifRegular :: Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a non-bold sans-serif style. The result for
-- characters outside this range is unspecified.
digitSansSerifRegular' :: Char -> Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a bold sans-serif style wrapped in a
-- Just data constructor. For characters outside this range,
-- Nothing is returned.
digitSansSerifBold :: Char -> Maybe Char
-- | Convert the given digit character (0-9) to its
-- corresponding character in a bold sans-serif style. The result for
-- characters outside this range is unspecified.
digitSansSerifBold' :: Char -> Char
-- | Converts the given digit (0-9) charcters to its
-- equivalent in monospace style wrapped in a Just data
-- constructor. Nothing for characters outside the range.
digitMonospace :: Char -> Maybe Char
-- | Converts the given digit (0-9) charcters to its
-- equivalent in monospace style. Unspecified result for
-- characters outside the range.
digitMonospace' :: Char -> Char
-- | Converts the given digit (0-9) charcters to its
-- equivalent in double-struck style wrapped in a Just data
-- constructor. Nothing for characters outside the range.
digitDoubleStruck :: Char -> Maybe Char
-- | Converts the given digit (0-9) charcters to its
-- equivalent in double-struck style. Unspecified result for
-- characters outside the range.
digitDoubleStruck' :: Char -> Char
-- | Convert the given number (0-9) to its corresponding
-- character with the given Emphasis in the given FontStyle
-- wrapped in a Just data constructor. For numbers outside this
-- range, Nothing is returned.
intToDigitChar :: FontStyle -> Emphasis -> Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character with a given Emphasis in the given FontStyle.
-- The result for numbers outside this range is unspecified.
intToDigitChar' :: FontStyle -> Emphasis -> Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character with the given Emphasis in serif style wrapped in a
-- Just data constructor. For numbers outside this range,
-- Nothing is returned.
intToDigitSerif :: Emphasis -> Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character with a given Emphasis in serif style. The result for
-- numbers outside this range is unspecified.
intToDigitSerif' :: Emphasis -> Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character with the given Emphasis in sans-serif style wrapped
-- in a Just data constructor. For numbers outside this range,
-- Nothing is returned.
intToDigitSansSerif :: Emphasis -> Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character with a given Emphasis in sans-serif style. The result
-- for numbers outside this range is unspecified.
intToDigitSansSerif' :: Emphasis -> Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in a non-bold serif style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitSerifRegular :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in a non-bold serif style. The result for numbers outside
-- this range is unspecified.
intToDigitSerifRegular' :: Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in a bold serif style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitSerifBold :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in a bold serif style. The result for numbers outside this
-- range is unspecified.
intToDigitSerifBold' :: Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in a non-bold sans-serif style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitSansSerifRegular :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in a non-bold sans-serif style. The result for numbers
-- outside this range is unspecified.
intToDigitSansSerifRegular' :: Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in a bold sans-serif style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitSansSerifBold :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in a bold sans-serif style. The result for numbers outside
-- this range is unspecified.
intToDigitSansSerifBold' :: Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in monospace style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitMonospace :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in monospace style. Unspecified result for numbers
-- outside this range.
intToDigitMonospace' :: Int -> Char
-- | Convert the given number (0-9) to its corresponding
-- character in double-struck style wrapped in a Just data
-- constructor. For numbers outside this range, Nothing is
-- returned.
intToDigitDoubleStruck :: Int -> Maybe Char
-- | Convert the given number (0-9) to its corresponding
-- character in double-struck style. Unspecified result for
-- numbers outside this range.
intToDigitDoubleStruck' :: Int -> Char
-- | Convert the given character to its monospace equivalent for the
-- alphabet and numerical range (A-Z,
-- a-z, and 0-9) wrapped in a
-- Just data constructor. For characters outside the range,
-- Nothing is returned.
monospace :: Char -> Maybe Char
-- | Convert the given character to its monospace equivalent for the
-- alphabet and numerical range (A-Z,
-- a-z, and 0-9). For characters
-- outside the range, the result is unspecified.
monospace' :: Char -> Char
-- | Obtain the double struck symbol for the given character. The supported
-- range of characters are the alphabet characters
-- (A-Z, and a-z), and the numerical
-- characters (0-9). The symbols are wrapped in the
-- Just data constructor. For characters outside the range,
-- Nothing is returned.
doubleStruck :: Char -> Maybe Char
-- | Obtain the double struck symbol for the given character. The supported
-- range of characters are the alphabet character (A-Z,
-- and a-z), and the numerical characters
-- (0-9). For characters other than these, the
-- behaviour is unspecified.
doubleStruck' :: Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is not written in the given Emphasis style.
-- If the symbol is outside the alphabet range (A-Z,
-- and a-z), Nothing is returned.
script :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is written in the given
-- Emphasis style. If the symbol is outside the alphabet range
-- (A-Z, and a-z), the returned character is
-- unspecified.
script' :: Emphasis -> Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is not written in boldface. If the symbol is
-- outside the alphabet range (A-Z, and a-z),
-- Nothing is returned.
scriptRegular :: Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is not written in
-- boldface. If the symbol is outside the alphabet range
-- (A-Z, and a-z), the returned character is
-- unspecified.
scriptRegular' :: Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is written in boldface. If the symbol is outside the
-- alphabet range (A-Z, and a-z),
-- Nothing is returned.
scriptBold :: Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is written in boldface. If the
-- symbol is outside the alphabet range (A-Z, and
-- a-z), the returned character is unspecified.
scriptBold' :: Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is not written in the given Emphasis style.
-- If the symbol is outside the alphabet range (A-Z,
-- and a-z), Nothing is returned. This is an alias of
-- script.
calligraphy :: Emphasis -> Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is written in the given
-- Emphasis style. If the symbol is outside the alphabet range
-- (A-Z, and a-z), the returned character is
-- unspecified. This is an alias of 'script\''.
calligraphy' :: Emphasis -> Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is not written in boldface. If the symbol is
-- outside the alphabet range (A-Z, and a-z),
-- Nothing is returned. This is an alias of scriptRegular.
calligraphyRegular :: Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is not written in
-- boldface. If the symbol is outside the alphabet range
-- (A-Z, and a-z), the returned character is
-- unspecified. This is an alias of 'scriptRegular\''.
calligraphyRegular' :: Char -> Char
-- | Convert the given character to its script or
-- calligraphic symbol wrapped in a Just data constructor.
-- This symbol is written in boldface. If the symbol is outside the
-- alphabet range (A-Z, and a-z),
-- Nothing is returned. This is an alias of scriptBold.
calligraphyBold :: Char -> Maybe Char
-- | Convert the given character to its script or
-- calligraphic symbol. This symbol is written in boldface. If the
-- symbol is outside the alphabet range (A-Z, and
-- a-z), the returned character is unspecified. This is an alias
-- of 'scriptBold\''.
calligraphyBold' :: Char -> Char
-- | Obtain the fraktur symbol for the given character in the given emphais
-- style. The result is wrapped in a Just data constructor. The
-- range of supported characters are the alphabet characters
-- (A-Z, and a-z). In case a
-- character outside the range is passed to the function, Nothing
-- is returned.
fraktur :: Emphasis -> Char -> Maybe Char
-- | Obtain the fraktur symbol for the given character in the given
-- emphasis style. The supported range of characters are the alphabet
-- characters (A-Z, and a-z). In case
-- the character is not in this range, it is unspecified what will be
-- returned.
fraktur' :: Emphasis -> Char -> Char
-- | Obtain the fraktur symbol for the given character in a regular (not
-- bold style). The result is wrapped in a Just data
-- constructor. The range of supported characters are the alphabet
-- characters (A-Z, and a-z). In case
-- a character outside the range is passed to the function,
-- Nothing is returned.
frakturRegular :: Char -> Maybe Char
-- | Obtain the fraktur symbol for the given character in a regular (not
-- bold) style. The supported range of characters are the alphabet
-- characters (A-Z, and a-z). In case
-- the character is not in this range, it is unspecified what will be
-- returned.
frakturRegular' :: Char -> Char
-- | Obtain the fraktur symbol for the given character in a bold.
-- The result is wrapped in a Just data constructor. The range of
-- supported characters are the alphabet characters
-- (A-Z, and a-z). In case a
-- character outside the range is passed to the function, Nothing
-- is returned.
frakturBold :: Char -> Maybe Char
-- | Obtain the fraktur symbol for the given character in a bold
-- style. The supported range of characters are the alphabet characters
-- (A-Z, and a-z). In case the
-- character is not in this range, it is unspecified what will be
-- returned.
frakturBold' :: Char -> Char
-- | This module aims to convert Roman numerals to a String of unicode
-- characters that represent Roman numerals.
--
-- One can convert numbers to Roman numerals in uppercase and lowercase,
-- and in Additive and Subtractive style.
module Data.Char.Roman
-- | Roman numerals for which a unicode character exists.
data RomanLiteral
-- | The unicode character for the Roman numeral one: Ⅰ.
I :: RomanLiteral
-- | The unicode character for the Roman numeral two: Ⅱ.
II :: RomanLiteral
-- | The unicode character for the Roman numeral three: Ⅲ.
III :: RomanLiteral
-- | The unicode character for the Roman numeral four: Ⅳ.
IV :: RomanLiteral
-- | The unicode character for the Roman numeral five: Ⅴ.
V :: RomanLiteral
-- | The unicode character for the Roman numeral six: Ⅵ.
VI :: RomanLiteral
-- | The unicode character for the Roman numeral seven: Ⅶ.
VII :: RomanLiteral
-- | The unicode character for the Roman numeral eight: Ⅷ.
VIII :: RomanLiteral
-- | The unicode character for the Roman numeral nine: Ⅸ.
IX :: RomanLiteral
-- | The unicode character for the Roman numeral ten: Ⅹ.
X :: RomanLiteral
-- | The unicode character for the Roman numeral eleven: Ⅺ.
XI :: RomanLiteral
-- | The unicode character for the Roman numeral twelve: Ⅻ.
XII :: RomanLiteral
-- | The unicode character for the Roman numeral fifty: Ⅼ.
L :: RomanLiteral
-- | The unicode character for the Roman numeral hundred: Ⅽ.
C :: RomanLiteral
-- | The unicode character for the Roman numeral five hundred: Ⅾ.
D :: RomanLiteral
-- | The unicode character for the Roman numeral thousand: Ⅿ.
M :: RomanLiteral
-- | The style to convert a number to a Roman numeral.
data RomanStyle
-- | The additive style converts four to ⅠⅠⅠⅠ.
Additive :: RomanStyle
-- | The subtractive style converts four to ⅠⅤ.
Subtractive :: RomanStyle
-- | Convert the given number with the given RomanStyle and
-- Ligate style to a sequence of RomanLiterals, given the
-- number can be represented with Roman numerals (is strictly larger than
-- zero).
toLiterals :: Integral i => RomanStyle -> Ligate -> i -> Maybe [RomanLiteral]
-- | Convert the given RomanLiteral object to a unicode character in
-- uppercase.
romanLiteral :: RomanLiteral -> Char
-- | Convert the given RomanLiteral object to a unicode character in
-- lowercase.
romanLiteral' :: RomanLiteral -> Char
-- | Convert a sequence of RomanLiteral objects to a Text
-- object that contains a sequence of corresponding Unicode characters
-- which are Roman numberals in uppercase.
romanNumeral :: [RomanLiteral] -> Text
-- | Convert a sequence of RomanLiteral objects to a Text
-- object that contains a sequence of corresponding Unicode characters
-- which are Roman numberals in lowercase.
romanNumeral' :: [RomanLiteral] -> Text
-- | Convert a given number to a Text wrapped in a Just data
-- constructor, given the number can be converted to a Roman numeral,
-- given it can be represented. Nothing in case it can not be
-- represented. The number is written in Roman numerals in
-- uppercase.
romanNumber :: Integral i => RomanStyle -> Ligate -> i -> Maybe Text
-- | Convert a given number to a Text wrapped in a Just data
-- constructor, given the number can be converted to a Roman numeral,
-- given it can be represented. Nothing in case it can not be
-- represented. The number is written in Roman numerals in
-- lowercase.
romanNumber' :: Integral i => RomanStyle -> Ligate -> i -> Maybe Text
instance GHC.Read.Read Data.Char.Roman.RomanLiteral
instance GHC.Show.Show Data.Char.Roman.RomanLiteral
instance GHC.Classes.Eq Data.Char.Roman.RomanLiteral
instance GHC.Enum.Enum Data.Char.Roman.RomanLiteral
instance GHC.Enum.Bounded Data.Char.Roman.RomanLiteral
instance GHC.Read.Read Data.Char.Roman.RomanStyle
instance GHC.Show.Show Data.Char.Roman.RomanStyle
instance GHC.Classes.Eq Data.Char.Roman.RomanStyle
instance GHC.Enum.Enum Data.Char.Roman.RomanStyle
instance GHC.Enum.Bounded Data.Char.Roman.RomanStyle
instance Data.Default.Class.Default Data.Char.Roman.RomanStyle
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Char.Roman.RomanStyle
-- | One can make use of a block of Unicode characters to
-- emulate subscript and superscript. Note that the subscript and
-- superscript will be aligned with the baseline and the cap
-- line respectively, and is thus not equivalent to
-- sub.../sub and
-- sup.../sup in HTML. Furthermore only a small
-- subset of characters is supported.
--
-- This module allows one to map certain characters to their subscript
-- and superscript counterpart, and furthermore makes it more convenient
-- to transform a number (both positive and negative) to a Text
-- that specifies this number in subscript and superscript.
module Data.Char.Small
-- | Convert a set of characters to their subscript counterpart, given that
-- characters exists.
toSub :: Char -> Maybe Char
-- | Convert a set of characters to their superscript counterpart, given
-- that characters exists.
toSup :: Char -> Maybe Char
-- | Convert a number (positive or negative) to a Text that
-- specifies that number in subscript characters.
asSub :: Integral i => i -> Text
-- | Convert a number (positive or negative) to a Text that
-- specifies that number in superscript characters.
asSup :: Integral i => i -> Text
-- | Format a given Ratio object to a Text value that formats
-- the ratio with superscript and subscript.
ratioToUnicode :: Integral i => Ratio i -> Text