úÎ=Ã7£u      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstNone(*0246=BJKMX  $   None(*0246=BJKMXDiscretized log-odds.KThe BLOSUM matrices, for example, store data in discretized log-odds form.7TODO Might move up even higher into statistics modules.  !""""""!  !"None(*0246=BJKMX# A linear Int-based index type.&Turn an u into an # safely.'Produce v and # or w.#$%&'()*+,-./012345#$%&'/0#$%&'.-,+*)(50/50/50/50/50/4321#$%&'()*+,-.123450/None(*0246=BJKMX 6One-based indices.7Zero-based indices.8Uses & to guarantee that the # is ok.9Re-Index an index of type Index n as Index m. This is always safe, as  0 :: Index 0 gives  1 :: Index 17 for example. I.e. valid indices become valid indices.:Helper function that allows addition of an # and an u , with the u on the right.; Unsafe plus.<Helper function that allows  subtraction of an # and an u , with the u on the right.= Unsafe minus.>Return the index as an Int -style index that is zero-based.?As an index from an Int-style zero-based one.1TODO We might want to check that the argument is [0..]. 6789:;<=>?#%&'6789:;<=>?89:;<=>?76%&'#% 6789:;<=>?None(*0246=BJKMX @Small numbers.ASmallest positive number /= 0.0.B;Very large and small numbers with some numerical safety to 1/0 or maxBound (depending on if we are Integral or  RealFloat.We have: (maxFinite >= extremelyLarge >= veryLarge veryLarge >= verySmall(verySmall >= extremelySmall >= minFinite.OTODO the small stuff should actually be around zero, but positive and go into NumericalEpsilon*. Here we should actually use other names.CLargest finite numberDSmallest finite numberEAround 1/100 of the largest finite numberFAround 1/100 of the smallest finite numberGAround 1/ 10 of the largest finite numberHAround 1/ 10 of the smallest finite number @ABCDEFGHIJK @ABCDEFGH BCDEFGH@AKJI@ABCDEFGHIJKNone(*0246=BJKMXLGibbs free energy change.\For RNA structure, the change in energy from the unfolded structure to the given structure. In units of  kcal / mol.,TODO shall we phantom-type the actual units?Oround $ DeltaGibbs / 100.LMNOPQRSTUVWXYZ[\]^_`abc LMNOPQRS[\0LMNZSRZSRZSRZSRZSRYXWVUTOPQc\[c\[c\[c\[c\[ba`_^]LMNOPQTUVWXYZSR]^_`abc\[None(*0246=BJKMXd&Species have an accession number, too.e<Tag as being an Rfam model. Used for Stockholm and CM files.fTag as being a Pfam model.gTag as being a clan.hprotein sequenceinucleotide sequencej>The accession number is a unique identifier in bioinformatics.ÄDepending on the source, accession numbers follow different alphanumeric formats! While letters-than-numbers is quite common, swissprot uses a mix. Hence, we just use a text string as accession.tA phantom type is provided to enable type safety annotations. Helper functions provide smart construction from the  Accession tagged generic type.defghijklmnopqrst defghijklmnjklmntsrqpoihgfeddefghijklmnopqrstx      !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}{|~BiobaseTypes-0.1.1.0Biobase.Types.StrandBiobase.Types.OddsBiobase.Types.Index.TypeBiobase.Types.IndexBiobase.Types.NumericalExtremesBiobase.Types.EnergyBiobase.Types.AccessionStrand getStrandPMSense AntiSense$fHashableStrand$fFromJSONStrand$fToJSONStrand$fSerializeStrand$fBinaryStrand$fNFDataStrand $fEnumStrand$fBoundedStrand $fReadStrand $fShowStrandV_Strand MV_Strand$fArbitraryStrand$fIndexStreamStrand$fIndexStream:. $fIndexStrandTFCo:R:VectorStrandDLOgetDLOV_DLOMV_DLO $fNFDataDLO $fToJSONDLO $fFromJSONDLO$fSerializeDLO $fBinaryDLOTFCo:R:VectorDLOIndexgetIndexindex maybeIndex$fHashableIndex$fFromJSONIndex $fToJSONIndex$fSerializeIndex $fBinaryIndex $fNFDataIndex $fNumIndexV_IndexMV_Index$fArbitraryIndex$fIndexStreamIndex $fIndexIndexTFCo:R:VectorIndexI1I0 checkIndexreIndex+. unsafePlus-. unsafeMinustoInt0fromInt0NumericalEpsilonepsilonNumericalExtremes maxFinite minFinite veryLarge verySmallextremelyLargeextremelySmall$fNumericalEpsilonDouble$fNumericalExtremesDouble$fNumericalExtremesInt DeltaGibbsDGgetDGDeltaDekaGibbsDekaGgetDekaG V_DeltaGibbs MV_DeltaGibbs$fDefaultDeltaGibbs$fToJSONDeltaGibbs$fFromJSONDeltaGibbs$fSerializeDeltaGibbs$fBinaryDeltaGibbs$fHashableDeltaGibbsTFCo:R:VectorDeltaGibbsV_DeltaDekaGibbsMV_DeltaDekaGibbs$fDefaultDeltaDekaGibbs$fToJSONDeltaDekaGibbs$fFromJSONDeltaDekaGibbs$fSerializeDeltaDekaGibbs$fBinaryDeltaDekaGibbs$fHashableDeltaDekaGibbsTFCo:R:VectorDeltaDekaGibbsSpeciesRfamPfamClanProtein Nucleotide Accession _getAccession accession tagAccession$fToJSONAccession$fSerializeAccession$fHashableAccession$fFromJSONAccession$fBinaryAccession$fIsStringAccessionghc-prim GHC.TypesIntbase Data.MaybeJustNothing