···33This document contains a list of issues and annoyances that we have writing
44Gleam code today, so that we can devise solutions to them in future.
5566+There are other annoyances that have known solutions that are yet to be
77+implemented. These are tracked in the Gleam issue tracker instead.
88+69## Cannot infer what targets a package supports
710811## Dynamic decoding boilerplate
···17201821## No good story for creating CLI programs
19222323+The Erlang virtual machine is not typically installed on a user's computer, and
2424+bytecode compiled for it is not easy to distribute.
2525+2626+JavaScript runtimes do better, but it is still not as good an experience as
2727+languages that compile to a single binary, and forcing Gleam programmers to use
2828+promises and a single thread is not ideal.
2929+2030## Runtime debugging is basic
21312232Rust's `dbg!` and Elixir's `dbg` were mentioned as good additions.
···2434## Last of if/else makes boolean logic less pretty and more alien
25352636With case:
3737+2738```gleam
2839case str == "+" {
2940 True -> Keep(Plus)
···4253```
43544455With use:
5656+4557```gleam
4658use <- bool.guard(
4759 when: str == "+",