packages feed

moffy-0.1.0.0: src/Control/Moffy/Event/ThreadId.hs

{-# 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 (Show, Eq, Ord)
numbered [t| GetThreadId |]
instance Request GetThreadId where data Occurred GetThreadId = OccGetThreadId

getThreadId :: React s (Singleton GetThreadId) ThreadId
getThreadId = await' GetThreadIdReq \t OccGetThreadId -> t