# SimplicityHL development

**URL:** https://community.simplicity-lang.org/c/simplicityhl-development/7.md

[Latest](https://community.simplicity-lang.org/latest.md) · [Categories](https://community.simplicity-lang.org/categories.md) · [Tags](https://community.simplicity-lang.org/tags.md)

---

## [About the SimplicityHL development category](https://community.simplicity-lang.org/t/about-the-simplicityhl-development-category/13)

<div class="topic-metadata">

**Author:** [@schoen](https://community.simplicity-lang.org/u/schoen)\
**Replies:** 0\
**Last updated:** [June 26, 2026, 8:22pm UTC](https://community.simplicity-lang.org/t/about-the-simplicityhl-development-category/13 "2026-06-26T20:22:48Z")

</div>

This category is meant for discussions about the SimplicityHL language, features, and ecosystem, including development questions about how to achieve particular tasks in SimplicityHL.

---

## [Selecting the chain (Elements or Bitcoin) in SimplicityHL source](https://community.simplicity-lang.org/t/selecting-the-chain-elements-or-bitcoin-in-simplicityhl-source/88)

<div class="topic-metadata">

**Author:** [@LesterEvSe](https://community.simplicity-lang.org/u/LesterEvSe)\
**Replies:** 6\
**Last updated:** [October 20, 2026, 3:38am UTC](https://community.simplicity-lang.org/t/selecting-the-chain-elements-or-bitcoin-in-simplicityhl-source/88 "2026-10-20T03:38:14Z")

</div>

I’m working on Bitcoin support in SimplicityHL. #437 adds the Bitcoin jets. it’s independent and ready for review. #436 (draft) lets programs be compiled for Bitcoin. It depends on rust-simplicity #385–#388, which add Bi…

---

## [SimplicityHL now reports more than one error per run](https://community.simplicity-lang.org/t/simplicityhl-now-reports-more-than-one-error-per-run/94)

<div class="topic-metadata">

**Author:** [@LesterEvSe](https://community.simplicity-lang.org/u/LesterEvSe)\
**Replies:** 0\
**Last updated:** [October 16, 2026, 11:48am UTC](https://community.simplicity-lang.org/t/simplicityhl-now-reports-more-than-one-error-per-run/94 "2026-10-16T11:48:14Z")

</div>

Until recently, simc reported the first error in a program and stopped, so a program with several mistakes had to be fixed one compiler run at a time. Analysis now keeps going in many cases. Take this program: type Alia…

---

## [Can we improve structural typecasts in SimplicityHL?](https://community.simplicity-lang.org/t/can-we-improve-structural-typecasts-in-simplicityhl/84)

<div class="topic-metadata">

**Author:** [@schoen](https://community.simplicity-lang.org/u/schoen)\
**Replies:** 1\
**Last updated:** [October 5, 2026, 4:11am UTC](https://community.simplicity-lang.org/t/can-we-improve-structural-typecasts-in-simplicityhl/84 "2026-10-05T04:11:43Z")

</div>

Low-level Simplicity has no built-in integer types, and integers are interpretations of trees of bits. As a result, SimplicityHL supports a feature called structural typecasting which allows joining and splitting integer…

---

## [Raw\_hash: one-call SHA-256 for tuples of integers in SimplicityHL](https://community.simplicity-lang.org/t/raw-hash-one-call-sha-256-for-tuples-of-integers-in-simplicityhl/78)

<div class="topic-metadata">

**Author:** [@LesterEvSe](https://community.simplicity-lang.org/u/LesterEvSe)\
**Replies:** 6\
**Last updated:** [September 28, 2026, 10:54pm UTC](https://community.simplicity-lang.org/t/raw-hash-one-call-sha-256-for-tuples-of-integers-in-simplicityhl/78 "2026-09-28T22:54:08Z")

</div>

Hashing several values in SimplicityHL currently means threading a SHA-256 context through a chain of jets: let ctx1: Ctx8 = jet::sha\_256\_ctx\_8\_init(); let ctx2: Ctx8 = jet::sha\_256\_ctx\_8\_add\_2(ctx1, 0x5120); let ctx3: …

---

## [Linear and affine types in SimplicityHL](https://community.simplicity-lang.org/t/linear-and-affine-types-in-simplicityhl/66)

<div class="topic-metadata">

**Author:** [@apoelstra](https://community.simplicity-lang.org/u/apoelstra)\
**Replies:** 2\
**Last updated:** [September 6, 2026, 11:59am UTC](https://community.simplicity-lang.org/t/linear-and-affine-types-in-simplicityhl/66 "2026-09-06T11:59:46Z")

</div>

In SimplicityHL, all objects are currently passed to functions “by value” and by copying the value. (Under the hood, we use the pair “parallel composition” combinator which does exactly this, copies a value into the inpu…

---

## [SimplicityHL standard library 0.1.0 released](https://community.simplicity-lang.org/t/simplicityhl-standard-library-0-1-0-released/61)

<div class="topic-metadata">

**Author:** [@schoen](https://community.simplicity-lang.org/u/schoen)\
**Replies:** 1\
**Last updated:** [August 31, 2026, 7:27am UTC](https://community.simplicity-lang.org/t/simplicityhl-standard-library-0-1-0-released/61 "2026-08-31T07:27:41Z")

</div>

The first public release of the SimplicityHL standard library has landed! From the changelog: The initial release with checked arithmetic operations for u8, u16, u32, u64, and u128; OP\_RETURN detection utilities; imp…

---

## [SimplicityHL updates: enum types and witness type inference](https://community.simplicity-lang.org/t/simplicityhl-updates-enum-types-and-witness-type-inference/50)

<div class="topic-metadata">

**Author:** [@schoen](https://community.simplicity-lang.org/u/schoen)\
**Replies:** 7\
**Last updated:** [August 26, 2026, 11:05am UTC](https://community.simplicity-lang.org/t/simplicityhl-updates-enum-types-and-witness-type-inference/50 "2026-08-26T11:05:03Z")

</div>

I just pushed a documentation update to (and a couple of other related documentation pages) reflecting some significant changes in SimplicityHL 0.7.0: type inference in witness parsing and enum types. You can see the…

---

## [Question about witnesses in the main function](https://community.simplicity-lang.org/t/question-about-witnesses-in-the-main-function/52)

<div class="topic-metadata">

**Author:** [@stringhandler](https://community.simplicity-lang.org/u/stringhandler)\
**Replies:** 3\
**Last updated:** [August 15, 2026, 3:01pm UTC](https://community.simplicity-lang.org/t/question-about-witnesses-in-the-main-function/52 "2026-08-15T15:01:52Z")

</div>

In the office hours on 11 Aug, @tvolk131 asked about witnesses in the main function. For some background, the current rule is that witness::FIELD cannot appear outside of the main function. Firstly, this is a Simplicity…
