by-other-names-1.2.0.0: lib/ByOtherNames.hs
-- | This package provides the general mechanism for defining field and branch
-- aliases for algebraic datatypes.
--
-- Aliases can be defined for multiple contexts (json serialization, orms...).
-- Each of those contexts is termed a 'Rubric', basically a marker datakind
-- used to namespace the aliases.
--
-- This module should only be imported if you want to define your own adapter
-- package for some new `Rubric`. See "ByOtherNames.Aeson" for a concrete example.
module ByOtherNames
( -- * Aliases
Aliases,
zipAliasesWith,
AliasList,
aliasListBegin,
alias,
aliasListEnd,
-- * Rubrics
Rubric (..),
Aliased (aliases),
-- * Generic helpers
GHasDatatypeName(..),
GHasFieldNames (..),
GRecord (..),
GHasBranchNames (..),
GSum (..),
Slots (..),
-- * Re-exports
Symbol,
)
where
import ByOtherNames.Internal