module Biobase.Types.Energy where
import Data.Aeson (FromJSON, ToJSON)
import Data.Binary (Binary)
import Data.Default
import Data.Hashable
import Data.Serialize (Serialize)
import Data.Vector.Unboxed.Deriving
import GHC.Generics
import Biobase.Types.NumericalExtremes
newtype DeltaGibbs = DG { getDG :: Double }
deriving (Eq,Ord,Num,Fractional,Read,Show,Generic)
derivingUnbox "DeltaGibbs"
[t| DeltaGibbs -> Double |] [| getDG |] [| DG |]
instance Hashable DeltaGibbs
instance Binary DeltaGibbs
instance Serialize DeltaGibbs
instance FromJSON DeltaGibbs
instance ToJSON DeltaGibbs
deriving instance NumericalExtremes DeltaGibbs
deriving instance NumericalEpsilon DeltaGibbs
instance Default DeltaGibbs where
def = extremelyLarge
newtype DeltaDekaGibbs = DekaG { getDekaG :: Int }
deriving (Eq,Ord,Num,Read,Show,Generic)
derivingUnbox "DeltaDekaGibbs"
[t| DeltaDekaGibbs -> Int |] [| getDekaG |] [| DekaG |]
instance Hashable DeltaDekaGibbs
instance Binary DeltaDekaGibbs
instance Serialize DeltaDekaGibbs
instance FromJSON DeltaDekaGibbs
instance ToJSON DeltaDekaGibbs
deriving instance NumericalExtremes DeltaDekaGibbs
instance Default DeltaDekaGibbs where
def = extremelyLarge