Part A (* name: ander argument: a list returns: a boolean value *) fun ander nil = true | ander (x::xs) = x and ander xs (* name: span 1st argument: a list 2nd argument: a function returns: a tuple containing two list *) name: alternating_sum argument: a list returns: an integer value Part B name: isEmpty argument: a list return: a boolean value name: push 1st argument: a value 2nd argument: a list return: a list name: pop argument: a list return: a list containing two lists (first one is the new stack, second sub-list has only one element, which is the one popped from stack) name: multipush 1st argument: list of elements to be pushed 2nd argument: list (the stack) return: a list name: multipop 1st argument: an integer (number of elems to be popped) 2nd argument: a list (the stack) return: a list containing two lists (first one is the new stack, second sub-list contains the elements that were popped)