{-# OPTIONS_HADDOCK hide #-}
------------------------------------------------------------------------------
-- |
-- Module      :  Control.Concurrent.Chan.Split.Internal
-- Copyright   :  (c) 2012 Leon P Smith
-- License     :  MIT
--
-- Maintainer  :  leon@melding-monads.com
--
-- The point of this module is that there are many potentially useful
-- operations on split channels not supported by the existing interface.
-- This includes atomic sequences of operations,  and playing tricks with
-- ports.  'sendMany' and 'split' were two functions that were in this
-- module as examples,  but I decided to promote them to the public API.
-- If you come up with any new operations and some good use cases for them,
-- let me know and I'll consider including them here or in the public API.
--
-- Note that the usual caveat that the Package Version Policy does not
-- apply to this module.   The interface can change at any time,
-- potentially breaking your code without even causing a compile-time
-- error. 
--
------------------------------------------------------------------------------

module Control.Concurrent.Chan.Split.Internal
     ( SendPort(..)
     , ReceivePort(..)
     , List
     , Item(..)
     ) where

import Control.Concurrent.Chan.Split.Implementation