{-# LANGUAGE DeriveLift #-} module Burrito.Type.Name ( Name(..) ) where import qualified Burrito.Type.NonEmpty as NonEmpty import qualified Language.Haskell.TH.Syntax as TH -- | Represents a variable name, which is required to be non-empty. Variable -- names allow ASCII letters and numbers, underscores, percent encoded triples, -- and periods. However the periods cannot appear at the beginning or end, and -- there can't be more than one of them in a row. newtype Name = Name { chars :: NonEmpty.NonEmpty Char } deriving (Eq, TH.Lift, Show)