instance DiffSwe of DiffScand = open CommonScand, Prelude in { flags coding=utf8 ; -- Parameters. oper NGender = Gender ; ngen2gen g = g ; utrum = Utr ; neutrum = Neutr ; detDef : Species = Def ; Verb : Type = { s : VForm => Str ; part : Str ; vtype : VType } ; hasAuxBe _ = False ; -- Strings. conjThat = "att" ; conjThan = "än" ; conjAnd = "och" ; infMark = "att" ; compMore = "mera" ; subjIf = "om" ; artIndef : NGender => Str = table { Utr => "en" ; Neutr => "ett" } ; detIndefPl = "några" ; verbHave = mkVerb9 "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" "havande" ** noPart ; verbBe = mkVerb9 "vara" "är" "var" "var" "varit" "varen" "varet" "varna" "varande" ** noPart ; verbBecome = mkVerb9 "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna" "blivande" ** noPart ; -- auxiliary noPart = {part = []} ; auxFut = "ska" ; -- "skall" in ExtSwe auxFutKommer = "kommer" ; auxFutPart = "" ; auxCond = "skulle" ; negation : Polarity => Str = table { Pos => [] ; Neg => "inte" } ; genderForms : (x1,x2 : Str) -> NGender => Str = \all,allt -> table { Utr => all ; Neutr => allt } ; relPron : Gender => Number => RCase => Str = \\g,n,c => case c of { RNom | RAcc | RPrep False => "som" ; RGen => "vars" ; RPrep True => gennumForms "vilken" "vilket" "vilka" ! gennum g n } ; pronSuch = gennumForms "sådan" "sådant" "sådana" ; reflPron : Agr -> Str = \a -> case of { => "oss" ; => "er" ; => "mig" ; => "dig" ; <_, P3> => "sig" } ; hur_IAdv = {s = "hur"} ; av_Prep = "av" ; possPron : Number -> Person -> Number -> Gender -> Str = \sn,sb,on,og -> case of { => "min" ; => "mitt" ; => "mina" ; => "din" ; => "ditt" ; => "dina" ; => "vår" ; => "vårt" ; => "våra" ; => "er" ; => "ert" ; => "era" ; <_,_,Sg,Utr> => "sin" ; <_,_,Sg,Neutr> => "sitt" ; <_,_,Pl,_> => "sina" } ; }