on master help sign in
Add Semigroup instance for YamlParser
35af541Ryan Scott
Data/Yaml/Parser.hs+8−1
@@ -18,6 +18,9 @@ import qualified Data.Map as Map
18#if !MIN_VERSION_base(4,8,0)
18#if !MIN_VERSION_base(4,8,0)
19import Data.Monoid (Monoid (..))
19import Data.Monoid (Monoid (..))
20#endif
20#endif
21+#if !MIN_VERSION_base(4,11,0)
22+import Data.Semigroup (Semigroup(..))
23+#endif
21import Data.Text (Text, pack, unpack)
24import Data.Text (Text, pack, unpack)
22import Data.Text.Encoding (decodeUtf8)
25import Data.Text.Encoding (decodeUtf8)
23import Data.Text.Read (signed, decimal)
26import Data.Text.Read (signed, decimal)
@@ -36,9 +39,13 @@ instance Applicative YamlParser where
36instance Alternative YamlParser where
39instance Alternative YamlParser where
37 empty = fail "empty"
40 empty = fail "empty"
38 (<|>) = mplus
41 (<|>) = mplus
42+instance Semigroup (YamlParser a) where
43+ (<>) = mplus
39instance Monoid (YamlParser a) where
44instance Monoid (YamlParser a) where
40 mempty = fail "mempty"
45 mempty = fail "mempty"
46+#if !MIN_VERSION_base(4,11,0)
41− mappend = mplus
47+ mappend = (<>)
48+#endif
42instance Monad YamlParser where
49instance Monad YamlParser where
43 return = pure
50 return = pure
44 YamlParser f >>= g = YamlParser $ \am ->
51 YamlParser f >>= g = YamlParser $ \am ->