totalSignCopy :: CASLSign -> CASLSign
totalSignCopy sg = sg {
                    emptySortSet = ess,
                    sortRel = sr,
                    opMap = om,
                    assocOps = aom,
                    predMap = pm,
                    varMap = vm,
                    sentences = [],
                    declaredSymbols = sms,
                    annoMap = am
                      }
     where ess = iota_sort_set $ emptySortSet sg
           sr = iota_sort_rel $ sortRel sg
           om = iota_op_map $ opMap sg
           aom = iota_op_map $ assocOps sg
           pm = iota_pred_map $ predMap sg
           vm = iota_var_map $ varMap sg
           sms = iota_syms $ declaredSymbols sg
           am = iota_anno_map $ annoMap sg

-- | applies the iota renaming to a set of sorts
totalSignCopy :: CASLSign -> CASLSign
totalSignCopy sg = sg {
                    emptySortSet = ess,
                    sortRel = sr,
                    opMap = om,
                    assocOps = aom,
                    predMap = pm,
                    varMap = vm,
                    sentences = [],
                    declaredSymbols = sms,
                    annoMap = am
                      }
     where ess = iota_sort_set $ emptySortSet sg
           sr = iota_sort_rel $ sortRel sg
           om = iota_op_map $ opMap sg
           aom = iota_op_map $ assocOps sg
           pm = iota_pred_map $ predMap sg
           vm = iota_var_map $ varMap sg
           sms = iota_syms $ declaredSymbols sg
           am = iota_anno_map $ annoMap sg

-- | applies the iota renaming to a set of sorts
totalSignCopy sg = sg {
                    emptySortSet = ess,
                    sortRel = sr,
                    opMap = om,
                    assocOps = aom,
                    predMap = pm,
                    varMap = vm,
                    sentences = [],
                    declaredSymbols = sms,
                    annoMap = am
                      }
     where ess = iota_sort_set $ emptySortSet sg
           sr = iota_sort_rel $ sortRel sg
           om = iota_op_map $ opMap sg
           aom = iota_op_map $ assocOps sg
           pm = iota_pred_map $ predMap sg
           vm = iota_var_map $ varMap sg
           sms = iota_syms $ declaredSymbols sg
           am = iota_anno_map $ annoMap sg

-- | applies the iota renaming to a set of sorts