úÎ#É G      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFNone +07>CL Interned . TODO Check G instance. We compare H uninternMultiChar.QWrap a short bytestring. Read and Show instances behave like for normal strings. Interns a  character.       None +07>CLAdd 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 +07>CL !"#$%&'()*+,-. !".! .! .! .! .! -",+*)('&%$#"#$%&'()*+,-.! None +07>CL/;Collect the hashtable and scalar values for simple scoring.7Score  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 5 score if x==y), otherwise return the default mismatch 6 score. /01234567 /01234567 7/0123456/01234567None +07>CL8@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)C&Here we simple parse individual lines.D~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-checkingEparse a simple scoring file.89:;<=>?@ABCDE89:;<=>?@ABCDE89:;<=>?@ABCDE8 9:;<=>?@ABCDENone +07>CLFlDefault simple unigram scores for a system of consonants, liquid consonants, and vowels of arbitrary scale.FFFFI       !""#$%&'()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPNatur_KsR6xA9vykj8NqABcPhvMVNLP.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 $fToJSONIMMC$fFromJSONIMMC$fSerializeIMMC $fBinaryIMMC $fNFDataIMMC$fStringableIMMC$fHashableIMMC $fReadIMMC $fShowIMMC$fIsStringIMMC $fOrdIMMCTFCo:R:VectorIMMC SimpleScoring simpleScoregapScoregapOpen gapExtenddefMatch defMismatch scoreUnigram ParsedLinePLsetPLeqPLeqsetPLinsetPLgap PLgapopen PLgapextend PLdefmatch PLdefmismatch PLcomment parseLinegenSimpleScoringsimpleScoreFromFile clvDefaultsghc-prim GHC.ClassesOrdbase Data.Functionon