for the list comprehension, why not
``` do_whatever(Keys, SomeParameter) -> [case external_lookup(Key) of {ok, V} -> do_side_effecty_thing(V, SomeParameter); {error, R} -> report_some_failure(R) end || Key <- Keys], ok. ```
or
``` [begin some_func(Key), other_func(Key) end || Key <- Keys]. ```
if only the value of other_func() needs to be in the result list.