úÎ#!˜C      !"#$%&'()*+,-./0123456789:;<=>?@ABNone +06=BK Interned . TODO Check C instance. We compare D uninternMultiChar.QWrap a short bytestring. Read and Show instances behave like for normal strings. Interns a  character.       None +06=BKAdd InternedMultiChar and return Inte key. Will return key for existing string and thereby serves for lookup in left-to-right direction. Lookup the InternedMultiChar based on an Int" key. Unsafe totality assumption.None +06=BK !"#$%&'()* !"*! *! *! *! *! )"('&%$# "#$%&'()*! None +06=BK+;Collect the hashtable and scalar values for simple scoring.3Score  MultiChars x and y› based on the simple scoring system: (i) lookup (x,y) and use the score if found; (ii) if (x,y) is not in the database, then return the default matching 1 score if x==y), otherwise return the default mismatch 2 score. +,-./0123 +,-./0123 3+,-./012+,-./0123None +06=BK4@Each parsed line gives a set of characters, or tells us a score. TODO add LPimport– which starts a recursive import (note: start by storing the hash or whatever of the file to be imported so that we can comment on circular imports)?&Here we simple parse individual lines.@~Parses a bytestring to create a simple scoring. We don't do much error checking, many of the bindings below will easily fail.(TODO obviously: implement error-checkingAparse a simple scoring file.456789:;<=>?@A456789:;<=>?@A4>=<;:98765?@A4 >=<;:98765?@ANone +06=BKBlDefault simple unigram scores for a system of consonants, liquid consonants, and vowels of arbitrary scale.BBBBE       !""#$%&'()*+,-.//0123456789:;<=>?@ABCDEFGHIJKL NaturalLanguageAlphabets-0.0.1.0NLP.Alphabet.MultiCharNLP.Alphabet.IMMC.InternalNLP.Alphabet.IMMCNLP.Scoring.SimpleUnigram NLP.Scoring.SimpleUnigram.Import!NLP.Scoring.SimpleUnigram.DefaultInternedMultiCharinternedMultiCharIduninternMultiChar MultiChar getMultiCharDMCinternMultiCharimcCache$fNFDataInternedMultiChar$fStringableInternedMultiChar#TFCo:R:DescriptionInternedMultiChar$fInternedInternedMultiChar$fHashableInternedMultiChar$fShowInternedMultiChar$fReadInternedMultiChar$fOrdInternedMultiChar$fEqInternedMultiChar$fIsStringInternedMultiChar$fNFDataMultiChar$fStringableMultiChar$fIsStringMultiChar$fHashableMultiChar$fReadMultiChar$fShowMultiChar immcBimap immcBimapAddimmcBimapLookupIntIMMCgetIMMCV_IMMCMV_IMMCimmc $fNFDataIMMC$fStringableIMMC$fHashableIMMC $fReadIMMC $fShowIMMC$fIsStringIMMC $fOrdIMMCTFCo:R:VectorIMMC SimpleScoring simpleScoregapScoregapOpen gapExtenddefMatch defMismatch scoreUnigram ParsedLine PLcomment PLdefmismatch PLdefmatch PLgapextend PLgapopenPLgapPLinsetPLeqsetPLeqPLset parseLinegenSimpleScoringsimpleScoreFromFile clvDefaultsghc-prim GHC.ClassesOrdbase Data.Functionon