# Cure - a new language compiled to BEAM

**URL:** <https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209>\
**Category:** Cure Forum\
**Tags:** beam-languages, static-typing, types, fsm\
**Created:** [November 2, 2025, 5:24am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209 "2025-11-02T05:24:12Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 2, 2025, 5:24am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/1 "2025-11-02T05:24:12Z")

</div>

I am happy to introduce the very **α** version of the new programming language compiled to BEAM.

Welcome [Cure](https://cure-lang.org/).

It has literally three killer-features:

- Dependent types (think Idris) with SMT-solvers

- FSMs with SMT-validation as a language primitive

- No `if`-`then`-`else` construct.

I created Cure more as an ad-hoc DSL, rather than as a general purpose language. Currently it is in the proof of concept stage, although everyone might [grab it](https://github.com/am-kantox/cure-lang), compile it, write and execute some code with it.

I am very open to suggestions, improvements, hints, and “this is all crap” comments.

---

<div class="post-metadata">

**Author:** ![AstonJ](https://erlangforums.com/user_avatar/erlangforums.com/astonj/32/9_2.png) [@AstonJ](https://erlangforums.com/u/AstonJ)\
**Post date:** [November 2, 2025, 3:38pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/2 "2025-11-02T15:38:57Z")

</div>

Congrats Aleksei 🎉

I reckon Erlang must hold the record for number of languages running on its VM! :003:

---

<div class="post-metadata">

**Author:** ![nzok](https://erlangforums.com/letter_avatar_proxy/v4/letter/n/4af34b/32.png) [@nzok](https://erlangforums.com/u/nzok)\
**Post date:** [November 2, 2025, 10:18pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/3 "2025-11-02T22:18:51Z")

</div>

Sounds interesting. Can we have one PDF to read please? This laptop spends most of its time disconnected from the internet.

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 3, 2025, 5:08am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/4 "2025-11-03T05:08:07Z")

</div>

I believe, at the moment this [Cure Programming Language - Project Overview - Cure Documentation](https://cure-lang.org/docs/project-overview.html) would serve as a description.

---

<div class="post-metadata">

**Author:** ![AstonJ](https://erlangforums.com/user_avatar/erlangforums.com/astonj/32/9_2.png) [@AstonJ](https://erlangforums.com/u/AstonJ)\
**Post date:** [November 3, 2025, 5:56pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/5 "2025-11-03T17:56:52Z")

</div>

3 posts were split to a new topic: [Any tips on how to create a BEAM language?](https://erlangforums.com/t/any-tips-on-how-to-create-a-beam-language/5210)

---

<div class="post-metadata">

**Author:** ![delitrem](https://erlangforums.com/user_avatar/erlangforums.com/delitrem/32/2429_2.png) [@delitrem](https://erlangforums.com/u/delitrem)\
**Post date:** [November 3, 2025, 2:41pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/8 "2025-11-03T14:41:20Z")

</div>

Congratulations! 🚀

---

<div class="post-metadata">

**Author:** ![nzok](https://erlangforums.com/letter_avatar_proxy/v4/letter/n/4af34b/32.png) [@nzok](https://erlangforums.com/u/nzok)\
**Post date:** [November 3, 2025, 9:43pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/9 "2025-11-03T21:43:12Z")

</div>

I am extremely impressed by Cure, but no, what I am after is a single PDF file that doesn’t give me RSI clickety-clicking and contains at least getting started, installation guide, tutorial, reference, and library documentation. I do know how very difficult it is to produce good documentation content. When you have it, blasting it into a thousand fragments doesn’t make it better.

Did I mention that I am _ **EXTREMELY IMPRESSED** _ by Cure and yearn to understand it?

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 4, 2025, 5:07am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/10 "2025-11-04T05:07:55Z")

</div>

I’ll do my best to prepare such a document.

---

<div class="post-metadata">

**Author:** ![nzok](https://erlangforums.com/letter_avatar_proxy/v4/letter/n/4af34b/32.png) [@nzok](https://erlangforums.com/u/nzok)\
**Post date:** [November 4, 2025, 9:06am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/11 "2025-11-04T09:06:37Z")

</div>

I don’t know how the Rust people do it, but their clickety-clickety RSI-fest “books” have a “print” button on the top right that prints _every_ page, forming a coherent PDF.

---

<div class="post-metadata">

**Author:** ![LeonardB](https://erlangforums.com/user_avatar/erlangforums.com/leonardb/32/1856_2.png) [@LeonardB](https://erlangforums.com/u/LeonardB)\
**Post date:** [November 4, 2025, 9:18pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/12 "2025-11-04T21:18:01Z")

</div>

Since ex\_doc generates a .epub file I thought I’d just convert that to PDF and drop it here for convenience.

A couple of changes to rebar.config brought in missing referenced files (appears there are a number of .md referenced which do not yet exist in the repo)

```diff
diff --git a/rebar.config b/rebar.config
index 72a4000..678ba35 100644
--- a/rebar.config
+++ b/rebar.config
@@ -62,7 +62,17 @@
 %% ExDoc configuration
 {ex_doc, [
     {source_url, <<"https://github.com/am-kantox/cure-lang">>},
- {extras, [<<"README.md">>]},
+ {extras, [
+ <<"README.md">>,
+ {"docs/CLI_USAGE.md", #{title => "CLI Usage"}},
+ {"docs/LANGUAGE_SPEC.md", #{title => "Complete language specification"}},
+ {"docs/TYPE_SYSTEM.md", #{title => "Dependent types and type system details"}},
+ {"docs/FSM_USAGE.md", #{title => "Finite state machine guide"}},
+ {"docs/FEATURE_REFERENCE.md", #{title => "Quick reference for all language features"}},
+ {"docs/STD_SUMMARY.md", #{title => "Standard library module documentation"}},
+ {"TODO.md", #{title => "Missing features and future work"}},
+ {"docs/EDITOR_SETUP.md", #{title => "IDE configuration for Cure development"}}
+ ]},
     {main, <<"readme">>},
     {output, "docs/_build"}
 ]}.

```

Since I cannot attach PDF files here, these were the steps.

Updated rebar.config  
ran `make docs`  
generated pdf via `ebook-convert docs/_build/cure.epub cure.pdf`

And then you have a ‘nice’ PDF

 ![cure-lang-pdf](https://erlangforums.com/uploads/default/original/2X/1/11726b8ee0cdee739a82b44cb88cb31f78b9040e.jpeg)

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 5, 2025, 6:32pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/13 "2025-11-05T18:32:18Z")

</div>

> [@LeonardB](#):
>
> Since ex\_doc generates a .epub file […]

[https://cure-lang.org/api/cure.epub](https://cure-lang.org/api/cure.epub)

---

<div class="post-metadata">

**Author:** ![LeonardB](https://erlangforums.com/user_avatar/erlangforums.com/leonardb/32/1856_2.png) [@LeonardB](https://erlangforums.com/u/LeonardB)\
**Post date:** [November 5, 2025, 7:22pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/14 "2025-11-05T19:22:47Z")

</div>

And I’m just noticing for the first time there’s a link to the epub in the footer of the documentation 😛

I’ve converted to PDF and making it available here [PDF Version](https://github.com/leonardb/cure-doc) in case that is easier for @nzok

---

<div class="post-metadata">

**Author:** ![michallepicki](https://erlangforums.com/letter_avatar_proxy/v4/letter/m/5f9b8f/32.png) [@michallepicki](https://erlangforums.com/u/michallepicki)\
**Post date:** [November 6, 2025, 12:25pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/15 "2025-11-06T12:25:28Z")

</div>

What are your plans for tracking the project features work, bugs and other issues? I see a `TODO.md` document but I’m not sure if it’s up to date. Long term would you start using Github Issues or something else? There are a few open issues on Github already but no response so far. Biggest one IMO is no license, I am sure many people are not even looking at the code because of that.

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 6, 2025, 2:27pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/16 "2025-11-06T14:27:05Z")

</div>

Everything will take a place. I am currently discussing the License with lawyers, to make sure I can grant more than MIT does.

Did not know, that people look at the code after they figured out what implications to expect. Now I am after putting an explicit statement, allowing anyone but corps.

---

<div class="post-metadata">

**Author:** ![WadeMealing](https://erlangforums.com/user_avatar/erlangforums.com/wademealing/32/2981_2.png) [@WadeMealing](https://erlangforums.com/u/WadeMealing)\
**Post date:** [November 7, 2025, 8:50am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/17 "2025-11-07T08:50:38Z")

</div>

Damn, I work for corps and wanted to consider using it. Sad to hear. Thank you for the early heads up though, would save me having to learn it and then drop it.

---

<div class="post-metadata">

**Author:** ![vances](https://erlangforums.com/user_avatar/erlangforums.com/vances/32/710_2.png) [@vances](https://erlangforums.com/u/vances)\
**Post date:** [November 7, 2025, 9:01am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/18 "2025-11-07T09:01:19Z")

</div>

My thoughts exactly.

---

<div class="post-metadata">

**Author:** ![lpil](https://erlangforums.com/user_avatar/erlangforums.com/lpil/32/222_2.png) [@lpil](https://erlangforums.com/u/lpil)\
**Post date:** [November 7, 2025, 2:56pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/19 "2025-11-07T14:56:18Z")

</div>

Very cool! Always great to see more languages on the BEAM.

Is the documentation out of date? I’ve tried to follow some of the examples (such as the ones on the homepage and in the README) but they’ve all either crashed at-boot or the commands have not existed. I would really like to try out the typing features!

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 10, 2025, 7:08am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/20 "2025-11-10T07:08:27Z")

</div>

> [@WadeMealing](#):
>
> Sad to hear.

> [@vances](#):
>
> My thoughts exactly.

I am to reconsider it later.

---

<div class="post-metadata">

**Author:** ![mudasobwa](https://erlangforums.com/user_avatar/erlangforums.com/mudasobwa/32/231_2.png) [@mudasobwa](https://erlangforums.com/u/mudasobwa)\
**Post date:** [November 10, 2025, 7:11am UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/21 "2025-11-10T07:11:36Z")

</div>

> [@lpil](#):
>
> Is the documentation out of date?

Unluckily, I pushed a huge half-verified update and got COVID. I should be able to get back to fixing everything in a week, currently I am not fully functional. The compilation pipeline must be improved drastically as well.

Now one might check standard library (`lib/` directory,) those are compiling for sure with `make stdlib` and might be used as examples.

---

<div class="post-metadata">

**Author:** ![ieQu1](https://erlangforums.com/user_avatar/erlangforums.com/iequ1/32/2633_2.png) [@ieQu1](https://erlangforums.com/u/ieQu1)\
**Post date:** [November 26, 2025, 10:59pm UTC](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209/22 "2025-11-26T22:59:36Z")

</div>

Does Cure have general recursion? If not, what kind of termination checking algorithm does it use?  
I’m asking because the landing page mentions verification, where general recursion is generally a big no-no.

[Next page](https://erlangforums.com/t/cure-a-new-language-compiled-to-beam/5209.md?page=2)
