module Data.Connect.OrphanInstances where

import           Control.Monad (mzero)
import           Data.Aeson
import qualified Data.Text     as T
import qualified Network.URI   as NU

instance FromJSON NU.URI where
   parseJSON :: Value -> Parser URI
parseJSON (String Text
uriString) = forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall (m :: * -> *) a. MonadPlus m => m a
mzero forall (m :: * -> *) a. Monad m => a -> m a
return (String -> Maybe URI
NU.parseURI forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
T.unpack forall a b. (a -> b) -> a -> b
$ Text
uriString)
   parseJSON Value
_ = forall (m :: * -> *) a. MonadPlus m => m a
mzero

instance ToJSON NU.URI where
   toJSON :: URI -> Value
toJSON = Text -> Value
String forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
T.pack forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Show a => a -> String
show