packages feed

language-spelling 0.1.1 → 0.1.2

raw patch · 5 files changed

+34/−7 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Phonetic.Encoder: alphabet :: Encoder enc => Alphabet enc
- Language.Phonetic.Encoder: class Encoder enc where encode ll | all (flip member alph) ll = Just (encodeUnsafe ll) | otherwise = Nothing where alph = getAlphabet (alphabet :: Alphabet enc)
- Language.Phonetic.Encoder: encode :: (Encoder enc, ListLike full Char) => full -> Maybe (Code enc)
- Language.Phonetic.Encoder: encodeUnsafe :: (Encoder enc, ListLike full Char) => full -> Code enc
- Language.Phonetic.Soundex: data Soundex
- Language.Phonetic.Soundex: instance Encoder Soundex
- Language.Phonetic.Soundex: table :: Array Char (Either Bool Word8)
+ Language.Phonetic: alphabet :: Encoder enc => Alphabet enc
+ Language.Phonetic: class Encoder enc where encode ll | all (flip member alph) ll = Just (encodeUnsafe ll) | otherwise = Nothing where alph = getAlphabet (alphabet :: Alphabet enc)
+ Language.Phonetic: data Alphabet enc
+ Language.Phonetic: data Code enc
+ Language.Phonetic: data Soundex
+ Language.Phonetic: encode :: (Encoder enc, ListLike full Char) => full -> Maybe (Code enc)
+ Language.Phonetic: encodeUnsafe :: (Encoder enc, ListLike full Char) => full -> Code enc

Files

Language/Phonetic.hs view
@@ -1,7 +1,17 @@+-- | \"A phonetic algorithm is an algorithm for indexing of words by their+--   pronunciation\": <https://en.wikipedia.org/wiki/Phonetic_algorithm>.+--+--   Right now only a very rudimental one is provided, 'Soundex'; plus+--   'Encoder', a generic interface. module Language.Phonetic-    ( module Language.Phonetic.Encoder-    , module Language.Phonetic.Soundex+    ( -- * Types+      Code+    , Alphabet+    , Encoder (..)+      -- * Algorithms+    , Soundex     ) where  import Language.Phonetic.Encoder import Language.Phonetic.Soundex+import Language.Phonetic.Internal
Language/Phonetic/Encoder.hs view
@@ -1,6 +1,9 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-}-module Language.Phonetic.Encoder (Encoder (..)) where+module Language.Phonetic.Encoder+    ( Code+    , Encoder (..)+    ) where  import qualified Data.Set as Set @@ -10,10 +13,18 @@ import           Language.Phonetic.Internal  +-- | Type class for algorithms that encode words based on their pronunciation.+--+--   Minimal definition: 'alphabet', 'encodeUnsafe'. class Encoder enc where+    -- | The range of characters that the algorithm will accept     alphabet     :: Alphabet enc+    -- | Unchecked encoding: if characters not in 'alphabet' are in the word the+    --   behaviour is undefined.  You should use 'encode'.     encodeUnsafe :: ListLike full Char => full -> Code enc +    -- | Safe 'encodeUnsafe': checks that all the characters are in 'alphabet'+    --   first.     encode :: ListLike full Char => full -> Maybe (Code enc)     encode ll | ListLike.all (flip Set.member alph) ll = Just (encodeUnsafe ll)               | otherwise                              = Nothing
Language/Phonetic/Internal.hs view
@@ -1,8 +1,12 @@+-- | See the documentation for 'Language.Distance.Internal' to see why this+--   module is potentially dangerous. module Language.Phonetic.Internal where  import           Data.ByteString (ByteString)  import           Data.Set (Set) +-- | A wrapped 'ByteString'. newtype Code enc     = Code {getCode :: ByteString}       deriving (Eq, Show)+-- | A wrapped 'Set' 'Char'. newtype Alphabet enc = Alphabet {getAlphabet :: Set Char} deriving (Eq, Show)
Language/Phonetic/Soundex.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE EmptyDataDecls #-}-module Language.Phonetic.Soundex where+module Language.Phonetic.Soundex (Soundex) where  import           Data.Char (toUpper) import           Data.Word (Word8)@@ -27,6 +27,7 @@           ('V', Right 1    ), ('W', Left  False), ('X', Right 2    ),           ('Y', Left  True ), ('Z', Right 2    ) ] +-- | See <https://en.wikipedia.org/wiki/Soundex> for more info. data Soundex  instance Encoder Soundex where
language-spelling.cabal view
@@ -1,6 +1,6 @@ Cabal-Version:      >= 1.8 Name:               language-spelling-Version:            0.1.1+Version:            0.1.2 Author:             Francesco Mazzoli (f@mazzo.li) Maintainer:         Francesco Mazzoli (f@mazzo.li) Build-Type:         Simple@@ -59,11 +59,12 @@                       Language.Distance.Search.BK,                       Language.Distance.Search.TST,                       Language.Phonetic,-                      Language.Phonetic.Encoder,-                      Language.Phonetic.Soundex,                       Language.Phonetic.Internal,                       Data.TST,                       Data.TSTSet++    Other-Modules:    Language.Phonetic.Soundex,+                      Language.Phonetic.Encoder  Test-Suite benchmarks     Type:             exitcode-stdio-1.0