module CJK.Data.Jyutping where

import qualified Data.Text as Text


data Tone = HighLevel
          | MidRising
          | MidLevel
          | LowFalling
          | LowRising
          | LowLevel
          deriving (Eq, Ord)

instance Show Tone where
    show = show . toneNumber

toneNumber :: Tone -> Int
toneNumber HighLevel  = 1
toneNumber MidRising  = 2
toneNumber MidLevel   = 3
toneNumber LowFalling = 4
toneNumber LowRising  = 5
toneNumber LowLevel   = 6


data Phone = Phone {
    sound :: Text.Text,
    tone  :: Tone
  }

instance Show Phone where
    show jyut = Text.unpack (sound jyut) ++ show (tone jyut)