Wed Apr 25 09:47:50 EDT 2012

Params with defaults

Find a different approach to do this:

  alpha = execState (forM attrs scan) False where
    scan Alpha = put True
    scan _ = return ()

which sets a default and picks overwrites it with the last matching
attrib in the list (if any).

Trouble: this seems to requre a default case (scan _).  Is it possible
to do it in a different way such that this default case can be
abstracted?  I.e. can mismatches be mapped to nothing instead of
raising an error?