module Aeson.Match.QQ ( Value(..) , Array , Object , Box(..) , TypeSig(..) , Type(..) , Nullable(..) , Path , PathElem(..) , parse , qq , match , mismatch , missingPathElem , extraArrayValues , extraObjectValues ) where import Data.String (IsString(..)) import Language.Haskell.TH.Quote (QuasiQuoter(..)) import Language.Haskell.TH.Syntax (Lift(..)) import Aeson.Match.QQ.Internal.Match (Path, PathElem(..), match, mismatch, missingPathElem, extraArrayValues, extraObjectValues) import Aeson.Match.QQ.Internal.Parse (parse) import Aeson.Match.QQ.Internal.Value (Value(..), Box(..), Array, Object, TypeSig(..), Type(..), Nullable(..)) qq :: QuasiQuoter qq = QuasiQuoter { quoteExp = \str -> case parse (fromString str) of Left err -> error ("Aeson.Match.QQ.qq: " ++ err) Right val -> lift val , quotePat = \_ -> error "Aeson.Match.QQ.qq: no quotePat" , quoteType = \_ -> error "Aeson.Match.QQ.qq: no quoteType" , quoteDec = \_ -> error "Aeson.Match.QQ.qq: no quoteDec" }