{- | Copyright: (c) 2018-2020 Kowainik SPDX-License-Identifier: MPL-2.0 Maintainer: Kowainik <xrom.xkov@gmail.com> Core types for TOML AST. -} module Toml.Type ( -- $toml module Toml.Type.TOML -- -- $edsl -- , module Toml.Type.Edsl -- Edsl.table conflicts with Codec.table -- $printer , module Toml.Type.Printer -- $prefix , module Toml.Type.PrefixTree -- $key , module Toml.Type.Key -- $uvalue , module Toml.Type.UValue -- $value , module Toml.Type.Value -- $anyvalue , module Toml.Type.AnyValue ) where import Toml.Type.AnyValue -- import Toml.Type.Edsl import Toml.Type.Key import Toml.Type.PrefixTree import Toml.Type.Printer import Toml.Type.TOML import Toml.Type.UValue import Toml.Type.Value {- $toml Main TOML AST data type. Text is converted to 'TOML' first. All codecs work with the 'TOML' type instead of raw text. -} -- {- $eDSL -- eDSL for type-safe construction of the 'TOML' values. -- -} {- $printer Pretty-printer for 'TOML'. -} {- $prefix 'PrefixMap' and 'PrefixTree' types that help representing 'TOML' AST. -} {- $key Key in key-value pairs and table names. Also 'Key' in 'PrefixMap'. -} {- $uvalue Untyped value obtained directly from parsing. -} {- $value Typed 'Value'. Result of type-checking 'UValue'. -} {- $anyvalue Existential wrapper around 'Value' to be able to store 'Value's of different types inside lists or other containers like 'Data.Map.Strict.Map' or 'Data.HashMap.Strict.HashMap'. -}