transact = sender receiver amount ->
  + alarm -> 
    - sql-series (
                   - debit   <
                               cid : sender
                               sum : amount
                             >,
                     credit  <
                               cid : receiver
                               sum : amount
                             >,
                     journal < 
                               opcode : JR_TRANSFER
                               cid-1  : sender
                               cid-2  : receiver
                               amount : _     
                             >
                 )
  + ec, error > 
    log error; handle ec
  ;

  task-name = 'transact ' receiver ''
              ' < ' sender ' (' amount ')'

  if alarm ->
    log LOG_SPACES task-name
  else
    log LOG_EXCLAMATION task-name
  ;
_
  sender, receiver : integer
  amount : float
;