{-# LANGUAGE NamedFieldPuns #-}
module Hcompta.Amount.Read where
-import Control.Monad (guard)
-import Control.Applicative ((<$>), (<|>), (<*))
-import qualified Data.Char
+import Control.Applicative ((<$>), (<*))
+import Control.Applicative ((<|>))
+import Control.Monad (Monad(..), guard)
+import Data.Bool
+import Data.Char
import qualified Data.Decimal
-import qualified Data.List
-import Data.String (fromString)
+import Data.Eq (Eq(..))
+import Data.List
+import Data.Maybe (Maybe(..))
+import Data.Ord (Ord(..))
+import Data.String (String, fromString)
import Data.Typeable ()
+import Prelude (($), Int, fromIntegral, Num(..), id)
import qualified Text.Parsec as R hiding
( char
, noneOf
map length $ digits
canonicalize_grouping :: [Int] -> [Int]
canonicalize_grouping groups =
- foldl -- NOTE: remove duplicates at beginning and reverse.
+ foldl' -- NOTE: remove duplicates at beginning and reverse.
(\acc l0 -> case acc of
l1:_ -> if l0 == l1 then acc else l0:acc
_ -> l0:acc) [] $