module Horizon.Spec.Types.Repo (Repo(MkRepo), fromRepo) where

import           Data.Kind              (Type)
import           Data.String            (IsString)
import           Dhall                  (FromDhall, ToDhall)
import           Horizon.Spec.Types.Url (Url)

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