Commandex - Make complex actions a first class data type

Why not go a step further and introduce your own Result struct? It will give you an even more type safety and it will make dialyzer happier.