quoteSchemaExp s = do
  loc <- location
  let pos = ( loc_filename loc
            , fst (loc_start loc)
            , snd (loc_start loc))
  theSchema <- parseSchema pos s
  case checkSchema theSchema of
    Right _ -> dataToExpQ (const Nothing) theSchema
    Left msg -> fail msg
quoteSchemaExp s = do
  loc <- location
  let pos = ( loc_filename loc
            , fst (loc_start loc)
            , snd (loc_start loc))
  theSchema <- parseSchema pos s
  case checkSchema theSchema of
    Right _ -> dataToExpQ (const Nothing) theSchema
    Left msg -> fail msg
quoteSchemaExp s = do
  loc <- location
  let pos = ( loc_filename loc
            , fst (loc_start loc)
            , snd (loc_start loc))
  theSchema <- parseSchema pos s
  case checkSchema theSchema of
    Right _ -> dataToExpQ (const Nothing) theSchema
    Left msg -> fail msg