{-# LANGUAGE OverloadedStrings #-} module Funcons.Core.Values.Composite.MultisetsBuiltin where import Funcons.EDSL import qualified Funcons.Operations as VAL library :: FunconLibrary library = [(Name, EvalFunction)] -> FunconLibrary libFromList [ (Name "multisets", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multisets_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.multisets_) , (Name "multiset", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multiset_ [OpExpr Funcons] -> OpExpr Funcons forall t. (Ord t, HasValues t) => [OpExpr t] -> OpExpr t VAL.multiset_) , (Name "multiset-elements", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multiset_elements_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.multiset_elements_) , (Name "multiset-occurrences", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multiset_occurrences_ [OpExpr Funcons] -> OpExpr Funcons forall t. (Ord t, HasValues t) => [OpExpr t] -> OpExpr t VAL.multiset_occurrences_) , (Name "multiset-insert", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multiset_insert_ [OpExpr Funcons] -> OpExpr Funcons forall t. (Ord t, HasValues t) => [OpExpr t] -> OpExpr t VAL.multiset_insert_) , (Name "multiset-delete", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons multiset_delete_ [OpExpr Funcons] -> OpExpr Funcons forall t. (Ord t, HasValues t) => [OpExpr t] -> OpExpr t VAL.multiset_delete_) , (Name "is-submultiset", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromValOp [Funcons] -> Funcons is_submultiset_ [OpExpr Funcons] -> OpExpr Funcons forall t. (Ord t, HasValues t) => [OpExpr t] -> OpExpr t VAL.is_submultiset_) ] multisets_ :: [Funcons] -> Funcons multisets_ = Name -> [Funcons] -> Funcons applyFuncon Name "multisets" multiset_ :: [Funcons] -> Funcons multiset_ = Name -> [Funcons] -> Funcons applyFuncon Name "multiset" multiset_elements_ :: [Funcons] -> Funcons multiset_elements_ = Name -> [Funcons] -> Funcons applyFuncon Name "multiset-elements" multiset_occurrences_ :: [Funcons] -> Funcons multiset_occurrences_ = Name -> [Funcons] -> Funcons applyFuncon Name "multiset-occurrences" multiset_insert_ :: [Funcons] -> Funcons multiset_insert_ = Name -> [Funcons] -> Funcons applyFuncon Name "multiset-insert" multiset_delete_ :: [Funcons] -> Funcons multiset_delete_ = Name -> [Funcons] -> Funcons applyFuncon Name "multiset-delete" is_submultiset_ :: [Funcons] -> Funcons is_submultiset_ = Name -> [Funcons] -> Funcons applyFuncon Name "is-submultiset"