{-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.Material where import Data.Aeson import Data.Aeson.TH -- consider having external and internal materials in some manner data Material = Wood | Dirt | Stone | Glass | Metal | Crystal | Flesh | Electronics | ForceField | Photovoltaic | LightningRod | Pyroelectric | Piezoelectric deriving (Eq, Ord, Show, Bounded, Enum, Read) --Generic, Flat) deriveJSON defaultOptions ''Material