{-|
Module      : Network.Wai.RequestSpec
Description : Top-level module for using RequestSpec
Copyright   : Alej Cabrera 2015
License     : BSD-3
Maintainer  : cpp.cabrera@gmail.com
Stability   : experimental
Portability : POSIX
-}
module Network.Wai.RequestSpec (
  -- | * Primitive parsing data types
  Result(..),
  P,

  -- | * Primitive parsing functions
  parse,
  parseMaybe,
  parseEither,

  -- | * Error generation and parser annotation
  (<?>),
  freeform,
  malformed,
  missing,

  -- | * Error types
  Loc(..),
  Reason,
  Error(..),

  -- | * Generating parsing environment
  toEnv,
  ParamValue(..),

  -- | * Parser driving type class
  FromEnv(..),

  -- | * Derived combinators, parameters
  intP,
  boolP,
  floatP,
  textP,
  bytesP,
  intPM,
  floatPM,
  textPM,
  bytesPM,

  -- | * Derived combinators, headers
  intH,
  boolH,
  floatH,
  textH,
  bytesH,
  intHM,
  floatHM,
  textHM,
  bytesHM,

  -- | * Derived combinators, utility
  choice
) where

import Network.Wai.RequestSpec.Class
import Network.Wai.RequestSpec.Error
import Network.Wai.RequestSpec.Combinators
import Network.Wai.RequestSpec.Parser
import Network.Wai.RequestSpec.Internal.Env