{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Comprehend.Types.PartOfSpeechTagType
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Comprehend.Types.PartOfSpeechTagType
  ( PartOfSpeechTagType
      ( ..,
        PartOfSpeechTagType_ADJ,
        PartOfSpeechTagType_ADP,
        PartOfSpeechTagType_ADV,
        PartOfSpeechTagType_AUX,
        PartOfSpeechTagType_CCONJ,
        PartOfSpeechTagType_CONJ,
        PartOfSpeechTagType_DET,
        PartOfSpeechTagType_INTJ,
        PartOfSpeechTagType_NOUN,
        PartOfSpeechTagType_NUM,
        PartOfSpeechTagType_O,
        PartOfSpeechTagType_PART,
        PartOfSpeechTagType_PRON,
        PartOfSpeechTagType_PROPN,
        PartOfSpeechTagType_PUNCT,
        PartOfSpeechTagType_SCONJ,
        PartOfSpeechTagType_SYM,
        PartOfSpeechTagType_VERB
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype PartOfSpeechTagType = PartOfSpeechTagType'
  { PartOfSpeechTagType -> Text
fromPartOfSpeechTagType ::
      Data.Text
  }
  deriving stock
    ( Int -> PartOfSpeechTagType -> ShowS
[PartOfSpeechTagType] -> ShowS
PartOfSpeechTagType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PartOfSpeechTagType] -> ShowS
$cshowList :: [PartOfSpeechTagType] -> ShowS
show :: PartOfSpeechTagType -> String
$cshow :: PartOfSpeechTagType -> String
showsPrec :: Int -> PartOfSpeechTagType -> ShowS
$cshowsPrec :: Int -> PartOfSpeechTagType -> ShowS
Prelude.Show,
      ReadPrec [PartOfSpeechTagType]
ReadPrec PartOfSpeechTagType
Int -> ReadS PartOfSpeechTagType
ReadS [PartOfSpeechTagType]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PartOfSpeechTagType]
$creadListPrec :: ReadPrec [PartOfSpeechTagType]
readPrec :: ReadPrec PartOfSpeechTagType
$creadPrec :: ReadPrec PartOfSpeechTagType
readList :: ReadS [PartOfSpeechTagType]
$creadList :: ReadS [PartOfSpeechTagType]
readsPrec :: Int -> ReadS PartOfSpeechTagType
$creadsPrec :: Int -> ReadS PartOfSpeechTagType
Prelude.Read,
      PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c/= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
== :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c== :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
Prelude.Eq,
      Eq PartOfSpeechTagType
PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
PartOfSpeechTagType -> PartOfSpeechTagType -> Ordering
PartOfSpeechTagType -> PartOfSpeechTagType -> PartOfSpeechTagType
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 :: PartOfSpeechTagType -> PartOfSpeechTagType -> PartOfSpeechTagType
$cmin :: PartOfSpeechTagType -> PartOfSpeechTagType -> PartOfSpeechTagType
max :: PartOfSpeechTagType -> PartOfSpeechTagType -> PartOfSpeechTagType
$cmax :: PartOfSpeechTagType -> PartOfSpeechTagType -> PartOfSpeechTagType
>= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c>= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
> :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c> :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
<= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c<= :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
< :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
$c< :: PartOfSpeechTagType -> PartOfSpeechTagType -> Bool
compare :: PartOfSpeechTagType -> PartOfSpeechTagType -> Ordering
$ccompare :: PartOfSpeechTagType -> PartOfSpeechTagType -> Ordering
Prelude.Ord,
      forall x. Rep PartOfSpeechTagType x -> PartOfSpeechTagType
forall x. PartOfSpeechTagType -> Rep PartOfSpeechTagType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PartOfSpeechTagType x -> PartOfSpeechTagType
$cfrom :: forall x. PartOfSpeechTagType -> Rep PartOfSpeechTagType x
Prelude.Generic
    )
  deriving newtype
    ( Eq PartOfSpeechTagType
Int -> PartOfSpeechTagType -> Int
PartOfSpeechTagType -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: PartOfSpeechTagType -> Int
$chash :: PartOfSpeechTagType -> Int
hashWithSalt :: Int -> PartOfSpeechTagType -> Int
$chashWithSalt :: Int -> PartOfSpeechTagType -> Int
Prelude.Hashable,
      PartOfSpeechTagType -> ()
forall a. (a -> ()) -> NFData a
rnf :: PartOfSpeechTagType -> ()
$crnf :: PartOfSpeechTagType -> ()
Prelude.NFData,
      Text -> Either String PartOfSpeechTagType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String PartOfSpeechTagType
$cfromText :: Text -> Either String PartOfSpeechTagType
Data.FromText,
      PartOfSpeechTagType -> Text
forall a. (a -> Text) -> ToText a
toText :: PartOfSpeechTagType -> Text
$ctoText :: PartOfSpeechTagType -> Text
Data.ToText,
      PartOfSpeechTagType -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: PartOfSpeechTagType -> ByteString
$ctoBS :: PartOfSpeechTagType -> ByteString
Data.ToByteString,
      PartOfSpeechTagType -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: PartOfSpeechTagType -> ByteStringBuilder
$cbuild :: PartOfSpeechTagType -> ByteStringBuilder
Data.ToLog,
      HeaderName -> PartOfSpeechTagType -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> PartOfSpeechTagType -> [Header]
$ctoHeader :: HeaderName -> PartOfSpeechTagType -> [Header]
Data.ToHeader,
      PartOfSpeechTagType -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: PartOfSpeechTagType -> QueryString
$ctoQuery :: PartOfSpeechTagType -> QueryString
Data.ToQuery,
      Value -> Parser [PartOfSpeechTagType]
Value -> Parser PartOfSpeechTagType
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [PartOfSpeechTagType]
$cparseJSONList :: Value -> Parser [PartOfSpeechTagType]
parseJSON :: Value -> Parser PartOfSpeechTagType
$cparseJSON :: Value -> Parser PartOfSpeechTagType
Data.FromJSON,
      FromJSONKeyFunction [PartOfSpeechTagType]
FromJSONKeyFunction PartOfSpeechTagType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [PartOfSpeechTagType]
$cfromJSONKeyList :: FromJSONKeyFunction [PartOfSpeechTagType]
fromJSONKey :: FromJSONKeyFunction PartOfSpeechTagType
$cfromJSONKey :: FromJSONKeyFunction PartOfSpeechTagType
Data.FromJSONKey,
      [PartOfSpeechTagType] -> Encoding
[PartOfSpeechTagType] -> Value
PartOfSpeechTagType -> Encoding
PartOfSpeechTagType -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [PartOfSpeechTagType] -> Encoding
$ctoEncodingList :: [PartOfSpeechTagType] -> Encoding
toJSONList :: [PartOfSpeechTagType] -> Value
$ctoJSONList :: [PartOfSpeechTagType] -> Value
toEncoding :: PartOfSpeechTagType -> Encoding
$ctoEncoding :: PartOfSpeechTagType -> Encoding
toJSON :: PartOfSpeechTagType -> Value
$ctoJSON :: PartOfSpeechTagType -> Value
Data.ToJSON,
      ToJSONKeyFunction [PartOfSpeechTagType]
ToJSONKeyFunction PartOfSpeechTagType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [PartOfSpeechTagType]
$ctoJSONKeyList :: ToJSONKeyFunction [PartOfSpeechTagType]
toJSONKey :: ToJSONKeyFunction PartOfSpeechTagType
$ctoJSONKey :: ToJSONKeyFunction PartOfSpeechTagType
Data.ToJSONKey,
      [Node] -> Either String PartOfSpeechTagType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String PartOfSpeechTagType
$cparseXML :: [Node] -> Either String PartOfSpeechTagType
Data.FromXML,
      PartOfSpeechTagType -> XML
forall a. (a -> XML) -> ToXML a
toXML :: PartOfSpeechTagType -> XML
$ctoXML :: PartOfSpeechTagType -> XML
Data.ToXML
    )

pattern PartOfSpeechTagType_ADJ :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_ADJ :: PartOfSpeechTagType
$mPartOfSpeechTagType_ADJ :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_ADJ = PartOfSpeechTagType' "ADJ"

pattern PartOfSpeechTagType_ADP :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_ADP :: PartOfSpeechTagType
$mPartOfSpeechTagType_ADP :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_ADP = PartOfSpeechTagType' "ADP"

pattern PartOfSpeechTagType_ADV :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_ADV :: PartOfSpeechTagType
$mPartOfSpeechTagType_ADV :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_ADV = PartOfSpeechTagType' "ADV"

pattern PartOfSpeechTagType_AUX :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_AUX :: PartOfSpeechTagType
$mPartOfSpeechTagType_AUX :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_AUX = PartOfSpeechTagType' "AUX"

pattern PartOfSpeechTagType_CCONJ :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_CCONJ :: PartOfSpeechTagType
$mPartOfSpeechTagType_CCONJ :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_CCONJ = PartOfSpeechTagType' "CCONJ"

pattern PartOfSpeechTagType_CONJ :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_CONJ :: PartOfSpeechTagType
$mPartOfSpeechTagType_CONJ :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_CONJ = PartOfSpeechTagType' "CONJ"

pattern PartOfSpeechTagType_DET :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_DET :: PartOfSpeechTagType
$mPartOfSpeechTagType_DET :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_DET = PartOfSpeechTagType' "DET"

pattern PartOfSpeechTagType_INTJ :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_INTJ :: PartOfSpeechTagType
$mPartOfSpeechTagType_INTJ :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_INTJ = PartOfSpeechTagType' "INTJ"

pattern PartOfSpeechTagType_NOUN :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_NOUN :: PartOfSpeechTagType
$mPartOfSpeechTagType_NOUN :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_NOUN = PartOfSpeechTagType' "NOUN"

pattern PartOfSpeechTagType_NUM :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_NUM :: PartOfSpeechTagType
$mPartOfSpeechTagType_NUM :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_NUM = PartOfSpeechTagType' "NUM"

pattern PartOfSpeechTagType_O :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_O :: PartOfSpeechTagType
$mPartOfSpeechTagType_O :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_O = PartOfSpeechTagType' "O"

pattern PartOfSpeechTagType_PART :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_PART :: PartOfSpeechTagType
$mPartOfSpeechTagType_PART :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_PART = PartOfSpeechTagType' "PART"

pattern PartOfSpeechTagType_PRON :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_PRON :: PartOfSpeechTagType
$mPartOfSpeechTagType_PRON :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_PRON = PartOfSpeechTagType' "PRON"

pattern PartOfSpeechTagType_PROPN :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_PROPN :: PartOfSpeechTagType
$mPartOfSpeechTagType_PROPN :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_PROPN = PartOfSpeechTagType' "PROPN"

pattern PartOfSpeechTagType_PUNCT :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_PUNCT :: PartOfSpeechTagType
$mPartOfSpeechTagType_PUNCT :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_PUNCT = PartOfSpeechTagType' "PUNCT"

pattern PartOfSpeechTagType_SCONJ :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_SCONJ :: PartOfSpeechTagType
$mPartOfSpeechTagType_SCONJ :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_SCONJ = PartOfSpeechTagType' "SCONJ"

pattern PartOfSpeechTagType_SYM :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_SYM :: PartOfSpeechTagType
$mPartOfSpeechTagType_SYM :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_SYM = PartOfSpeechTagType' "SYM"

pattern PartOfSpeechTagType_VERB :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_VERB :: PartOfSpeechTagType
$mPartOfSpeechTagType_VERB :: forall {r}.
PartOfSpeechTagType -> ((# #) -> r) -> ((# #) -> r) -> r
PartOfSpeechTagType_VERB = PartOfSpeechTagType' "VERB"

{-# COMPLETE
  PartOfSpeechTagType_ADJ,
  PartOfSpeechTagType_ADP,
  PartOfSpeechTagType_ADV,
  PartOfSpeechTagType_AUX,
  PartOfSpeechTagType_CCONJ,
  PartOfSpeechTagType_CONJ,
  PartOfSpeechTagType_DET,
  PartOfSpeechTagType_INTJ,
  PartOfSpeechTagType_NOUN,
  PartOfSpeechTagType_NUM,
  PartOfSpeechTagType_O,
  PartOfSpeechTagType_PART,
  PartOfSpeechTagType_PRON,
  PartOfSpeechTagType_PROPN,
  PartOfSpeechTagType_PUNCT,
  PartOfSpeechTagType_SCONJ,
  PartOfSpeechTagType_SYM,
  PartOfSpeechTagType_VERB,
  PartOfSpeechTagType'
  #-}