Type StringList =
    emptyList
  | String :: StringList
%Type

Define head(h::?) = h.
Define tail(?::t) = t.
Define
  case nil?(emptyList) = true
  case nil?(?)         = false
%Define