Evaluate whether Actor.hs is still needed and deprecate if not.
Actor.hs implements file-based actor primitives (SEND/CREATE/BECOME). With the Op free monad providing Par/Race/State, much of Actor's functionality is redundant.
1. What does Actor provide that Op doesn't?
2. Can Op replicate these?
3. Who uses Actor.hs currently?
# Find all imports of Actor
grep -r "import.*Actor" Omni/
grep -r "Actor\." Omni/
Document how each Actor feature maps to Op:
| Actor Feature | Op Equivalent | |---------------|---------------| | ActorId | TraceId or state field | | Message | Function call result | | SEND | Return value from Par branch | | CREATE | Par with new branch | | BECOME | Put new state | | Mailbox | State or Event log | | Capability limits | Limit, Sandbox |
If deprecating, document how to migrate:
-- Old Actor pattern
actor = do
msg <- receive
result <- process msg
send result customer
become newState
-- New Op pattern
program = do
state <- get
result <- process (stateMessage state)
put (state { stateResult = result })
-- Results flow via return value, not explicit send
Based on analysis:
-- Add to Actor.hs header
{-# DEPRECATED "Use Omni.Agent.Op for new code. See migration guide." #-}
Create migration tracking task.