module Funcons.Operations.Libraries where

import qualified Data.Map as M

import Funcons.Operations.Expr

type Library t = M.Map OP (ValueOp t)

libFromList :: [(OP, ValueOp t)] -> Library t
libFromList :: [(OP, ValueOp t)] -> Library t
libFromList = [(OP, ValueOp t)] -> Library t
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList

libLookup :: OP -> Library t -> Maybe (ValueOp t)
libLookup :: OP -> Library t -> Maybe (ValueOp t)
libLookup = OP -> Library t -> Maybe (ValueOp t)
forall k a. Ord k => k -> Map k a -> Maybe a
M.lookup

libUnite :: [Library t] -> Library t
libUnite :: [Library t] -> Library t
libUnite = [Library t] -> Library t
forall (f :: * -> *) k a.
(Foldable f, Ord k) =>
f (Map k a) -> Map k a
M.unions