Skip to content

feat(Fift): Types page#1426

Draft
jeshecdom wants to merge 7 commits intomainfrom
jeshecdom/fift-types
Draft

feat(Fift): Types page#1426
jeshecdom wants to merge 7 commits intomainfrom
jeshecdom/fift-types

Conversation

@jeshecdom
Copy link
Contributor

Closes #1424.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No documentation issues detected.

@anton-trunov anton-trunov requested a review from pyAndr3w December 9, 2025 05:35
Copy link
Contributor

@pyAndr3w pyAndr3w left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good rework after discussion in DM!

Comment on lines 9 to 14
The Fift stack can contain values of the following types:

| | |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Integer` | A TVM signed 257-bit integer. |
| `Cell` | A [TVM cell](/foundations/serialization/cells) for persistent data storage on TON Blockchain. A cell consists of up to `1023` data bits and up to `4` references to other cells. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add column headers Type | Description, like in tvm/overview.mdx?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

| `Slice` | A TVM slice is a read-only view of a TVM cell that allows sequential access to the cell's data and references. A cell can be converted into a slice, extracting stored bits and references without modifying the original cell. |
| `Builder` | A TVM builder is used to construct a cell by adding data and cell references. |
| `Null` | The TVM Null type has exactly one value `null`. In Fift, `null` is mostly used to initialize `Box`'es, hashmaps and lists. Usually denoted by `⊥`. |
| `Tuple` | A tuple is an ordered collection of values of any of the Fift types in this list, where each value is not necessarily of the same type. Tuples can be used to represent values of arbitrary algebraic data types and Lisp-style lists. |
Copy link
Contributor

@pyAndr3w pyAndr3w Dec 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe keep a short description (for Tuple) in the table and move algebraic types and Lisp list details into text below.

| `Null` | The TVM Null type has exactly one value `null`. In Fift, `null` is mostly used to initialize `Box`'es, hashmaps and lists. Usually denoted by `⊥`. |
| `Tuple` | A tuple is an ordered collection of values of any of the Fift types in this list, where each value is not necessarily of the same type. Tuples can be used to represent values of arbitrary algebraic data types and Lisp-style lists. |
| `Continuation` | A [TVM continuation](/tvm/continuations) employed for execution of [TVM code](/tvm/instructions). |
| `String` | An UTF-8 string. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use A UTF-8 string.

Comment on lines 43 to 45
- Word list: A partially created list of word references, used for creating an execution token. See section for Blocks in the Control Flow page. See also Section [4.7](https://localhost:3000/languages/fift/whitepaper#4-7-creating-and-manipulating-word-lists) in the whitepaper for a list of words that create and manipulate word lists.
- Execution token: Fift code that can be executed and manipulated on the Fift stack. See section for Blocks in the Control Flow page for more details.
- Fift hashmap: A hashmap specific for Fift. These hashmaps are not represented as cells, contrary to TVM hashmaps. Refer to Fift hashmaps page for more details. As a comparison with TVM hashmaps, refer to Section [6.3](https://localhost:3000/languages/fift/whitepaper#6-3-dictionary-manipulation) in the whitepaper for a list of words that create and manipulate TVM hashmaps.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please switch localhost links to relative ones

and add link to /languages/fift/control#blocks

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Links issue addresses in issue #1554. Crosslinks cannot be solved in this PR, since other PRs need to be merged first.


- Word list: A partially created list of word references, used for creating an execution token. See section for Blocks in the Control Flow page. See also Section [4.7](https://localhost:3000/languages/fift/whitepaper#4-7-creating-and-manipulating-word-lists) in the whitepaper for a list of words that create and manipulate word lists.
- Execution token: Fift code that can be executed and manipulated on the Fift stack. See section for Blocks in the Control Flow page for more details.
- Fift hashmap: A hashmap specific for Fift. These hashmaps are not represented as cells, contrary to TVM hashmaps. Refer to Fift hashmaps page for more details. As a comparison with TVM hashmaps, refer to Section [6.3](https://localhost:3000/languages/fift/whitepaper#6-3-dictionary-manipulation) in the whitepaper for a list of words that create and manipulate TVM hashmaps.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refer to Fift hashmaps page for more details.

??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Links issue addresses in issue #1554.

@pyAndr3w pyAndr3w marked this pull request as draft December 11, 2025 12:55
@anton-trunov anton-trunov added the 3p Reviewed by someone else (a third party). Used for filtering PRs. Don't mind this. label Dec 11, 2025
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No documentation issues detected.

@novusnota novusnota marked this pull request as draft January 16, 2026 12:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3p Reviewed by someone else (a third party). Used for filtering PRs. Don't mind this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fift > Types]

3 participants