.. index:: single: either .. _either/0: .. rst-class:: right **object** ``either`` ========== Types and predicates for extended type-checking and handling of expected terms. | **Availability:** | ``logtalk_load(expecteds(loader))`` | **Author:** Paulo Moura | **Version:** 0:7:0 | **Date:** 2021-01-03 | **Compilation flags:** | ``static, context_switching_calls`` | **Provides:** | :ref:`type::type/1 ` | :ref:`type::check/2 ` | :ref:`arbitrary::arbitrary/1 ` | :ref:`arbitrary::arbitrary/2 ` | **Uses:** | :ref:`expected ` | :ref:`expected(Expected) ` | :ref:`random ` | :ref:`type ` | **Remarks:** - Type-checking support: Defines a ``either(ValueType, ErrorType)`` type for checking expected terms where the value and error terms must be of the given types. - QuickCheck support: Defines clauses for the ``type::arbitrary/1-2`` predicates to allow generating random values for the ``either(ValueType, ErrorType)`` type. | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: expecteds/2 .. _either/0::expecteds/2: ``expecteds/2`` ^^^^^^^^^^^^^^^ Returns the values stored in the expected terms that hold a value. | **Compilation flags:** | ``static`` | **Template:** | ``expecteds(Expecteds,Values)`` | **Mode and number of proofs:** | ``expecteds(+list(expected),-list)`` - ``one`` ------------ .. index:: unexpecteds/2 .. _either/0::unexpecteds/2: ``unexpecteds/2`` ^^^^^^^^^^^^^^^^^ Returns the errors stored in the expected terms that hold an error. | **Compilation flags:** | ``static`` | **Template:** | ``unexpecteds(Expecteds,Errors)`` | **Mode and number of proofs:** | ``unexpecteds(+list(expected),-list)`` - ``one`` ------------ .. index:: partition/3 .. _either/0::partition/3: ``partition/3`` ^^^^^^^^^^^^^^^ Retrieves and partitions the values and errors hold by the expected terms. | **Compilation flags:** | ``static`` | **Template:** | ``partition(Expecteds,Values,Errors)`` | **Mode and number of proofs:** | ``partition(+list(expected),-list,-list)`` - ``one`` ------------ Protected predicates -------------------- (no local declarations; see entity ancestors if any) Private predicates ------------------ (no local declarations; see entity ancestors if any) Operators --------- (none) .. seealso:: :ref:`expected `, :ref:`expected(Expected) `, :ref:`type `, :ref:`arbitrary `