Skip to content

Instantly share code, notes, and snippets.

@kasper573
Created July 16, 2024 02:09
Show Gist options
  • Save kasper573/f9281820d4a06866080f72b1e5f33782 to your computer and use it in GitHub Desktop.
Save kasper573/f9281820d4a06866080f72b1e5f33782 to your computer and use it in GitHub Desktop.
# garbage
- Object syntax kind of ridiculous. Obscure and unintuitive.
# mid
- for loop syntax unnecessarily bespoke
- Optional field and optional labelled function argument syntax is weird, but I could get used to it
- Why the hell are we using JavaScripts Array interface. WTF
- Rescript vs JS exceptions are fundamental distinct concepts, why are they not distinct modules?
- == for deep equality check is pretty nuts, ~= would have been better
- scoped polymorphic type syntax is not very easy to parse 'a . 'a =>
# minor
- Lazy is defined with a block that implicitly is treated as a function closure
- placeholder value for externals using @as is a bit too magical. @as means so many different things depending on context
- @this is required at call site when invoking a @this enabled external
- @this can be attached to anything (it seems) without having any impact or errors until you attach it properly (likely is a bug)
- default external bindings is a bit inconsistent with how the rest of the externals work
- No forced runtime safe JSON serialization and parsing schema
# gotcha
- Abusable system. Linting required at scale
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment