code: func makeTree(k ast.Ref, v *ast.Term) ast.Object {
  	var obj ast.Object
  	for i := len(k) - 1; i >= 1; i-- {
  		obj = ast.NewObject(ast.Item(k[i], v))
  		v = &ast.Term{Value: obj}
  	}
  	obj = ast.NewObject(ast.Item(k[0], v))
  	return obj
  }
docs: // makeTree returns an object that represents a document where the value v is
  // the leaf and elements in k represent intermediate objects.