urn-random-0.1.0.0: src/Data/Urn/QQ.hs
{-# LANGUAGE LambdaCase, TemplateHaskell #-}
module Data.Urn.QQ (urn) where
import Language.Haskell.TH.Quote
import Data.Urn.QQ.ParseExp
urn :: QuasiQuoter
urn = QuasiQuoter { quoteExp = either fail (pure . urnExp) . parseUrn
, quotePat = unsupported "patterns"
, quoteType = unsupported "types"
, quoteDec = unsupported "declarations" }
where unsupported what =
fail $ "Literal urns are only supported in expressions, not " ++ what