{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- 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.Prelude as Prelude

newtype PartOfSpeechTagType = PartOfSpeechTagType'
  { PartOfSpeechTagType -> Text
fromPartOfSpeechTagType ::
      Core.Text
  }
  deriving stock
    ( Int -> PartOfSpeechTagType -> ShowS
[PartOfSpeechTagType] -> ShowS
PartOfSpeechTagType -> String
(Int -> PartOfSpeechTagType -> ShowS)
-> (PartOfSpeechTagType -> String)
-> ([PartOfSpeechTagType] -> ShowS)
-> Show PartOfSpeechTagType
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]
(Int -> ReadS PartOfSpeechTagType)
-> ReadS [PartOfSpeechTagType]
-> ReadPrec PartOfSpeechTagType
-> ReadPrec [PartOfSpeechTagType]
-> Read 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
(PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> Eq PartOfSpeechTagType
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
Eq PartOfSpeechTagType
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Ordering)
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> (PartOfSpeechTagType -> PartOfSpeechTagType -> Bool)
-> (PartOfSpeechTagType
    -> PartOfSpeechTagType -> PartOfSpeechTagType)
-> (PartOfSpeechTagType
    -> PartOfSpeechTagType -> PartOfSpeechTagType)
-> Ord 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
$cp1Ord :: Eq PartOfSpeechTagType
Prelude.Ord,
      (forall x. PartOfSpeechTagType -> Rep PartOfSpeechTagType x)
-> (forall x. Rep PartOfSpeechTagType x -> PartOfSpeechTagType)
-> Generic PartOfSpeechTagType
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
    ( Int -> PartOfSpeechTagType -> Int
PartOfSpeechTagType -> Int
(Int -> PartOfSpeechTagType -> Int)
-> (PartOfSpeechTagType -> Int) -> Hashable PartOfSpeechTagType
forall 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 -> ()
(PartOfSpeechTagType -> ()) -> NFData PartOfSpeechTagType
forall a. (a -> ()) -> NFData a
rnf :: PartOfSpeechTagType -> ()
$crnf :: PartOfSpeechTagType -> ()
Prelude.NFData,
      Text -> Either String PartOfSpeechTagType
(Text -> Either String PartOfSpeechTagType)
-> FromText PartOfSpeechTagType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String PartOfSpeechTagType
$cfromText :: Text -> Either String PartOfSpeechTagType
Core.FromText,
      PartOfSpeechTagType -> Text
(PartOfSpeechTagType -> Text) -> ToText PartOfSpeechTagType
forall a. (a -> Text) -> ToText a
toText :: PartOfSpeechTagType -> Text
$ctoText :: PartOfSpeechTagType -> Text
Core.ToText,
      PartOfSpeechTagType -> ByteString
(PartOfSpeechTagType -> ByteString)
-> ToByteString PartOfSpeechTagType
forall a. (a -> ByteString) -> ToByteString a
toBS :: PartOfSpeechTagType -> ByteString
$ctoBS :: PartOfSpeechTagType -> ByteString
Core.ToByteString,
      PartOfSpeechTagType -> ByteStringBuilder
(PartOfSpeechTagType -> ByteStringBuilder)
-> ToLog PartOfSpeechTagType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: PartOfSpeechTagType -> ByteStringBuilder
$cbuild :: PartOfSpeechTagType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> PartOfSpeechTagType -> [Header]
(HeaderName -> PartOfSpeechTagType -> [Header])
-> ToHeader PartOfSpeechTagType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> PartOfSpeechTagType -> [Header]
$ctoHeader :: HeaderName -> PartOfSpeechTagType -> [Header]
Core.ToHeader,
      PartOfSpeechTagType -> QueryString
(PartOfSpeechTagType -> QueryString) -> ToQuery PartOfSpeechTagType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: PartOfSpeechTagType -> QueryString
$ctoQuery :: PartOfSpeechTagType -> QueryString
Core.ToQuery,
      Value -> Parser [PartOfSpeechTagType]
Value -> Parser PartOfSpeechTagType
(Value -> Parser PartOfSpeechTagType)
-> (Value -> Parser [PartOfSpeechTagType])
-> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [PartOfSpeechTagType]
FromJSONKeyFunction PartOfSpeechTagType
FromJSONKeyFunction PartOfSpeechTagType
-> FromJSONKeyFunction [PartOfSpeechTagType]
-> FromJSONKey PartOfSpeechTagType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [PartOfSpeechTagType]
$cfromJSONKeyList :: FromJSONKeyFunction [PartOfSpeechTagType]
fromJSONKey :: FromJSONKeyFunction PartOfSpeechTagType
$cfromJSONKey :: FromJSONKeyFunction PartOfSpeechTagType
Core.FromJSONKey,
      [PartOfSpeechTagType] -> Encoding
[PartOfSpeechTagType] -> Value
PartOfSpeechTagType -> Encoding
PartOfSpeechTagType -> Value
(PartOfSpeechTagType -> Value)
-> (PartOfSpeechTagType -> Encoding)
-> ([PartOfSpeechTagType] -> Value)
-> ([PartOfSpeechTagType] -> Encoding)
-> ToJSON PartOfSpeechTagType
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
Core.ToJSON,
      ToJSONKeyFunction [PartOfSpeechTagType]
ToJSONKeyFunction PartOfSpeechTagType
ToJSONKeyFunction PartOfSpeechTagType
-> ToJSONKeyFunction [PartOfSpeechTagType]
-> ToJSONKey PartOfSpeechTagType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [PartOfSpeechTagType]
$ctoJSONKeyList :: ToJSONKeyFunction [PartOfSpeechTagType]
toJSONKey :: ToJSONKeyFunction PartOfSpeechTagType
$ctoJSONKey :: ToJSONKeyFunction PartOfSpeechTagType
Core.ToJSONKey,
      [Node] -> Either String PartOfSpeechTagType
([Node] -> Either String PartOfSpeechTagType)
-> FromXML PartOfSpeechTagType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String PartOfSpeechTagType
$cparseXML :: [Node] -> Either String PartOfSpeechTagType
Core.FromXML,
      PartOfSpeechTagType -> XML
(PartOfSpeechTagType -> XML) -> ToXML PartOfSpeechTagType
forall a. (a -> XML) -> ToXML a
toXML :: PartOfSpeechTagType -> XML
$ctoXML :: PartOfSpeechTagType -> XML
Core.ToXML
    )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pattern PartOfSpeechTagType_VERB :: PartOfSpeechTagType
pattern $bPartOfSpeechTagType_VERB :: PartOfSpeechTagType
$mPartOfSpeechTagType_VERB :: forall r. PartOfSpeechTagType -> (Void# -> r) -> (Void# -> 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'
  #-}