Hello Jonathan, hello list.<br><br>In _some_ cases to avoid such validation nesting I use try/catch and pattern matching:<br><br>    try<br>        v1 = proplists:get_value(p1, L),<br>        v2 = proplists:get_value(p2, L),<br>        v3 = proplists:get_value(p3, L)<br>    catch<br>        _:_ -><br>            %% handle exception here and return<br>            %% or re-throw it<br>            false<br>    end<br><br>But you should clearly understand what code you will wrap with try/catch. It is possible hide some errors inside this block,<br>so i try not not wrap complex logic inside, only some input validators.<br>