-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library providing values and operations on values in a fixed universe. -- -- The PLanCompS project (http://plancomps.org) has developed a -- component-based approach to formal semantics. The semantics of a -- language is defined by translating its constructs to combinations of -- `fundamental constructs' called funcons. -- -- This package provides a fixed universe types, values and operations -- which are lifted to funcons as part of the funcons-tools -- package (http://hackage.haskell.org/package/funcons-tools). @package funcons-values @version 0.1.0.3 module Funcons.Operations atom_seed_ :: HasValues t => [OpExpr t] -> OpExpr t atom_seed :: HasValues t => OpExpr t next_atom_ :: HasValues t => [OpExpr t] -> OpExpr t next_atom :: HasValues t => OpExpr t -> OpExpr t atoms_ :: HasValues t => [OpExpr t] -> OpExpr t atoms :: HasValues t => OpExpr t atom_ :: HasValues t => [OpExpr t] -> OpExpr t atom :: HasValues t => OpExpr t -> OpExpr t adts_ :: HasValues t => [OpExpr t] -> OpExpr t adts :: HasValues t => OpExpr t adt_construct_ :: HasValues t => [OpExpr t] -> OpExpr t adt_type_construct_ :: HasValues t => [OpExpr t] -> OpExpr t adt_constructor_ :: HasValues t => [OpExpr t] -> OpExpr t adt_constructor :: HasValues t => OpExpr t -> OpExpr t adt_fields_ :: HasValues t => [OpExpr t] -> OpExpr t adt_fields :: HasValues t => OpExpr t -> OpExpr t type OP = String data Result t SortErr :: String -> Result t DomErr :: String -> Result t ArityErr :: String -> Result t ProjErr :: String -> Result t Normal :: t -> Result t type NullaryOp t = Result t type UnaryOp t = t -> Result t type BinaryOp t = t -> t -> Result t type TernaryOp t = t -> t -> t -> Result t type NaryOp t = [t] -> Result t type NullaryVOp t = Result t type UnaryVOp t = Values t -> Result t type BinaryVOp t = Values t -> Values t -> Result t type TernaryVOp t = Values t -> Values t -> Values t -> Result t type NaryVOp t = [Values t] -> Result t data OpExpr t ValExpr :: (Values t) -> OpExpr t TermExpr :: t -> OpExpr t NullaryOp :: OP -> (NullaryOp t) -> OpExpr t UnaryOp :: OP -> (UnaryOp t) -> (OpExpr t) -> OpExpr t BinaryOp :: OP -> (BinaryOp t) -> (OpExpr t) -> (OpExpr t) -> OpExpr t TernaryOp :: OP -> (TernaryOp t) -> (OpExpr t) -> (OpExpr t) -> (OpExpr t) -> OpExpr t NaryOp :: OP -> (NaryOp t) -> [OpExpr t] -> OpExpr t InvalidOp :: OP -> String -> [OpExpr t] -> OpExpr t RewritesTo :: OP -> (OpExpr t) -> [OpExpr t] -> OpExpr t vNullaryOp :: OP -> NullaryVOp t -> OpExpr t vUnaryOp :: HasValues t => OP -> UnaryVOp t -> OpExpr t -> OpExpr t vBinaryOp :: HasValues t => OP -> BinaryVOp t -> OpExpr t -> OpExpr t -> OpExpr t vTernaryOp :: HasValues t => OP -> TernaryVOp t -> OpExpr t -> OpExpr t -> OpExpr t -> OpExpr t vNaryOp :: HasValues t => OP -> NaryVOp t -> [OpExpr t] -> OpExpr t opName :: OpExpr t -> OP data ValueOp t NullaryExpr :: (NullaryExpr t) -> ValueOp t UnaryExpr :: (UnaryExpr t) -> ValueOp t BinaryExpr :: (BinaryExpr t) -> ValueOp t TernaryExpr :: (TernaryExpr t) -> ValueOp t NaryExpr :: (NaryExpr t) -> ValueOp t type NullaryExpr t = OpExpr t type UnaryExpr t = OpExpr t -> OpExpr t type BinaryExpr t = OpExpr t -> OpExpr t -> OpExpr t type TernaryExpr t = OpExpr t -> OpExpr t -> OpExpr t -> OpExpr t type NaryExpr t = [OpExpr t] -> OpExpr t nullaryOp :: NullaryExpr t -> [OpExpr t] -> OpExpr t unaryOp :: UnaryExpr t -> [OpExpr t] -> OpExpr t binaryOp :: BinaryExpr t -> [OpExpr t] -> OpExpr t ternaryOp :: TernaryExpr t -> [OpExpr t] -> OpExpr t arityErr :: Int -> OP -> [OpExpr t] -> OpExpr t applyExpr :: HasValues t => OpExpr t -> Result t data IEEEFormats Binary32 :: IEEEFormats Binary64 :: IEEEFormats class HasTypes t projectT :: HasTypes t => t -> Maybe (Types t) injectT :: HasTypes t => Types t -> t class HasComputationTypes t projectCT :: HasComputationTypes t => t -> Maybe (ComputationTypes t) injectCT :: HasComputationTypes t => ComputationTypes t -> t class HasValues t project :: HasValues t => t -> Maybe (Values t) inject :: HasValues t => Values t -> t -- | Representation of builtin types. data Types t ADTs :: Types t ADT :: Name -> [t] -> Types t AnnotatedType :: (Types t) -> SeqSortOp -> Types t AsciiCharacters :: Types t Atoms :: Types t Bits :: Int -> Types t IntegersFrom :: Integer -> Types t IntegersUpTo :: Integer -> Types t Characters :: Types t Complement :: (Types t) -> Types t ComputationTypes :: Types t EmptyType :: Types t GroundValues :: Types t IEEEFloats :: IEEEFormats -> Types t Integers :: Types t Intersection :: (Types t) -> (Types t) -> Types t Naturals :: Types t NullType :: Types t Rationals :: Types t Strings :: Types t Types :: Types t UnicodeCharacters :: Types t Union :: (Types t) -> (Types t) -> Types t Values :: Types t ASTs :: Types t -- | Computation type S=>T reflects a type of term whose given -- value is of type S and result is of type T. data ComputationTypes t Type :: (Types t) -> ComputationTypes t -- | =>T ComputesType :: (Types t) -> ComputationTypes t -- | S=>T ComputesFromType :: (Types t) -> (Types t) -> ComputationTypes t -- | Postfix operators for specifying sequences. data SeqSortOp StarOp :: SeqSortOp PlusOp :: SeqSortOp QuestionMarkOp :: SeqSortOp type ValueVectors t = Vector t type ValueSets t = Set t type ValueMaps t = Map t [t] data TaggedSyntax t TagName :: Name -> [Values t] -> TaggedSyntax t TagType :: (Types t) -> (Values t) -> TaggedSyntax t -- | This datatype provides a number of builtin value types. The type -- t is expected to be a super-type of `Values t`, such that -- there is a projection and injection between t and `Values t`, -- (see HasValues) data Values t ADTVal :: Name -> [t] -> Values t Ascii :: Char -> Values t Atom :: String -> Values t Bit :: BitVector -> Values t Char :: Char -> Values t ComputationType :: (ComputationTypes t) -> Values t Float :: Double -> Values t IEEE_Float_32 :: Float -> Values t IEEE_Float_64 :: Double -> Values t Int :: Integer -> Values t Map :: (ValueMaps (Values t)) -> Values t Multiset :: (MultiSet (Values t)) -> Values t Nat :: Integer -> Values t Rational :: Rational -> Values t Set :: (ValueSets (Values t)) -> Values t Vector :: (ValueVectors (Values t)) -> Values t VMeta :: (TaggedSyntax t) -> Values t VAny :: Values t type MVar = String type Name = Text tuple :: HasValues t => [Values t] -> Values t list :: HasValues t => [Values t] -> Values t sets :: HasValues t => Types t -> Types t multisets :: HasValues t => Types t -> Types t maps :: HasValues t => t -> t -> Types t vectors :: HasValues t => Types t -> Types t vmap :: (Ord b) => (a -> b) -> Values a -> Values b vmapTS :: (Ord b) => (a -> b) -> TaggedSyntax a -> TaggedSyntax b traverseV :: (Ord b, Monad m, HasValues a, HasValues b) => (a -> m b) -> Values a -> m (Values b) traverseVM :: (Ord b, Monad m, HasValues a, HasValues b) => (a -> m b) -> ([a] -> m [b]) -> Values a -> m (Values b) traverseT :: (Ord b, Monad m, HasValues a, HasValues b) => (a -> m b) -> Types a -> m (Types b) traverseTM :: (Ord b, Monad m, HasValues a, HasValues b) => (a -> m b) -> ([a] -> m [b]) -> Types a -> m (Types b) traverseTSM :: (Ord b, Monad m, HasValues a, HasValues b) => a -> m b -> [a] -> m [b] -> TaggedSyntax a -> m TaggedSyntax b traverseCTM :: (Ord b, Monad m, HasValues a, HasValues b) => a -> m b -> [a] -> m [b] -> ComputationTypes a -> m ComputationTypes b structVcompare :: (Monoid m, HasValues a, HasValues b) => (a -> b -> Maybe m) -> Values a -> Values b -> Maybe (Maybe m) structCTMcompare :: (Monoid m, HasValues a, HasValues b) => (a -> b -> Maybe m) -> ([a] -> [b] -> Maybe m) -> ComputationTypes a -> ComputationTypes b -> (Maybe (Maybe m)) structVMcompare :: (Monoid m, HasValues b, HasValues a) => (a -> b -> Maybe m) -> ([a] -> [b] -> Maybe m) -> Values a -> Values b -> Maybe (Maybe m) structTSMcompare :: (HasValues b1, HasValues b2, Monoid m) => b1 -> b2 -> Maybe m -> [b1] -> [b2] -> Maybe m -> TaggedSyntax b1 -> TaggedSyntax b2 -> Maybe Maybe m structTMcompare :: (Monoid m, HasValues a, HasValues b) => (a -> b -> Maybe m) -> ([a] -> [b] -> Maybe m) -> Types a -> Types b -> Maybe (Maybe m) downcastValueType :: Values t -> Types t -- | Returns the rational representation of a value if it is a -- subtype. Otherwise it returns the original value. upcastRationals :: Values t -> Values t -- | Returns the integer representation of a value if it is a -- subtype. Otherwise it returns the original value. upcastIntegers :: Values t -> Values t -- | Returns the natural representation of a value if it is a -- subtype. Otherwise it returns the original value. upcastNaturals :: Values t -> Values t -- | Returns the unicode representation of an assci value. Otherwise -- it returns the original value. upcastUnicode :: Values t -> Values t castType :: HasValues t => Values t -> Maybe (Types t) mk_integers :: Integer -> Values t mk_naturals :: Integer -> Values t mk_unicode_characters :: Char -> Values t mk_ascii_characters :: Char -> Values t (===) :: (HasValues t, Eq t) => Values t -> Values t -> Bool (=/=) :: (HasValues t, Eq t) => Values t -> Values t -> Bool isAscii :: () => Values t -> Bool isChar :: () => Values t -> Bool isNat :: () => Values t -> Bool isInt :: () => Values t -> Bool isEnv :: () => Values t -> Bool isMap :: () => Values t -> Bool isSet :: () => Values t -> Bool isString_ :: HasValues t => Values t -> Bool isType :: () => Values t -> Bool isVec :: () => Values t -> Bool unString :: HasValues t => Values t -> String null__ :: Values t null_value__ :: Values t isNull :: Values t -> Bool isDefinedVal :: Values t -> Bool ppValues :: HasValues t => (t -> String) -> Values t -> String ppTaggedSyntax :: HasValues t => (t -> String) -> TaggedSyntax t -> String ppComputationTypes :: HasValues t => (t -> String) -> ComputationTypes t -> String ppTypes :: HasValues t => (t -> String) -> Types t -> String ppOp :: SeqSortOp -> String showArgs_ :: [String] -> String data EvalResult t Error :: (OpExpr t) -> (Result t) -> EvalResult t Success :: t -> EvalResult t eval :: HasValues t => OpExpr t -> EvalResult t applyEval :: OpExpr t -> Result t -> EvalResult t lists_ :: HasValues t => [OpExpr t] -> OpExpr t lists :: HasValues t => OpExpr t -> OpExpr t list_singleton_ :: HasValues t => [OpExpr t] -> OpExpr t list_singleton :: HasValues t => OpExpr t -> OpExpr t nil_ :: HasValues t => [OpExpr t] -> OpExpr t nil :: HasValues t => OpExpr t is_nil_ :: HasValues t => [OpExpr t] -> OpExpr t is_nil :: HasValues t => OpExpr t -> OpExpr t cons_ :: HasValues t => [OpExpr t] -> OpExpr t cons :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t list_ :: HasValues t => [OpExpr t] -> OpExpr t list_append_ :: HasValues t => [OpExpr t] -> OpExpr t list_append :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t isList :: HasValues t => Values t -> Bool toList :: HasValues t => Values t -> [Values t] list_concat_ :: HasValues t => [OpExpr t] -> OpExpr t list_concat :: HasValues t => [OpExpr t] -> OpExpr t head_ :: HasValues t => [OpExpr t] -> OpExpr t tail_ :: HasValues t => [OpExpr t] -> OpExpr t headOp :: HasValues t => OpExpr t -> OpExpr t tailOp :: HasValues t => OpExpr t -> OpExpr t tuples_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_is_empty_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_is_empty :: HasValues t => OpExpr t -> OpExpr t empty_tuple_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_prepend_ :: HasValues t => [OpExpr t] -> OpExpr t empty_tuple :: HasValues t => OpExpr t tuple_prepend :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t tuple_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_index_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_index :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t tuple_head_ :: HasValues t => [OpExpr t] -> OpExpr t tuple_tail_ :: HasValues t => [OpExpr t] -> OpExpr t tupleHeadOp :: HasValues t => OpExpr t -> OpExpr t tupleTailOp :: HasValues t => OpExpr t -> OpExpr t tobool :: Bool -> Values t frombool :: (Values t) -> Maybe Bool booleans_ :: HasValues t => OpExpr t true_ :: HasValues t => Values t false_ :: HasValues t => Values t is_equal_ :: (HasValues t, Eq t) => [OpExpr t] -> OpExpr t is_equal :: (HasValues t, Eq t) => OpExpr t -> OpExpr t -> OpExpr t toOpt :: HasValues t => Maybe t -> Values t none__ :: () => Values t optionals_ :: HasValues t => [OpExpr t] -> OpExpr t optionals :: HasValues t => OpExpr t -> OpExpr t some__ :: HasValues t => t -> Values t some_ :: HasValues t => [OpExpr t] -> OpExpr t some :: HasValues t => OpExpr t -> OpExpr t none_ :: HasValues t => [OpExpr t] -> OpExpr t none :: HasValues t => OpExpr t datatype_values_ :: HasValues t => [OpExpr t] -> OpExpr t datatype_values :: HasValues t => OpExpr t ground_values_ :: HasValues t => [OpExpr t] -> OpExpr t ground_values :: HasValues t => OpExpr t types_ :: HasValues t => [OpExpr t] -> OpExpr t types :: HasValues t => OpExpr t value_types_ :: HasValues t => [OpExpr t] -> OpExpr t value_types :: HasValues t => OpExpr t nulltype_ :: HasValues t => [OpExpr t] -> OpExpr t nulltype :: HasValues t => OpExpr t null_ :: HasValues t => [OpExpr t] -> OpExpr t null :: HasValues t => OpExpr t values_ :: HasValues t => [OpExpr t] -> OpExpr t values :: HasValues t => OpExpr t is_value_ :: HasValues t => [OpExpr t] -> OpExpr t is_value :: HasValues t => OpExpr t -> OpExpr t value_type_ :: HasValues t => [OpExpr t] -> OpExpr t value_type :: HasValues t => OpExpr t -> OpExpr t tyOf :: HasValues t => Values t -> Types t type_member_ :: HasValues t => [OpExpr t] -> OpExpr t -- | Type membership check for primitive types and predefined composite -- types (non-ADTs). type_member :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t isInType :: HasValues t => Values t -> Types t -> Maybe Bool isInTupleType :: HasValues t => [Values t] -> [Types t] -> Maybe Bool non_grounded_ :: HasValues t => [OpExpr t] -> OpExpr t non_grounded :: HasValues t => OpExpr t -> OpExpr t non_grounded_values_ :: HasValues t => [OpExpr t] -> OpExpr t non_grounded_values :: HasValues t => OpExpr t integer_mod_ :: HasValues t => [OpExpr t] -> OpExpr t integer_modulo_ :: HasValues t => [OpExpr t] -> OpExpr t stepMod :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t integers_ :: HasValues t => [OpExpr t] -> OpExpr t integers :: HasValues t => OpExpr t is_integer_ :: HasValues t => [OpExpr t] -> OpExpr t is_integer :: HasValues t => OpExpr t -> OpExpr t integer_add_ :: HasValues t => [OpExpr t] -> OpExpr t integer_multiply_ :: HasValues t => [OpExpr t] -> OpExpr t integer_subtract_ :: HasValues t => [OpExpr t] -> OpExpr t integer_subtract :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t integer_divide_ :: HasValues t => [OpExpr t] -> OpExpr t integer_divide :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t integer_power_ :: HasValues t => [OpExpr t] -> OpExpr t integer_power :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t natural_predecessor_ :: HasValues t => [OpExpr t] -> OpExpr t nat_pred_ :: HasValues t => [OpExpr t] -> OpExpr t natural_predecessor :: HasValues t => OpExpr t -> OpExpr t natural_successor_ :: HasValues t => [OpExpr t] -> OpExpr t nat_succ_ :: HasValues t => [OpExpr t] -> OpExpr t natural_successor :: HasValues t => OpExpr t -> OpExpr t integer_list_ :: HasValues t => [OpExpr t] -> OpExpr t integer_list :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t integer_absolute_value_ :: HasValues t => [OpExpr t] -> OpExpr t integer_absolute_value :: HasValues t => OpExpr t -> OpExpr t decimal_natural_ :: HasValues t => [OpExpr t] -> OpExpr t decimal_natural :: HasValues t => OpExpr t -> OpExpr t is_less_ :: HasValues t => [OpExpr t] -> OpExpr t is_less :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t is_less_or_equal_ :: HasValues t => [OpExpr t] -> OpExpr t is_less_or_equal :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t is_greater_ :: HasValues t => [OpExpr t] -> OpExpr t is_greater :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t is_greater_or_equal_ :: HasValues t => [OpExpr t] -> OpExpr t is_greater_or_equal :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t ieee_float_truncate_ :: HasValues t => [OpExpr t] -> OpExpr t ieee_float_truncate :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t ieee_float_add_ :: HasValues t => [OpExpr t] -> OpExpr t ieee_float_op :: HasValues t => String -> (Double -> Double -> Double) -> Double -> Values t -> [Values t] -> Result t isIEEEFormat :: Values t -> Values t -> Bool doubleFromIEEEFormat :: Values t -> Values t -> Double is_string_ :: HasValues t => [OpExpr t] -> OpExpr t is_string :: HasValues t => OpExpr t -> OpExpr t to_string_ :: HasValues t => [OpExpr t] -> OpExpr t to_string :: HasValues t => OpExpr t -> OpExpr t stepTo_String :: HasValues t => Values t -> Result t mk_string :: HasValues t => String -> Result t sets_ :: HasValues t => [OpExpr t] -> OpExpr t set_empty_ :: HasValues t => [OpExpr t] -> OpExpr t set_empty :: HasValues t => OpExpr t is_in_set_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t is_in_set :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t set_elements_ :: HasValues t => [OpExpr t] -> OpExpr t set_elements :: HasValues t => OpExpr t -> OpExpr t set_size_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_size :: (Ord t, HasValues t) => OpExpr t -> OpExpr t set_intersect_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_difference_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_difference :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t some_element_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t some_element :: (HasValues t, Ord t) => OpExpr t -> OpExpr t is_subset_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t is_subset :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t set_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_unite_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_insert_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t set_insert :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t element_not_in_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t element_not_in :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t characters_ :: HasValues t => [OpExpr t] -> OpExpr t characters :: HasValues t => OpExpr t ascii_characters_ :: HasValues t => [OpExpr t] -> OpExpr t ascii_characters :: HasValues t => OpExpr t ascii_character_ :: HasValues t => [OpExpr t] -> OpExpr t ascii_character :: HasValues t => OpExpr t -> OpExpr t unicode_ :: HasValues t => [OpExpr t] -> OpExpr t unicode :: HasValues t => OpExpr t -> OpExpr t numUnicodeCodes :: Integer unicode_character_code_ :: HasValues t => [OpExpr t] -> OpExpr t unicode_character_code :: HasValues t => OpExpr t -> OpExpr t map_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t maps_ :: HasValues t => [OpExpr t] -> OpExpr t map_empty_ :: HasValues t => [OpExpr t] -> OpExpr t map_empty :: HasValues t => OpExpr t map_singleton_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_singleton :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t is_map_empty_ :: HasValues t => [OpExpr t] -> OpExpr t is_map_empty :: HasValues t => OpExpr t -> OpExpr t map_insert_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_insert :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t -> OpExpr t map_lookup_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_lookup :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t map_delete_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_delete :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t is_in_domain_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t is_in_domain :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t domain_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t domain :: (HasValues t, Ord t) => OpExpr t -> OpExpr t map_override_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_unite_ :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t map_unite :: (HasValues t, Ord t) => [OpExpr t] -> OpExpr t toMap :: () => Values t -> ValueMaps Values t allDomainPairs :: [a] -> [(a, a)] map_elements_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t map_elements :: (Ord t, HasValues t) => OpExpr t -> OpExpr t libApp :: (HasValues t, Ord t) => OP -> [OpExpr t] -> Maybe (OpExpr t) libAppWith :: (HasValues t, Ord t) => Library t -> OP -> [OpExpr t] -> Maybe (OpExpr t) libFromList :: [(OP, ValueOp t)] -> Library t libUnite :: [Library t] -> Library t library :: (HasValues t, Ord t) => Library t type Library t = Map OP (ValueOp t)