codon :: T.Text -> T.Text
codon r
  |T.take 2 r == "UU" = if lastUC r then "F" else "L"
  |T.take 2 r == "UC" = "S"
  |T.take 2 r == "UA" = if lastUC r then "Y" else "s"
  |T.take 2 r == "UG" = if lastUC r then "C" else if T.last r == 'A' then "s" else "W"
  |T.take 2 r == "CU" = "L"
  |T.take 2 r == "CC" = "P"
  |T.take 2 r == "CA" = if lastUC r then "H" else "Q"
  |T.take 2 r == "CG" = "R"
  |T.take 2 r == "AU" = if lastUC r then "I" else if T.last r == 'A' then "I" else "M"
  |T.take 2 r == "AC" = "T"
  |T.take 2 r == "AA" = if lastUC r then "N" else "K"
  |T.take 2 r == "AG" = if lastUC r then "S" else "R"
  |T.take 2 r == "GU" = "V"
  |T.take 2 r == "GC" = "A"
  |T.take 2 r == "GA" = if lastUC r then "D" else "E"
  |T.take 2 r == "GG" = "G"
  |otherwise = "x"
codon :: T.Text -> T.Text
codon r
  |T.take 2 r == "UU" = if lastUC r then "F" else "L"
  |T.take 2 r == "UC" = "S"
  |T.take 2 r == "UA" = if lastUC r then "Y" else "s"
  |T.take 2 r == "UG" = if lastUC r then "C" else if T.last r == 'A' then "s" else "W"
  |T.take 2 r == "CU" = "L"
  |T.take 2 r == "CC" = "P"
  |T.take 2 r == "CA" = if lastUC r then "H" else "Q"
  |T.take 2 r == "CG" = "R"
  |T.take 2 r == "AU" = if lastUC r then "I" else if T.last r == 'A' then "I" else "M"
  |T.take 2 r == "AC" = "T"
  |T.take 2 r == "AA" = if lastUC r then "N" else "K"
  |T.take 2 r == "AG" = if lastUC r then "S" else "R"
  |T.take 2 r == "GU" = "V"
  |T.take 2 r == "GC" = "A"
  |T.take 2 r == "GA" = if lastUC r then "D" else "E"
  |T.take 2 r == "GG" = "G"
  |otherwise = "x"
codon r
  |T.take 2 r == "UU" = if lastUC r then "F" else "L"
  |T.take 2 r == "UC" = "S"
  |T.take 2 r == "UA" = if lastUC r then "Y" else "s"
  |T.take 2 r == "UG" = if lastUC r then "C" else if T.last r == 'A' then "s" else "W"
  |T.take 2 r == "CU" = "L"
  |T.take 2 r == "CC" = "P"
  |T.take 2 r == "CA" = if lastUC r then "H" else "Q"
  |T.take 2 r == "CG" = "R"
  |T.take 2 r == "AU" = if lastUC r then "I" else if T.last r == 'A' then "I" else "M"
  |T.take 2 r == "AC" = "T"
  |T.take 2 r == "AA" = if lastUC r then "N" else "K"
  |T.take 2 r == "AG" = if lastUC r then "S" else "R"
  |T.take 2 r == "GU" = "V"
  |T.take 2 r == "GC" = "A"
  |T.take 2 r == "GA" = if lastUC r then "D" else "E"
  |T.take 2 r == "GG" = "G"
  |otherwise = "x"