module Network.API.Mandrill.Orphans where import Data.Aeson import Data.Aeson.Types import Text.Email.Validate import qualified Data.Text.Encoding as TE instance ToJSON EmailAddress where toJSON = String . TE.decodeUtf8 . toByteString instance FromJSON EmailAddress where parseJSON (String s) = case validate (TE.encodeUtf8 s) of Left err -> fail err Right v -> return v parseJSON o = typeMismatch "Expecting a String for EmailAddress." o