# Meaning

Defined in: [src/expressions/condition.ts:98](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L98)

A named, composable, inspectable semantic predicate. `blocked.and(x)` keeps two expression nodes; it does not rewrite the proposition.

## Type Parameters

| Type Parameter | Default type |
| -------------- | ------------ |
| `T`            | `unknown`    |

## Constructors

### Constructor

> **new Meaning**<`T`>(`node`, `name?`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:99](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L99)

#### Parameters

| Parameter | Type             |
| --------- | ---------------- |
| `node`    | `Condition`<`T`> |
| `name?`   | `string`         |

#### Returns

`Meaning`<`T`>

## Properties

| Property    | Modifier   | Type             | Defined in                                                                                                                                                   |
| ----------- | ---------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| []()`node`  | `readonly` | `Condition`<`T`> | [src/expressions/condition.ts:100](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L100) |
| []()`name?` | `readonly` | `string`         | [src/expressions/condition.ts:101](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L101) |

## Methods

### including()

> **including**(`description`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:108](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L108)

Draw the boundary from the inside: what the proposition covers. Only valid on a single proposition. Becomes Noul `criteria.true`.

#### Parameters

| Parameter     | Type                                                      |
| ------------- | --------------------------------------------------------- |
| `description` | [`EntryType`](/Jevlish/reference/type-aliases/entrytype/) |

#### Returns

`Meaning`<`T`>

***

### excluding()

> **excluding**(`description`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:116](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L116)

Draw the boundary from the outside: what the proposition does not cover, even if it looks close. Only valid on a single proposition. Becomes Noul `criteria.false`.

#### Parameters

| Parameter     | Type                                                      |
| ------------- | --------------------------------------------------------- |
| `description` | [`EntryType`](/Jevlish/reference/type-aliases/entrytype/) |

#### Returns

`Meaning`<`T`>

***

### named()

> **named**(`name`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:121](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L121)

Give the meaning a name for traces, fixtures, and error messages.

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `name`    | `string` |

#### Returns

`Meaning`<`T`>

***

### and()

> **and**(`other`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:127](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L127)

Both must hold.

#### Parameters

| Parameter | Type                                                                   |
| --------- | ---------------------------------------------------------------------- |
| `other`   | [`ConditionLike`](/Jevlish/reference/type-aliases/conditionlike/)<`T`> |

#### Returns

`Meaning`<`T`>

***

### or()

> **or**(`other`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:132](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L132)

Either may hold.

#### Parameters

| Parameter | Type                                                                   |
| --------- | ---------------------------------------------------------------------- |
| `other`   | [`ConditionLike`](/Jevlish/reference/type-aliases/conditionlike/)<`T`> |

#### Returns

`Meaning`<`T`>

***

### unless()

> **unless**(`other`): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:137](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L137)

Holds only if the exception does not: `a.unless(b)` is `a and not b`.

#### Parameters

| Parameter | Type                                                                   |
| --------- | ---------------------------------------------------------------------- |
| `other`   | [`ConditionLike`](/Jevlish/reference/type-aliases/conditionlike/)<`T`> |

#### Returns

`Meaning`<`T`>

***

### not()

> **not**(): `Meaning`<`T`>

Defined in: [src/expressions/condition.ts:142](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L142)

The negation. Uncertain stays uncertain.

#### Returns

`Meaning`<`T`>

***

### describe()

> **describe**(): `string`

Defined in: [src/expressions/condition.ts:147](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L147)

Human-readable rendering of the expression tree.

#### Returns

`string`

***

### toJSON()

> **toJSON**(): `unknown`

Defined in: [src/expressions/condition.ts:152](https://github.com/jacobgoldfarb/Jevlish/blob/83ccd8c0be5f41962c805f7d42ddf1b1f048de89/src/expressions/condition.ts#L152)

Serializable form: the name and the expression tree, with code predicates reduced to their names.

#### Returns

`unknown`