@@ -8,18 +8,11 @@ module Data.Json.Extended
88 , number
99 , string
1010 , map
11- , map'
1211 , array
13-
1412 , renderEJson
1513 , parseEJson
16- , decodeEJson
17- , encodeEJson
18-
1914 , arbitraryEJsonOfSize
20-
2115 , getType
22-
2316 , _Null
2417 , _String
2518 , _Boolean
@@ -28,41 +21,28 @@ module Data.Json.Extended
2821 , _Number
2922 , _Array
3023 , _Map
31- , _Map'
3224 ) where
3325
3426import Prelude hiding (map )
3527
3628import Control.Lazy as Lazy
37- import Data.Argonaut as JS
38- import Data.Bitraversable ( bitraverse )
29+ import Control.Monad.Gen ( class MonadGen )
30+ import Control.Monad.Rec.Class ( class MonadRec )
3931import Data.Either as E
40- import Data.Functor as F
4132import Data.Functor.Mu as Mu
4233import Data.HugeInt as HI
4334import Data.HugeNum as HN
4435import Data.Json.Extended.Signature as Sig
4536import Data.Json.Extended.Signature hiding (getType ) as Exports
4637import Data.Json.Extended.Type (EJsonType )
47- import Data.Lens (Prism' , preview , prism' )
38+ import Data.Lens (Prism' , prism' )
4839import Data.Map as Map
4940import Data.Maybe as M
50- import Data.StrMap as SM
51- import Data.Traversable (for )
52- import Data.Tuple as T
5341import Matryoshka (class Corecursive , class Recursive , anaM , cata , embed , project )
54- import Control.Monad.Gen (class MonadGen )
55- import Control.Monad.Rec.Class (class MonadRec )
5642import Text.Parsing.Parser as P
5743
5844type EJson = Mu.Mu Sig.EJsonF
5945
60- decodeEJson ∷ ∀ t . Corecursive t Sig.EJsonF ⇒ JS.Json → E.Either String t
61- decodeEJson = anaM Sig .decodeJsonEJsonF
62-
63- encodeEJson ∷ ∀ t . Recursive t Sig.EJsonF ⇒ t → JS.Json
64- encodeEJson = cata Sig .encodeJsonEJsonF
65-
6646arbitraryEJsonOfSize
6747 ∷ ∀ m t
6848 . MonadGen m
@@ -103,11 +83,6 @@ array = embed <<< Sig.Array
10383map ∷ ∀ t . Corecursive t Sig.EJsonF ⇒ Map.Map t t → t
10484map = embed <<< Sig.Map <<< Sig.EJsonMap <<< Map .toUnfoldable
10585
106- map' ∷ ∀ t . Corecursive t Sig.EJsonF ⇒ SM.StrMap t → t
107- map' = embed <<< Sig.Map <<< Sig.EJsonMap <<< F .map go <<< SM .toUnfoldable
108- where
109- go (T.Tuple a b) = T.Tuple (string a) b
110-
11186getType ∷ ∀ t . Recursive t Sig.EJsonF ⇒ t → EJsonType
11287getType = Sig .getType <<< project
11388
@@ -151,8 +126,3 @@ _Map ∷ ∀ t. Corecursive t Sig.EJsonF ⇒ Recursive t Sig.EJsonF ⇒ Ord t
151126_Map = prism' map $ project >>> case _ of
152127 Sig.Map (Sig.EJsonMap kvs) → M.Just $ Map .fromFoldable kvs
153128 _ → M.Nothing
154-
155- _Map' ∷ ∀ t . Corecursive t Sig.EJsonF ⇒ Recursive t Sig.EJsonF ⇒ Prism' t (SM.StrMap t )
156- _Map' = prism' map' $ project >>> case _ of
157- Sig.Map (Sig.EJsonMap kvs) → SM .fromFoldable <$> for kvs (bitraverse (preview _String) pure)
158- _ → M.Nothing
0 commit comments