{-# LANGUAGE ExistentialQuantification #-} module Network.WebSockets.Protocol.Hybi10 ( Hybi10 ) where import Data.Enumerator ((=$)) import Data.Enumerator.List as EL import Network.WebSockets.Protocol import Network.WebSockets.Protocol.Hybi10.Internal import Network.WebSockets.Protocol.Unsafe data Hybi10 = forall p. Protocol p => Hybi10 p instance Protocol Hybi10 where version (Hybi10 p) = version p headerVersions (Hybi10 p) = headerVersions p supported (Hybi10 p) h = supported p h encodeMessages (Hybi10 p) g = (EL.map castMessage =$) . encodeMessages p g decodeMessages (Hybi10 p) = (decodeMessages p =$) . EL.map castMessage finishRequest (Hybi10 p) = finishRequest p implementations = [Hybi10 Hybi10_] instance TextProtocol Hybi10 instance BinaryProtocol Hybi10