module Data.EDN ( TaggedValue , Tagged(..) , stripTag , Value(..) , EDNList, EDNVec, EDNMap, EDNSet , mkList, mkVec, mkMap, mkSet , parseText , renderText , encodeText , ToEDN(..) , toEDNtagged , decodeText , FromEDN(..) , fromEDN , withTagged , withNoTag , withNil , withBoolean , withString , withCharacter , withSymbol , withKeyword , withTextual , withInteger , withIntegral , withFloating , withFractional , withList , withVec , withMap , withSet , unexpected , vecGet , mapGetKeyword , mapGetString , mapGetSymbol , mapGetSymbolNS ) where import Data.Text (Text) import Data.EDN.AST.Parser (parseText) import Data.EDN.AST.Printer (renderText) import Data.EDN.AST.Types.Tagged import Data.EDN.AST.Types.Value import Data.EDN.Class encodeText :: ToEDN a => a -> Text encodeText = renderText . toEDN decodeText :: (FromEDN a, Monad m) => String -> Text -> m a decodeText sourceName source = parseText sourceName source >>= fromEDN