packstream-bolt-0.1.0.0: src/Data/PackStream/Assoc.hs
-- | Internal module. Not part of the public API.
module Data.PackStream.Assoc (
Assoc(..)
) where
import Compat.Prelude
import Data.Kind (Type)
-- | Newtype wrapper for associative (dictionary-like) PackStream encoding.
--
-- not defined for general Functor for performance reason.
-- (ie. you would want to write custom instances for each type using specialized mapM-like functions)
type Assoc :: Type -> Type
type role Assoc representational
newtype Assoc a
= Assoc { unAssoc :: a }
deriving stock (Show, Read, Eq, Ord)
deriving newtype NFData