frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Fuse – statically typed functional programming language

https://fuselang.org
22•the_unproven•2h ago
Hi HN! I've been working on the fuse programming language, it's a statically typed purely functional language with higher-kinder types and ad-hoc polymorphism. It compiles to the GRIN whole-program optimizer, producing LLVM-generated native code.

Fuse supports ADTs, Generics, Type Methods, Traits, Pattern matching etc. all in a functional style with no mutations.

I’ve been developing the language for 5 years, with code written in Scala. I’ve started coding the language from the base of System F that was implemented as part of the book: Types and Programming Languages (tapl). And then extending with concepts such as Bidirectional Type Checking with Higher-Rank Polymorphism.

I’ve mainly drawn inspiration from Rust, Haskell, Scala and Python (in terms of syntax). It all started because I wanted a language that has Rust-like concepts such as: ADT, Traits, Impl block syntax, etc. but have the pure functional semantics.

I'd would love feedback on the language design and its general usage.

Comments

codebje•23m ago
It's nice to see a GRIN backend in the wild!

It looks like a tidy little functional language - a small, easily grasped syntax surface and generally clear semantics. That you've got it to the point that it can compile and run proper programs is a great achievement for a solo dev project!

The string type in the standard library isn't Unicode-aware, might be worth just noting that. Unicode support can be a big undertaking, but considering whether you'll add it later or not might affect your library design now.

I don't really understand why you have an IO monad. The language isn't pure - `.exec()` means any function can perform IO actions no matter its type signature - so what's IO really for?

Do `impl` additions export? What happens when two libraries add the same function name with different signatures (or just bodies!) to a type's `impl` ?

Is currying automatic? It doesn't seem to be, but, eg, the `sum(x: i32, y: i32)` function theoretically could be called as `sum(5)` to create a closure, but this isn't a documented feature if so.

The website's font is using ligatures, not unicode operator symbols - I'd personally find it much clearer to use a non-ligature font to show what's really there, but that's immaterial to the language.

qsera•15m ago
I wish you took Haskell's syntax as such. Why did you mix rust and possibly other stuff with it?

Show HN: Bor – Open-source policy management for Linux desktops

https://getbor.dev/blog/2026-08-02-bor-v080-release/
76•eniac111•4h ago•14 comments

Show HN: Syncular – offline-first SQL sync with TypeScript and Rust cores

https://github.com/syncular/syncular
38•quambo•3h ago•18 comments

Show HN: Fuse – statically typed functional programming language

https://fuselang.org
22•the_unproven•2h ago•2 comments

Show HN: I'm a 15 Year Old Wannabe Engineer, This Is a Cycloidal Gearbox I Built

https://github.com/tom-ilan/cycloidal_gearbox
202•tomilan•11h ago•71 comments

Show HN: Katharos Functional programming and CSP-style concurrency for Python

https://github.com/kamalfarahani/katharos
6•kamalf•2h ago•1 comments

Show HN: Stripe for Wearable Data

https://stridee.fit/developer
2•alvaromolina0•2h ago•1 comments

Show HN: Logan Basic v2.1 - An online BASIC interpreter.

https://sinusoft.com/loganbasic/
20•Sinusoid314•2d ago•3 comments

Show HN: CaLLMar – play a text-based adventure game in an LLM chat

https://github.com/lascauje/callmar
3•lascauje•2h ago•0 comments

Show HN: Elevators

https://john.fun/elevators
1607•Jrh0203•1d ago•395 comments

Show HN: Documan – AI Powered Requirement Management Workspace

https://github.com/bbayer/DocuMan
2•bbayer•3h ago•0 comments

Show HN: We made Arcad, a parametric CAD in the browser, free and no signup

https://app.arcad.studio/
5•steinvakt2•3h ago•2 comments

SHOW HN: Substantial update to UK train mapping

https://trainmap.co.uk/map.html
4•optionalltd•3h ago•0 comments

Show HN: 8bit/cnlibs – 8bit Shadcn component library

https://8bit.cnlibs.com/
2•samke-•3h ago•0 comments

Show HN: Btfy – a blockchain that uses weather observations

https://github.com/kotagit75/btfy
7•yuzu_mikan•6h ago•1 comments

Show HN: I worked on a new browser for 2 years, today it passed Acid 3

https://code.intellios.ai/cwbrowser/
141•coolwulf•1d ago•43 comments

Show HN: Aevros .... A kernel that explains itself

https://github.com/Mobeen0119/Aevros
3•Mobeen0119•5h ago•1 comments

Show HN: I built a personal CRM that lives inside Apple's Contacts app

https://www.persodex.com
4•poolie•5h ago•0 comments

Show HN: TamedTable, AI ETL in Natural Language

https://www.tamedtable.com/
3•ZeljkoS•5h ago•4 comments

Show HN: What should the GUI for AI agents look like?

https://marbleos.com/demo
134•akbabu•2d ago•77 comments

Show HN: Galda – Come back to Claude Code/Codex without digging through Git

https://galda.app/
2•masa1992•6h ago•0 comments

Show HN: Cobalt, an SDK to build apps for Kobo eReaders

https://github.com/BandarLabs/Cobalt
5•thepoet•6h ago•0 comments

Show HN: Legionlinuxtui – Control Lenovo legion laptops in the terminal

https://github.com/nooneknowspeter/legionlinuxtui
16•nooneknowspeter•3d ago•0 comments

Show HN: Run multiple Claude desktop accounts in isolated windows (Mac/Windows)

https://deckspace.dev/claude-accounts/
2•sami_builds•7h ago•0 comments

Show HN: Rotating torus in terminal (but with kitty graphics protocol)

https://andreadimatteo.com/torus-v0-5.html
3•deotman•7h ago•0 comments

Show HN: Gander, an Android file viewer that asks for no permissions

https://github.com/mokshablr/gander
206•mokshablr•2d ago•74 comments

Show HN: Copy any website pixel perfect

https://github.com/HarKro753/claude-copy
8•Harro123•16h ago•10 comments

Show HN: Minimal LLM Post-Training Experiments on an 8GB GPU (SFT, DPO, GRPO)

https://github.com/pochenai/nano-llm-posttraining
21•popopanda•1d ago•0 comments

Show HN: Kedge – Full-stack cloud with forkable VM snapshots and global SQLite

https://kedge.dev/
137•wgjordan•3d ago•25 comments

Show HN: Distilling DeepSeek into GPT-OSS doesn't transfer censorship. Try it

https://www.ctgt.ai/research/distillation-censorship-transfer
165•cgorlla•2d ago•73 comments

Show HN: BitBang – Reach machines behind NAT from a browser, no account

https://github.com/richlegrand/bitbang-cli
94•narragansett•1d ago•37 comments