# Summary
[JSON Pointer](http://tools.ietf.org/html/rfc6901) library for Haskell.
[Hackage](https://hackage.haskell.org/package/hjsonpointer) / [GitHub](https://github.com/seagreen/hjsonpointer) / [Travis CI](https://travis-ci.org/seagreen/hjsonpointer)
# Example
```haskell
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Monad (unless)
import Data.Aeson
import qualified Data.Aeson.Pointer as P
main :: IO ()
main = do
-- JSON Pointers must either be empty or start with a /.
pntr1 <- case P.unescape "/foo/0" of
Left _ -> error "Failed to construct JSON Pointer."
Right pntr -> pure pntr
-- We can also write JSON Pointers in Haskell.
let pntr2 = P.Pointer [P.Token "/"]
-- When we do this we don't have to escape / or ~ characters
-- (as ~1 and ~0 respectively) like we do in an escaped JSON
-- Pointer string.
unless (P.unescape "/~1" == Right pntr2) (error "ohno!")
print (P.resolve pntr1 document)
print (P.resolve pntr2 document)
where
document :: Value
document = object [ "foo" .= [String "bar", String "baz"]
, "/" .= String "quux"
]
```
Output:
```
Right (String "bar")
Right (String "quux")
```