module Data.Morpheus.Types.Internal.Base
( Key
, Collection
, Position
, EnhancedKey(..)
, enhanceKeyWithNull
) where
import Data.Text (Text)
import Text.Megaparsec (SourcePos, initialPos)
type Position = SourcePos
type Key = Text
type Collection a = [(Key, a)]
data EnhancedKey = EnhancedKey
{ uid :: Text
, location :: Position
} deriving (Show)
instance Eq EnhancedKey where
(EnhancedKey id1 _) == (EnhancedKey id2 _) = id1 == id2
enhanceKeyWithNull :: Key -> EnhancedKey
enhanceKeyWithNull text = EnhancedKey {uid = text, location = initialPos ""}