Safe Safe "checksum "346811124" == Success 10 Svalid "346811124X" == Nothing valid "3468111240" == Just "check sum does not match"Safe 0checksum "DE" "210501700012345678" == Success 68 kvalid "DE68210501700012345678" == Nothing valid "DE68210501700012345679" == Just "check sum does not match" 5Safe $checksum "400638129240" == Success 5 Yvalid "4006381292405" == Nothing valid "4006381292406" == Just "check sum does not match"Safe  sconstruct city no birthDate expiration construct 1234 56789 980706 180706 == "1234567897D<<9807062<1807066<<<<<<<8"     #checksum-0.0-3SCOTMSwS2yHBBWtlouKbgMath.Checksum.ISBNMath.Checksum.IBANMath.Checksum.EAN!Math.Checksum.CitizenCard.GermanyMath.Checksum.Utilitychecksumvalid constructdecomposePositional intFromDigit processValid+++