{-# LANGUAGE TypeFamilies #-}

module Drifter.Types where

import           Data.Text

type Name        = Text
type Description = Text

data Change a = Change
        { changeName        :: Name
        , changeDescription :: Maybe Description
        , changeMethod      :: Method a
        }

data family Method a

data family DBConnection a

class Drifter a where
    migrate :: DBConnection a -> [Change a] -> IO (Either String ())