diff --git a/changes.txt b/changes.txt
--- a/changes.txt
+++ b/changes.txt
@@ -1,3 +1,9 @@
+1.4.0.0
+-------
+
+- Released Fri 30 Oct 2020 23:53:16 CET
+- Fixed bug: now finds/regocnised uppercase extensions (`.R`, `.Cpp`, etc.)
+
 1.3.2.0
 -------
 
diff --git a/issues.txt b/issues.txt
--- a/issues.txt
+++ b/issues.txt
@@ -8,7 +8,7 @@
         skipped?) [request] [2017]
  
 src/Lentil/File.hs
-    68  combine funziona su windows? [test]
+    69  combine funziona su windows? [test]
  
 src/Lentil/Parse/Run.hs
    147  Row should be carried on by issues, not be manually set! [refactor]
@@ -22,12 +22,16 @@
         difficult since they are html/js/css + embedded Haskell. [u:1]
         [request]
     36  Consider using https://github.com/github/semantic ? [design]
-   110  rst parser doesn't respect whitespace or paragraphs. How to
+    45  lowercase does not work (not recognised, .r vs. .R) [bug]
+   112  rst parser doesn't respect whitespace or paragraphs. How to
         implement this without breaking other parsers? [bug] [design]
  
 src/Main.hs
     14  ignore dist dist-newstyle and common folders [feature:basic]
     15  help su `lentil` più semplie (`use lentil .`) [feature:basic]
+    16  lentil con lexer? [design]
+    17  lentil <-- invoke with lentil . or lentil --help [feature:basic]
  
 test/Lentil/FileSpec.hs
-    38  excluding files fails on MS Windows! Check why! [u:3] [bug]
+    34  do not allow duplicate issues [bug]
+    39  excluding files fails on MS Windows! Check why! [u:3] [bug]
diff --git a/lentil.cabal b/lentil.cabal
--- a/lentil.cabal
+++ b/lentil.cabal
@@ -1,20 +1,21 @@
 name:                lentil
-version:             1.3.2.0
+version:             1.4.0.0
 synopsis:            frugal issue tracker
 description:         minumum effort, cohesive issue tracker based on
                      ubiquitous @TODO@s and @FIXME@s conventions.
-                     Check homepage for manual, tutorial, examples.
+                     Check homepage for manual, tutorial, binaries,
+                     examples.
 homepage:            http://www.ariis.it/static/articles/lentil/page.html
 license:             GPL-3
 license-file:        LICENSE
 author:              Francesco Ariis <fa-ml@ariis.it> et al.
                      (check authors.txt)
 maintainer:          Francesco Ariis <fa-ml@ariis.it>
-copyright:           © 2015-2019 Francesco Ariis et al. (check authors.txt)
+copyright:           © 2015-2020 Francesco Ariis et al. (check authors.txt)
 category:            Development, Project Management
 stability:           Stable
 build-type:          Simple
-tested-with:         GHC==8.0.1, GHC==8.2.2, GHC==8.4.1, GHC==8.6.1
+tested-with:         GHC==8.4.1, GHC==8.6.1, GHC==8.8.3
 extra-source-files:  stack.yaml,
                      test/test-files/lang-comm/clang.c,
                      test/test-files/lang-comm/haskell.hs,
@@ -37,7 +38,6 @@
                      test/test-files/lang-comm/text.txt,
                      test/test-files/specific/contiguous.c,
                      test/test-files/specific/cont-custom.c,
-                     test/test-files/specific/uppercase.C,
                      test/test-files/specific/xyz.xyz,
                      test/test-files/specific/custom-fwords.c,
                      test/test-files/test-proj/base-case/fold-a/foo1.hs,
@@ -47,7 +47,11 @@
                      test/test-files/test-proj/base-case/fold-c/sub-fold/foo5.hs,
                      test/test-files/test-proj/dot-folders/foo1.hs,
                      test/test-files/test-proj/dot-folders/.alfa/foo1.hs,
-                     test/test-files/test-proj/dot-folders/_beta/foo1.hs
+                     test/test-files/test-proj/dot-folders/_beta/foo1.hs,
+                     test/test-files/test-proj/upper/prova1.cpp,
+                     test/test-files/test-proj/upper/prova2.cPp,
+                     test/test-files/test-proj/upper/prova3.Cpp,
+                     test/test-files/test-proj/upper/prova.F
 extra-doc-files:     README, changes.txt, doc/usr/page.rst, doc/usr/test.zip,
                      issues.txt, authors.txt
 cabal-version:       1.24
@@ -64,14 +68,14 @@
                        ansi-wl-pprint==0.6.*,
                        csv==0.1.*,
                        deepseq==1.4.*,
-                       dlist==0.8.*,
+                       dlist >= 0.8 && < 1.1,
                        directory    >= 1.2 && < 1.4,
                        filemanip==0.3.*,
                        filepath==1.4.*,
-                       megaparsec >= 8.0 && < 8.1,
+                       megaparsec >= 8.0 && < 9.1,
                        mtl == 2.2.*,
                        natural-sort==0.1.*,
-                       optparse-applicative >= 0.13 && < 0.16,
+                       optparse-applicative >= 0.16 && < 0.17,
                        regex-tdfa >= 1.2 && < 1.4,
                        semigroups >= 0.18 && < 0.20,
                        text==1.2.*,
@@ -101,13 +105,13 @@
                        csv==0.1.*,
                        directory    >= 1.2 && < 1.4,
                        deepseq==1.4.*,
-                       dlist==0.8.*,
+                       dlist >= 0.8 && < 1.1,
                        filemanip==0.3.*,
                        filepath==1.4.*,
-                       megaparsec >= 8.0 && < 8.1,
+                       megaparsec >= 8.0 && < 9.1,
                        mtl == 2.2.*,
                        natural-sort==0.1.*,
-                       optparse-applicative >= 0.13 && < 0.16,
+                       optparse-applicative >= 0.16 && < 0.17,
                        regex-tdfa >= 1.2 && < 1.4,
                        semigroups >= 0.18 && < 0.20,
                        text==1.2.*,
diff --git a/src/Lentil/File.hs b/src/Lentil/File.hs
--- a/src/Lentil/File.hs
+++ b/src/Lentil/File.hs
@@ -20,6 +20,7 @@
 import Data.Semigroup as S
 import Data.Monoid as M ()
 
+import qualified Data.Char as C
 import qualified Data.List as L
 
 
@@ -68,7 +69,10 @@
           -- TODO: combine funziona su windows? [test]
 
           extCheck = (fmap getAny . mconcat)
-                     (map (fmap Any . (extension ==?)) (extensionList as))
+                     (map (fmap Any . (extension ~=?)) (extensionList as))
+
+          (~=?) = let tl s = map C.toLower s
+                  in  liftOp (\a b -> tl a == tl b)
 
 -- recursion predicate: excludes dot ('.') or _ folders
 recPred :: RecursionPredicate
diff --git a/src/Lentil/Parse/Syntaxes.hs b/src/Lentil/Parse/Syntaxes.hs
--- a/src/Lentil/Parse/Syntaxes.hs
+++ b/src/Lentil/Parse/Syntaxes.hs
@@ -42,6 +42,8 @@
 extensionList :: [Alias] -> [String]
 extensionList as = concatMap fst languages ++ map fst as
 
+-- TODO [bug] lowercase does not work (not recognised, .r vs. .R)
+
 langParser :: String -> MaybePar
 langParser fp = lookupExt languages ext
     where ext = map C.toLower (SF.takeExtension fp)
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -13,6 +13,8 @@
 
 -- todo [feature:basic] ignore dist dist-newstyle and common folders
 -- todo [feature:basic] help su `lentil` più semplie (`use lentil .`)
+-- todo [design] lentil con lexer?
+-- todo [feature:basic] lentil <-- invoke with lentil . or lentil --help
 
 main :: IO ()
 main = I.hSetBuffering I.stderr I.NoBuffering >> -- b/c progress bar
@@ -24,16 +26,18 @@
 
 -- overt help text (even in condensed help)
 helpOvert :: Parser (a -> a)
-helpOvert = abortOption ShowHelpText $ mconcat [ long "help",
-                                                 short 'h',
-                                                 help "Show this help text" ]
+helpOvert = abortOption sht $ mconcat [ long "help",
+                                        short 'h',
+                                        help "Show this help text" ]
+    where
+          sht = ShowHelpText Nothing
 
 version :: Parser (a -> a)
 version = infoOption versionCopy ( long "version" S.<>
                                    short 'v'      S.<>
                                    help "show version and copyright info" )
     where
-          versionCopy = "\nlentil - frugal issue tracker, version 1.3.1.0\n\
+          versionCopy = "\nlentil - frugal issue tracker, version 1.4.0.0\n\
                         \(C) 2015-2019 Francesco Ariis - http://www.ariis.it\n\
                         \released under the GNU General Public License v3\n"
 
diff --git a/test/Lentil/FileSpec.hs b/test/Lentil/FileSpec.hs
--- a/test/Lentil/FileSpec.hs
+++ b/test/Lentil/FileSpec.hs
@@ -31,6 +31,7 @@
       findIssues [] [] [bas ++ "fold-a/foo1.hs"] [] >>= \fiss ->
       length fiss `shouldBe` 1
 
+-- TODO do not allow duplicate issues [bug]
 --     it "doesn't duplicate issues" $
 --       findIssues [bas ++ "", bas ++ ""] [] >>= \fiss ->
 --       length fiss `shouldBe` 5
@@ -56,4 +57,10 @@
       findIssues [] [] [bas] []                    >>= \fiss  ->
       findIssues [] [] [bas ++ "../base-case/"] [] >>= \fiss' ->
       length fiss `shouldBe` length fiss'
+    it "does recognised capitalised ext names" $
+      findIssues [] [] [fld ++ "upper/"] [] >>= \fiss ->
+      length fiss `shouldBe` 3
+    it "does recognised capitalised ext names in aliases" $
+      findIssues [(".f", ".c")] [] [fld ++ "upper/"] [] >>= \fiss ->
+      length fiss `shouldBe` 4
 
diff --git a/test/Lentil/Parse/RunSpec.hs b/test/Lentil/Parse/RunSpec.hs
--- a/test/Lentil/Parse/RunSpec.hs
+++ b/test/Lentil/Parse/RunSpec.hs
@@ -37,9 +37,6 @@
                                   (Just "single")  [],
                             Issue "test/test-files/specific/cont-custom.c" 2
                                   (Just "single2") [Tag "hax"]]
-    it "does parse files with uppercase extension" $
-        fileParser [] [] "test/test-files/specific/uppercase.C"
-            `shouldReturn` spt "test/test-files/specific/uppercase.C"
     it "parses a .xyz file as if it were a .c file" $
         fileParser [(".xyz", ".c")] [] "test/test-files/specific/xyz.xyz"
             `shouldReturn` spt "test/test-files/specific/xyz.xyz"
diff --git a/test/test-files/specific/uppercase.C b/test/test-files/specific/uppercase.C
deleted file mode 100644
--- a/test/test-files/specific/uppercase.C
+++ /dev/null
@@ -1,12 +0,0 @@
-// todo single
-// comment
-// Todo: single2
-
-var c = "st/*ring"; // string
-char letter = 'c' // char
-
-/* TODO: block1 */
-/* TODO: block2 [tog] */
-
-
-//  end (this file tests uppercase extensions)
diff --git a/test/test-files/test-proj/upper/prova.F b/test/test-files/test-proj/upper/prova.F
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/upper/prova.F
@@ -0,0 +1,1 @@
+// todo baz
diff --git a/test/test-files/test-proj/upper/prova1.cpp b/test/test-files/test-proj/upper/prova1.cpp
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/upper/prova1.cpp
@@ -0,0 +1,1 @@
+// todo bar
diff --git a/test/test-files/test-proj/upper/prova2.cPp b/test/test-files/test-proj/upper/prova2.cPp
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/upper/prova2.cPp
@@ -0,0 +1,1 @@
+// todo barxy
diff --git a/test/test-files/test-proj/upper/prova3.Cpp b/test/test-files/test-proj/upper/prova3.Cpp
new file mode 100644
--- /dev/null
+++ b/test/test-files/test-proj/upper/prova3.Cpp
@@ -0,0 +1,1 @@
+// todo foo
