packages feed

Hawk-0.0.2: src/Data/EitherMapTree.hs

module Data.EitherMapTree where

import qualified Data.Map as M

data EitherMapTree a b = Node {
    subNodes :: M.Map a (Either [EitherMapTree a b] b)
    }
    deriving (Show)

lookup :: (Ord a) => a -> EitherMapTree a b -> Maybe (Either [EitherMapTree a b] b)
lookup k (Node sn) = M.lookup k sn

fromList :: Ord a => [(a, Either [EitherMapTree a b] b)] -> EitherMapTree a b
fromList = Node . M.fromList