]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/ContentCoding.hs
Destroy Data.Attoparsec.Parsable; use Data.Default instead
[Lucu.git] / Network / HTTP / Lucu / ContentCoding.hs
index 033b48b4d941b6d462cfa4ebac231d0f3f1869d2..45a8b4e7dcd903deed0b9cecf92640c0b17ba7ff 100644 (file)
@@ -1,6 +1,7 @@
 {-# LANGUAGE
     FlexibleInstances
   , MultiParamTypeClasses
 {-# LANGUAGE
     FlexibleInstances
   , MultiParamTypeClasses
+  , TypeSynonymInstances
   , OverloadedStrings
   , UnicodeSyntax
   #-}
   , OverloadedStrings
   , UnicodeSyntax
   #-}
@@ -13,8 +14,7 @@ module Network.HTTP.Lucu.ContentCoding
 import Control.Applicative
 import Data.Ascii (CIAscii, toCIAscii)
 import Data.Attoparsec.Char8
 import Control.Applicative
 import Data.Ascii (CIAscii, toCIAscii)
 import Data.Attoparsec.Char8
-import Data.Attoparsec.Parsable
-import Data.ByteString (ByteString)
+import Data.Default
 import Data.Ord
 import Data.Maybe
 import Network.HTTP.Lucu.Parser.Http
 import Data.Ord
 import Data.Maybe
 import Network.HTTP.Lucu.Parser.Http
@@ -36,18 +36,18 @@ instance Ord AcceptEncoding where
           q1' = fromMaybe 0 q1
           q2' = fromMaybe 0 q2
 
           q1' = fromMaybe 0 q1
           q2' = fromMaybe 0 q2
 
-instance Parsable ByteString [AcceptEncoding] where
-    {-# INLINE parser #-}
-    parser = listOf parser
+instance Default (Parser [AcceptEncoding]) where
+    {-# INLINE def #-}
+    def = listOf def
 
 
-instance Parsable ByteString AcceptEncoding where
-    {-# INLINE parser #-}
-    parser = do coding ← toCIAscii <$> token
-                qVal   ← option Nothing
-                             $ do _ ← string ";q="
-                                  q ← qvalue
-                                  return $ Just q
-                return $ AcceptEncoding (normalizeCoding coding) qVal
+instance Default (Parser AcceptEncoding) where
+    {-# INLINEABLE def #-}
+    def = do coding ← toCIAscii <$> token
+             qVal   ← option Nothing
+                          $ do _ ← string ";q="
+                               q ← qvalue
+                               return $ Just q
+             return $ AcceptEncoding (normalizeCoding coding) qVal
 
 normalizeCoding ∷ CIAscii → CIAscii
 {-# INLINEABLE normalizeCoding #-}
 
 normalizeCoding ∷ CIAscii → CIAscii
 {-# INLINEABLE normalizeCoding #-}