         "count": transform(OuterLenses.count, ValueTransformers.int),
         "inner": transform(OuterLenses.inner, lift(inner, Inner(count: 0)))
     ], dictionaryTansformer: ValueTransformers.dictionary)
+
+    static let node: DictionaryAdapter<Node, AnyObject, NSError> = fix { adapter in
+        return DictionaryAdapter(specification: [
+            "children": transform(NodeLenses.children, lift(lift(adapter, Node(children: []))) >>> ValueTransformers.array)
+        ], dictionaryTansformer: ValueTransformers.dictionary)
+    }
 }
 
 class AdapterSpec: QuickSpec {

                let result = adapter.decode(Inner(count: 2), from: [ "count": 3 ])

                expect(result.value?.count).to(equal(3))
            }
        }


        }
    })

    static let array: ValueTransformer<[AnyObject], AnyObject, NSError> = ValueTransformer(transformClosure: { value in
        return success(value)
    }, reverseTransformClosure: { value in
        switch value {
        case let value as [AnyObject]:
            return success(value)
        default:
            return failure(NSError())
        }
    })

    static let dictionary: ValueTransformer<[String: AnyObject], AnyObject, NSError> = ValueTransformer(transformClosure: { value in
        return success(value)
    }, reverseTransformClosure: { value in
