{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.QuickSight.DescribeGroupMembership
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Use the @DescribeGroupMembership@ operation to determine if a user is a
-- member of the specified group. If the user exists and is a member of the
-- specified group, an associated @GroupMember@ object is returned.
module Amazonka.QuickSight.DescribeGroupMembership
  ( -- * Creating a Request
    DescribeGroupMembership (..),
    newDescribeGroupMembership,

    -- * Request Lenses
    describeGroupMembership_memberName,
    describeGroupMembership_groupName,
    describeGroupMembership_awsAccountId,
    describeGroupMembership_namespace,

    -- * Destructuring the Response
    DescribeGroupMembershipResponse (..),
    newDescribeGroupMembershipResponse,

    -- * Response Lenses
    describeGroupMembershipResponse_groupMember,
    describeGroupMembershipResponse_requestId,
    describeGroupMembershipResponse_status,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.QuickSight.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeGroupMembership' smart constructor.
data DescribeGroupMembership = DescribeGroupMembership'
  { -- | The user name of the user that you want to search for.
    DescribeGroupMembership -> Text
memberName :: Prelude.Text,
    -- | The name of the group that you want to search.
    DescribeGroupMembership -> Text
groupName :: Prelude.Text,
    -- | The ID for the Amazon Web Services account that the group is in.
    -- Currently, you use the ID for the Amazon Web Services account that
    -- contains your Amazon QuickSight account.
    DescribeGroupMembership -> Text
awsAccountId :: Prelude.Text,
    -- | The namespace that includes the group you are searching within.
    DescribeGroupMembership -> Text
namespace :: Prelude.Text
  }
  deriving (DescribeGroupMembership -> DescribeGroupMembership -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGroupMembership -> DescribeGroupMembership -> Bool
$c/= :: DescribeGroupMembership -> DescribeGroupMembership -> Bool
== :: DescribeGroupMembership -> DescribeGroupMembership -> Bool
$c== :: DescribeGroupMembership -> DescribeGroupMembership -> Bool
Prelude.Eq, ReadPrec [DescribeGroupMembership]
ReadPrec DescribeGroupMembership
Int -> ReadS DescribeGroupMembership
ReadS [DescribeGroupMembership]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGroupMembership]
$creadListPrec :: ReadPrec [DescribeGroupMembership]
readPrec :: ReadPrec DescribeGroupMembership
$creadPrec :: ReadPrec DescribeGroupMembership
readList :: ReadS [DescribeGroupMembership]
$creadList :: ReadS [DescribeGroupMembership]
readsPrec :: Int -> ReadS DescribeGroupMembership
$creadsPrec :: Int -> ReadS DescribeGroupMembership
Prelude.Read, Int -> DescribeGroupMembership -> ShowS
[DescribeGroupMembership] -> ShowS
DescribeGroupMembership -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGroupMembership] -> ShowS
$cshowList :: [DescribeGroupMembership] -> ShowS
show :: DescribeGroupMembership -> String
$cshow :: DescribeGroupMembership -> String
showsPrec :: Int -> DescribeGroupMembership -> ShowS
$cshowsPrec :: Int -> DescribeGroupMembership -> ShowS
Prelude.Show, forall x. Rep DescribeGroupMembership x -> DescribeGroupMembership
forall x. DescribeGroupMembership -> Rep DescribeGroupMembership x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeGroupMembership x -> DescribeGroupMembership
$cfrom :: forall x. DescribeGroupMembership -> Rep DescribeGroupMembership x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGroupMembership' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'memberName', 'describeGroupMembership_memberName' - The user name of the user that you want to search for.
--
-- 'groupName', 'describeGroupMembership_groupName' - The name of the group that you want to search.
--
-- 'awsAccountId', 'describeGroupMembership_awsAccountId' - The ID for the Amazon Web Services account that the group is in.
-- Currently, you use the ID for the Amazon Web Services account that
-- contains your Amazon QuickSight account.
--
-- 'namespace', 'describeGroupMembership_namespace' - The namespace that includes the group you are searching within.
newDescribeGroupMembership ::
  -- | 'memberName'
  Prelude.Text ->
  -- | 'groupName'
  Prelude.Text ->
  -- | 'awsAccountId'
  Prelude.Text ->
  -- | 'namespace'
  Prelude.Text ->
  DescribeGroupMembership
newDescribeGroupMembership :: Text -> Text -> Text -> Text -> DescribeGroupMembership
newDescribeGroupMembership
  Text
pMemberName_
  Text
pGroupName_
  Text
pAwsAccountId_
  Text
pNamespace_ =
    DescribeGroupMembership'
      { $sel:memberName:DescribeGroupMembership' :: Text
memberName = Text
pMemberName_,
        $sel:groupName:DescribeGroupMembership' :: Text
groupName = Text
pGroupName_,
        $sel:awsAccountId:DescribeGroupMembership' :: Text
awsAccountId = Text
pAwsAccountId_,
        $sel:namespace:DescribeGroupMembership' :: Text
namespace = Text
pNamespace_
      }

-- | The user name of the user that you want to search for.
describeGroupMembership_memberName :: Lens.Lens' DescribeGroupMembership Prelude.Text
describeGroupMembership_memberName :: Lens' DescribeGroupMembership Text
describeGroupMembership_memberName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembership' {Text
memberName :: Text
$sel:memberName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
memberName} -> Text
memberName) (\s :: DescribeGroupMembership
s@DescribeGroupMembership' {} Text
a -> DescribeGroupMembership
s {$sel:memberName:DescribeGroupMembership' :: Text
memberName = Text
a} :: DescribeGroupMembership)

-- | The name of the group that you want to search.
describeGroupMembership_groupName :: Lens.Lens' DescribeGroupMembership Prelude.Text
describeGroupMembership_groupName :: Lens' DescribeGroupMembership Text
describeGroupMembership_groupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembership' {Text
groupName :: Text
$sel:groupName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
groupName} -> Text
groupName) (\s :: DescribeGroupMembership
s@DescribeGroupMembership' {} Text
a -> DescribeGroupMembership
s {$sel:groupName:DescribeGroupMembership' :: Text
groupName = Text
a} :: DescribeGroupMembership)

-- | The ID for the Amazon Web Services account that the group is in.
-- Currently, you use the ID for the Amazon Web Services account that
-- contains your Amazon QuickSight account.
describeGroupMembership_awsAccountId :: Lens.Lens' DescribeGroupMembership Prelude.Text
describeGroupMembership_awsAccountId :: Lens' DescribeGroupMembership Text
describeGroupMembership_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembership' {Text
awsAccountId :: Text
$sel:awsAccountId:DescribeGroupMembership' :: DescribeGroupMembership -> Text
awsAccountId} -> Text
awsAccountId) (\s :: DescribeGroupMembership
s@DescribeGroupMembership' {} Text
a -> DescribeGroupMembership
s {$sel:awsAccountId:DescribeGroupMembership' :: Text
awsAccountId = Text
a} :: DescribeGroupMembership)

-- | The namespace that includes the group you are searching within.
describeGroupMembership_namespace :: Lens.Lens' DescribeGroupMembership Prelude.Text
describeGroupMembership_namespace :: Lens' DescribeGroupMembership Text
describeGroupMembership_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembership' {Text
namespace :: Text
$sel:namespace:DescribeGroupMembership' :: DescribeGroupMembership -> Text
namespace} -> Text
namespace) (\s :: DescribeGroupMembership
s@DescribeGroupMembership' {} Text
a -> DescribeGroupMembership
s {$sel:namespace:DescribeGroupMembership' :: Text
namespace = Text
a} :: DescribeGroupMembership)

instance Core.AWSRequest DescribeGroupMembership where
  type
    AWSResponse DescribeGroupMembership =
      DescribeGroupMembershipResponse
  request :: (Service -> Service)
-> DescribeGroupMembership -> Request DescribeGroupMembership
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeGroupMembership
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeGroupMembership)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe GroupMember
-> Maybe Text -> Int -> DescribeGroupMembershipResponse
DescribeGroupMembershipResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"GroupMember")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"RequestId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeGroupMembership where
  hashWithSalt :: Int -> DescribeGroupMembership -> Int
hashWithSalt Int
_salt DescribeGroupMembership' {Text
namespace :: Text
awsAccountId :: Text
groupName :: Text
memberName :: Text
$sel:namespace:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:awsAccountId:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:groupName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:memberName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
memberName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
groupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awsAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
namespace

instance Prelude.NFData DescribeGroupMembership where
  rnf :: DescribeGroupMembership -> ()
rnf DescribeGroupMembership' {Text
namespace :: Text
awsAccountId :: Text
groupName :: Text
memberName :: Text
$sel:namespace:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:awsAccountId:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:groupName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:memberName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
memberName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
groupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
awsAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
namespace

instance Data.ToHeaders DescribeGroupMembership where
  toHeaders :: DescribeGroupMembership -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeGroupMembership where
  toPath :: DescribeGroupMembership -> ByteString
toPath DescribeGroupMembership' {Text
namespace :: Text
awsAccountId :: Text
groupName :: Text
memberName :: Text
$sel:namespace:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:awsAccountId:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:groupName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
$sel:memberName:DescribeGroupMembership' :: DescribeGroupMembership -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/accounts/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
awsAccountId,
        ByteString
"/namespaces/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
namespace,
        ByteString
"/groups/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
groupName,
        ByteString
"/members/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
memberName
      ]

instance Data.ToQuery DescribeGroupMembership where
  toQuery :: DescribeGroupMembership -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeGroupMembershipResponse' smart constructor.
data DescribeGroupMembershipResponse = DescribeGroupMembershipResponse'
  { DescribeGroupMembershipResponse -> Maybe GroupMember
groupMember :: Prelude.Maybe GroupMember,
    -- | The Amazon Web Services request ID for this operation.
    DescribeGroupMembershipResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
    -- | The HTTP status of the request.
    DescribeGroupMembershipResponse -> Int
status :: Prelude.Int
  }
  deriving (DescribeGroupMembershipResponse
-> DescribeGroupMembershipResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGroupMembershipResponse
-> DescribeGroupMembershipResponse -> Bool
$c/= :: DescribeGroupMembershipResponse
-> DescribeGroupMembershipResponse -> Bool
== :: DescribeGroupMembershipResponse
-> DescribeGroupMembershipResponse -> Bool
$c== :: DescribeGroupMembershipResponse
-> DescribeGroupMembershipResponse -> Bool
Prelude.Eq, ReadPrec [DescribeGroupMembershipResponse]
ReadPrec DescribeGroupMembershipResponse
Int -> ReadS DescribeGroupMembershipResponse
ReadS [DescribeGroupMembershipResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGroupMembershipResponse]
$creadListPrec :: ReadPrec [DescribeGroupMembershipResponse]
readPrec :: ReadPrec DescribeGroupMembershipResponse
$creadPrec :: ReadPrec DescribeGroupMembershipResponse
readList :: ReadS [DescribeGroupMembershipResponse]
$creadList :: ReadS [DescribeGroupMembershipResponse]
readsPrec :: Int -> ReadS DescribeGroupMembershipResponse
$creadsPrec :: Int -> ReadS DescribeGroupMembershipResponse
Prelude.Read, Int -> DescribeGroupMembershipResponse -> ShowS
[DescribeGroupMembershipResponse] -> ShowS
DescribeGroupMembershipResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGroupMembershipResponse] -> ShowS
$cshowList :: [DescribeGroupMembershipResponse] -> ShowS
show :: DescribeGroupMembershipResponse -> String
$cshow :: DescribeGroupMembershipResponse -> String
showsPrec :: Int -> DescribeGroupMembershipResponse -> ShowS
$cshowsPrec :: Int -> DescribeGroupMembershipResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeGroupMembershipResponse x
-> DescribeGroupMembershipResponse
forall x.
DescribeGroupMembershipResponse
-> Rep DescribeGroupMembershipResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeGroupMembershipResponse x
-> DescribeGroupMembershipResponse
$cfrom :: forall x.
DescribeGroupMembershipResponse
-> Rep DescribeGroupMembershipResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGroupMembershipResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'groupMember', 'describeGroupMembershipResponse_groupMember' - Undocumented member.
--
-- 'requestId', 'describeGroupMembershipResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- 'status', 'describeGroupMembershipResponse_status' - The HTTP status of the request.
newDescribeGroupMembershipResponse ::
  -- | 'status'
  Prelude.Int ->
  DescribeGroupMembershipResponse
newDescribeGroupMembershipResponse :: Int -> DescribeGroupMembershipResponse
newDescribeGroupMembershipResponse Int
pStatus_ =
  DescribeGroupMembershipResponse'
    { $sel:groupMember:DescribeGroupMembershipResponse' :: Maybe GroupMember
groupMember =
        forall a. Maybe a
Prelude.Nothing,
      $sel:requestId:DescribeGroupMembershipResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeGroupMembershipResponse' :: Int
status = Int
pStatus_
    }

-- | Undocumented member.
describeGroupMembershipResponse_groupMember :: Lens.Lens' DescribeGroupMembershipResponse (Prelude.Maybe GroupMember)
describeGroupMembershipResponse_groupMember :: Lens' DescribeGroupMembershipResponse (Maybe GroupMember)
describeGroupMembershipResponse_groupMember = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembershipResponse' {Maybe GroupMember
groupMember :: Maybe GroupMember
$sel:groupMember:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Maybe GroupMember
groupMember} -> Maybe GroupMember
groupMember) (\s :: DescribeGroupMembershipResponse
s@DescribeGroupMembershipResponse' {} Maybe GroupMember
a -> DescribeGroupMembershipResponse
s {$sel:groupMember:DescribeGroupMembershipResponse' :: Maybe GroupMember
groupMember = Maybe GroupMember
a} :: DescribeGroupMembershipResponse)

-- | The Amazon Web Services request ID for this operation.
describeGroupMembershipResponse_requestId :: Lens.Lens' DescribeGroupMembershipResponse (Prelude.Maybe Prelude.Text)
describeGroupMembershipResponse_requestId :: Lens' DescribeGroupMembershipResponse (Maybe Text)
describeGroupMembershipResponse_requestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembershipResponse' {Maybe Text
requestId :: Maybe Text
$sel:requestId:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Maybe Text
requestId} -> Maybe Text
requestId) (\s :: DescribeGroupMembershipResponse
s@DescribeGroupMembershipResponse' {} Maybe Text
a -> DescribeGroupMembershipResponse
s {$sel:requestId:DescribeGroupMembershipResponse' :: Maybe Text
requestId = Maybe Text
a} :: DescribeGroupMembershipResponse)

-- | The HTTP status of the request.
describeGroupMembershipResponse_status :: Lens.Lens' DescribeGroupMembershipResponse Prelude.Int
describeGroupMembershipResponse_status :: Lens' DescribeGroupMembershipResponse Int
describeGroupMembershipResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGroupMembershipResponse' {Int
status :: Int
$sel:status:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Int
status} -> Int
status) (\s :: DescribeGroupMembershipResponse
s@DescribeGroupMembershipResponse' {} Int
a -> DescribeGroupMembershipResponse
s {$sel:status:DescribeGroupMembershipResponse' :: Int
status = Int
a} :: DescribeGroupMembershipResponse)

instance
  Prelude.NFData
    DescribeGroupMembershipResponse
  where
  rnf :: DescribeGroupMembershipResponse -> ()
rnf DescribeGroupMembershipResponse' {Int
Maybe Text
Maybe GroupMember
status :: Int
requestId :: Maybe Text
groupMember :: Maybe GroupMember
$sel:status:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Int
$sel:requestId:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Maybe Text
$sel:groupMember:DescribeGroupMembershipResponse' :: DescribeGroupMembershipResponse -> Maybe GroupMember
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe GroupMember
groupMember
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
requestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
status