1module Language.PureScript.Label (Label(..)) where
2
3import Prelude.Compat hiding (lex)
4import GHC.Generics (Generic)
5import Codec.Serialise (Serialise)
6import Control.DeepSeq (NFData)
7import Data.Monoid ()
8import Data.String (IsString(..))
9import qualified Data.Aeson as A
10
11import Language.PureScript.PSString (PSString)
12
13-- |
14-- Labels are used as record keys and row entry names. Labels newtype PSString
15-- because records are indexable by PureScript strings at runtime.
16--
17newtype Label = Label { runLabel :: PSString }
18  deriving (Show, Eq, Ord, IsString, Semigroup, Monoid, A.ToJSON, A.FromJSON, Generic)
19
20instance NFData Label
21instance Serialise Label
22