]> gitweb.michael.orlitzky.com - dead/htsn-import.git/commitdiff
Add HTeam/VTeam newtype wrappers to TSN.Team.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 6 Jul 2014 03:19:36 +0000 (23:19 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 6 Jul 2014 03:19:36 +0000 (23:19 -0400)
src/TSN/Team.hs

index 97e36475e59c14ea93c64a819e5b275b121bdd87..7ca326d80203b613467a57aec5a8c311cddb56c3 100644 (file)
@@ -13,7 +13,9 @@
 --   representation.
 --
 module TSN.Team (
+  HTeam(..),
   Team(..),
+  VTeam(..),
   -- * WARNING: these are private but exported to silence warnings
   TeamConstructor(..) )
 where
@@ -26,6 +28,8 @@ import Database.Groundhog.TH (
   mkPersist )
 
 
+-- * Team
+
 -- | The database representation of a team. The 'team_id' is a
 --   'String' field because some teams do in fact have ids like
 --   \"B52\". The pointless \"team_\" prefix is left on the 'team_id'
@@ -43,6 +47,24 @@ data Team =
   deriving (Eq, Show)
 
 
+-- * VTeam / HTeam
+
+-- | A wrapper around 'Team' that lets us distinguish between home and
+--   away teams. See also 'HTeam'. \"V\" (visiting) was chosen instead
+--   of \"A\" (away) simply because \"vteam" looks better than
+--   \"ateam\". This is purely for type-safety.
+--
+newtype VTeam = VTeam { vteam :: Team } deriving (Eq, Show)
+
+
+-- | A wrapper around 'Team' that lets us distinguish between home and
+--   away teams. See also 'VTeam'. This is purely for type-safety.
+--
+newtype HTeam = HTeam { hteam :: Team } deriving (Eq, Show)
+
+
+-- * Database stuff
+
 -- Generate the Groundhog code for 'Team'.
 mkPersist defaultCodegenConfig [groundhog|
 - entity: Team