packages feed

neuron-0.6.0.0: src/lib/Neuron/Orphans.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}

module Neuron.Orphans where

import Data.Aeson
import Relude
import Text.URI (URI, mkURI, render)

instance ToJSON URI where
  toJSON = toJSON @Text . render

instance FromJSON URI where
  parseJSON = (either (fail . displayException) pure) . mkURI <=< parseJSON @Text