code: func (v *printVisitor) VisitBlock(node *BlockStatement) interface{} {
  	v.inBlock = true
  
  	v.line("BLOCK:")
  	v.depth++
  
  	node.Expression.Accept(v)
  
  	if node.Program != nil {
  		v.line("PROGRAM:")
  		v.depth++
  		node.Program.Accept(v)
  		v.depth--
  	}
  
  	if node.Inverse != nil {
  		// if node.Program != nil {
  		// 	v.depth++
  		// }
  
  		v.line("{{^}}")
  		v.depth++
  		node.Inverse.Accept(v)
  		v.depth--
  
  		// if node.Program != nil {
  		// 	v.depth--
  		// }
  	}
  
  	v.inBlock = false
  
  	return nil
  }
docs: // VisitBlock implements corresponding Visitor interface method