-- 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)