--# -path=.:../abstract:../common:../prelude concrete NumeralTransferMon of NumeralTransfer = NumeralMon ** open ResMon, MorphoMon, CatMon in { flags coding=utf8 ; lin digits2numeral d = { s = d.s ; sp = \\rc => d.sp ! rc ; n = d.n } ; digits2num d = d ; num2digits n = n ; dn10 d = { s = \\_,_,co => d.s ! co ; n = d.n } ; dn100 d1 d2 = { s = \\_,co => d1.s ! co ++ d2.s ! co ; n = Pl } ; dn1000 d1 d2 d3 = { s = \\_,co => d1.s ! co ++ d2.s ! co ++ d3.s ! co ; n = Pl } ; dn1000000a d1 d2 d3 d4 = { s = \\co => d1.s ! co ++ d2.s ! co ++ d3.s ! co ++ d4.s ! co ; n = Pl } ; dn1000000b d1 d2 d3 d4 d5 = dn1000000a d1 d2 d3 d4 ** { s = \\co => d5.s ! co ; n = Pl } ; dn1000000c d1 d2 d3 d4 d5 d6 = dn1000000b d1 d2 d3 d4 d5 ** { s = \\co => d6.s ! co ; n = Pl } ; dn d = { s = \\_,_,co => d.s ! co } ; nd10 d = { s = \\co => d.s ! Indep ! Unit ! co ; n = Sg } ; nd100 d = { s = \\co => d.s ! Indep ! co ; n = Pl } ; nd1000 = nd100 ; nd1000000 d = d ; dconcat d1 d2 = { s = \\co => d1.s ! co ++ d2.s ! co ; n = Pl } ; nd d = { s = \\co => d.s ! Indep ! Unit ! co ; n = Pl } ; }