]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/ETag.hs
Destroy Data.Attoparsec.Parsable; use Data.Default instead
[Lucu.git] / Network / HTTP / Lucu / ETag.hs
index 3ebfc1d91b35b3f7e676571d0ed981a813b67dbf..de7780c538992f696d1d7aa322685f2f8d13192f 100644 (file)
@@ -5,26 +5,24 @@
   , OverloadedStrings
   , RecordWildCards
   , TemplateHaskell
   , OverloadedStrings
   , RecordWildCards
   , TemplateHaskell
+  , TypeSynonymInstances
   , UnicodeSyntax
   #-}
 -- |An internal module for entity tags.
 module Network.HTTP.Lucu.ETag
     ( ETag(..)
   , UnicodeSyntax
   #-}
 -- |An internal module for entity tags.
 module Network.HTTP.Lucu.ETag
     ( ETag(..)
-
     , strongETag
     , weakETag
     , strongETag
     , weakETag
-    , eTag
-    , eTagList
     )
     where
 import Control.Applicative
     )
     where
 import Control.Applicative
-import Control.Monad
 import Data.Ascii (Ascii, AsciiBuilder)
 import Data.Attoparsec.Char8
 import Data.Convertible.Base
 import Data.Convertible.Instances.Ascii ()
 import Data.Convertible.Utils
 import Data.Data
 import Data.Ascii (Ascii, AsciiBuilder)
 import Data.Attoparsec.Char8
 import Data.Convertible.Base
 import Data.Convertible.Instances.Ascii ()
 import Data.Convertible.Utils
 import Data.Data
+import Data.Default
 import Data.Monoid.Unicode
 import Language.Haskell.TH.Syntax
 import Network.HTTP.Lucu.OrphanInstances ()
 import Data.Monoid.Unicode
 import Language.Haskell.TH.Syntax
 import Network.HTTP.Lucu.OrphanInstances ()
@@ -82,17 +80,12 @@ weakETag ∷ Ascii → ETag
 {-# INLINE weakETag #-}
 weakETag = ETag True
 
 {-# INLINE weakETag #-}
 weakETag = ETag True
 
--- |'Parser' for an 'ETag'.
-eTag ∷ Parser ETag
-{-# INLINEABLE eTag #-}
-eTag = do isWeak ← option False (string "W/" *> return True)
-          str    ← quotedStr
-          return $ ETag isWeak str
+instance Default (Parser ETag) where
+    {-# INLINEABLE def #-}
+    def = do isWeak ← option False (string "W/" *> return True)
+             str    ← quotedStr
+             return $ ETag isWeak str
 
 
--- |'Parser' for a list of 'ETag's.
-eTagList ∷ Parser [ETag]
-{-# INLINEABLE eTagList #-}
-eTagList = do xs ← listOf eTag
-              when (null xs) $
-                  fail "empty list of ETags"
-              return xs
+instance Default (Parser [ETag]) where
+    {-# INLINE def #-}
+    def = listOf def