module Horizon.Spec.Types.Revision (Revision(MkRevision), fromRevision) where

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

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