E1009: expected effect identifier
Generated from rellum-diagnostics/src/db.rs.
Explanation
Effect bindings and effect wrapper declarations require names with effect identifier syntax, such as main!, print!, or a wrapper ending in !. A plain identifier is parsed as a value name, not an effect name.
Common causes
- omitting ! from an effect binding name
- using a pure function name where an effect wrapper name is required
- placing a non-name token where an effect identifier should appear
Canonical fixes
- use an effect identifier ending in !
Before:
main = print!(0)
After:
main! = print!(0)
- name effect wrappers with !
Before:
effect log(msg: String) = print!(msg)
After:
effect log!(msg: String) = print!(msg)
Code example
main = print!(0)