{-# LANGUAGE OverloadedStrings #-} module Main where import Data.Aeson import qualified Data.HashMap.Strict as H import qualified Data.JsonSchema as JS import qualified Data.Vector as V main :: IO () main = do eitherGraph <- JS.fetchRefs JS.draft4 rawSchema H.empty case eitherGraph of Left e -> print e Right g -> case JS.compileDraft4 g rawSchema of Left e2 -> print e2 Right a -> print $ JS.validate a invalidData rawSchema :: JS.RawSchema rawSchema = JS.RawSchema { JS._rsURI = "" , JS._rsObject = H.singleton "uniqueItems" (Bool True) -- Schema JSON goes here. } invalidData :: Value invalidData = Array (V.fromList ["foo", "foo"])