{-# LANGUAGE DeriveDataTypeable #-} module PracticeRoom.Type where import Text.JSON.Generic import Data.Default data PracticeInterval = PracticeInterval { start_time :: Integer , end_time :: Integer } deriving (Data, Typeable, Eq, Show) instance Default PracticeInterval where def = PracticeInterval { start_time = def , end_time = def } data Practice = Practice { intervals :: [PracticeInterval] , started :: Maybe Integer } deriving (Data, Typeable, Eq, Show) instance Default Practice where def = Practice { intervals = def , started = def }