{-# LANGUAGE DeriveAnyClass  #-}
{-# LANGUAGE DeriveGeneric   #-}
{-# LANGUAGE TemplateHaskell #-}
module Experimenter.State where

import           Data.Aeson
import           Database.Persist.TH
import           GHC.Generics

data ExperimentState = InProgress | Finished
  deriving (Int -> ExperimentState -> ShowS
[ExperimentState] -> ShowS
ExperimentState -> String
(Int -> ExperimentState -> ShowS)
-> (ExperimentState -> String)
-> ([ExperimentState] -> ShowS)
-> Show ExperimentState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExperimentState] -> ShowS
$cshowList :: [ExperimentState] -> ShowS
show :: ExperimentState -> String
$cshow :: ExperimentState -> String
showsPrec :: Int -> ExperimentState -> ShowS
$cshowsPrec :: Int -> ExperimentState -> ShowS
Show, ReadPrec [ExperimentState]
ReadPrec ExperimentState
Int -> ReadS ExperimentState
ReadS [ExperimentState]
(Int -> ReadS ExperimentState)
-> ReadS [ExperimentState]
-> ReadPrec ExperimentState
-> ReadPrec [ExperimentState]
-> Read ExperimentState
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ExperimentState]
$creadListPrec :: ReadPrec [ExperimentState]
readPrec :: ReadPrec ExperimentState
$creadPrec :: ReadPrec ExperimentState
readList :: ReadS [ExperimentState]
$creadList :: ReadS [ExperimentState]
readsPrec :: Int -> ReadS ExperimentState
$creadsPrec :: Int -> ReadS ExperimentState
Read, ExperimentState -> ExperimentState -> Bool
(ExperimentState -> ExperimentState -> Bool)
-> (ExperimentState -> ExperimentState -> Bool)
-> Eq ExperimentState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExperimentState -> ExperimentState -> Bool
$c/= :: ExperimentState -> ExperimentState -> Bool
== :: ExperimentState -> ExperimentState -> Bool
$c== :: ExperimentState -> ExperimentState -> Bool
Eq, [ExperimentState] -> Encoding
[ExperimentState] -> Value
ExperimentState -> Encoding
ExperimentState -> Value
(ExperimentState -> Value)
-> (ExperimentState -> Encoding)
-> ([ExperimentState] -> Value)
-> ([ExperimentState] -> Encoding)
-> ToJSON ExperimentState
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ExperimentState] -> Encoding
$ctoEncodingList :: [ExperimentState] -> Encoding
toJSONList :: [ExperimentState] -> Value
$ctoJSONList :: [ExperimentState] -> Value
toEncoding :: ExperimentState -> Encoding
$ctoEncoding :: ExperimentState -> Encoding
toJSON :: ExperimentState -> Value
$ctoJSON :: ExperimentState -> Value
ToJSON, Value -> Parser [ExperimentState]
Value -> Parser ExperimentState
(Value -> Parser ExperimentState)
-> (Value -> Parser [ExperimentState]) -> FromJSON ExperimentState
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ExperimentState]
$cparseJSONList :: Value -> Parser [ExperimentState]
parseJSON :: Value -> Parser ExperimentState
$cparseJSON :: Value -> Parser ExperimentState
FromJSON, (forall x. ExperimentState -> Rep ExperimentState x)
-> (forall x. Rep ExperimentState x -> ExperimentState)
-> Generic ExperimentState
forall x. Rep ExperimentState x -> ExperimentState
forall x. ExperimentState -> Rep ExperimentState x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ExperimentState x -> ExperimentState
$cfrom :: forall x. ExperimentState -> Rep ExperimentState x
Generic)

derivePersistField "ExperimentState"