{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Control.Moffy.Event.ThreadId (
	-- * GetThreadId
	GetThreadId, pattern OccGetThreadId, getThreadId,
	-- * ThreadId
	ThreadId ) where

import Control.Moffy.Internal.React.Type (React, Request(..), ThreadId, await')
import Data.Type.Set (numbered, Singleton)

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

data GetThreadId = GetThreadIdReq deriving (Int -> GetThreadId -> ShowS
[GetThreadId] -> ShowS
GetThreadId -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetThreadId] -> ShowS
$cshowList :: [GetThreadId] -> ShowS
show :: GetThreadId -> String
$cshow :: GetThreadId -> String
showsPrec :: Int -> GetThreadId -> ShowS
$cshowsPrec :: Int -> GetThreadId -> ShowS
Show, GetThreadId -> GetThreadId -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetThreadId -> GetThreadId -> Bool
$c/= :: GetThreadId -> GetThreadId -> Bool
== :: GetThreadId -> GetThreadId -> Bool
$c== :: GetThreadId -> GetThreadId -> Bool
Eq, Eq GetThreadId
GetThreadId -> GetThreadId -> Bool
GetThreadId -> GetThreadId -> Ordering
GetThreadId -> GetThreadId -> GetThreadId
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 :: GetThreadId -> GetThreadId -> GetThreadId
$cmin :: GetThreadId -> GetThreadId -> GetThreadId
max :: GetThreadId -> GetThreadId -> GetThreadId
$cmax :: GetThreadId -> GetThreadId -> GetThreadId
>= :: GetThreadId -> GetThreadId -> Bool
$c>= :: GetThreadId -> GetThreadId -> Bool
> :: GetThreadId -> GetThreadId -> Bool
$c> :: GetThreadId -> GetThreadId -> Bool
<= :: GetThreadId -> GetThreadId -> Bool
$c<= :: GetThreadId -> GetThreadId -> Bool
< :: GetThreadId -> GetThreadId -> Bool
$c< :: GetThreadId -> GetThreadId -> Bool
compare :: GetThreadId -> GetThreadId -> Ordering
$ccompare :: GetThreadId -> GetThreadId -> Ordering
Ord)
numbered [t| GetThreadId |]
instance Request GetThreadId where data Occurred GetThreadId = OccGetThreadId

getThreadId :: React s (Singleton GetThreadId) ThreadId
getThreadId :: forall s. React s (Singleton GetThreadId) ThreadId
getThreadId = forall e r s.
e -> (ThreadId -> Occurred e -> r) -> React s (Singleton e) r
await' GetThreadId
GetThreadIdReq \ThreadId
t Occurred GetThreadId
R:OccurredGetThreadId
OccGetThreadId -> ThreadId
t