unicode-tricks-0.14.1.0: Functions to work with unicode blocks more convenient.
Maintainerhapytexeu+gh@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellSafe
LanguageHaskell2010

Data.Char.Block.Sextant

Description

Unicode has 3-by-2 blocks, this module aims to make it more convenient to render such blocks.

Synopsis

Datastructures to store the state of the sextant.

data Sextant a Source #

A data type that determines the state of the four subparts of the block.

Constructors

Sextant 

Fields

  • upper :: Row a

    The upper part of the sextant.

  • middle :: Row a

    The middle part of the sextant.

  • lower :: Row a

    The lower part of the sextant.

Instances

Instances details
Arbitrary1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

liftArbitrary :: Gen a -> Gen (Sextant a) #

liftShrink :: (a -> [a]) -> Sextant a -> [Sextant a] #

Foldable Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

fold :: Monoid m => Sextant m -> m #

foldMap :: Monoid m => (a -> m) -> Sextant a -> m #

foldMap' :: Monoid m => (a -> m) -> Sextant a -> m #

foldr :: (a -> b -> b) -> b -> Sextant a -> b #

foldr' :: (a -> b -> b) -> b -> Sextant a -> b #

foldl :: (b -> a -> b) -> b -> Sextant a -> b #

foldl' :: (b -> a -> b) -> b -> Sextant a -> b #

foldr1 :: (a -> a -> a) -> Sextant a -> a #

foldl1 :: (a -> a -> a) -> Sextant a -> a #

toList :: Sextant a -> [a] #

null :: Sextant a -> Bool #

length :: Sextant a -> Int #

elem :: Eq a => a -> Sextant a -> Bool #

maximum :: Ord a => Sextant a -> a #

minimum :: Ord a => Sextant a -> a #

sum :: Num a => Sextant a -> a #

product :: Num a => Sextant a -> a #

Eq1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

liftEq :: (a -> b -> Bool) -> Sextant a -> Sextant b -> Bool #

Ord1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

liftCompare :: (a -> b -> Ordering) -> Sextant a -> Sextant b -> Ordering #

Traversable Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

traverse :: Applicative f => (a -> f b) -> Sextant a -> f (Sextant b) #

sequenceA :: Applicative f => Sextant (f a) -> f (Sextant a) #

mapM :: Monad m => (a -> m b) -> Sextant a -> m (Sextant b) #

sequence :: Monad m => Sextant (m a) -> m (Sextant a) #

Applicative Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

pure :: a -> Sextant a #

(<*>) :: Sextant (a -> b) -> Sextant a -> Sextant b #

liftA2 :: (a -> b -> c) -> Sextant a -> Sextant b -> Sextant c #

(*>) :: Sextant a -> Sextant b -> Sextant b #

(<*) :: Sextant a -> Sextant b -> Sextant a #

Functor Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

fmap :: (a -> b) -> Sextant a -> Sextant b #

(<$) :: a -> Sextant b -> Sextant a #

NFData1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

liftRnf :: (a -> ()) -> Sextant a -> () #

Hashable1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

liftHashWithSalt :: (Int -> a -> Int) -> Int -> Sextant a -> Int #

Generic1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

Associated Types

type Rep1 Sextant :: k -> Type #

Methods

from1 :: forall (a :: k). Sextant a -> Rep1 Sextant a #

to1 :: forall (a :: k). Rep1 Sextant a -> Sextant a #

Arbitrary a => Arbitrary (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

arbitrary :: Gen (Sextant a) #

shrink :: Sextant a -> [Sextant a] #

Data a => Data (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Sextant a -> c (Sextant a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Sextant a) #

toConstr :: Sextant a -> Constr #

dataTypeOf :: Sextant a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Sextant a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Sextant a)) #

gmapT :: (forall b. Data b => b -> b) -> Sextant a -> Sextant a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Sextant a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Sextant a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Sextant a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Sextant a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Sextant a -> m (Sextant a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Sextant a -> m (Sextant a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Sextant a -> m (Sextant a) #

Bounded a => Bounded (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Generic (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Associated Types

type Rep (Sextant a) :: Type -> Type #

Methods

from :: Sextant a -> Rep (Sextant a) x #

to :: Rep (Sextant a) x -> Sextant a #

Read a => Read (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Show a => Show (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

showsPrec :: Int -> Sextant a -> ShowS #

show :: Sextant a -> String #

showList :: [Sextant a] -> ShowS #

NFData a => NFData (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

rnf :: Sextant a -> () #

Eq a => Eq (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

(==) :: Sextant a -> Sextant a -> Bool #

(/=) :: Sextant a -> Sextant a -> Bool #

Ord a => Ord (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

compare :: Sextant a -> Sextant a -> Ordering #

(<) :: Sextant a -> Sextant a -> Bool #

(<=) :: Sextant a -> Sextant a -> Bool #

(>) :: Sextant a -> Sextant a -> Bool #

(>=) :: Sextant a -> Sextant a -> Bool #

max :: Sextant a -> Sextant a -> Sextant a #

min :: Sextant a -> Sextant a -> Sextant a #

Hashable a => Hashable (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

Methods

hashWithSalt :: Int -> Sextant a -> Int #

hash :: Sextant a -> Int #

MirrorHorizontal (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

MirrorVertical (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

UnicodeCharacter (Sextant Bool) Source # 
Instance details

Defined in Data.Char.Block.Sextant

UnicodeText (Sextant Bool) Source # 
Instance details

Defined in Data.Char.Block.Sextant

type Rep1 Sextant Source # 
Instance details

Defined in Data.Char.Block.Sextant

type Rep1 Sextant = D1 ('MetaData "Sextant" "Data.Char.Block.Sextant" "unicode-tricks-0.14.1.0-EInLeozqGjBL3vIQTNPsAm" 'False) (C1 ('MetaCons "Sextant" 'PrefixI 'True) (S1 ('MetaSel ('Just "upper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Row) :*: (S1 ('MetaSel ('Just "middle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Row) :*: S1 ('MetaSel ('Just "lower") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 Row))))
type Rep (Sextant a) Source # 
Instance details

Defined in Data.Char.Block.Sextant

type Rep (Sextant a) = D1 ('MetaData "Sextant" "Data.Char.Block.Sextant" "unicode-tricks-0.14.1.0-EInLeozqGjBL3vIQTNPsAm" 'False) (C1 ('MetaCons "Sextant" 'PrefixI 'True) (S1 ('MetaSel ('Just "upper") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Row a)) :*: (S1 ('MetaSel ('Just "middle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Row a)) :*: S1 ('MetaSel ('Just "lower") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Row a)))))

isSextant Source #

Arguments

:: Char

The given Character to test.

-> Bool

True if the given Character is a sextant Character; otherwise False.

Check if the given Character is a Character that maps on a Sextant value.

A unicode character that is (partially) filled sextant.

filled Source #

Arguments

:: Sextant Bool

The given Sextant of Bools to convert to a Char.

-> Char

The corresponding Character that presents the sextant.

Convert the given Sextant of Bools to a Char where raster items of the Sextant are written in black, and the rest in white.

Convert a Character to a (partially) filled sextant.

fromSextant Source #

Arguments

:: Char

The Char we wish to convert to a Sextant object.

-> Maybe (Sextant Bool)

The corresponding Sextant object wrapped in a Just; Nothing if the given Char is not a sextant character.

Convert the given Char to the corresponding Sextant object wrapped in a Just data constructor. If the given Char is not a sextant character, Nothing is returned.

fromSextant' Source #

Arguments

:: Char

The Char we wish to convert to a Sextant object.

-> Sextant Bool

The corresponding Sextant; unspecified behavior if the given Char is not a sextant character.

Convert the given Char to the corresponding Sextant object wrapped If the given Char is not a sextant character, it is unspecified what will happen.