{
  a: [1,2,3] match {
    case [x ~ xs] -> x
  },

  //
  b: [1,2,3] match {
    case [x ~ xs] -> xs
  },

  //construction
  c: [1,2,3] match {
    case [x1 ~ xs1] -> [x1 ~ xs1]
  },

  //empty array
  d: [1,2,3] filter ($ == 4) match {
    case [] -> "empty array"
    case [h ~ t] -> h
  },

  //empty tail (only head)
  e: [1] match {
    case [] -> "empty array"
    case [h ~ t] -> t
  },

  //construction with empty tail
  f: [1 ~ []],

  //construction with null tail
  g: [1 ~ null default [2,3]]
}