ec
filtersSpec = do

  describe "[function] hiddenFilter" $ do

    let testFunc = testAFilterWithEmpty hiddenFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects .⍵" $
      testFunc ".hello" `shouldBe` False
    it "accepts { a⍵ | a ≠ '.' }" $
      testFunc "hello" `shouldBe` True
    it "accepts 𝜖" $
      testFunc "" `shouldBe` True
    it "accepts { a⍵ | a ∈ SYMBOLS\\{'.'} }" $
      testFunc "," `shouldBe` True
    it "rejects { ⍵/. } " $
      testFunc "/." `shouldBe` False
    it "rejects a unix filepath with the last component ∈ { .⍵ }" $
      testFunc "some/path/.file" `shouldBe` False

  describe "[function] sameFolderFilter"  $ do

    let testFunc = testAFilterWithEmpty sameFolderFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects \"..\"" $
      testFunc ".." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/.\"" $
      testFunc "some/path/." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/..\"" $
      testFunc "some/path/.." `shouldBe` False
    it "accepts ⍵" $
      testFunc "word" `shouldBe` True
    it "accepts .⍵" $
      testFunc ".some" `shouldBe` True
    it "accepts an arbitrary path" $
      testFunc "/some/path" `shouldBe` True
    it "accepts an arbitrary path ending with a word prefixed with \".\"" $
      testFunc "/some/path/.file" `shouldBe` True


testACounter ∷ Counter → MainOptions → 
filtersSpec ∷ Spec
filtersSpec = do

  describe "[function] hiddenFilter" $ do

    let testFunc = testAFilterWithEmpty hiddenFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects .⍵" $
      testFunc ".hello" `shouldBe` False
    it "accepts { a⍵ | a ≠ '.' }" $
      testFunc "hello" `shouldBe` True
    it "accepts 𝜖" $
      testFunc "" `shouldBe` True
    it "accepts { a⍵ | a ∈ SYMBOLS\\{'.'} }" $
      testFunc "," `shouldBe` True
    it "rejects { ⍵/. } " $
      testFunc "/." `shouldBe` False
    it "rejects a unix filepath with the last component ∈ { .⍵ }" $
      testFunc "some/path/.file" `shouldBe` False

  describe "[function] sameFolderFilter"  $ do

    let testFunc = testAFilterWithEmpty sameFolderFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects \"..\"" $
      testFunc ".." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/.\"" $
      testFunc "some/path/." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/..\"" $
      testFunc "some/path/.." `shouldBe` False
    it "accepts ⍵" $
      testFunc "word" `shouldBe` True
    it "accepts .⍵" $
      testFunc ".some" `shouldBe` True
    it "accepts an arbitrary path" $
      testFunc "/some/path" `shouldBe` True
    it "accepts an arbitrary path ending with a word prefixed with \".\"" $
      testFunc "/some/path/.file" `shouldBe` True
filtersSpec = do

  describe "[function] hiddenFilter" $ do

    let testFunc = testAFilterWithEmpty hiddenFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects .⍵" $
      testFunc ".hello" `shouldBe` False
    it "accepts { a⍵ | a ≠ '.' }" $
      testFunc "hello" `shouldBe` True
    it "accepts 𝜖" $
      testFunc "" `shouldBe` True
    it "accepts { a⍵ | a ∈ SYMBOLS\\{'.'} }" $
      testFunc "," `shouldBe` True
    it "rejects { ⍵/. } " $
      testFunc "/." `shouldBe` False
    it "rejects a unix filepath with the last component ∈ { .⍵ }" $
      testFunc "some/path/.file" `shouldBe` False

  describe "[function] sameFolderFilter"  $ do

    let testFunc = testAFilterWithEmpty sameFolderFilter

    it "rejects \".\"" $
      testFunc "." `shouldBe` False
    it "rejects \"..\"" $
      testFunc ".." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/.\"" $
      testFunc "some/path/." `shouldBe` False
    it "rejects an arbitrary unix path ending in \"/..\"" $
      testFunc "some/path/.." `shouldBe` False
    it "accepts ⍵" $
      testFunc "word" `shouldBe` True
    it "accepts .⍵" $
      testFunc ".some" `shouldBe` True
    it "accepts an arbitrary path" $
      testFunc "/some/path" `shouldBe` True
    it "accepts an arbitrary path ending with a word prefixed with \".\"" $
      testFunc "/some/path/.file" `shouldBe` True