penny-lib-0.2.0.0: Penny/Lincoln/Bits/Commodity.hs
module Penny.Lincoln.Bits.Commodity where
import Penny.Lincoln.TextNonEmpty (
TextNonEmpty ( TextNonEmpty ) )
import Data.List.NonEmpty (NonEmpty((:|)))
import Data.Text ( empty )
newtype Commodity =
Commodity { unCommodity :: NonEmpty SubCommodity }
deriving (Eq, Ord, Show)
newtype SubCommodity =
SubCommodity { unSubCommodity :: TextNonEmpty }
deriving (Eq, Ord, Show)
-- | Creates a Commodity whose name is only a single character.
charCommodity :: Char -> Commodity
charCommodity c =
Commodity ((SubCommodity (TextNonEmpty c empty)) :| [])