diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -252,3 +252,8 @@
 ## 0.15.5.0 -- 2020-05-26
 
 * Fifteenth version revised G. Some code improvements.
+
+## 0.16.0.0 -- 2020-06-24
+
+* Sixteenth version. Changed Double to Float in the the modules so that the functons can be consistent with new dobutokO packages. Besides, the double precision 
+is not needed and in some cases is meaningless and can potentially (a little bit, however) reduce performance in some cases. Some minor code and documentation improvements.
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -39,7 +39,7 @@
        putStr "list-of-produced-sound-representations (if any) -- a list of sound representations, which the program will try to produce while being executed. "
        putStrLn "The default one (if not specified) is a full range of needed sound representations. "
     "-v" -> do
-       putStrLn "mmsyn7ukr version: 0.15.5.0"
+       putStrLn "mmsyn7ukr version: 0.16.0.0"
     "-t" -> do
        putStrLn "The program plays now a service sound for a 0.5 second. It uses just that duration for a pause before you can record a sound representation further."
        path0 <- getDataFileName "y.wav"
diff --git a/Processing_mmsyn7ukr.hs b/Processing_mmsyn7ukr.hs
--- a/Processing_mmsyn7ukr.hs
+++ b/Processing_mmsyn7ukr.hs
@@ -78,7 +78,7 @@
        produceSound (actsctrl, noiseLim) file)
 
 -- | Function 'produceSound3' is used internally in the 'produceSound2' function.
-produceSound3 :: (String, String) -> (FilePath, FilePath) -> String -> (Int, Double) -> Double -> IO ()
+produceSound3 :: (String, String) -> (FilePath, FilePath) -> String -> (Int, Float) -> Float -> IO ()
 produceSound3 (actsctrl, noiseLim) (file, file1) soundUkr (noiseMax, duration0) lim0
  | actsctrl == "-1" = prodSnd3H (actsctrl, noiseLim) (file, file1) soundUkr
  | take 1 actsctrl == "0" = prodSnd3H (actsctrl, noiseLim) (file, file1) soundUkr
@@ -102,7 +102,7 @@
         resampleA "8_x.wav" (22050::Int)
         produceSound4 (file, file1)  "38_x.wav"
 
-prodSnd3H2 :: (String, String) -> (FilePath, FilePath) -> String -> (Int, Double) ->  Double -> IO Double
+prodSnd3H2 :: (String, String) -> (FilePath, FilePath) -> String -> (Int, Float) ->  Float -> IO Float
 prodSnd3H2 (actsctrl, noiseLim) (file, file1) soundUkr (noiseMax, duration0) lim0 = do
     alterVadB "8_x.wav" lim0 noiseMax (duration0*0.03)
     lim1 <- durationA "8_x.wav"
@@ -161,7 +161,7 @@
 ; x3 <- hGetContents hout
 ; recommendSharp soundUkr
 ; (longerK0,pause0,sharp) <- tempS soundUkr noiseLim
-; let longerK = (read x3::Double)*longerK0
+; let longerK = (read x3::Float)*longerK0
 ; putStrLn $ "Please, wait for " ++ show pause0 ++ " seconds and pronounce the sound representation for the "
 ; putStrLn ""
 ; putStrLn $ "                                   \"" ++ (if soundUkr /= "ь" then map toUpper soundUkr else soundUkr) ++ "\""
@@ -271,7 +271,7 @@
               if null sr0
                 then return 0.5
                 else let sr = "0." ++ sr0
-                         s  = read sr::Double in if s > 0.0 then return s else return 0.01) (return 0.5)
+                         s  = read sr::Float in if s > 0.0 then return s else return 0.01) (return 0.5)
       (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) ["x.wav", "_x.wav", "noisered", "nx0.wav.b.prof", showFFloat (Just 4) s2 $ show 0] ""
       if code /= ExitSuccess 
         then do
@@ -288,12 +288,12 @@
             else catchEnd (InitialFileNotChanged "x.wav")
     else renameFile "x.wav" "_x.wav"
 
--- | Function to get the @(Double, Double, Bool)@ value. The first @Double@ value shows in how many times you expect that your sound representation
+-- | Function to get the @(Float, Float, Bool)@ value. The first @Float@ value shows in how many times you expect that your sound representation
 -- will be longer than the one provided by the @mmsyn6ukr@ package. The second one specifies a duration of the pause before SoX actually starts to
 -- record the needed sound data (in seconds). The @Bool@ value specifies whether the program uses a \'sharp\' mode meaning that
 -- it does not check whether the resulting duration of the recording is at least 3 seconds long, so you can specify shorter durations.
 -- The @String@ arguments are the Ukrainian sound representation name and the second command line argument for the program respectively.
-tempS :: String -> String -> IO (Double, Double, Bool)
+tempS :: String -> String -> IO (Float, Float, Bool)
 tempS soundUkr noiseLim = onException (do
     if null noiseLim
       then printGenInfo2
@@ -304,15 +304,15 @@
     putStrLn ""
     putStrLn $ "                     \"" ++ (if soundUkr /= "ь" then map toUpper soundUkr else soundUkr) ++ "\"" 
     putStrLn ""
-    putStrLn "will sound longer than the recently played one? Specify your input as a Double value without \'e\' notation (with the preceding asterisk sign for the \'sharp\' mode). "
+    putStrLn "will sound longer than the recently played one? Specify your input as a Float value without \'e\' notation (with the preceding asterisk sign for the \'sharp\' mode). "
     putStrLn ""
     longivityZ <- getLine
     let sharp0 = take 1 longivityZ
         sharp1 = drop 1 . dropWhile (/= '#') $ longivityZ
-        sharp2 = if null sharp1 then 0.5 else let zzz0 = read (filter (\z -> isDigit z || z == '.') sharp1)::Double in if zzz0 /= 0.0 then zzz0 else 0.5
+        sharp2 = if null sharp1 then 0.5 else let zzz0 = read (filter (\z -> isDigit z || z == '.') sharp1)::Float in if zzz0 /= 0.0 then zzz0 else 0.5
     case sharp0 of
-      "*" -> let long = read (takeWhile (/= '#') . drop 1 $ longivityZ)::Double in return (long,sharp2,True)
-      _   -> let long = read (takeWhile (/= '#') longivityZ)::Double in return (long,sharp2,False)) (do 
+      "*" -> let long = read (takeWhile (/= '#') . drop 1 $ longivityZ)::Float in return (long,sharp2,True)
+      _   -> let long = read (takeWhile (/= '#') longivityZ)::Float in return (long,sharp2,False)) (do 
                putStrLn "Please, specify again the valid values!"
                tempS soundUkr noiseLim)
 
@@ -355,7 +355,7 @@
     ; V.imapM_ (\i x -> recA ("nx" ++ show (i + 1) ++ ".wav") 0.07 >> threadDelay (50000 * x)) . V.fromList $ [2,3,2,2,3]
     ; [upperB1,upperB2,upperB3,upperB4,upperB5] <- mapM (\c -> upperBnd ("nx" ++ (c:".wav"))) "12345"
     ; v0 <- V.imapM (\i upp -> fmap fst . selMaxAbs ("nx" ++ show (i + 1) ++ ".wav") $ (0,upp)) . V.fromList $ [upperB1,upperB2,upperB3,upperB4,upperB5]
-    ; renameFile ("nx" ++ (show ((V.minIndex . V.map (\x -> abs (read x::Double)) $ v0) + 1) ++ ".wav")) "nx0.wav"
+    ; renameFile ("nx" ++ (show ((V.minIndex . V.map (\x -> abs (read x::Float)) $ v0) + 1) ++ ".wav")) "nx0.wav"
     ; noiseProfB "nx0.wav" >> putStrLn "" >> threadDelay 400000 >> putStrLn "The noise sound profile is now created. The program can proceed further." }
 
 -- | Function 'recommendSharp' is used to print an advice about the speech transformation for the Ukrainian sounds that you can pronounce
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -17,7 +17,7 @@
 directory sound files manually.
 
         ***** CAUTION! *****
-        --------------------
+        ====================
 
 "The possession of great power necessarily implies
 great responsibility."
@@ -87,7 +87,7 @@
 intent you to be aware of some possible issues.
 
         ***** Command Line Arguments *****
-        ----------------------------------
+        ==================================
 
 If you specify as a first command line argument one of the numbers below
 the program behaves as follows:
@@ -181,7 +181,7 @@
 the Ukrainian sounds, which are given. The list must be sorted.
 
            ***** More Information *****
-           ----------------------------
+           ============================
 
 You can create a sound in either a 'sharp' mode or in a usual mode.
 The first one means that the program does not check whether the
@@ -196,7 +196,7 @@
 so for a beginning it is not recommended (though you can give it a try).
 
            ***** Noise Reduction *****
-           ---------------------------
+           ===========================
 
 At the beginning the program also creates a noise profile (once per execution).
 It is now used to reduce the noise level for the recorded sound representations.
@@ -209,7 +209,7 @@
 but will not reduce the noise at all.
 
            ***** Ukrainian Localization *****
-           ----------------------------------
+           ==================================
 
 Please, before using the program check that uk_UA.UTF8 localization is
 present in your system as one of the system locales. Otherwise,
@@ -217,7 +217,7 @@
 you can terminate it in a usual way by sending interruption signals.
 
            ***** SoXBasics and SoXBasics1 *****
-           ------------------------------------
+           ====================================
 
 The library have two similar modules with partially overlapping function names
 (so it is recommended to import them qualified). SoXBasics1 functions after
@@ -226,7 +226,7 @@
 applied functions but needs somewhat more resources.
 
            ***** Test Sound Duration *****
-           -------------------------------
+           ===============================
            
 You can now test the sound duration needed as a 0.5 second pause before
 the program can record every non-silent sound. This pause is caused not by the program
@@ -239,7 +239,7 @@
 pause before you can start your recording of the every sound representation.
 
            ***** Specifying the Pause before SoX Actually Starts Recording *****
-           ---------------------------------------------------------------------
+           =====================================================================
            
 You can specify the pause before SoX actually starts recording of the sound data
 for every sound representation. For this, please, specify after the needed
@@ -249,7 +249,7 @@
 equal to 0.5 second pause.
 
            ***** The Possibility to Shorten the Printed Information *****
-           --------------------------------------------------------------
+           ==============================================================
 
 You can shorten the information printed during the program execution by specifying
 as the last symbol in the second command line argument an 's'. In such a case,
diff --git a/SoXBasics.hs b/SoXBasics.hs
--- a/SoXBasics.hs
+++ b/SoXBasics.hs
@@ -128,9 +128,9 @@
 -- | Function 'alterVadB' removes an approximate silence measured by the absolute value of the sound amplitude from the beginning of the file. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
 -- in the same directory where the function is called from). The file must have maximum amplitude absolute value close to 1 before call to the 'alterVadB'. 
--- The second @Double@ parameter is used to exit the iteration cycle. The @Int@ parameter from the range [0..3] specifies a maximum amplitude, starting from 
+-- The second @Float@ parameter is used to exit the iteration cycle. The @Int@ parameter from the range [0..3] specifies a maximum amplitude, starting from 
 -- which the sound will not be trimmed.
-alterVadB :: FilePath -> Double -> Int -> Double -> IO ()
+alterVadB :: FilePath -> Float -> Int -> Float -> IO ()
 alterVadB file lim noiseMax exit | compare lim exit /= GT = putStrLn $ "File " ++ file ++ " is ready for further processing."
                                  | otherwise = 
  if isJust (showE "sox")
@@ -140,7 +140,7 @@
   else catchEnd ExecutableNotProperlyInstalled
   
 -- | Function 'alterVadHelp' is used internally in the 'alterVadB' and 'alterVadE' functions. 
-alterVadHelp :: FilePath -> Double -> Double -> Int -> Double -> IO ()
+alterVadHelp :: FilePath -> Float -> Float -> Int -> Float -> IO ()
 alterVadHelp file lim1 lim noiseMax exit | compare lim1 lim == LT = alterVadB file lim1 noiseMax exit
                                          | compare lim1 lim == EQ = 
  let noiseM = (case noiseMax of 
@@ -190,7 +190,7 @@
           else alterVadB file (lim / 4.0) noiseMax exit
 
 -- | Function 'opFile' is used internally in 'alterVadB' to check whether @FilePath@ exist and if so to do some processing to allow the 'alterVadB' function iterate further.
-opFile :: FilePath -> Double -> Int -> IO ()
+opFile :: FilePath -> Float -> Int -> IO ()
 opFile file exit noiseMax = do
   removeFile file
   exist0 <- doesFileExist file
@@ -245,10 +245,10 @@
           else catchEnd (InitialFileNotChanged file)
   else catchEnd ExecutableNotProperlyInstalled
 
--- | Function 'normL' applies a SoX \"gain -b [db-Value]\" effect on the audio file with dB value given by the @Double@ argument. 
+-- | Function 'normL' applies a SoX \"gain -b [db-Value]\" effect on the audio file with dB value given by the @Float@ argument. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
 -- in the same directory where the function is called from).
-gainL :: FilePath -> Double -> IO ()
+gainL :: FilePath -> Float -> IO ()
 gainL file level = if isJust (showE "sox") 
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "9" ++ file, "gain", "-b", showFFloat (Just 6) level $ show 0] ""
@@ -277,9 +277,9 @@
   
 -- | Function 'alterVadE' removes an approximate silence measured by the absolute value of the sound amplitude from the end of the file. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
--- in the same directory where the function is called from). The second @Double@ parameter is used to exit the iteration cycle. The @Int@ parameter 
+-- in the same directory where the function is called from). The second @Float@ parameter is used to exit the iteration cycle. The @Int@ parameter 
 -- from the range [0..3] specifies a maximum amplitude, starting from which the sound will not be trimmed.
-alterVadE :: FilePath -> Double -> Int -> Double -> IO ()
+alterVadE :: FilePath -> Float -> Int -> Float -> IO ()
 alterVadE file lim noiseMax exit | compare lim exit /= GT = putStrLn $ "File " ++ file ++ " is ready for further processing"
                                  | otherwise = 
  if isJust (showE "sox") 
@@ -371,7 +371,7 @@
   else catchEnd ExecutableNotProperlyInstalled
 
 -- | Function 'recA' records audio file with the given name and duration in seconds. For Windows it uses a default audio device and \"-t waveaudio -d\" option to the SoX.
-recA :: FilePath -> Double -> IO ()
+recA :: FilePath -> Float -> IO ()
 recA file x | isJust (showE "sox") && take 5 os == "mingw" = do 
   (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) ["-t","waveaudio","-d","-b16", "-c1", "-esigned-integer", "-L", file, "trim", "0.5", showFFloat Nothing x $ show 0] ""
   if code /= ExitSuccess
@@ -406,8 +406,8 @@
 
 -- | Function 'recB' records audio file with the given name and duration in seconds. For Windows it uses a default audio device and \"-t waveaudio -d\" option 
 -- to the SoX. Unlike 'recA', the duration of the pause in seconds (before the SoX executable actually starts to record sound data after
--- an initialization of the sound recording device) is controlled by the second @Double@ function argument. 
-recB :: FilePath -> (Double, Double) -> IO ()
+-- an initialization of the sound recording device) is controlled by the second @Float@ function argument. 
+recB :: FilePath -> (Float, Float) -> IO ()
 recB file (x, y) | isJust (showE "sox") && take 5 os == "mingw" = do 
   (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) ["-t","waveaudio","-d","-b16", "-c1", "-esigned-integer", "-L", file, "trim", showFFloat Nothing y $ show 0, showFFloat Nothing x $ show 0] ""
   if code /= ExitSuccess
@@ -463,12 +463,12 @@
   else catchEnd ExecutableNotProperlyInstalled
 
 -- | Function 'durationA' returns a duration of the audio file in seconds.
-durationA :: FilePath -> IO Double
+durationA :: FilePath -> IO Float
 durationA file = if isJust (showE "soxi") 
   then do
     (_, Just hout, _, _) <- createProcess (proc (fromJust (showE "soxi")) ["-D",file]){ std_out = CreatePipe }
     x0 <- hGetContents hout
-    let z = read x0::Double in return z
+    let z = read x0::Float in return z
   else catchEnd ExecutableNotProperlyInstalled >> return 0.0
 
 -- | Function 'playA' plays the given file with SoX. For Windows it uses \"-t waveaudio -d\" options for SoX.
@@ -567,12 +567,12 @@
 
 -- | Function 'noiseReduceBU' reduces with SoX a noise in the file given with the corresponding noise profile created with 'noiseProfBU' function. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
--- in the same directory where the function is called from). The @Double@ parameter is a number between 0 and 1 showing the level of
+-- in the same directory where the function is called from). The @Float@ parameter is a number between 0 and 1 showing the level of
 -- reducing the noise (the greater number means that the function will reduce more intensively may be even aggressively so that for greater
 -- numbers it can remove some sensitive and important sound data as a noise). Internally this parameter is passed unchanged to the \"sox\"
 -- so that it uses it as an amount parameter for the \"noisered\" effect. Therefore, please, (as being stated in the SoX manual) experiment
 -- with the amount to get suitable results. 
-noiseReduceBU :: FilePath -> Double -> IO ()
+noiseReduceBU :: FilePath -> Float -> IO ()
 noiseReduceBU file amount = if isJust (showE "sox")
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "_" ++ file, "noisered", file ++ ".b.prof", showFFloat (Just 4) amount $ show 0] ""
@@ -593,12 +593,12 @@
 
 -- | Function 'noiseReduceEU' reduces with SoX a noise in the file given with the corresponding noise profile created with 'noiseProfEU' function. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
--- in the same directory where the function is called from). The @Double@ parameter is a number between 0 and 1 showing the level of
+-- in the same directory where the function is called from). The @Float@ parameter is a number between 0 and 1 showing the level of
 -- reducing the noise (the greater number means that the function will reduce more intensively may be even aggressively so that for greater
 -- numbers it can remove some sensitive and important sound data as a noise). Internally this parameter is passed unchanged to the \"sox\"
 -- so that it uses it as an amount parameter for the \"noisered\" effect. Therefore, please, (as being stated in the SoX manual) experiment
 -- with the amount to get suitable results. 
-noiseReduceEU :: FilePath -> Double -> IO ()
+noiseReduceEU :: FilePath -> Float -> IO ()
 noiseReduceEU file amount = if isJust (showE "sox") 
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "_." ++ file, "noisered", file ++ ".e.prof", showFFloat (Just 4) amount $ show 0] ""
@@ -617,10 +617,10 @@
           else catchEnd (InitialFileNotChanged file)
   else catchEnd ExecutableNotProperlyInstalled
 
--- | Function 'volS' changes the given audio with the linear ratio for the amplitude so that the resulting amlitude is equal to the given @Double@ parameter.
+-- | Function 'volS' changes the given audio with the linear ratio for the amplitude so that the resulting amlitude is equal to the given @Float@ parameter.
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
 -- in the same directory where the function is called from).
-volS :: FilePath -> Double -> IO ()
+volS :: FilePath -> Float -> IO ()
 volS file amplitude = if isJust (showE "sox") 
   then do
     norm file
@@ -659,7 +659,7 @@
     upp <- upperBnd fileB
     amplMax <- selMA fileB (0, upp) True
     amplMin <- selMA fileB (0, upp) False
-    let ampl = read (fst . maxAbs $ (amplMax, amplMin))::Double
+    let ampl = read (fst . maxAbs $ (amplMax, amplMin))::Float
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [fileA, "8." ++ tail fileA, "vol", showFFloat Nothing ampl $ show 0, "amplitude"] ""
     if code /= ExitSuccess 
       then do
diff --git a/SoXBasics1.hs b/SoXBasics1.hs
--- a/SoXBasics1.hs
+++ b/SoXBasics1.hs
@@ -99,12 +99,12 @@
           else catchEnd (InitialFileNotChanged file)
   else catchEnd ExecutableNotProperlyInstalled
 
--- | Function 'normL' applies a SoX \"gain -b [db-Value]\" effect on the audio file with dB value given by the @Double@ argument. 
+-- | Function 'normL' applies a SoX \"gain -b [db-Value]\" effect on the audio file with dB value given by the @Float@ argument. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
 -- in the same directory where the function is called from). While being
 -- executed the function tries to replace the initial file with the resulting processed one and to clean the temporary files. If it is not
 -- successful the function exits with exception of the type 'FinalException' and leaves the initial file without modification.
-gainL :: FilePath -> Double -> IO ()
+gainL :: FilePath -> Float -> IO ()
 gainL file level = if isJust (showE "sox") 
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "9" ++ file, "gain", "-b", showFFloat (Just 6) level $ show 0] ""
@@ -279,14 +279,14 @@
 
 -- | Function 'noiseReduceBU' reduces with SoX a noise in the file given with the corresponding noise profile created with 'noiseProfBU' function. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
--- in the same directory where the function is called from). The @Double@ parameter is a number between 0 and 1 showing the level of
+-- in the same directory where the function is called from). The @Float@ parameter is a number between 0 and 1 showing the level of
 -- reducing the noise (the greater number means that the function will reduce more intensively may be even aggressively so that for greater
 -- numbers it can remove some sensitive and important sound data as a noise). Internally this parameter is passed unchanged to the \"sox\"
 -- so that it uses it as an amount parameter for the \"noisered\" effect. Therefore, please, (as being stated in the SoX manual) experiment
 -- with the amount to get suitable results. While being
 -- executed the function tries to replace the initial file with the resulting processed one and to clean the temporary files. If it is not
 -- successful the function exits with exception of the type 'FinalException' and leaves the initial file without modification.
-noiseReduceBU :: FilePath -> Double -> IO ()
+noiseReduceBU :: FilePath -> Float -> IO ()
 noiseReduceBU file amount = if isJust (showE "sox")
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "_" ++ file, "noisered", file ++ ".b.prof", showFFloat (Just 4) amount $ show 0] ""
@@ -309,14 +309,14 @@
 
 -- | Function 'noiseReduceEU' reduces with SoX a noise in the file given with the corresponding noise profile created with 'noiseProfE' function. 
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
--- in the same directory where the function is called from). The @Double@ parameter is a number between 0 and 1 showing the level of
+-- in the same directory where the function is called from). The @Float@ parameter is a number between 0 and 1 showing the level of
 -- reducing the noise (the greater number means that the function will reduce more intensively may be even aggressively so that for greater
 -- numbers it can remove some sensitive and important sound data as a noise). Internally this parameter is passed unchanged to the \"sox\"
 -- so that it uses it as an amount parameter for the \"noisered\" effect. Therefore, please, (as being stated in the SoX manual) experiment
 -- with the amount to get suitable results. While being
 -- executed the function tries to replace the initial file with the resulting processed one and to clean the temporary files. If it is not
 -- successful the function exits with exception of the type 'FinalException' and leaves the initial file without modification.
-noiseReduceEU :: FilePath -> Double -> IO ()
+noiseReduceEU :: FilePath -> Float -> IO ()
 noiseReduceEU file amount = if isJust (showE "sox") 
   then do
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [file, "_." ++ file, "noisered", file ++ ".e.prof",  showFFloat (Just 4) amount $ show 0] ""
@@ -337,14 +337,12 @@
           else catchEnd (InitialFileNotChanged file)
   else catchEnd ExecutableNotProperlyInstalled
 
-
-
--- | Function 'volS' changes the given audio with the linear ratio for the amplitude so that the resulting amlitude is equal to the given @Double@ parameter.
+-- | Function 'volS' changes the given audio with the linear ratio for the amplitude so that the resulting amlitude is equal to the given @Float@ parameter.
 -- The function must be used with the @FilePath@ parameter containing no directories in its name (that means the file of the @FilePath@ parameter must be 
 -- in the same directory where the function is called from). While being
 -- executed the function tries to replace the initial file with the resulting processed one and to clean the temporary files. If it is not
 -- successful the function exits with exception of the type 'FinalException' and leaves the initial file without modification.
-volS :: FilePath -> Double -> IO ()
+volS :: FilePath -> Float -> IO ()
 volS file amplitude = if isJust (showE "sox") 
   then do
     SB.norm file
@@ -388,7 +386,7 @@
     upp <- SB.upperBnd fileB
     amplMax <- SB.selMA fileB (0, upp) True
     amplMin <- SB.selMA fileB (0, upp) False
-    let ampl = read (fst . SB.maxAbs $ (amplMax, amplMin))::Double
+    let ampl = read (fst . SB.maxAbs $ (amplMax, amplMin))::Float
     (code, _, _) <- readProcessWithExitCode (fromJust (showE "sox")) [fileA, "8." ++ tail fileA, "vol", showFFloat Nothing ampl $ show 0, "amplitude"] ""
     if code /= ExitSuccess 
       then do
diff --git a/mmsyn7ukr.cabal b/mmsyn7ukr.cabal
--- a/mmsyn7ukr.cabal
+++ b/mmsyn7ukr.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                mmsyn7ukr
-version:             0.15.5.0
+version:             0.16.0.0
 synopsis:            A simple basic interface to some SoX functionality or to produce a voice that can be used by mmsyn7h
 description:         A program and a library that can be used as a simple basic interface to some SoX functionality or to produce your voice in Ukrainian (if you pronounce the sounds properly) represented by the separate sounds or something special like soft sign.
 homepage:            https://hackage.haskell.org/package/mmsyn7ukr
@@ -11,7 +11,7 @@
 author:              OleksandrZhabenko
 maintainer:          olexandr543@yahoo.com
 copyright:           (c) Oleksandr Zhabenko 2019-2020
-category:            Language
+category:            Language, Sound
 build-type:          Simple
 extra-source-files:  ChangeLog.md, README.markdown
 data-files:          y.wav
