]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Preprocess.hs
StatusCode is now a type class, not an algebraic data type.
[Lucu.git] / Network / HTTP / Lucu / Preprocess.hs
index 26fbd53546a2412a90d40f5f30c234620ab6890d..3a02ad8f194c4a0b6e41cd850e59725a0030752f 100644 (file)
@@ -31,7 +31,7 @@ import Prelude.Unicode
 data AugmentedRequest
     = AugmentedRequest {
         arRequest          ∷ !Request
-      , arInitialStatus    ∷ !StatusCode
+      , arInitialStatus    ∷ !SomeStatusCode
       , arWillChunkBody    ∷ !Bool
       , arWillDiscardBody  ∷ !Bool
       , arWillClose        ∷ !Bool
@@ -51,7 +51,7 @@ preprocess localHost localPort req@(Request {..})
       initialAR ∷ AugmentedRequest
       initialAR = AugmentedRequest {
                     arRequest          = req
-                  , arInitialStatus    = Ok
+                  , arInitialStatus    = fromStatusCode OK
                   , arWillChunkBody    = False
                   , arWillDiscardBody  = False
                   , arWillClose        = False
@@ -69,9 +69,9 @@ setRequest ∷ Request → State AugmentedRequest ()
 setRequest req
     = modify $ \ar → ar { arRequest = req }
 
-setStatus ∷ StatusCode → State AugmentedRequest ()
+setStatus ∷ StatusCode sc ⇒ sc → State AugmentedRequest ()
 setStatus sc
-    = modify $ \ar → ar { arInitialStatus = sc }
+    = modify $ \ar → ar { arInitialStatus = fromStatusCode sc }
 
 setWillClose ∷ Bool → State AugmentedRequest ()
 setWillClose b
@@ -90,7 +90,7 @@ examineHttpVersion
                → setWillClose True
            HttpVersion 1 1
                → modify $ \ar → ar { arWillChunkBody = True }
-           _   → do setStatus    HttpVersionNotSupported
+           _   → do setStatus    HTTPVersionNotSupported
                     setWillClose True
 
 examineMethod ∷ State AugmentedRequest ()