hsini-0.5.2.2: src/Data/Ini/Types.hs
{-# LANGUAGE ImportQualifiedPost #-}
{- |
Module : Data.Ini.Types
Copyright : 2011-2014 Magnus Therning
License : BSD3
-}
module Data.Ini.Types where
import Control.Arrow (second)
import Data.Map qualified as M
type Config = M.Map SectionName Section
type SectionName = String
type Section = M.Map OptionName OptionValue
type OptionName = String
type OptionValue = String
-- useful since Map doesn't have any Serial instance
cfgFromList :: [(SectionName, [(OptionName, OptionValue)])] -> Config
cfgFromList = M.fromList . map (second M.fromList)
cfgToList :: Config -> [(SectionName, [(OptionName, OptionValue)])]
cfgToList = M.toList . M.map M.toList