-- fixed non exhaustive decluse pattern matching