anchor.diff:                                  (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.Files) 
                                   (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.ServiceControls)
                                   (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.ServiceInstalls)
  +and WiXDir = 
  +    {
  +        Id : string
  +        Name : string
  +        Files : WiXFile seq
  +        Components : WiXDirectoryComponent seq
  +    }
  +    override d.ToString() = sprintf "<Direcotry Id=\"%s\" Name=\"%s\>%s%s</Directory>"
  +                                d.Id 
  +                                d.Name 
  +                                (Seq.fold(fun acc elem -> acc + elem.ToString()) "" d.Files) 
  +                                (Seq.fold(fun acc elem -> (                                                            
  +                                                            acc + match elem with
  +                                                                    | C c -> c.ToString()
  +                                                                    | D d -> d.ToString()
  +                                                           )) "" d.Components)
   
   /// Defaults for component
   let WiXComponentDefaults =
  
positive.code:         Files = []
          Components = bulkComponentCreation fileFilter directoryInfo
      }  
                        
  /// Use this to attach service controls to your components.
  let attachServiceControlToComponents (components : WiXComponent seq) fileFilter serviceControls = 
      components 
          |> Seq.map(fun comp -> 
                          if fileFilter comp then
                              { Id = comp.Id; Guid = comp.Guid; Files = comp.Files; ServiceControls = Seq.append comp.ServiceControls serviceControls; ServiceInstalls = comp.ServiceInstalls }
                          else
                              comp)
  
  /// Use this to attach service installs to your components.
  let attachServiceInstallToComponents (components : WiXComponent seq) fileFilter serviceInstalls = 
      components 
          |> Seq.map(fun comp -> 
                          if fileFilter comp then
                              { Id = comp.Id; Guid = comp.Guid; Files = comp.Files; ServiceControls = comp.ServiceControls; ServiceInstalls = Seq.append comp.ServiceInstalls serviceInstalls}
                          else
                              comp)
  
                              
  /// Creates recursive WiX directory and file tags from the given DirectoryInfo
  /// The function will create one component for each file [best practice](https://support.microsoft.com/de-de/kb/290997/en-us)
  
negative.code:         failwith "No parameter passed for component ref Id!"
      parameters
  
  type WiXDirectoryComponent = 
      | C of WiXComponent
      | D of WiXDir      
  /// Component which wraps files into logical components and which allows to 
  and WiXComponent = 
      {
          Id : string
          Guid : string
  