packages feed

text-generic-pretty-1.2.1: test/Sum.hs

{-# LANGUAGE DeriveAnyClass    #-}
{-# LANGUAGE DeriveGeneric     #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}

module Sum where

import Data.String.Conversions (cs)
import GHC.Base
import GHC.Generics
import Protolude               hiding (Sum, empty)

import Text.PrettyPrint.GenericPretty

data Sum
  = Cat
  | Dog
  | Rat
  | Elephant
  deriving (Eq, Read, Show, Generic, Pretty)

sample :: Sum
sample = Elephant

showAndRead :: Sum -> Either GHC.Base.String Sum
showAndRead = readEither . cs . displayPretty