module Octane.Type.List
( List(..)
) where
import Data.Function ((&))
import qualified Data.Aeson as Aeson
import qualified Data.Default.Class as Default
import qualified Data.OverloadedRecords.TH as OverloadedRecords
newtype List a = List
{ listUnpack :: [a]
} deriving (Eq, Ord)
$(OverloadedRecords.overloadedRecord Default.def ''List)
instance (Show a) =>
Show (List a) where
show list = "fromList " ++ show (#unpack list)
instance (Aeson.ToJSON a) =>
Aeson.ToJSON (List a) where
toJSON list = list & #unpack & Aeson.toJSON