Support for more complicated x:y:z:xs type patterns!