{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE LambdaCase #-}

module Data.Char.Space(
  -- * Individual space characters
  HasHorizontalTab(..)
, AsHorizontalTab(..)
, parseHorizontalTab
, HasLineFeed(..)
, AsLineFeed(..)
, parseLineFeed
, HasVerticalTab(..)
, AsVerticalTab(..)
, parseVerticalTab
, HasFormFeed(..)
, AsFormFeed(..)
, parseFormFeed
, HasCarriageReturn(..)
, AsCarriageReturn(..)
, parseCarriageReturn
, HasWhitespace(..)
, AsWhitespace(..)
, parseWhitespace
, HasNoBreakSpace(..)
, AsNoBreakSpace(..)
, parseNoBreakSpace
, HasOghamSpaceMark(..)
, AsOghamSpaceMark(..)
, parseOghamSpaceMark
, HasEnQuad(..)
, AsEnQuad(..)
, parseEnQuad
, HasEmQuad(..)
, AsEmQuad(..)
, parseEmQuad
, HasEnSpace(..)
, AsEnSpace(..)
, parseEnSpace
, HasEmSpace(..)
, AsEmSpace(..)
, parseEmSpace
, HasThreePerEmSpace(..)
, AsThreePerEmSpace(..)
, parseThreePerEmSpace
, HasFourPerEmSpace(..)
, AsFourPerEmSpace(..)
, parseFourPerEmSpace
, HasSixPerEmSpace(..)
, AsSixPerEmSpace(..)
, parseSixPerEmSpace
, HasFigureSpace(..)
, AsFigureSpace(..)
, parseFigureSpace
, HasPunctuationSpace(..)
, AsPunctuationSpace(..)
, parsePunctuationSpace
, HasThinSpace(..)
, AsThinSpace(..)
, parseThinSpace
, HasHairSpace(..)
, AsHairSpace(..)
, parseHairSpace
, HasNarrowNoBreakSpace(..)
, AsNarrowNoBreakSpace(..)
, parseNarrowNoBreakSpace
, HasMediumMathematicalSpace(..)
, AsMediumMathematicalSpace(..)
, parseMediumMathematicalSpace
, HasIdeographicSpace(..)
, AsIdeographicSpace(..)
, parseIdeographicSpace
-- * All space characters
, SpaceChar(..)
, HasSpaceChar(..)
, AsSpaceChar(..)
, parseSpaceChar
-- * ISO Latin-1 space characters /(horizontal tab, line feed, form feed, carriage return, whitespace)/
, IsoLatin1(..)
, HasIsoLatin1(..)
, AsIsoLatin1(..)
, parseIsoLatin1
) where

import Control.Category ( Category(id) )
import Control.Lens ( Prism', prism', (#), Lens' )
import Data.Bool ( Bool )
import Data.Char ( Char )
import Data.Eq ( Eq((==)) )
import Data.Int ( Int )
import Data.Foldable ( asum )
import Data.Functor ( Functor((<$)) )
import Data.Maybe ( Maybe(Nothing, Just) )
import Data.Ord ( Ord )
import GHC.Generics ( Generic )
import GHC.Show ( Show )
import Prelude(Integer)
import Text.Parser.Char ( CharParsing(satisfy) )
import Text.Parser.Combinators ( Parsing((<?>)) )

class HasHorizontalTab a where
  horizontalTab :: Lens' a ()

instance HasHorizontalTab () where
  horizontalTab :: (() -> f ()) -> () -> f ()
horizontalTab =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsHorizontalTab a where
  _HorizontalTab :: Prism' a ()
  _HorizontalTab' :: a
  _HorizontalTab' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsHorizontalTab a => Prism' a ()
_HorizontalTab (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsHorizontalTab () where
  _HorizontalTab :: p () (f ()) -> p () (f ())
_HorizontalTab =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsHorizontalTab Char where
  _HorizontalTab :: p () (f ()) -> p Char (f Char)
_HorizontalTab =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\9')
      (\case
          Char
'\9' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsHorizontalTab Int where
  _HorizontalTab :: p () (f ()) -> p Int (f Int)
_HorizontalTab =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
9)
      (\case
          Int
9 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsHorizontalTab Integer where
  _HorizontalTab :: p () (f ()) -> p Integer (f Integer)
_HorizontalTab =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
9)
      (\case
          Integer
9 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseHorizontalTab ::
  CharParsing p =>
  p ()
parseHorizontalTab :: p ()
parseHorizontalTab =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\9') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"horizontal tab character"

class HasLineFeed a where
  lineFeed :: Lens' a ()

instance HasLineFeed () where
  lineFeed :: (() -> f ()) -> () -> f ()
lineFeed =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsLineFeed a where
  _LineFeed :: Prism' a ()
  _LineFeed' :: a
  _LineFeed' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsLineFeed a => Prism' a ()
_LineFeed (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsLineFeed () where
  _LineFeed :: p () (f ()) -> p () (f ())
_LineFeed =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsLineFeed Char where
  _LineFeed :: p () (f ()) -> p Char (f Char)
_LineFeed =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\10')
      (\case
          Char
'\10' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsLineFeed Int where
  _LineFeed :: p () (f ()) -> p Int (f Int)
_LineFeed =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
10)
      (\case
          Int
10 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsLineFeed Integer where
  _LineFeed :: p () (f ()) -> p Integer (f Integer)
_LineFeed =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
10)
      (\case
          Integer
10 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseLineFeed ::
  CharParsing p =>
  p ()
parseLineFeed :: p ()
parseLineFeed =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\10') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"line feed character"

class HasVerticalTab a where
  verticalTab :: Lens' a ()

instance HasVerticalTab () where
  verticalTab :: (() -> f ()) -> () -> f ()
verticalTab =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsVerticalTab a where
  _VerticalTab :: Prism' a ()
  _VerticalTab' :: a
  _VerticalTab' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsVerticalTab a => Prism' a ()
_VerticalTab (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsVerticalTab () where
  _VerticalTab :: p () (f ()) -> p () (f ())
_VerticalTab =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsVerticalTab Char where
  _VerticalTab :: p () (f ()) -> p Char (f Char)
_VerticalTab =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\11')
      (\case
          Char
'\11' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsVerticalTab Int where
  _VerticalTab :: p () (f ()) -> p Int (f Int)
_VerticalTab =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
11)
      (\case
          Int
11 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsVerticalTab Integer where
  _VerticalTab :: p () (f ()) -> p Integer (f Integer)
_VerticalTab =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
11)
      (\case
          Integer
11 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseVerticalTab ::
  CharParsing p =>
  p ()
parseVerticalTab :: p ()
parseVerticalTab =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\11') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"vertical tab character"

class HasFormFeed a where
  formFeed :: Lens' a ()

instance HasFormFeed () where
  formFeed :: (() -> f ()) -> () -> f ()
formFeed =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsFormFeed a where
  _FormFeed :: Prism' a ()
  _FormFeed' :: a
  _FormFeed' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsFormFeed a => Prism' a ()
_FormFeed (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsFormFeed () where
  _FormFeed :: p () (f ()) -> p () (f ())
_FormFeed =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsFormFeed Char where
  _FormFeed :: p () (f ()) -> p Char (f Char)
_FormFeed =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\12')
      (\case
          Char
'\12' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFormFeed Int where
  _FormFeed :: p () (f ()) -> p Int (f Int)
_FormFeed =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
12)
      (\case
          Int
12 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFormFeed Integer where
  _FormFeed :: p () (f ()) -> p Integer (f Integer)
_FormFeed =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
12)
      (\case
          Integer
12 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseFormFeed ::
  CharParsing p =>
  p ()
parseFormFeed :: p ()
parseFormFeed =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\12') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"form feed character"

class HasCarriageReturn a where
  carriageReturn :: Lens' a ()

instance HasCarriageReturn () where
  carriageReturn :: (() -> f ()) -> () -> f ()
carriageReturn =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsCarriageReturn a where
  _CarriageReturn :: Prism' a ()
  _CarriageReturn' :: a
  _CarriageReturn' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsCarriageReturn a => Prism' a ()
_CarriageReturn (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsCarriageReturn () where
  _CarriageReturn :: p () (f ()) -> p () (f ())
_CarriageReturn =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsCarriageReturn Char where
  _CarriageReturn :: p () (f ()) -> p Char (f Char)
_CarriageReturn =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\13')
      (\case
          Char
'\13' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsCarriageReturn Int where
  _CarriageReturn :: p () (f ()) -> p Int (f Int)
_CarriageReturn =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
13)
      (\case
          Int
13 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsCarriageReturn Integer where
  _CarriageReturn :: p () (f ()) -> p Integer (f Integer)
_CarriageReturn =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
13)
      (\case
          Integer
13 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseCarriageReturn ::
  CharParsing p =>
  p ()
parseCarriageReturn :: p ()
parseCarriageReturn =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\13') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"carriage return character"

class HasWhitespace a where
  whitespace :: Lens' a ()

instance HasWhitespace () where
  whitespace :: (() -> f ()) -> () -> f ()
whitespace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsWhitespace a where
  _Whitespace :: Prism' a ()
  _Whitespace' :: a
  _Whitespace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsWhitespace a => Prism' a ()
_Whitespace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsWhitespace () where
  _Whitespace :: p () (f ()) -> p () (f ())
_Whitespace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsWhitespace Char where
  _Whitespace :: p () (f ()) -> p Char (f Char)
_Whitespace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\32')
      (\case
          Char
'\32' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsWhitespace Int where
  _Whitespace :: p () (f ()) -> p Int (f Int)
_Whitespace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
32)
      (\case
          Int
32 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsWhitespace Integer where
  _Whitespace :: p () (f ()) -> p Integer (f Integer)
_Whitespace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
32)
      (\case
          Integer
32 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseWhitespace ::
  CharParsing p =>
  p ()
parseWhitespace :: p ()
parseWhitespace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\32') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"whitespace character"

class HasNoBreakSpace a where
  noBreakSpace :: Lens' a ()

instance HasNoBreakSpace () where
  noBreakSpace :: (() -> f ()) -> () -> f ()
noBreakSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsNoBreakSpace a where
  _NoBreakSpace :: Prism' a ()
  _NoBreakSpace' :: a
  _NoBreakSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsNoBreakSpace a => Prism' a ()
_NoBreakSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsNoBreakSpace () where
  _NoBreakSpace :: p () (f ()) -> p () (f ())
_NoBreakSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsNoBreakSpace Char where
  _NoBreakSpace :: p () (f ()) -> p Char (f Char)
_NoBreakSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\160')
      (\case
          Char
'\160' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNoBreakSpace Int where
  _NoBreakSpace :: p () (f ()) -> p Int (f Int)
_NoBreakSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
160)
      (\case
          Int
160 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNoBreakSpace Integer where
  _NoBreakSpace :: p () (f ()) -> p Integer (f Integer)
_NoBreakSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
160)
      (\case
          Integer
160 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseNoBreakSpace ::
  CharParsing p =>
  p ()
parseNoBreakSpace :: p ()
parseNoBreakSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\160') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"no break space character"

class HasOghamSpaceMark a where
  oghamSpaceMark :: Lens' a ()

instance HasOghamSpaceMark () where
  oghamSpaceMark :: (() -> f ()) -> () -> f ()
oghamSpaceMark =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsOghamSpaceMark a where
  _OghamSpaceMark :: Prism' a ()
  _OghamSpaceMark' :: a
  _OghamSpaceMark' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsOghamSpaceMark a => Prism' a ()
_OghamSpaceMark (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsOghamSpaceMark () where
  _OghamSpaceMark :: p () (f ()) -> p () (f ())
_OghamSpaceMark =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsOghamSpaceMark Char where
  _OghamSpaceMark :: p () (f ()) -> p Char (f Char)
_OghamSpaceMark =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\5760')
      (\case
          Char
'\5760' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsOghamSpaceMark Int where
  _OghamSpaceMark :: p () (f ()) -> p Int (f Int)
_OghamSpaceMark =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
5760)
      (\case
          Int
5760 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsOghamSpaceMark Integer where
  _OghamSpaceMark :: p () (f ()) -> p Integer (f Integer)
_OghamSpaceMark =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
5760)
      (\case
          Integer
5760 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseOghamSpaceMark ::
  CharParsing p =>
  p ()
parseOghamSpaceMark :: p ()
parseOghamSpaceMark =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\5760') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"ogham space mark character"

class HasEnQuad a where
  enQuad :: Lens' a ()

instance HasEnQuad () where
  enQuad :: (() -> f ()) -> () -> f ()
enQuad =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsEnQuad a where
  _EnQuad :: Prism' a ()
  _EnQuad' :: a
  _EnQuad' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsEnQuad a => Prism' a ()
_EnQuad (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsEnQuad () where
  _EnQuad :: p () (f ()) -> p () (f ())
_EnQuad =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsEnQuad Char where
  _EnQuad :: p () (f ()) -> p Char (f Char)
_EnQuad =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8192')
      (\case
          Char
'\8192' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnQuad Int where
  _EnQuad :: p () (f ()) -> p Int (f Int)
_EnQuad =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8192)
      (\case
          Int
8192 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnQuad Integer where
  _EnQuad :: p () (f ()) -> p Integer (f Integer)
_EnQuad =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8192)
      (\case
          Integer
8192 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseEnQuad ::
  CharParsing p =>
  p ()
parseEnQuad :: p ()
parseEnQuad =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8192') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"en quad character"

class HasEmQuad a where
  emQuad :: Lens' a ()

instance HasEmQuad () where
  emQuad :: (() -> f ()) -> () -> f ()
emQuad =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsEmQuad a where
  _EmQuad :: Prism' a ()
  _EmQuad' :: a
  _EmQuad' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsEmQuad a => Prism' a ()
_EmQuad (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsEmQuad () where
  _EmQuad :: p () (f ()) -> p () (f ())
_EmQuad =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsEmQuad Char where
  _EmQuad :: p () (f ()) -> p Char (f Char)
_EmQuad =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8193')
      (\case
          Char
'\8193' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmQuad Int where
  _EmQuad :: p () (f ()) -> p Int (f Int)
_EmQuad =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8193)
      (\case
          Int
8193 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmQuad Integer where
  _EmQuad :: p () (f ()) -> p Integer (f Integer)
_EmQuad =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8193)
      (\case
          Integer
8193 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseEmQuad ::
  CharParsing p =>
  p ()
parseEmQuad :: p ()
parseEmQuad =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8193') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"em quad character"

class HasEnSpace a where
  enSpace :: Lens' a ()

instance HasEnSpace () where
  enSpace :: (() -> f ()) -> () -> f ()
enSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsEnSpace a where
  _EnSpace :: Prism' a ()
  _EnSpace' :: a
  _EnSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsEnSpace a => Prism' a ()
_EnSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsEnSpace () where
  _EnSpace :: p () (f ()) -> p () (f ())
_EnSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsEnSpace Char where
  _EnSpace :: p () (f ()) -> p Char (f Char)
_EnSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8194')
      (\case
          Char
'\8194' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnSpace Int where
  _EnSpace :: p () (f ()) -> p Int (f Int)
_EnSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8194)
      (\case
          Int
8194 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnSpace Integer where
  _EnSpace :: p () (f ()) -> p Integer (f Integer)
_EnSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8194)
      (\case
          Integer
8194 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseEnSpace ::
  CharParsing p =>
  p ()
parseEnSpace :: p ()
parseEnSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8194') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"en space character"

class HasEmSpace a where
  emSpace :: Lens' a ()

instance HasEmSpace () where
  emSpace :: (() -> f ()) -> () -> f ()
emSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsEmSpace a where
  _EmSpace :: Prism' a ()
  _EmSpace' :: a
  _EmSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsEmSpace a => Prism' a ()
_EmSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsEmSpace () where
  _EmSpace :: p () (f ()) -> p () (f ())
_EmSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsEmSpace Char where
  _EmSpace :: p () (f ()) -> p Char (f Char)
_EmSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8195')
      (\case
          Char
'\8195' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmSpace Int where
  _EmSpace :: p () (f ()) -> p Int (f Int)
_EmSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8195)
      (\case
          Int
8195 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmSpace Integer where
  _EmSpace :: p () (f ()) -> p Integer (f Integer)
_EmSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8195)
      (\case
          Integer
8195 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseEmSpace ::
  CharParsing p =>
  p ()
parseEmSpace :: p ()
parseEmSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8195') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"em space character"

class HasThreePerEmSpace a where
  threePerEmSpace :: Lens' a ()

instance HasThreePerEmSpace () where
  threePerEmSpace :: (() -> f ()) -> () -> f ()
threePerEmSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsThreePerEmSpace a where
  _ThreePerEmSpace :: Prism' a ()
  _ThreePerEmSpace' :: a
  _ThreePerEmSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsThreePerEmSpace a => Prism' a ()
_ThreePerEmSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsThreePerEmSpace () where
  _ThreePerEmSpace :: p () (f ()) -> p () (f ())
_ThreePerEmSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsThreePerEmSpace Char where
  _ThreePerEmSpace :: p () (f ()) -> p Char (f Char)
_ThreePerEmSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8196')
      (\case
          Char
'\8196' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThreePerEmSpace Int where
  _ThreePerEmSpace :: p () (f ()) -> p Int (f Int)
_ThreePerEmSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8196)
      (\case
          Int
8196 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThreePerEmSpace Integer where
  _ThreePerEmSpace :: p () (f ()) -> p Integer (f Integer)
_ThreePerEmSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8196)
      (\case
          Integer
8196 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseThreePerEmSpace ::
  CharParsing p =>
  p ()
parseThreePerEmSpace :: p ()
parseThreePerEmSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8196') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"three per em space character"

class HasFourPerEmSpace a where
  fourPerEmSpace :: Lens' a ()

instance HasFourPerEmSpace () where
  fourPerEmSpace :: (() -> f ()) -> () -> f ()
fourPerEmSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsFourPerEmSpace a where
  _FourPerEmSpace :: Prism' a ()
  _FourPerEmSpace' :: a
  _FourPerEmSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsFourPerEmSpace a => Prism' a ()
_FourPerEmSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsFourPerEmSpace () where
  _FourPerEmSpace :: p () (f ()) -> p () (f ())
_FourPerEmSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsFourPerEmSpace Char where
  _FourPerEmSpace :: p () (f ()) -> p Char (f Char)
_FourPerEmSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8197')
      (\case
          Char
'\8197' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFourPerEmSpace Int where
  _FourPerEmSpace :: p () (f ()) -> p Int (f Int)
_FourPerEmSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8197)
      (\case
          Int
8197 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFourPerEmSpace Integer where
  _FourPerEmSpace :: p () (f ()) -> p Integer (f Integer)
_FourPerEmSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8197)
      (\case
          Integer
8197 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseFourPerEmSpace ::
  CharParsing p =>
  p ()
parseFourPerEmSpace :: p ()
parseFourPerEmSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8197') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"four per em space character"

class HasSixPerEmSpace a where
  sixPerEmSpace :: Lens' a ()

instance HasSixPerEmSpace () where
  sixPerEmSpace :: (() -> f ()) -> () -> f ()
sixPerEmSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsSixPerEmSpace a where
  _SixPerEmSpace :: Prism' a ()
  _SixPerEmSpace' :: a
  _SixPerEmSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsSixPerEmSpace a => Prism' a ()
_SixPerEmSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsSixPerEmSpace () where
  _SixPerEmSpace :: p () (f ()) -> p () (f ())
_SixPerEmSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsSixPerEmSpace Char where
  _SixPerEmSpace :: p () (f ()) -> p Char (f Char)
_SixPerEmSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8198')
      (\case
          Char
'\8198' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsSixPerEmSpace Int where
  _SixPerEmSpace :: p () (f ()) -> p Int (f Int)
_SixPerEmSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8198)
      (\case
          Int
8198 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsSixPerEmSpace Integer where
  _SixPerEmSpace :: p () (f ()) -> p Integer (f Integer)
_SixPerEmSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8198)
      (\case
          Integer
8198 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseSixPerEmSpace ::
  CharParsing p =>
  p ()
parseSixPerEmSpace :: p ()
parseSixPerEmSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8198') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"six per em space character"

class HasFigureSpace a where
  figureSpace :: Lens' a ()

instance HasFigureSpace () where
  figureSpace :: (() -> f ()) -> () -> f ()
figureSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsFigureSpace a where
  _FigureSpace :: Prism' a ()
  _FigureSpace' :: a
  _FigureSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsFigureSpace a => Prism' a ()
_FigureSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsFigureSpace () where
  _FigureSpace :: p () (f ()) -> p () (f ())
_FigureSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsFigureSpace Char where
  _FigureSpace :: p () (f ()) -> p Char (f Char)
_FigureSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8199')
      (\case
          Char
'\8199' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFigureSpace Int where
  _FigureSpace :: p () (f ()) -> p Int (f Int)
_FigureSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8199)
      (\case
          Int
8199 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFigureSpace Integer where
  _FigureSpace :: p () (f ()) -> p Integer (f Integer)
_FigureSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8199)
      (\case
          Integer
8199 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseFigureSpace ::
  CharParsing p =>
  p ()
parseFigureSpace :: p ()
parseFigureSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8199') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"figure space character"

class HasPunctuationSpace a where
  punctuationSpace :: Lens' a ()

instance HasPunctuationSpace () where
  punctuationSpace :: (() -> f ()) -> () -> f ()
punctuationSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsPunctuationSpace a where
  _PunctuationSpace :: Prism' a ()
  _PunctuationSpace' :: a
  _PunctuationSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsPunctuationSpace a => Prism' a ()
_PunctuationSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsPunctuationSpace () where
  _PunctuationSpace :: p () (f ()) -> p () (f ())
_PunctuationSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsPunctuationSpace Char where
  _PunctuationSpace :: p () (f ()) -> p Char (f Char)
_PunctuationSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8200')
      (\case
          Char
'\8200' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsPunctuationSpace Int where
  _PunctuationSpace :: p () (f ()) -> p Int (f Int)
_PunctuationSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8200)
      (\case
          Int
8200 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsPunctuationSpace Integer where
  _PunctuationSpace :: p () (f ()) -> p Integer (f Integer)
_PunctuationSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8200)
      (\case
          Integer
8200 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parsePunctuationSpace ::
  CharParsing p =>
  p ()
parsePunctuationSpace :: p ()
parsePunctuationSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8200') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"punctuation space character"

class HasThinSpace a where
  thinSpace :: Lens' a ()

instance HasThinSpace () where
  thinSpace :: (() -> f ()) -> () -> f ()
thinSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsThinSpace a where
  _ThinSpace :: Prism' a ()
  _ThinSpace' :: a
  _ThinSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsThinSpace a => Prism' a ()
_ThinSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsThinSpace () where
  _ThinSpace :: p () (f ()) -> p () (f ())
_ThinSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsThinSpace Char where
  _ThinSpace :: p () (f ()) -> p Char (f Char)
_ThinSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8201')
      (\case
          Char
'\8201' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThinSpace Int where
  _ThinSpace :: p () (f ()) -> p Int (f Int)
_ThinSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8201)
      (\case
          Int
8201 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThinSpace Integer where
  _ThinSpace :: p () (f ()) -> p Integer (f Integer)
_ThinSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8201)
      (\case
          Integer
8201 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseThinSpace ::
  CharParsing p =>
  p ()
parseThinSpace :: p ()
parseThinSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8201') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"thin space character"

class HasHairSpace a where
  hairSpace :: Lens' a ()

instance HasHairSpace () where
  hairSpace :: (() -> f ()) -> () -> f ()
hairSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsHairSpace a where
  _HairSpace :: Prism' a ()
  _HairSpace' :: a
  _HairSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsHairSpace a => Prism' a ()
_HairSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsHairSpace () where
  _HairSpace :: p () (f ()) -> p () (f ())
_HairSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsHairSpace Char where
  _HairSpace :: p () (f ()) -> p Char (f Char)
_HairSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8202')
      (\case
          Char
'\8202' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsHairSpace Int where
  _HairSpace :: p () (f ()) -> p Int (f Int)
_HairSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8202)
      (\case
          Int
8202 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsHairSpace Integer where
  _HairSpace :: p () (f ()) -> p Integer (f Integer)
_HairSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8202)
      (\case
          Integer
8202 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseHairSpace ::
  CharParsing p =>
  p ()
parseHairSpace :: p ()
parseHairSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8202') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"hair space character"

class HasNarrowNoBreakSpace a where
  narrowNoBreakSpace :: Lens' a ()

instance HasNarrowNoBreakSpace () where
  narrowNoBreakSpace :: (() -> f ()) -> () -> f ()
narrowNoBreakSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsNarrowNoBreakSpace a where
  _NarrowNoBreakSpace :: Prism' a ()
  _NarrowNoBreakSpace' :: a
  _NarrowNoBreakSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsNarrowNoBreakSpace a => Prism' a ()
_NarrowNoBreakSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsNarrowNoBreakSpace () where
  _NarrowNoBreakSpace :: p () (f ()) -> p () (f ())
_NarrowNoBreakSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsNarrowNoBreakSpace Char where
  _NarrowNoBreakSpace :: p () (f ()) -> p Char (f Char)
_NarrowNoBreakSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8239')
      (\case
          Char
'\8239' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNarrowNoBreakSpace Int where
  _NarrowNoBreakSpace :: p () (f ()) -> p Int (f Int)
_NarrowNoBreakSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8239)
      (\case
          Int
8239 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNarrowNoBreakSpace Integer where
  _NarrowNoBreakSpace :: p () (f ()) -> p Integer (f Integer)
_NarrowNoBreakSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8239)
      (\case
          Integer
8239 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseNarrowNoBreakSpace ::
  CharParsing p =>
  p ()
parseNarrowNoBreakSpace :: p ()
parseNarrowNoBreakSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8239') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"narrow no break space character"

class HasMediumMathematicalSpace a where
  mediumMathematicalSpace :: Lens' a ()

instance HasMediumMathematicalSpace () where
  mediumMathematicalSpace :: (() -> f ()) -> () -> f ()
mediumMathematicalSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsMediumMathematicalSpace a where
  _MediumMathematicalSpace :: Prism' a ()
  _MediumMathematicalSpace' :: a
  _MediumMathematicalSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsMediumMathematicalSpace a => Prism' a ()
_MediumMathematicalSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsMediumMathematicalSpace () where
  _MediumMathematicalSpace :: p () (f ()) -> p () (f ())
_MediumMathematicalSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsMediumMathematicalSpace Char where
  _MediumMathematicalSpace :: p () (f ()) -> p Char (f Char)
_MediumMathematicalSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\8287')
      (\case
          Char
'\8287' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsMediumMathematicalSpace Int where
  _MediumMathematicalSpace :: p () (f ()) -> p Int (f Int)
_MediumMathematicalSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
8287)
      (\case
          Int
8287 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsMediumMathematicalSpace Integer where
  _MediumMathematicalSpace :: p () (f ()) -> p Integer (f Integer)
_MediumMathematicalSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
8287)
      (\case
          Integer
8287 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseMediumMathematicalSpace ::
  CharParsing p =>
  p ()
parseMediumMathematicalSpace :: p ()
parseMediumMathematicalSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\8287') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"medium mathematical space character"

class HasIdeographicSpace a where
  ideographicSpace :: Lens' a ()

instance HasIdeographicSpace () where
  ideographicSpace :: (() -> f ()) -> () -> f ()
ideographicSpace =
    (() -> f ()) -> () -> f ()
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsIdeographicSpace a where
  _IdeographicSpace :: Prism' a ()
  _IdeographicSpace' :: a
  _IdeographicSpace' = Tagged () (Identity ()) -> Tagged a (Identity a)
forall a. AsIdeographicSpace a => Prism' a ()
_IdeographicSpace (Tagged () (Identity ()) -> Tagged a (Identity a)) -> () -> a
forall t b. AReview t b -> b -> t
# ()

instance AsIdeographicSpace () where
  _IdeographicSpace :: p () (f ()) -> p () (f ())
_IdeographicSpace =
    p () (f ()) -> p () (f ())
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsIdeographicSpace Char where
  _IdeographicSpace :: p () (f ()) -> p Char (f Char)
_IdeographicSpace =
    (() -> Char) -> (Char -> Maybe ()) -> Prism' Char ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Char
'\12288')
      (\case
          Char
'\12288' -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Char
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsIdeographicSpace Int where
  _IdeographicSpace :: p () (f ()) -> p Int (f Int)
_IdeographicSpace =
    (() -> Int) -> (Int -> Maybe ()) -> Prism' Int ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Int
12288)
      (\case
          Int
12288 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Int
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsIdeographicSpace Integer where
  _IdeographicSpace :: p () (f ()) -> p Integer (f Integer)
_IdeographicSpace =
    (() -> Integer) -> (Integer -> Maybe ()) -> Prism' Integer ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> Integer
12288)
      (\case
          Integer
12288 -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          Integer
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

parseIdeographicSpace ::
  CharParsing p =>
  p ()
parseIdeographicSpace :: p ()
parseIdeographicSpace =
  (Char -> Bool) -> p ()
forall (f :: * -> *). CharParsing f => (Char -> Bool) -> f ()
satisfy' (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
== Char
'\12288') p () -> String -> p ()
forall (m :: * -> *) a. Parsing m => m a -> String -> m a
<?> String
"ideographic space character"

data SpaceChar =
  HorizontalTab
  | LineFeed
  | VerticalTab
  | FormFeed
  | CarriageReturn
  | Whitespace
  | NoBreakSpace
  | OghamSpaceMark
  | EnQuad
  | EmQuad
  | EnSpace
  | EmSpace
  | ThreePerEmSpace
  | FourPerEmSpace
  | SixPerEmSpace
  | FigureSpace
  | PunctuationSpace
  | ThinSpace
  | HairSpace
  | NarrowNoBreakSpace
  | MediumMathematicalSpace
  | IdeographicSpace
  deriving (SpaceChar -> SpaceChar -> Bool
(SpaceChar -> SpaceChar -> Bool)
-> (SpaceChar -> SpaceChar -> Bool) -> Eq SpaceChar
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SpaceChar -> SpaceChar -> Bool
$c/= :: SpaceChar -> SpaceChar -> Bool
== :: SpaceChar -> SpaceChar -> Bool
$c== :: SpaceChar -> SpaceChar -> Bool
Eq, Eq SpaceChar
Eq SpaceChar
-> (SpaceChar -> SpaceChar -> Ordering)
-> (SpaceChar -> SpaceChar -> Bool)
-> (SpaceChar -> SpaceChar -> Bool)
-> (SpaceChar -> SpaceChar -> Bool)
-> (SpaceChar -> SpaceChar -> Bool)
-> (SpaceChar -> SpaceChar -> SpaceChar)
-> (SpaceChar -> SpaceChar -> SpaceChar)
-> Ord SpaceChar
SpaceChar -> SpaceChar -> Bool
SpaceChar -> SpaceChar -> Ordering
SpaceChar -> SpaceChar -> SpaceChar
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: SpaceChar -> SpaceChar -> SpaceChar
$cmin :: SpaceChar -> SpaceChar -> SpaceChar
max :: SpaceChar -> SpaceChar -> SpaceChar
$cmax :: SpaceChar -> SpaceChar -> SpaceChar
>= :: SpaceChar -> SpaceChar -> Bool
$c>= :: SpaceChar -> SpaceChar -> Bool
> :: SpaceChar -> SpaceChar -> Bool
$c> :: SpaceChar -> SpaceChar -> Bool
<= :: SpaceChar -> SpaceChar -> Bool
$c<= :: SpaceChar -> SpaceChar -> Bool
< :: SpaceChar -> SpaceChar -> Bool
$c< :: SpaceChar -> SpaceChar -> Bool
compare :: SpaceChar -> SpaceChar -> Ordering
$ccompare :: SpaceChar -> SpaceChar -> Ordering
$cp1Ord :: Eq SpaceChar
Ord, Int -> SpaceChar -> ShowS
[SpaceChar] -> ShowS
SpaceChar -> String
(Int -> SpaceChar -> ShowS)
-> (SpaceChar -> String)
-> ([SpaceChar] -> ShowS)
-> Show SpaceChar
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SpaceChar] -> ShowS
$cshowList :: [SpaceChar] -> ShowS
show :: SpaceChar -> String
$cshow :: SpaceChar -> String
showsPrec :: Int -> SpaceChar -> ShowS
$cshowsPrec :: Int -> SpaceChar -> ShowS
Show, (forall x. SpaceChar -> Rep SpaceChar x)
-> (forall x. Rep SpaceChar x -> SpaceChar) -> Generic SpaceChar
forall x. Rep SpaceChar x -> SpaceChar
forall x. SpaceChar -> Rep SpaceChar x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SpaceChar x -> SpaceChar
$cfrom :: forall x. SpaceChar -> Rep SpaceChar x
Generic)

class HasSpaceChar a where
  spaceChar :: Lens' a SpaceChar

instance HasSpaceChar SpaceChar where
  spaceChar :: (SpaceChar -> f SpaceChar) -> SpaceChar -> f SpaceChar
spaceChar = (SpaceChar -> f SpaceChar) -> SpaceChar -> f SpaceChar
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsSpaceChar a where
  _SpaceChar :: Prism' a SpaceChar

instance AsSpaceChar SpaceChar where
  _SpaceChar :: p SpaceChar (f SpaceChar) -> p SpaceChar (f SpaceChar)
_SpaceChar = p SpaceChar (f SpaceChar) -> p SpaceChar (f SpaceChar)
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

instance AsSpaceChar Char where
  _SpaceChar :: p SpaceChar (f SpaceChar) -> p Char (f Char)
_SpaceChar =
    (SpaceChar -> Char)
-> (Char -> Maybe SpaceChar) -> Prism' Char SpaceChar
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\case
        SpaceChar
HorizontalTab ->
          Char
'\9'
        SpaceChar
LineFeed ->
          Char
'\10'
        SpaceChar
VerticalTab ->
          Char
'\11'
        SpaceChar
FormFeed ->
          Char
'\12'
        SpaceChar
CarriageReturn ->
          Char
'\13'
        SpaceChar
Whitespace ->
          Char
'\32'
        SpaceChar
NoBreakSpace ->
          Char
'\160'
        SpaceChar
OghamSpaceMark ->
          Char
'\5760'
        SpaceChar
EnQuad ->
          Char
'\8192'
        SpaceChar
EmQuad ->
          Char
'\8193'
        SpaceChar
EnSpace ->
          Char
'\8194'
        SpaceChar
EmSpace ->
          Char
'\8195'
        SpaceChar
ThreePerEmSpace ->
          Char
'\8196'
        SpaceChar
FourPerEmSpace ->
          Char
'\8197'
        SpaceChar
SixPerEmSpace ->
          Char
'\8198'
        SpaceChar
FigureSpace ->
          Char
'\8199'
        SpaceChar
PunctuationSpace ->
          Char
'\8200'
        SpaceChar
ThinSpace ->
          Char
'\8201'
        SpaceChar
HairSpace ->
          Char
'\8202'
        SpaceChar
NarrowNoBreakSpace ->
          Char
'\8239'
        SpaceChar
MediumMathematicalSpace ->
          Char
'\8287'
        SpaceChar
IdeographicSpace ->
          Char
'\12288'
      )
      (\case
        Char
'\9' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
HorizontalTab
        Char
'\10' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
LineFeed
        Char
'\11' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
VerticalTab
        Char
'\12' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
FormFeed
        Char
'\13' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
CarriageReturn
        Char
'\32' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
Whitespace
        Char
'\160' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
NoBreakSpace
        Char
'\5760' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
OghamSpaceMark
        Char
'\8192' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
EnQuad
        Char
'\8193' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
EmQuad
        Char
'\8194' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
EnSpace
        Char
'\8195' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
EmSpace
        Char
'\8196' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
ThreePerEmSpace
        Char
'\8197' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
FourPerEmSpace
        Char
'\8198' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
SixPerEmSpace
        Char
'\8199' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
FigureSpace
        Char
'\8200' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
PunctuationSpace
        Char
'\8201' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
ThinSpace
        Char
'\8202' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
HairSpace
        Char
'\8239' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
NarrowNoBreakSpace
        Char
'\8287' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
MediumMathematicalSpace
        Char
'\12288' ->
          SpaceChar -> Maybe SpaceChar
forall a. a -> Maybe a
Just SpaceChar
IdeographicSpace
        Char
_ ->
          Maybe SpaceChar
forall a. Maybe a
Nothing
      )

parseSpaceChar ::
  CharParsing p =>
  p SpaceChar
parseSpaceChar :: p SpaceChar
parseSpaceChar =
  [p SpaceChar] -> p SpaceChar
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum [
    SpaceChar
HorizontalTab SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseHorizontalTab
  , SpaceChar
LineFeed SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseLineFeed
  , SpaceChar
VerticalTab SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseVerticalTab
  , SpaceChar
FormFeed SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseFormFeed
  , SpaceChar
CarriageReturn SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseCarriageReturn
  , SpaceChar
Whitespace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseWhitespace
  , SpaceChar
NoBreakSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseNoBreakSpace
  , SpaceChar
OghamSpaceMark SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseOghamSpaceMark
  , SpaceChar
EnQuad SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseEnQuad
  , SpaceChar
EmQuad SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseEmQuad
  , SpaceChar
EnSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseEnSpace
  , SpaceChar
EmSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseEmSpace
  , SpaceChar
ThreePerEmSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseThreePerEmSpace
  , SpaceChar
FourPerEmSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseFourPerEmSpace
  , SpaceChar
SixPerEmSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseSixPerEmSpace
  , SpaceChar
FigureSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseFigureSpace
  , SpaceChar
PunctuationSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parsePunctuationSpace
  , SpaceChar
ThinSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseThinSpace
  , SpaceChar
HairSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseHairSpace
  , SpaceChar
NarrowNoBreakSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseNarrowNoBreakSpace
  , SpaceChar
MediumMathematicalSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseMediumMathematicalSpace
  , SpaceChar
IdeographicSpace SpaceChar -> p () -> p SpaceChar
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseIdeographicSpace
  ]

instance AsHorizontalTab SpaceChar where
  _HorizontalTab :: p () (f ()) -> p SpaceChar (f SpaceChar)
_HorizontalTab =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
HorizontalTab)
      (\case
          SpaceChar
HorizontalTab -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsLineFeed SpaceChar where
  _LineFeed :: p () (f ()) -> p SpaceChar (f SpaceChar)
_LineFeed =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
LineFeed)
      (\case
          SpaceChar
LineFeed -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsVerticalTab SpaceChar where
  _VerticalTab :: p () (f ()) -> p SpaceChar (f SpaceChar)
_VerticalTab =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
VerticalTab)
      (\case
          SpaceChar
VerticalTab -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFormFeed SpaceChar where
  _FormFeed :: p () (f ()) -> p SpaceChar (f SpaceChar)
_FormFeed =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
FormFeed)
      (\case
          SpaceChar
FormFeed -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsCarriageReturn SpaceChar where
  _CarriageReturn :: p () (f ()) -> p SpaceChar (f SpaceChar)
_CarriageReturn =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
CarriageReturn)
      (\case
          SpaceChar
CarriageReturn -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsWhitespace SpaceChar where
  _Whitespace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_Whitespace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
Whitespace)
      (\case
          SpaceChar
Whitespace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNoBreakSpace SpaceChar where
  _NoBreakSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_NoBreakSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
NoBreakSpace)
      (\case
          SpaceChar
NoBreakSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsOghamSpaceMark SpaceChar where
  _OghamSpaceMark :: p () (f ()) -> p SpaceChar (f SpaceChar)
_OghamSpaceMark =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
OghamSpaceMark)
      (\case
          SpaceChar
OghamSpaceMark -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnQuad SpaceChar where
  _EnQuad :: p () (f ()) -> p SpaceChar (f SpaceChar)
_EnQuad =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
EnQuad)
      (\case
          SpaceChar
EnQuad -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmQuad SpaceChar where
  _EmQuad :: p () (f ()) -> p SpaceChar (f SpaceChar)
_EmQuad =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
EmQuad)
      (\case
          SpaceChar
EmQuad -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEnSpace SpaceChar where
  _EnSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_EnSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
EnSpace)
      (\case
          SpaceChar
EnSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsEmSpace SpaceChar where
  _EmSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_EmSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
EmSpace)
      (\case
          SpaceChar
EmSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThreePerEmSpace SpaceChar where
  _ThreePerEmSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_ThreePerEmSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
ThreePerEmSpace)
      (\case
          SpaceChar
ThreePerEmSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFourPerEmSpace SpaceChar where
  _FourPerEmSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_FourPerEmSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
FourPerEmSpace)
      (\case
          SpaceChar
FourPerEmSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsSixPerEmSpace SpaceChar where
  _SixPerEmSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_SixPerEmSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
SixPerEmSpace)
      (\case
          SpaceChar
SixPerEmSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFigureSpace SpaceChar where
  _FigureSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_FigureSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
FigureSpace)
      (\case
          SpaceChar
FigureSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsPunctuationSpace SpaceChar where
  _PunctuationSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_PunctuationSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
PunctuationSpace)
      (\case
          SpaceChar
PunctuationSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsThinSpace SpaceChar where
  _ThinSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_ThinSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
ThinSpace)
      (\case
          SpaceChar
ThinSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsHairSpace SpaceChar where
  _HairSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_HairSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
HairSpace)
      (\case
          SpaceChar
HairSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsNarrowNoBreakSpace SpaceChar where
  _NarrowNoBreakSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_NarrowNoBreakSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
NarrowNoBreakSpace)
      (\case
          SpaceChar
NarrowNoBreakSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsMediumMathematicalSpace SpaceChar where
  _MediumMathematicalSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_MediumMathematicalSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
MediumMathematicalSpace)
      (\case
          SpaceChar
MediumMathematicalSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsIdeographicSpace SpaceChar where
  _IdeographicSpace :: p () (f ()) -> p SpaceChar (f SpaceChar)
_IdeographicSpace =
    (() -> SpaceChar) -> (SpaceChar -> Maybe ()) -> Prism' SpaceChar ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> SpaceChar
IdeographicSpace)
      (\case
          SpaceChar
IdeographicSpace -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          SpaceChar
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

data IsoLatin1 =
  HorizontalTab_
  | LineFeed_
  | FormFeed_
  | CarriageReturn_
  | Whitespace_
  deriving (IsoLatin1 -> IsoLatin1 -> Bool
(IsoLatin1 -> IsoLatin1 -> Bool)
-> (IsoLatin1 -> IsoLatin1 -> Bool) -> Eq IsoLatin1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IsoLatin1 -> IsoLatin1 -> Bool
$c/= :: IsoLatin1 -> IsoLatin1 -> Bool
== :: IsoLatin1 -> IsoLatin1 -> Bool
$c== :: IsoLatin1 -> IsoLatin1 -> Bool
Eq, Eq IsoLatin1
Eq IsoLatin1
-> (IsoLatin1 -> IsoLatin1 -> Ordering)
-> (IsoLatin1 -> IsoLatin1 -> Bool)
-> (IsoLatin1 -> IsoLatin1 -> Bool)
-> (IsoLatin1 -> IsoLatin1 -> Bool)
-> (IsoLatin1 -> IsoLatin1 -> Bool)
-> (IsoLatin1 -> IsoLatin1 -> IsoLatin1)
-> (IsoLatin1 -> IsoLatin1 -> IsoLatin1)
-> Ord IsoLatin1
IsoLatin1 -> IsoLatin1 -> Bool
IsoLatin1 -> IsoLatin1 -> Ordering
IsoLatin1 -> IsoLatin1 -> IsoLatin1
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: IsoLatin1 -> IsoLatin1 -> IsoLatin1
$cmin :: IsoLatin1 -> IsoLatin1 -> IsoLatin1
max :: IsoLatin1 -> IsoLatin1 -> IsoLatin1
$cmax :: IsoLatin1 -> IsoLatin1 -> IsoLatin1
>= :: IsoLatin1 -> IsoLatin1 -> Bool
$c>= :: IsoLatin1 -> IsoLatin1 -> Bool
> :: IsoLatin1 -> IsoLatin1 -> Bool
$c> :: IsoLatin1 -> IsoLatin1 -> Bool
<= :: IsoLatin1 -> IsoLatin1 -> Bool
$c<= :: IsoLatin1 -> IsoLatin1 -> Bool
< :: IsoLatin1 -> IsoLatin1 -> Bool
$c< :: IsoLatin1 -> IsoLatin1 -> Bool
compare :: IsoLatin1 -> IsoLatin1 -> Ordering
$ccompare :: IsoLatin1 -> IsoLatin1 -> Ordering
$cp1Ord :: Eq IsoLatin1
Ord, Int -> IsoLatin1 -> ShowS
[IsoLatin1] -> ShowS
IsoLatin1 -> String
(Int -> IsoLatin1 -> ShowS)
-> (IsoLatin1 -> String)
-> ([IsoLatin1] -> ShowS)
-> Show IsoLatin1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IsoLatin1] -> ShowS
$cshowList :: [IsoLatin1] -> ShowS
show :: IsoLatin1 -> String
$cshow :: IsoLatin1 -> String
showsPrec :: Int -> IsoLatin1 -> ShowS
$cshowsPrec :: Int -> IsoLatin1 -> ShowS
Show, (forall x. IsoLatin1 -> Rep IsoLatin1 x)
-> (forall x. Rep IsoLatin1 x -> IsoLatin1) -> Generic IsoLatin1
forall x. Rep IsoLatin1 x -> IsoLatin1
forall x. IsoLatin1 -> Rep IsoLatin1 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IsoLatin1 x -> IsoLatin1
$cfrom :: forall x. IsoLatin1 -> Rep IsoLatin1 x
Generic)

class HasIsoLatin1 a where
  isoLatin1 :: Lens' a IsoLatin1

instance HasIsoLatin1 IsoLatin1 where
  isoLatin1 :: (IsoLatin1 -> f IsoLatin1) -> IsoLatin1 -> f IsoLatin1
isoLatin1 = (IsoLatin1 -> f IsoLatin1) -> IsoLatin1 -> f IsoLatin1
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

class AsIsoLatin1 a where
  _IsoLatin1 :: Prism' a IsoLatin1

instance AsIsoLatin1 Char where
  _IsoLatin1 :: p IsoLatin1 (f IsoLatin1) -> p Char (f Char)
_IsoLatin1 =
    (IsoLatin1 -> Char)
-> (Char -> Maybe IsoLatin1) -> Prism' Char IsoLatin1
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\case
        IsoLatin1
HorizontalTab_ ->
          Char
'\9'
        IsoLatin1
LineFeed_ ->
          Char
'\10'
        IsoLatin1
FormFeed_ ->
          Char
'\12'
        IsoLatin1
CarriageReturn_ ->
          Char
'\13'
        IsoLatin1
Whitespace_ ->
          Char
'\32'
      )
      (\case
        Char
'\9' ->
          IsoLatin1 -> Maybe IsoLatin1
forall a. a -> Maybe a
Just IsoLatin1
HorizontalTab_
        Char
'\10' ->
          IsoLatin1 -> Maybe IsoLatin1
forall a. a -> Maybe a
Just IsoLatin1
LineFeed_
        Char
'\12' ->
          IsoLatin1 -> Maybe IsoLatin1
forall a. a -> Maybe a
Just IsoLatin1
FormFeed_
        Char
'\13' ->
          IsoLatin1 -> Maybe IsoLatin1
forall a. a -> Maybe a
Just IsoLatin1
CarriageReturn_
        Char
'\32' ->
          IsoLatin1 -> Maybe IsoLatin1
forall a. a -> Maybe a
Just IsoLatin1
Whitespace_
        Char
_ ->
          Maybe IsoLatin1
forall a. Maybe a
Nothing
      )

instance AsIsoLatin1 IsoLatin1 where
  _IsoLatin1 :: p IsoLatin1 (f IsoLatin1) -> p IsoLatin1 (f IsoLatin1)
_IsoLatin1 = p IsoLatin1 (f IsoLatin1) -> p IsoLatin1 (f IsoLatin1)
forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id

parseIsoLatin1 ::
  CharParsing p =>
  p IsoLatin1
parseIsoLatin1 :: p IsoLatin1
parseIsoLatin1 =
  [p IsoLatin1] -> p IsoLatin1
forall (t :: * -> *) (f :: * -> *) a.
(Foldable t, Alternative f) =>
t (f a) -> f a
asum [
    IsoLatin1
HorizontalTab_ IsoLatin1 -> p () -> p IsoLatin1
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseHorizontalTab
  , IsoLatin1
LineFeed_ IsoLatin1 -> p () -> p IsoLatin1
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseLineFeed
  , IsoLatin1
FormFeed_ IsoLatin1 -> p () -> p IsoLatin1
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseFormFeed
  , IsoLatin1
CarriageReturn_ IsoLatin1 -> p () -> p IsoLatin1
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseCarriageReturn
  , IsoLatin1
Whitespace_ IsoLatin1 -> p () -> p IsoLatin1
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ p ()
forall (p :: * -> *). CharParsing p => p ()
parseWhitespace
  ]

instance AsHorizontalTab IsoLatin1 where
  _HorizontalTab :: p () (f ()) -> p IsoLatin1 (f IsoLatin1)
_HorizontalTab =
    (() -> IsoLatin1) -> (IsoLatin1 -> Maybe ()) -> Prism' IsoLatin1 ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> IsoLatin1
HorizontalTab_)
      (\case
          IsoLatin1
HorizontalTab_ -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          IsoLatin1
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsLineFeed IsoLatin1 where
  _LineFeed :: p () (f ()) -> p IsoLatin1 (f IsoLatin1)
_LineFeed =
    (() -> IsoLatin1) -> (IsoLatin1 -> Maybe ()) -> Prism' IsoLatin1 ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> IsoLatin1
LineFeed_)
      (\case
          IsoLatin1
LineFeed_ -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          IsoLatin1
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsFormFeed IsoLatin1 where
  _FormFeed :: p () (f ()) -> p IsoLatin1 (f IsoLatin1)
_FormFeed =
    (() -> IsoLatin1) -> (IsoLatin1 -> Maybe ()) -> Prism' IsoLatin1 ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> IsoLatin1
FormFeed_)
      (\case
          IsoLatin1
FormFeed_ -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          IsoLatin1
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsCarriageReturn IsoLatin1 where
  _CarriageReturn :: p () (f ()) -> p IsoLatin1 (f IsoLatin1)
_CarriageReturn =
    (() -> IsoLatin1) -> (IsoLatin1 -> Maybe ()) -> Prism' IsoLatin1 ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> IsoLatin1
CarriageReturn_)
      (\case
          IsoLatin1
CarriageReturn_ -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          IsoLatin1
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

instance AsWhitespace IsoLatin1 where
  _Whitespace :: p () (f ()) -> p IsoLatin1 (f IsoLatin1)
_Whitespace =
    (() -> IsoLatin1) -> (IsoLatin1 -> Maybe ()) -> Prism' IsoLatin1 ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
      (\() -> IsoLatin1
Whitespace_)
      (\case
          IsoLatin1
Whitespace_ -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
          IsoLatin1
_ -> Maybe ()
forall a. Maybe a
Nothing
      )

-- not exported

satisfy' ::
  CharParsing f =>
  (Char -> Bool)
  -> f ()
satisfy' :: (Char -> Bool) -> f ()
satisfy' Char -> Bool
p =
  () () -> f Char -> f ()
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ (Char -> Bool) -> f Char
forall (m :: * -> *). CharParsing m => (Char -> Bool) -> m Char
satisfy Char -> Bool
p