-- 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.9 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 Nondeterministic :: [Result t] -> Result t choice :: [Result 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 ISOLatinCharacters :: Types t BMPCharacters :: Types t Atoms :: Types t IntegersFrom :: Integer -> Types t IntegersUpTo :: Integer -> Types t Characters :: Types t Complement :: Types t -> Types t ComputationTypes :: Types t EmptyType :: 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 Types :: Types t UnicodeCharacters :: Types t Union :: Types t -> Types t -> Types t Values :: 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] -- | 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 Atom :: String -> 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 VAny :: Values t ValSeq :: [t] -> Values t type MVar = String type Name = Text ascii_cons :: Name unicode_cons :: Name tuple :: HasValues t => [Values t] -> Values t list :: HasValues t => [Values t] -> Values t set :: (Ord t, HasValues t) => [Values t] -> Values t vector :: HasValues t => [Values t] -> Values t multi :: HasValues t => [t] -> Values t multi_ :: 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 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) traverseCTM :: forall m b a. (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) 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 upcastCharacter :: HasValues t => Values t -> Maybe Char castType :: HasValues t => Values t -> Maybe (Types t) mk_integers :: Integer -> Values t mk_naturals :: Integer -> Values t mk_unicode_characters :: HasValues t => Char -> Values t -- | Checks whetDoes not check whether the `unicode-point` of downcast_unicode_characters :: HasValues t => Char -> Values t (===) :: (HasValues t, Eq t) => Values t -> Values t -> Bool (=/=) :: (HasValues t, Eq t) => Values t -> Values t -> Bool isGround :: HasValues t => 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 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 EvalResults :: [EvalResult 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 empty_type_ :: HasValues t => [OpExpr t] -> OpExpr t empty_type :: 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 integers_from_ :: HasValues t => [OpExpr t] -> OpExpr t integers_from :: HasValues t => OpExpr t -> OpExpr t integers_up_to_ :: HasValues t => [OpExpr t] -> OpExpr t integers_up_to :: HasValues t => OpExpr 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 binary_natural_ :: HasValues t => [OpExpr t] -> OpExpr t binary_natural :: HasValues t => OpExpr t -> OpExpr t octal_natural_ :: HasValues t => [OpExpr t] -> OpExpr t octal_natural :: HasValues t => OpExpr t -> OpExpr t hexadecimal_natural_ :: HasValues t => [OpExpr t] -> OpExpr t hexadecimal_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 type Graph e = Map e (Set e) is_cyclic_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t is_cyclic :: (Ord t, HasValues t) => OpExpr t -> OpExpr t topological_sort_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t topological_sort :: (Ord t, HasValues t) => OpExpr t -> OpExpr t toGraph :: Ord t => Values t -> Maybe (Graph (Values t)) -- | Get the entry points of the graph entries :: Eq e => Graph e -> [e] -- | Delete a node from the graph delete :: Ord e => e -> Graph e -> Graph e -- | Return all nodes in the graph such that if `a -> b` in the graph -- then a occurs before b in the result Also returns a -- graph which, if cyclic, contains all the cycles in the original graph, -- corresponding to nodes not in the schedule. schedule :: Ord e => Graph e -> ([e], Graph e) -- | Checks whether the given grammar contains cycles cyclic :: Ord e => Graph e -> Bool -- | Checks whether the given graph is empty is_empty :: Map k a -> Bool 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 multisets_ :: HasValues t => [OpExpr t] -> OpExpr t multiset_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t multiset_elements_ :: HasValues t => [OpExpr t] -> OpExpr t multiset_elements :: HasValues t => OpExpr t -> OpExpr t multiset_occurrences_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t multiset_occurrences :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t multiset_insert_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t multiset_insert :: (HasValues t, Ord t) => OpExpr t -> OpExpr t -> OpExpr t multiset_delete_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t multiset_delete :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t -> OpExpr t is_submultiset_ :: (Ord t, HasValues t) => [OpExpr t] -> OpExpr t is_submultiset :: (Ord t, HasValues t) => OpExpr t -> OpExpr t -> OpExpr t bit_vector_not_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_not :: HasValues t => OpExpr t -> OpExpr t bit_vector_and_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_and :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_or_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_or :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_xor_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_xor :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_shift_left_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_shift_left :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_logical_shift_right_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_logical_shift_right :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_arithmetical_shift_right_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_arithmetical_shift_right :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t bit_vector_to_integer_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_to_integer :: HasValues t => OpExpr t -> OpExpr t bit_vector_to_natural_ :: HasValues t => [OpExpr t] -> OpExpr t bit_vector_to_natural :: HasValues t => OpExpr t -> OpExpr t integer_to_bit_vector_ :: HasValues t => [OpExpr t] -> OpExpr t integer_to_bit_vector :: HasValues t => OpExpr t -> OpExpr t -> OpExpr t apply_to_vec :: HasValues t => (BV -> BV) -> [t] -> Maybe [t] args_to_bools :: HasValues t => [t] -> Maybe [Bool] binary_bit_op :: (HasValues t1, HasValues t2) => [Char] -> (BV -> BV -> BV) -> Values t1 -> Values t2 -> Result t2 bit_nat_op :: (HasValues t1, Num b) => [Char] -> (BV -> b -> BV) -> Values t1 -> Values t2 -> Result t1 characters_ :: HasValues t => [OpExpr t] -> OpExpr t characters :: HasValues t => OpExpr t unicode_characters_ :: HasValues t => [OpExpr t] -> OpExpr t unicode_characters :: HasValues t => OpExpr t unicode_points_ :: HasValues t => [OpExpr t] -> OpExpr t unicode_points :: HasValues t => OpExpr t bmp_points_ :: HasValues t => [OpExpr t] -> OpExpr t bmp_points :: HasValues t => OpExpr t ascii_characters_ :: HasValues t => [OpExpr t] -> OpExpr t ascii_characters :: HasValues t => OpExpr t iso_latin_characters_ :: HasValues t => [OpExpr t] -> OpExpr t iso_latin_characters :: HasValues t => OpExpr t bmp_characters_ :: HasValues t => [OpExpr t] -> OpExpr t bmp_characters :: HasValues t => OpExpr t ascii_character_ :: HasValues t => [OpExpr t] -> OpExpr t ascii_character :: HasValues t => OpExpr t -> OpExpr t unicode_character_ :: HasValues t => [OpExpr t] -> OpExpr t unicode_character :: HasValues t => OpExpr t -> OpExpr t numUnicodeCodes :: Integer numBMPCodes :: Integer unicode_point_ :: HasValues t => [OpExpr t] -> OpExpr t unicode_point :: 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)