h*76$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH2.3.1 2020-2024 Albert KrewinkelMIT#Albert Krewinkel  Safe-Inferred"hslua-objectorientationLua metadata operation types.hslua-objectorientationthe addition (+) operation. If any operand for an addition is not a number (nor a string coercible to a number), Lua will try to call a metamethod. First, Lua will check the first operand (even if it is valid). If that operand does not define a metamethod for __add, then Lua will check the second operand. If Lua can find a metamethod, it calls the metamethod with the two operands as arguments, and the result of the call (adjusted to one value) is the result of the operation. Otherwise, it raises an error.hslua-objectorientationthe subtraction (-9) operation. Behavior similar to the addition operation.hslua-objectorientationthe multiplication (*9) operation. Behavior similar to the addition operation.hslua-objectorientationthe division (/9) operation. Behavior similar to the addition operation.hslua-objectorientation the modulo (%9) operation. Behavior similar to the addition operation.hslua-objectorientationthe exponentiation (^9) operation. Behavior similar to the addition operation.hslua-objectorientationthe negation (unary -9) operation. Behavior similar to the addition operation.hslua-objectorientationthe floor division (//9) operation. Behavior similar to the addition operation. hslua-objectorientationthe bitwise AND (&) operation. Behavior similar to the addition operation, except that Lua will try a metamethod if any operand is neither an integer nor a value coercible to an integer (see 3.4.3). hslua-objectorientationthe bitwise OR (|<) operation. Behavior similar to the bitwise AND operation. hslua-objectorientation!the bitwise exclusive OR (binary ~<) operation. Behavior similar to the bitwise AND operation. hslua-objectorientationthe bitwise NOT (unary ~<) operation. Behavior similar to the bitwise AND operation. hslua-objectorientationthe bitwise left shift (<<<) operation. Behavior similar to the bitwise AND operation.hslua-objectorientationthe bitwise right shift (>><) operation. Behavior similar to the bitwise AND operation.hslua-objectorientationthe concatenation (..) operation. Behavior similar to the addition operation, except that Lua will try a metamethod if any operand is neither a string nor a number (which is always coercible to a string).hslua-objectorientation the length (#) operation. If the object is not a string, Lua will try its metamethod. If there is a metamethod, Lua calls it with the object as argument, and the result of the call (always adjusted to one value) is the result of the operation. If there is no metamethod but the object is a table, then Lua uses the table length operation (see 3.4.7). Otherwise, Lua raises an error.hslua-objectorientation the equal (==) operation. Behavior similar to the addition operation, except that Lua will try a metamethod only when the values being compared are either both tables or both full userdata and they are not primitively equal. The result of the call is always converted to a boolean.hslua-objectorientationthe less than (<) operation. Behavior similar to the addition operation, except that Lua will try a metamethod only when the values being compared are neither both numbers nor both strings. The result of the call is always converted to a boolean.hslua-objectorientationthe less equal (<=) operation. Unlike other operations, the less-equal operation can use two different events. First, Lua looks for the __le metamethod in both operands, like in the less than operation. If it cannot find such a metamethod, then it will try the __lt metamethod, assuming that a <= b is equivalent to not (b < a). As with the other comparison operators, the result is always a boolean. (This use of the __lt event can be removed in future versions; it is also slower than a real __le metamethod.)hslua-objectorientationThe indexing access operation  table[key]. This event happens when table is not a table or when key is not present in table. The metamethod is looked up in table.hslua-objectorientationThe indexing assignment table[key] = value. Like the index event, this event happens when table is not a table or when key is not present in table. The metamethod is looked up in table.hslua-objectorientationThe call operation  func(args). This event happens when Lua tries to call a non-function value (that is, func is not a function). The metamethod is looked up in func. If present, the metamethod is called with func as its first argument, followed by the arguments of the original call (args). All results of the call are the result of the operation. (This is the only metamethod that allows multiple results.)hslua-objectorientationThe operation used to create a string representation of the object.hslua-objectorientation>the operation of iterating over the object's key-value pairs.hslua-objectorientation;a custom operation, with the metamethod name as parameter.hslua-objectorientation;Returns the metamethod name used to control this operation.   2021-2024 Albert KrewinkelMIT#Albert Krewinkel  Safe-Inferred"5$hslua-objectorientationA property or method which may be available in some instances but not in others.!hslua-objectorientation-A type member, either a method or a variable."hslua-objectorientation5Index types allowed in aliases (strings and integers)%hslua-objectorientation=Alias for a different property of this or of a nested object.&hslua-objectorientation-A read- and writable property on a UD object.,hslua-objectorientationA userdata type, capturing the behavior of Lua objects that wrap Haskell values. The type name must be unique; once the type has been used to push or retrieve a value, the behavior can no longer be modified through this type.-hslua-objectorientationPair of pairs, describing how a type can be used as a Lua list. The first pair describes how to push the list items, and how the list is extracted from the type; the second pair contains a method to retrieve list items, and defines how the list is used to create an updated value..hslua-objectorientationA userdata type, capturing the behavior of Lua objects that wrap Haskell values. The type name must be unique; once the type has been used to push or retrieve a value, the behavior can no longer be modified through this type.This type includes methods to define how the object should behave as a read-only list of type itemtype.Ihslua-objectorientation8Throws an error nothing that the given key is read-only.Jhslua-objectorientationSets a value in the userdata's caching table (uservalue). Takes the same arguments as a  __newindex function.Khslua-objectorientationSets a new value in the userdata caching table via a setter functions.The actual assignment is performed by a setter function stored in the setter metafield. Throws an error if no setter function can be found.Lhslua-objectorientation;Retrieves a key from a Haskell-data holding userdata value.Does the following, in order, and returns the first non-nil result:8Checks the userdata's uservalue table for the given key; Looks up a getter for the key and calls it with the userdata and key as arguments;%Looks up the key in the table in the methods metafield.7hslua-objectorientationDefines a new type, defining the behavior of objects in Lua. Note that the type name must be unique.8hslua-objectorientationDefines a new type that could also be treated as a list; defines the behavior of objects in Lua. Note that the type name must be unique.9hslua-objectorientation.Use a documented function as an object method.:hslua-objectorientation1Declares a new read- and writable typed property.;hslua-objectorientation+Declares a new read- and writable property.<hslua-objectorientationDeclares a new read- and writable property which is not always available.=hslua-objectorientationDeclares a new read- and writable property which is not always available.>hslua-objectorientationCreates a read-only object property. Attempts to set the value will cause an error.?hslua-objectorientationCreates a read-only object property. Attempts to set the value will cause an error.@hslua-objectorientation7Define an alias for another, possibly nested, property.Ahslua-objectorientationEnsures that the type has been fully initialized, i.e., that all metatables have been created and stored in the registry. Returns the name of the initialized type.The hook can be used to perform additional setup operations. The function is called as the last step after the type metatable has been initialized: the fully initialized metatable will be at the top of the stack at that point. Note that the hook will not be called if the type's metatable already existed before this function was invoked.Mhslua-objectorientationPushes the metatable for the given type to the Lua stack. Creates the new table afresh on the first time it is needed, and retrieves it from the registry after that.A hook can be used to perform additional setup operations. The function is called as the last step after the type metatable has been initialized: the fully initialized metatable will be at the top of the stack at that point. Note that the hook will not be called if the type's metatable already existed before this function was invoked.Nhslua-objectorientationPushes the metatable's getters field table.Ohslua-objectorientationPushes the metatable's setters field table.Phslua-objectorientationPushes the metatable's methods field table.Qhslua-objectorientationPushes the function used to iterate over the object's key-value pairs in a generic *for* loop.Rhslua-objectorientationEvaluate part of a lazy list. Takes the following arguments, in this order: 5userdata wrapping the unevalled part of the lazy list#index of the last evaluated elementindex of the requested elementthe caching tableShslua-objectorientation9Name of the metatable used for unevaluated lazy list remaBhslua-objectorientation*Pushes a userdata value of the given type.Chslua-objectorientation-Retrieves a userdata value of the given type.Thslua-objectorientationRetrieves object properties from a uservalue table and sets them on the given value. Expects the uservalue table at the top of the stack.Uhslua-objectorientationGets a list from a uservalue table and sets it on the given value. Expects the uservalue (i.e., caching) table to be at the top of the stack.Dhslua-objectorientation$Returns documentation for this type.Ehslua-objectorientationType specifier for a UDType 7hslua-objectorientationfunction pusherhslua-objectorientation type namehslua-objectorientation operationshslua-objectorientationmethods8hslua-objectorientationfunction pusherhslua-objectorientation type namehslua-objectorientation operationshslua-objectorientationmethodshslua-objectorientation list access:hslua-objectorientation property namehslua-objectorientation property typehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property valuehslua-objectorientationhow to set a new property value;hslua-objectorientation property namehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property valuehslua-objectorientationhow to set a new property value<hslua-objectorientation property namehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property valuehslua-objectorientationhow to set a new property value=hslua-objectorientation property namehslua-objectorientationtype of the property valuehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property valuehslua-objectorientationhow to set a new property value>hslua-objectorientation property namehslua-objectorientation property typehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property value?hslua-objectorientation property namehslua-objectorientationproperty descriptionhslua-objectorientationhow to get the property value@hslua-objectorientationproperty aliashslua-objectorientation descriptionhslua-objectorientationsequence of nested propertiesMhslua-objectorientation hookBhslua-objectorientation push docshslua-objectorientation userdata typehslua-objectorientation value to push,./0123456789;:<=?>@CBADE!&'()*+ - %"#$,./0123456789;:<=?>@CBADE!&'()*+ - %"#$      !"#$%&'()**+,-./01123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW4hslua-objectorientation-2.3.1-I163XrDFQRtJhetaQ2rGnb!HsLua.ObjectOrientation.OperationHsLua.ObjectOrientationhslua-objectorientation OperationAddSubMulDivModPowUnmIdivBandBorBxorBnotShlShrConcatLenEqLtLeIndexNewindexCallTostringPairsCustomOperationmetamethodName $fEqOperation$fOrdOperation$fShowOperationPossibleActualAbsentMember AliasIndex StringIndex IntegerIndexAliasProperty propertyGet propertySetpropertyDescription propertyTypeUDTypeListSpecUDTypeWithListudName udOperations udProperties udMethods udAliases udListSpec udFnPusherdeftypeGenericdeftypeGeneric' methodGeneric property'propertypossiblePropertypossibleProperty' readonly'readonlyaliasinitTypeGeneric pushUDGeneric peekUDGenericudDocs udTypeSpec$fIsStringAliasIndex$fEqAliasIndex$fOrdAliasIndexhslua_udreadonly_ptrhslua_udsetter_ptrhslua_udnewindex_ptrhslua_udindex_ptrpushUDMetatable pushGetters pushSetters pushMethods pairsFunction lazylistevallazyListStateName setPropertiessetList