about summary refs log tree commit diff
path: root/scratch/brilliant/App.hs
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/brilliant/App.hs')
-rw-r--r--scratch/brilliant/App.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/scratch/brilliant/App.hs b/scratch/brilliant/App.hs
index dd3f2788a254..bf39de4997ad 100644
--- a/scratch/brilliant/App.hs
+++ b/scratch/brilliant/App.hs
@@ -5,10 +5,20 @@ import Keyboard (Keyboard(..))
 import Transforms (Transform(..))
 import Utils ((|>))
 
+import qualified Data.Char as Char
 import qualified Utils
+import qualified Keyboard
+import qualified Data.HashMap.Strict as HM
 --------------------------------------------------------------------------------
 
 transform :: Keyboard -> Transform -> Keyboard
 transform (Keyboard xs) HorizontalFlip = xs |> fmap reverse |> Keyboard
 transform (Keyboard xs) VerticalFlip   = xs |> reverse |> Keyboard
 transform (Keyboard xs) (Shift n)      = xs |> fmap (Utils.rotate n) |> Keyboard
+
+retypePassage :: String -> Keyboard -> Maybe String
+retypePassage passage newKeyboard =
+  passage
+  |> fmap Char.toUpper
+  |> traverse (\c -> HM.lookup c Keyboard.charToCoord)
+  >>= traverse (Keyboard.coordToChar newKeyboard)