I'm having trouble with defining FromField instance for my custom enum data type:
data Role = Staff | Student deriving (Eq, Ord, Show)
To represent Role in my database, I will use ints 0 and 1 (more roles could be added later) most likely smallint.
Review is used in my other data type that represents a row in my db table:
data ReviewAssignment = ReviewAssignment
  { aID :: ID
  , reviewID :: ID
  , reviewerID :: ID
  , revieweeID :: ID
  , reviewerRole :: Role -- <-- right there
  , reviewFinished :: Bool
  , reviewPoints :: Float
  } deriving (Show, Eq)
This is my FromRow instance for ReviewAssignment:
instance FromRow ReviewAssignment where
  fromRow = ReviewAssignment <$> field <*> field <*> field <*> field <*> field <*> field <*> field
Now I'm just missing the following which I don't understand how to implement :
instance FromField Role where
  fromField = undefined
 
                        
Probably to late but something like this should work (hopefully):