{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Values where
import qualified Data.Aeson.TH as A
import Types
--
-- Value
--
recordType11 :: RecordType1
recordType11 =
RecordData11
{ recordField11 = "field11"
, recordField12 = 12
, recordField13 = 1.3
, recordField14 = Nothing
, recordField15 =
RecordData21
{ recordField21 = "field21"
, recordField22 = Nothing
}
, recordField16 = ["recordField16-1", "recordField17-2"]
, recordField17 = [17]
, recordField18 = []
, recordField19 = Just 19
, recordField1A = "UnitData21"
}
recordType22 :: RecordType2
recordType22 =
RecordData22
{ recordField21 = "field21"
, recordField22 = Nothing
, recordField23 = 23
}
productData11 :: ProductType1
productData11 = ProductData11 "param11" 12 1.3 Nothing (ProductData21 "param21" Nothing)
productData12 :: ProductType2
productData12 = ProductData22 "param21" Nothing 23
unitData1 :: UnitType1
unitData1 = UnitData1
unitData2 :: UnitType1
unitData2 = UnitData2
unitData3 :: UnitType1
unitData3 = UnitData3
mixData11 :: MixType1
mixData11 = MixData11
mixData12 :: MixType1
mixData12 = MixData12 "param31" Nothing
mixData13 :: MixType1
mixData13 =
MixData13
{ recordField31 = "field31"
, recordField32 = Nothing
, recordField33 = 33
}
--
-- Test Print
--
$(A.deriveJSON A.defaultOptions ''RecordType2)
$(A.deriveJSON A.defaultOptions ''ProductType2)