{-# LANGUAGE CPP #-}
module Attoparsec.Data.Implicit where
import Attoparsec.Data.Prelude
import qualified Attoparsec.Data.Explicit as A
import qualified Data.Attoparsec.Text as B
class LenientParser a where
lenientParser :: B.Parser a
#define INSTANCE(TYPE, FUNCTION) instance LenientParser TYPE where {{-# INLINE lenientParser #-}; lenientParser = FUNCTION;}
INSTANCE(Text, A.text)
INSTANCE(ByteString, A.utf8Bytes)
INSTANCE(Char, A.char)
INSTANCE(Bool, A.bool)
INSTANCE(Integer, A.signedIntegral)
INSTANCE(Int, A.signedIntegral)
INSTANCE(Int8, A.signedIntegral)
INSTANCE(Int16, A.signedIntegral)
INSTANCE(Int32, A.signedIntegral)
INSTANCE(Int64, A.signedIntegral)
INSTANCE(Word, A.unsignedIntegral)
INSTANCE(Word8, A.unsignedIntegral)
INSTANCE(Word16, A.unsignedIntegral)
INSTANCE(Word32, A.unsignedIntegral)
INSTANCE(Word64, A.unsignedIntegral)
INSTANCE(Double, A.double)
INSTANCE(Scientific, A.scientific)
INSTANCE(TimeOfDay, A.timeOfDayInISO8601)
INSTANCE(Day, A.dayInISO8601)
INSTANCE(TimeZone, A.timeZoneInISO8601)
INSTANCE(UTCTime, A.utcTimeInISO8601)
INSTANCE(DiffTime, A.diffTime)
INSTANCE(NominalDiffTime, A.nominalDiffTime)
INSTANCE(String, A.string)
INSTANCE(UUID, A.uuid)
#undef INSTANCE