@@ -1,6 +1,6 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DeriveFunctor #-}
3{-# LANGUAGE DeriveFoldable #-}
2{-# LANGUAGE DeriveFoldable #-}
3+{-# LANGUAGE DeriveFunctor #-}
4{-# LANGUAGE DeriveTraversable #-}
4{-# LANGUAGE DeriveTraversable #-}
5{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE RankNTypes #-}
6{-# LANGUAGE RankNTypes #-}
@@ -9,9 +9,11 @@
9module Network.API.Mandrill.Types where
9module Network.API.Mandrill.Types where
11import Control.Applicative
11import Control.Applicative
12+import Control.Monad (mzero)
12import Data.Char
13import Data.Char
13import Data.Maybe
14import Data.Maybe
14import Data.Time
15import Data.Time
16+import Lens.Micro.TH (makeLenses)
15import Network.API.Mandrill.Utils
17import Network.API.Mandrill.Utils
16import Test.QuickCheck
18import Test.QuickCheck
17import Text.Email.Validate
19import Text.Email.Validate
@@ -20,7 +22,6 @@ import Data.Time.Format (TimeLocale, defaultTimeLocale)
21import System.Locale (TimeLocale, defaultTimeLocale)
23import System.Locale (TimeLocale, defaultTimeLocale)
24import Data.Aeson
25import Data.Aeson
25import Data.Aeson.TH
26import Data.Aeson.TH
26import Data.Aeson.Types
27import Data.Aeson.Types
@@ -37,7 +38,7 @@ import qualified Data.Text.Encoding as TL
37import qualified Data.Text.Lazy as TL
38import qualified Data.Text.Lazy as TL
38import qualified Text.Blaze.Html as Blaze
39import qualified Text.Blaze.Html as Blaze
39import qualified Text.Blaze.Html.Renderer.Text as Blaze
40import qualified Text.Blaze.Html.Renderer.Text as Blaze
40−
41+import qualified Text.Email.Validate as TEV
42timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
43timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
43#if MIN_VERSION_time(1,5,0)
44#if MIN_VERSION_time(1,5,0)
@@ -157,6 +158,11 @@ unsafeMkMandrillHtml = MandrillHtml . Blaze.preEscapedToHtml
157mkMandrillHtml :: Blaze.Html -> MandrillHtml
158mkMandrillHtml :: Blaze.Html -> MandrillHtml
158mkMandrillHtml = MandrillHtml
159mkMandrillHtml = MandrillHtml
161+#if MIN_VERSION_base(4,11,0)
162+instance Semigroup MandrillHtml where
163+ MandrillHtml m1 <> MandrillHtml m2 = MandrillHtml (m1 <> m2)
160instance Monoid MandrillHtml where
166instance Monoid MandrillHtml where
161 mempty = MandrillHtml mempty
167 mempty = MandrillHtml mempty
162 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)
168 mappend (MandrillHtml m1) (MandrillHtml m2) = MandrillHtml (m1 <> m2)