{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Product where
import Data.String.Conversions (cs)
import GHC.Base
import GHC.Generics
import Protolude hiding (Product)
import Text.PrettyPrint.GenericPretty
data Product =
Product Int
Integer
Char
Text
ByteString
deriving (Eq, Read, Show, Generic, Pretty)
sample :: Product
sample = Product 1 10 'C' "sample text" "sample bytestring"
showAndRead :: Product -> Either GHC.Base.String Product
showAndRead = readEither . cs . displayPretty