addVarItemInImport1 serverModName pns mod
   = applyTP ((once_tdTP (failTP `adhocTP` inImport))  `choiceTP` idTP) mod
  where 
    inImport (imp@(HsImportDecl loc@(SrcLoc fileName _ row col) (SN modName l) qual as (Just (b,ents))):: HsImportDeclP)
      | serverModName == modName && not b  
     =  {-do let ents'= map (\pn->Var (pNtoPNT pn Value)) pns 
           addItemsToImport1 imp ents'          
           return (HsImportDecl loc (SN modName l) qual as (Just (b, (ents'++ents)))) -}
          addItemsToImport serverModName  Nothing (Left (map pNtoName pns)) imp
    inImport x = mzero

--same name but with different meaning is used.
addVarItemInImport1 serverModName pns mod
   = applyTP ((once_tdTP (failTP `adhocTP` inImport))  `choiceTP` idTP) mod
  where 
    inImport (imp@(HsImportDecl loc@(SrcLoc fileName _ row col) (SN modName l) qual as (Just (b,ents))):: HsImportDeclP)
      | serverModName == modName && not b  
     =  {-do let ents'= map (\pn->Var (pNtoPNT pn Value)) pns 
           addItemsToImport1 imp ents'          
           return (HsImportDecl loc (SN modName l) qual as (Just (b, (ents'++ents)))) -}
          addItemsToImport serverModName  Nothing (Left (map pNtoName pns)) imp
    inImport x = mzero

--same name but with different meaning is used.
addVarItemInImport1 serverModName pns mod
   = applyTP ((once_tdTP (failTP `adhocTP` inImport))  `choiceTP` idTP) mod
  where 
    inImport (imp@(HsImportDecl loc@(SrcLoc fileName _ row col) (SN modName l) qual as (Just (b,ents))):: HsImportDeclP)
      | serverModName == modName && not b  
     =  {-do let ents'= map (\pn->Var (pNtoPNT pn Value)) pns 
           addItemsToImport1 imp ents'          
           return (HsImportDecl loc (SN modName l) qual as (Just (b, (ents'++ents)))) -}
          addItemsToImport serverModName  Nothing (Left (map pNtoName pns)) imp
    inImport x = mzero

--same name but with different meaning is used.