use the correct list in buildOptional
mapmaybe
fix the argument order I used in calls to completionCase
void