anchor.diff:      | File name -> { zipper with Focus = File newName }
       | Folder folder -> { zipper with Focus = Folder { folder with Name = newName } }
   
  +/// Creates a new file in the current directory
  +let newFile name zipper =
  +    match zipper.Focus with
  +    | Folder folder -> { zipper with Focus = Folder { folder with Items = File name :: folder.Items } }
  +
  +/// Creates a new folder in the current directory
  +let newFolder name zipper =
  +    match zipper.Focus with
  +    | Folder folder -> { zipper with Focus = Folder { folder with Items = Folder {Name = name; Items = [] } :: folder.Items } }
  +
   let zipper fileSystem : FSZipper = { Focus = fileSystem; Path = None }
   
   let disk =
  
positive.code:                 [File "best_hs_prog.hs"
                   File "random.hs"])
              ])
          ])
  
  [<Test>]
  let ``Can move to subdir``() =       
      let z = disk |> zipper |> moveTo "pics" |> moveTo "skull_man(scary).bmp"  
      Assert.AreEqual(z.Focus,File "skull_man(scary).bmp")
  
  [<Test>]
  let ``Can move to subdir and up again``() =       
      let z = disk |> zipper |> moveTo "pics" |> moveTo "skull_man(scary).bmp" |> up
      Assert.AreEqual(getName z.Focus,"pics")
  
  [<Test>]
  let ``Can rename a folder``() =       
      let z = disk |> zipper |> moveTo "pics" |> rename "photo" |> up |> moveTo "photo"
      Assert.AreEqual(getName z.Focus,"photo")
negative.code: ﻿// originally from http://learnyouahaskell.com/zippers
  module FSharpx.DataStructures.Tests.FileSystemZipperTest
  
  open System
  open FSharpx
  