This release adds Scala 2.12 support (#16) and includes a couple of sets of additions and some API clean-up.
You can now use Scala's Map
, Set
, or Vector
collection types as labels without having to write your own Layout
instances describing how to serialize and deserialize them (#17). If you need Layout
instances for other collection types, you can define your own on the model of these three instances.
There are also new collectLabels
and collectLabelsF
methods on TreeOps
, and collectLeafLabels
and collectLeafLabelsF
methods on FullBinaryTreeOps
(#15 and #19). These methods make it more convenient to collect the set of labels for a tree (or a set of values resulting from a transformation of the labels).
There are also several breaking changes in the signatures of methods on FullBinaryTree
and FullBinaryTreeOps
. The first function argument to all fold
and reduce
methods now takes the label and then the children, and all of these methods now take both function arguments in a single parameter list. See #19 for the motivation for these changes.