module Horizon.Spec.Types.Url (Url(MkUrl), fromUrl) where

import           Data.Kind   (Type)
import           Data.String (IsString)
import           Data.Text   (Text)
import           Dhall       (FromDhall, ToDhall)

type Url :: Type
newtype Url = MkUrl { Url -> Text
fromUrl :: Text }
  deriving stock (Url -> Url -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Url -> Url -> Bool
$c/= :: Url -> Url -> Bool
== :: Url -> Url -> Bool
$c== :: Url -> Url -> Bool
Eq, Int -> Url -> ShowS
[Url] -> ShowS
Url -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Url] -> ShowS
$cshowList :: [Url] -> ShowS
show :: Url -> String
$cshow :: Url -> String
showsPrec :: Int -> Url -> ShowS
$cshowsPrec :: Int -> Url -> ShowS
Show)
  deriving newtype (InputNormalizer -> Decoder Url
forall a. (InputNormalizer -> Decoder a) -> FromDhall a
autoWith :: InputNormalizer -> Decoder Url
$cautoWith :: InputNormalizer -> Decoder Url
FromDhall, InputNormalizer -> Encoder Url
forall a. (InputNormalizer -> Encoder a) -> ToDhall a
injectWith :: InputNormalizer -> Encoder Url
$cinjectWith :: InputNormalizer -> Encoder Url
ToDhall, String -> Url
forall a. (String -> a) -> IsString a
fromString :: String -> Url
$cfromString :: String -> Url
IsString)