Goanna

A statically-typed functional language with human-friendly error messages

The Goanna Language

Goanna is a pure functional programming language. It takes what makes Haskell great (powerful type system, immutable data structure, concise syntax) and combines them with modern programming language designs (easy tooling, friendly error messages).

Get Goanna

git clone https://codeberg.org/tonyfu/goanna
cd goanna && go build -o goanna
./goanna run myfile.ga
Source Code

Why Goanna

Practical. The intention of creating Goanna is to use functional programming in daily programming tasks. It is a language for web-applications, for automation scripts, and for data-wrangling tasks. Goanna programs should be easy to write and easy to run. No elaborate setup and configuration. In the terminal, typing goanna run myfile.ga just works.

Correct. Goanna has a powerful constraint-based type inference, and catches errors before code is executed

Friendly errors. Goanna error messages use human-friendly languages, pinpoint error locations, and provide succinct context for understanding each error.

Powerful Abstractions. Goanna supports type class style zero-cost abstractions. Instance methods are resolved at compile time so the runtime can be as lean as possible.

Playground (Powered by WebAssembly)

Diagnostics
Output