code: func loadTerraformBackendHcl(list *ast.ObjectList) (*Backend, error) {
  	if len(list.Items) > 1 {
  		return nil, fmt.Errorf("only one 'backend' block allowed")
  	}
  
  	// Get our one item
  	item := list.Items[0]
  
  	// Verify the keys
  	if len(item.Keys) != 1 {
  		return nil, fmt.Errorf(
  			"position %s: 'backend' must be followed by exactly one string: a type",
  			item.Pos())
  	}
  
  	typ := item.Keys[0].Token.Value().(string)
  
  	// Decode the raw config
  	var config map[string]interface{}
  	if err := hcl.DecodeObject(&config, item.Val); err != nil {
  		return nil, fmt.Errorf(
  			"Error reading backend config: %s",
  			err)
  	}
  
  	rawConfig, err := NewRawConfig(config)
  	if err != nil {
  		return nil, fmt.Errorf(
  			"Error reading backend config: %s",
  			err)
  	}
  
  	b := &Backend{
  		Type:      typ,
  		RawConfig: rawConfig,
  	}
  	b.Hash = b.Rehash()
  
  	return b, nil
  }
docs: // Loads the Backend configuration from an object list.