That problem is true with python dictionaries too, btw. I think it's up to the 
user to know which fields to deal with. Or at least I'm running with that 
notion, that the user checks which type of action it is, before it tries to 
access any fields. For example:
    
    
    proc handle_actions() =
        var action:Action
        while messenger.poll_actions(action):    # loop the stack
            case action.kind
            of CellChangeSize:       resize_cells( action.dir )
            of LayerAddRemove:       layer_add_rem( action.add )
            of LayerToggleVisible:   layer_toggle_vis( action.vis )
            of LayerRename:          layer_rename( action.new_name )
            of LayerChangeAlgo:      layer_change_algo( action.algo )
            else:    discard
    
    
    Run

Reply via email to