var2enum :: [String] -> [VariableId] -> [DataType] -> Parser Variable
var2enum ss ns ts = choice ps
  where
    func res nam typ = do {reserved res; return (typ,nam)}
    ps = zipWith3 func ss ns ts
var2enum :: [String] -> [VariableId] -> [DataType] -> Parser Variable
var2enum ss ns ts = choice ps
  where
    func res nam typ = do {reserved res; return (typ,nam)}
    ps = zipWith3 func ss ns ts
var2enum ss ns ts = choice ps
  where
    func res nam typ = do {reserved res; return (typ,nam)}
    ps = zipWith3 func ss ns ts