Should probably throw on an `else` case