@@ -75,6 +75,7 @@ import qualified Data.IntMap as IntMap
7575import qualified Data.IntSet as IntSet
7676import qualified Data.Map as M
7777import qualified Data.Set as Set
78+import qualified Data.Tree as Tree
7879import qualified Data.Text as T
7980import qualified Data.Text.Lazy as LT
8081import qualified Data.Vector as V
@@ -584,6 +585,12 @@ instance (ToJSON v) => ToJSON (H.HashMap String v) where
584585instance (FromJSON v) => FromJSON (H.HashMap String v) where
585586 parseJSON = fmap (mapKey unpack) . parseJSON
586587
588+instance (ToJSON v) => ToJSON (Tree.Tree v) where
589+ toJSON (Tree.Node root branches) = toJSON (root,branches)
590+
591+instance (FromJSON v) => FromJSON (Tree.Tree v) where
592+ parseJSON j = uncurry Tree.Node <$> parseJSON j
593+
587594instance ToJSON Value where
588595 toJSON a = a
589596 {-# INLINE toJSON #-}