]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/MIMEType.hs
Destroy Data.Attoparsec.Parsable; use Data.Default instead
[Lucu.git] / Network / HTTP / Lucu / MIMEType.hs
index 949bc44d2668219cef9b265eecc66b9eacae9774..768b4cf53d3227c1ff1fde966755acfa23eef780 100644 (file)
@@ -5,6 +5,7 @@
   , OverloadedStrings
   , RecordWildCards
   , TemplateHaskell
   , OverloadedStrings
   , RecordWildCards
   , TemplateHaskell
+  , TypeSynonymInstances
   , UnicodeSyntax
   , ViewPatterns
   #-}
   , UnicodeSyntax
   , ViewPatterns
   #-}
@@ -20,11 +21,10 @@ import Control.Monad.Unicode
 import Data.Ascii (Ascii, AsciiBuilder, CIAscii)
 import Data.Attempt
 import Data.Attoparsec.Char8
 import Data.Ascii (Ascii, AsciiBuilder, CIAscii)
 import Data.Attempt
 import Data.Attoparsec.Char8
-import Data.Attoparsec.Parsable
-import Data.ByteString (ByteString)
 import Data.Convertible.Base
 import Data.Convertible.Instances.Ascii ()
 import Data.Convertible.Utils
 import Data.Convertible.Base
 import Data.Convertible.Instances.Ascii ()
 import Data.Convertible.Utils
+import Data.Default
 import Data.Monoid.Unicode
 import Data.Typeable
 import Language.Haskell.TH.Syntax
 import Data.Monoid.Unicode
 import Data.Typeable
 import Language.Haskell.TH.Syntax
@@ -75,21 +75,21 @@ deriveAttempts [ ([t| MIMEType |], [t| Ascii        |])
 instance ConvertAttempt Ascii MIMEType where
     {-# INLINEABLE convertAttempt #-}
     convertAttempt str
 instance ConvertAttempt Ascii MIMEType where
     {-# INLINEABLE convertAttempt #-}
     convertAttempt str
-        = case parseOnly (finishOff parser) (cs str) of
+        = case parseOnly (finishOff def) (cs str) of
             Right  t → return t
             Left err → fail ("Unparsable MIME Type: " ⧺ cs str ⧺ ": " ⧺ err)
 
             Right  t → return t
             Left err → fail ("Unparsable MIME Type: " ⧺ cs str ⧺ ": " ⧺ err)
 
-instance Parsable ByteString MIMEType where
-    {-# INLINEABLE parser #-}
-    parser = do media  ← cs <$> token
-                _      ← char '/'
-                sub    ← cs <$> token
-                params ← parser
-                return $ MIMEType media sub params
+instance Default (Parser MIMEType) where
+    {-# INLINEABLE def #-}
+    def = do media  ← cs <$> token
+             _      ← char '/'
+             sub    ← cs <$> token
+             params ← def
+             return $ MIMEType media sub params
 
 
-instance Parsable ByteString [MIMEType] where
-    {-# INLINE parser #-}
-    parser = listOf parser
+instance Default (Parser [MIMEType]) where
+    {-# INLINE def #-}
+    def = listOf def
 
 -- |'QuasiQuoter' for 'MIMEType' literals.
 --
 
 -- |'QuasiQuoter' for 'MIMEType' literals.
 --