h&q      !"#$%&'()*+,-./0123456789:;<=>?@AB (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred689: aeson-extraCollapsed list, singleton is represented as the value itself in JSON encoding.  > decode "null" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList [])  > decode "42" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList [42])  > decode "[1, 2, 3]" :: Maybe (CollapsedList [Int] Int) Just (CollapsedList [1,2,3])  > encode (CollapsedList ([] :: [Int])) "null"  > encode (CollapsedList ([42] :: [Int])) "42"  > encode (CollapsedList ([1, 2, 3] :: [Int])) "[1,2,3]"Documentation rely on f C instance behaving like lists'. aeson-extra>Parses possibly collapsed array value from the object's field.  > newtype V = V [Int] deriving (Show)  > instance FromJSON V where parseJSON = withObject "V" $ \obj -> V <$> parseCollapsedList obj "value"  > decode "{}" :: Maybe V Just (V [])  > decode "{\"value\": null}" :: Maybe V Just (V [])  > decode "{\"value\": 42}" :: Maybe V Just (V [42])  > decode "{\"value\": [1, 2, 3, 4]}" :: Maybe V Just (V [1,2,3,4])(C) 2015-2017 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred 689: aeson-extraAn algebra of DSince: aeson-extra-0.3.1.0 aeson-extraA JSON "array" (sequence).Since: aeson-extra-0.3.1.0 aeson-extra A JSON "object" (key/value map).Since: aeson-extra-0.3.1.0  (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred! aeson-extraGeneric merge.For example see #.Since: aeson-extra-0.3.1.0" aeson-extra$Generic merge, in arbitrary context.Since: aeson-extra-0.3.1.0# aeson-extraExample of using !. see  https://lodash.com/docs#merge:Note: not tested against JavaScript lodash, so may disagree in the results. !"# !"#  Safe-Inferred  (C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred 1689: $ aeson-extraSingleton value object  > decode "{\"value\": 42 }" :: Maybe (SingObject "value" Int) Just (SingObject 42)  > encode (SingObject 42 :: SingObject "value" Int) "{\"value\":42}"Available with: base >=4.7( aeson-extra$%&'$%&'(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred 4 aeson-extra Lazyly parse E with top-level JSON array.Note:6 inspecting result's second field will force the list! let ~(values, err) = 4 bs traverse_ processValue values maybe (pure ()) printError err 44(C) 2015-2018 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred1 v5 aeson-extra/Singleton string encoded and decoded as ifself. 2> encode (SymTag :: SymTag "foobar") "\"foobar\"" :decode "\"foobar\"" :: Maybe (SymTag "foobar") Just SymTag 6decode "\"foobar\"" :: Maybe (SymTag "barfoo") NothingAvailable with: base >=4.77 aeson-extra5656(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-Inferred@ aeson-extra Create a D from string representation.This is useful in tests.Since: aeson-extra-0.3.1.0A aeson-extraLike @6, but replace single quotes with double quotes before. >> $(mkValue' "{'a': 2 }") Object (fromList [("a",Number 2.0)])Since: aeson-extra-0.3.1.0@A@A(C) 2015-2016 Oleg GrenrusBSD3"Oleg Grenrus  Safe-InferredB aeson-extraLike F, but produces strict G.Since: 0.2.3.0!#$%&'456@ABB56$%&'!#4@A      !"#$%&'()*++,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPKQRNSP*aeson-extra-0.5.1.2-8cNAPtbkASlI44uEkY0TvYData.Aeson.Extra.CollapsedListData.Aeson.Extra.RecursiveData.Aeson.Extra.MergeData.Aeson.Extra.SingObjectData.Aeson.Extra.StreamData.Aeson.Extra.SymTagData.Aeson.Extra.THData.Aeson.ExtraData.Aeson.Extra.Foldable CollapsedListgetCollapsedListparseCollapsedList$fFromJSONCollapsedList$fToJSONCollapsedList$fToJSON1CollapsedList$fFromJSON1CollapsedList$fEqCollapsedList$fOrdCollapsedList$fShowCollapsedList$fReadCollapsedList$fFunctorCollapsedList$fFoldableCollapsedList$fTraversableCollapsedListValueFObjectFArrayFStringFNumberFBoolFNullF$fCorecursiveValue$fRecursiveValue $fEqValueF $fReadValueF $fShowValueF $fDataValueF$fFunctorValueF$fFoldableValueF$fTraversableValueFmergemergeA lodashMerge SingObject mkSingObject getSingObject$fNFDataSingObject$fToJSONSingObject$fFromJSONSingObject$fToJSON1SingObject$fFromJSON1SingObject$fEqSingObject$fOrdSingObject$fShowSingObject$fReadSingObject$fFunctorSingObject$fFoldableSingObject$fTraversableSingObject streamDecodeSymTag$fNFDataSymTag$fToJSONSymTag$fFromJSONSymTag $fEqSymTag $fOrdSymTag $fShowSymTag $fReadSymTag $fEnumSymTag$fBoundedSymTagmkValuemkValue' encodeStrictbaseGHC.Base Alternative$aeson-2.1.2.1-1CP91TiqJNMKhmZsERtItUData.Aeson.Types.InternalValuebytestring-0.11.3.1Data.ByteString.Lazy.Internal ByteString Data.AesonencodeData.ByteString.Internal