checking a given sequence of tokens for the presence of the constituents of some pattern eg (||): Bool -> Bool -> Bool /n True || _ = True /n False || a = a
one that is defined in terms of its self eg fact: Int -> Int /n fact n /n | n > 0 = n * fact (n - 1) /n | n == 0 = 1 /n | otherwise = error "undefined for neg ints"