请考虑以下递归类型定义:
type NestedList a
= Elem a
| SubList (List (NestedList a))
如何编写解码器以将JSON列表(例如[1, [[2, [3, 4]], 5], 6, [7, 8, 9]]
)解码为NestedList
类型:
SubList
[ Elem 1
, SubList [ SubList [ Elem 2, SubList [ Elem 3, Elem 4 ] ], Elem 5 ]
, Elem 6
, SubList [ Elem 7, Elem 8, Elem 9 ]
]