| Old | New |
|---|---|
Must know string:: or Show. exists |
Type user. and IDE shows all methods |
| Helper functions scattered in modules | Methods grouped with type via impl |
| Search docs or grep codebase | Global index provides autocomplete |
New style enables IDE to show types at each step:
data.trim {} : String
.toLower {} : String
.parseJson {} : Json
.toUser {} : User
.isAdult {} : Bool
| Property | Status |
|---|---|
| Immutable data | ✓ No mutation |
| First-class functions | ✓ Pass methods as values |
| Currying | ✓ user.greet {} vs user.greet {name = "Hi"} |
| Explicit effects | ✓ Effects in type signatures |
| Method syntax | ✓ Just sugar for function calls |
If method conflicting issue then explcit callign ability still works
Show.for {it = user}.show {}