]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Abortion.hs
Doc fix, optimization, and more.
[Lucu.git] / Network / HTTP / Lucu / Abortion.hs
index 4313df3ec42adee37f7df9689fb5ff0b8cba4219..9ff629df73e84db0eac2a50073e06b2494eb120b 100644 (file)
@@ -1,7 +1,7 @@
 -- #prune
 
--- | Aborting the computation of 'Network.HTTP.Lucu.Resource.Resource'
--- in any IO monads or arrows.
+-- |Aborting the computation of 'Network.HTTP.Lucu.Resource.Resource'
+-- in any 'Prelude.IO' monads or arrows.
 module Network.HTTP.Lucu.Abortion
     ( Abortion(..)
     , abort
@@ -21,10 +21,8 @@ import           Data.Dynamic
 import           Network.HTTP.Lucu.Config
 import           Network.HTTP.Lucu.DefaultPage
 import           Network.HTTP.Lucu.Headers
-import           Network.HTTP.Lucu.HttpVersion
 import           Network.HTTP.Lucu.Request
 import           Network.HTTP.Lucu.Response
-import {-# SOURCE #-} Network.HTTP.Lucu.Resource
 import           System.IO.Unsafe
 import           Text.XML.HXT.Arrow.WriteDocument
 import           Text.XML.HXT.Arrow.XmlArrow
@@ -38,12 +36,13 @@ data Abortion = Abortion {
     , aboMessage :: !(Maybe String)
     } deriving (Show, Typeable)
 
--- | Computation of @'abort' status headers msg@ aborts the
+-- |Computation of @'abort' status headers msg@ aborts the
 -- 'Network.HTTP.Lucu.Resource.Resource' monad with given status,
 -- additional response headers, and optional message string.
 --
--- What this really does is to just throw a special DynException. The
--- exception will be caught by the system.
+-- What this really does is to just throw a special
+-- 'Control.Exception.DynException'. The exception will be caught by
+-- the Lucu.
 --
 -- 1. If the 'Network.HTTP.Lucu.Resource.Resource' is in the /Deciding
 --    Header/ or any precedent states, it is possible to use the
@@ -68,21 +67,19 @@ abort status headers msg
           exc = DynException (toDyn abo)
       in
         liftIO $ throwIO exc
-{-# SPECIALIZE abort :: StatusCode -> [ (String, String) ] -> Maybe String -> Resource a #-}
 
--- | Computation of @'abortSTM' status headers msg@ just computes
--- 'abort' in a STM monad.
+-- |Computation of @'abortSTM' status headers msg@ just computes
+-- 'abort' in a 'Control.Monad.STM.STM' monad.
 abortSTM :: StatusCode -> [ (String, String) ] -> Maybe String -> STM a
 abortSTM status headers msg
     = status `seq` headers `seq` msg `seq`
       unsafeIOToSTM $! abort status headers msg
 
 -- | Computation of @'abortA' -< (status, (headers, msg))@ just
--- computes 'abort' in an ArrowIO.
+-- computes 'abort' in an 'Control.Arrow.ArrowIO.ArrowIO'.
 abortA :: ArrowIO a => a (StatusCode, ([ (String, String) ], Maybe String)) c
 abortA 
     = arrIO3 abort
-{-# SPECIALIZE abortA :: IOSArrow (StatusCode, ([ (String, String) ], Maybe String)) c #-}
 
 -- aboMessage が Just なら單に mkDefaultPage に渡すだけで良いので樂だが、
 -- Nothing の場合は getDefaultPage を使ってデフォルトのメッセージを得な