Gren is a norwegian word, meaning branch. This pays homage to both of Gren's origins: Norway and Elm.
The bird is a robin, which happens to be the name of Gren's founder. The robin is placed within the G, which is meant to symbolize that it is sitting on a G(ren), which is the norwegian word for branch.
Gren started as a fork of Elm. This is mostly considered to be an implementation detail, a way to speed up initial development.
It's not a goal of Gren to replace, or stay compatible in any way with, Elm.
As of Gren 0.3.0, the main differences is that Gren has:
- A git-based package manager. It's slower, but has access to any github repo that you have, even private ones.
- The default sequential data structure is an immutable array, not a linked list.
- Extended support for pattern matching on records.
- Any expression that returns a record can be used for record updates.
- Multiline strings trim leading whitespace on each line.
- Supports running on NodeJS.
- No tuples.
- No automatic constructors for type aliased records.
- No GLSL syntax.
- No reactor.
- Sourcemap support for native integration with the JS debugger.