Bindable (API documentation of hlt.language packages)
Date: 2013-01-30

hlt.language.design.types

## Interface Bindable

- All Superinterfaces:
    Valuable
  All Known Implementing Classes:
    TypeParameter

      public interface Bindable
      extends Valuable

  This is the interface of bindable objects. A bindable object is an instance of a `Valuable` that may itself have another `Valuable` as value.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `bind(Valuable value)` Binds this bindable to the given valuable.
    `boolean` | `bind(Valuable value, GoalProver prover)` Binds this bindable to the given valuable in the context of the given goal prover.
    `boolean` | `isBound()` Returns `true` iff this bindable is bound.
    `boolean` | `isUnbound()` Returns `true` iff this bindable is unbound.
    `void` | `unbind()` Unbinds this bindable.

    - ### Methods inherited from interface hlt.language.design.types.Valuable

      `getValue`

- - ### Method Detail

    - #### isBound

          boolean isBound()

      Returns `true` iff this bindable is bound.

    - #### isUnbound

          boolean isUnbound()

      Returns `true` iff this bindable is unbound.

    - #### bind

          boolean bind(Valuable value)

      Binds this bindable to the given valuable.

    - #### bind

          boolean bind(Valuable value,
                     GoalProver prover)

      Binds this bindable to the given valuable in the context of the given goal prover. This binding is appropriately trailed in the contextual prover for undoing purposes.

    - #### unbind

          void unbind()

      Unbinds this bindable.