concrete StructuralPnb of Structural = CatPnb ** 
  open MorphoPnb, ParadigmsPnb, Prelude, NounPnb in {

  flags optimize=all ;
  coding = utf8;

  lin
  above_Prep = ss "atE" ;
  after_Prep = ss "twN bed" ;
  all_Predet = ss "sarE" ;
  almost_AdA, almost_AdN = ss "tqryba" ;
  although_Subj = ss "pawyN" ;
  always_AdV = ss "hmyXh" ;
  and_Conj = sd2 [] "tE" ** {n = Pl} ;
  because_Subj = ss "kywnkh'" ;
  before_Prep = ss "plE" ;
  behind_Prep = ss "pych'E" ;
  between_Prep = ss "wckar" ;
  both7and_DConj = sd2 "dwwyN" "tE" ** {n = Pl} ;
  but_PConj = ss "mgr" ;
  by8agent_Prep = ss "" ;
  by8means_Prep = ss "" ;
  can8know_VV,can_VV = mkV "skna" ** { isAux = True} ;
  during_Prep = ss ["dE wc"] ;
  either7or_DConj = sd2 "kwy ak" "ya" ** {n = Sg} ;
  everybody_NP =  MassNP (UseN (MorphoPnb.mkN11 "hr kwy")); -- not a good way coz need to include NounPnb
  every_Det = mkDet "hr" "hr" "hr" "hr" Sg;
  everything_NP = MassNP (UseN (MorphoPnb.mkN11 "hr XE"));
  everywhere_Adv = mkAdv "hr th'aN" ;
  few_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
  first_Ord = {s = "pehla" ; n = Sg} ; --DEPRECATED
  for_Prep = ss "[dE wast-E]" ;
  from_Prep = ss "twN" ;
  he_Pron = personalPN "aw" "awnwN" "aw" "awrE" "awra"  Sg Masc Pers3_Distant ;
  here_Adv = mkAdv "ayth'E" ;
  here7to_Adv = mkAdv "ayth'E" ;
  here7from_Adv = mkAdv "ayth'wN" ;
  how_IAdv = ss "ksraN" ;
  how8many_IDet = makeIDet "kynE" "kyny" Pl ;
  how8much_IAdv  = ss "kyna" ;
  if_Subj = ss "agr" ;
  in8front_Prep = ss ["dE samnE"] ;
  i_Pron = personalPN "myN" "mynwN" "mynwN" "mytwN" "myra" Sg Masc Pers1;
  in_Prep = ss "wc" ;
  it_Pron  = personalPN "aE" "aynwN" "aynwN" "" "ayra" Sg Masc Pers3_Near;
  less_CAdv = {s = "kT" ; p = ""} ;
  many_Det = mkDet "bht zyadh" "bht zyadh" "bht zyadh" "bht zyadh" Pl ;
  more_CAdv = {s = "hwr" ; p = "" } ;
  most_Predet = ss "zyadh tr" ;
  much_Det = mkDet "bht" "bht" "bht" "bht" Sg  ;
--  must_VV = {
--    s = table {
--      VVF VInf => ["have to"] ;
--      VVF VPres => "must" ;
--      VVF VPPart => ["had to"] ;
--      VVF VPresPart => ["having to"] ;
--      VVF VPast => ["had to"] ;      --# notpresent
--      VVPastNeg => ["hadn't to"] ;      --# notpresent
--      VVPresNeg => "mustn't"
--      } ;
--    isAux = True
--    } ;
-----b  no_Phr = ss "no" ;
  no_Utt = ss "nyN" ;
  on_Prep = ss "atE" ;
  one_Quant = demoPN "ak" "ak" "ak"  ; -- DEPRECATED
  only_Predet = ss "Srf" ;
  or_Conj = sd2 [] "ya" ** {n = Sg} ;
  otherwise_PConj = ss "ya fyr" ;
  part_Prep = ss "hSh" ;
  please_Voc = ss "mhrbani" ;
  possess_Prep = ss "da" ;
  quite_Adv = ss "khamosh" ;
  she_Pron = personalPN "aw" "awnwN" "awnw" "awrE" "awra" Sg Fem Pers3_Distant ;
  so_AdA = ss "so" ;
  somebody_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy" ));
  someSg_Det = mkDet "kch'" "kch'" "kch'" "kch'" Sg ;
  somePl_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
  something_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy XE"));
  somewhere_Adv = mkAdv "ktlE" ;
  that_Quant = demoPN "aw" "as" "an" ;
  that_Subj = ss "kh";
  there_Adv = mkAdv "awth'E" ;
  there7to_Adv = mkAdv "awth'E" ;
  there7from_Adv = mkAdv "awth'wN" ;
  therefore_PConj = ss "as ly" ;
  they_Pron = personalPN "aw" "[awnaN nwN]" "aw" "awnaN" "awnaN da" Pl Masc Pers3_Distant ; ---- 
  this_Quant = demoPN "aE" "ayra" "aynaN";      
  through_Prep = ss "wcwN" ;
  too_AdA = ss "bht" ;
--  to_Prep = ss "awnwN" ** {lock_Prep = <>};
  to_Prep = ss "nwN" ** {lock_Prep = <>};
  under_Prep = ss "th'lE" ** {lock_Prep = <>};
  very_AdA = ss "bht" ;
  want_VV = mkV "cana" ** { isAux = False} ;
  we_Pron = personalPN "asy" "sanwN" "sanwN" "satwN" "saDa" Pl Masc Pers1 ;
  whatSg_IP = mkIP "kya" "kra" "kra" "kra" Sg Masc ; -- check it
--  whatPl_IP = mkIP "kya" "kin" "kin" Pl Masc ;
  when_IAdv = ss "kdwN" ;
  when_Subj = ss "kdwN" ;
  where_IAdv = ss "kth'E" ;
  which_IQuant = mkIQuant "kyRa" "kyRy" "kyRE" "kyRy" ;
--  whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
--  whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
  whoSg_IP = mkIP "kwn" "kra" "kra" "kra" Sg Masc  ;
--  whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
  why_IAdv = ss "kywN" ;
  without_Prep = ss ["twN bGyr"] ;
  with_Prep = ss ["dE nal"] ;
--  yes_Phr = ss "haN" ;
  yes_Utt = ss "haN" ;
  youSg_Pron = personalPN "twN" "tynwN" "tynwN" "tyrE" "twwaDa" Sg Masc Pers2_Casual ;
  youPl_Pron = personalPN "tsy" "twanwN" "twanwN" "twaDE" "twwaDa" Pl Masc Pers2_Casual ;
  youPol_Pron = personalPN "tsy" "twanwN" "twanwN" "twaDE" "twwaDa" Sg Masc Pers2_Respect  ;
  no_Quant =  demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ; 
  not_Predet = {s="nhyN"} ;
  if_then_Conj = sd2 "agr" "tE" ** {n = Sg} ; 
  at_least_AdN = ss ["km twN km"] ;
  at_most_AdN = ss ["zyadh twN zyadh"];
  nothing_NP = MassNP (UseN (MorphoPnb.mkN11 "kch' nyN" )); 
  except_Prep = ss "swaE" ;
  nobody_NP = MassNP (UseN (MorphoPnb.mkN11 "kwy nhyN"));  

  as_CAdv = {s = "aynaN" ; p = "jnaN"} ;

  have_V2 = mkV2 (mkV "rakh'na") "" ;

 language_title_Utt = ss "pnjaby" ;

}

