module Network.HTTP.Pony.Transformer.HTTP.Type where

import Data.ByteString.Char8 (ByteString)
import Pipes (Producer, Consumer, runEffect, (>->))

type StartLine = ByteString
type Header = (ByteString, ByteString)

type HttpType = (StartLine, [Header])

type Message t a m r = (t, Producer a m r)
type Message' a m r = (HttpType, Producer a m r)

type Request t a m r = Message t a m r
type Request' a m r = Message' a m r
type Response t a m r = Message t a m r
type Response' a m r = Message' a m r

type Middleware f s t a b = (a -> f b) -> s -> f t