{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.TeslaArc where import LinearHelp import Color import Control.Lens import Data.Aeson import Data.Aeson.TH import Dodge.Data.ArcStep import Geometry.Data import TH.Derive import Data.Store data TeslaArc = TeslaArc { _taPoints :: [Point2] , _taTimer :: Int , _taArcSteps :: [ArcStep] , _taColor :: Color } deriving (Eq, Ord, Show, Read) makeLenses ''TeslaArc deriveJSON defaultOptions ''TeslaArc $($(derive [d| instance Deriving (Store TeslaArc) |]))