{-# LANGUAGE TypeFamilies #-}

module Drifter.Types where

import           Data.Text

newtype ChangeName = ChangeName
        { ChangeName -> Text
changeNameText :: Text } deriving (Int -> ChangeName -> ShowS
[ChangeName] -> ShowS
ChangeName -> String
(Int -> ChangeName -> ShowS)
-> (ChangeName -> String)
-> ([ChangeName] -> ShowS)
-> Show ChangeName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChangeName] -> ShowS
$cshowList :: [ChangeName] -> ShowS
show :: ChangeName -> String
$cshow :: ChangeName -> String
showsPrec :: Int -> ChangeName -> ShowS
$cshowsPrec :: Int -> ChangeName -> ShowS
Show, ChangeName -> ChangeName -> Bool
(ChangeName -> ChangeName -> Bool)
-> (ChangeName -> ChangeName -> Bool) -> Eq ChangeName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChangeName -> ChangeName -> Bool
$c/= :: ChangeName -> ChangeName -> Bool
== :: ChangeName -> ChangeName -> Bool
$c== :: ChangeName -> ChangeName -> Bool
Eq, Eq ChangeName
Eq ChangeName
-> (ChangeName -> ChangeName -> Ordering)
-> (ChangeName -> ChangeName -> Bool)
-> (ChangeName -> ChangeName -> Bool)
-> (ChangeName -> ChangeName -> Bool)
-> (ChangeName -> ChangeName -> Bool)
-> (ChangeName -> ChangeName -> ChangeName)
-> (ChangeName -> ChangeName -> ChangeName)
-> Ord ChangeName
ChangeName -> ChangeName -> Bool
ChangeName -> ChangeName -> Ordering
ChangeName -> ChangeName -> ChangeName
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ChangeName -> ChangeName -> ChangeName
$cmin :: ChangeName -> ChangeName -> ChangeName
max :: ChangeName -> ChangeName -> ChangeName
$cmax :: ChangeName -> ChangeName -> ChangeName
>= :: ChangeName -> ChangeName -> Bool
$c>= :: ChangeName -> ChangeName -> Bool
> :: ChangeName -> ChangeName -> Bool
$c> :: ChangeName -> ChangeName -> Bool
<= :: ChangeName -> ChangeName -> Bool
$c<= :: ChangeName -> ChangeName -> Bool
< :: ChangeName -> ChangeName -> Bool
$c< :: ChangeName -> ChangeName -> Bool
compare :: ChangeName -> ChangeName -> Ordering
$ccompare :: ChangeName -> ChangeName -> Ordering
$cp1Ord :: Eq ChangeName
Ord)
type Description = Text

data Change a = Change
        { Change a -> ChangeName
changeName         :: ChangeName
        , Change a -> Maybe Text
changeDescription  :: Maybe Description
        , Change a -> [ChangeName]
changeDependencies :: [ChangeName]
        , Change a -> Method a
changeMethod       :: Method a
        }

data family Method a

data family DBConnection a