{-# OPTIONS --without-K --safe #-}

module Data.JSON where

open import Data.Bool.Base using (Bool)
open import Data.Float.Base using (Float)
open import Data.List.Base using (List)
open import Data.Product using (_×_)
open import Data.String.Base using (String)

-- I wish I could use a sized type here but unfortunately they're not
-- considered safe anymore.
data JSON : Set where
  null   : JSON
  bool   : Bool  JSON
  number : Float  JSON
  string : String  JSON
  array  : List JSON  JSON
  object : List (String × JSON)  JSON