{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Control.Moffy.Handle.ThreadId (
	-- * GetThreadId
	GetThreadId,
	-- * Handle
	handleGetThreadId ) where

import Control.Moffy.Event.ThreadId (GetThreadId, pattern OccGetThreadId)
import Control.Moffy.Handle (Handle')
import Data.Type.Set (Singleton)

import Data.OneOrMoreApp

---------------------------------------------------------------------------

handleGetThreadId :: Applicative m => Handle' m (Singleton GetThreadId)
handleGetThreadId :: forall (m :: * -> *).
Applicative m =>
Handle' m (Singleton GetThreadId)
handleGetThreadId EvReqs (Singleton GetThreadId)
_rqs = forall (f :: * -> *) a. Applicative f => a -> f a
pure forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. a -> Maybe a
Just forall a b. (a -> b) -> a -> b
$ forall a (f :: * -> *). a -> OneOrMoreApp ('SetApp f (Singleton a))
Singleton Occurred GetThreadId
OccGetThreadId