One useful way of specifying how a function is defined is to describe what results it will return given different types of inputs. A powerful way of describing afferent types of inputs in Haskell is using pattern matching. We can provide multiple definitions of function , each having a particular pattern for input arguments. The first listed definition that succeeds in matching a given function call is the one used for that call. In this manner , you can pull out the head and tail of a list , match specific input values , identify cannot , however , perform value comparisons with pattern matching ( e.g., n