Index: /trunk/CspCASL/Morphism.hs
===================================================================
--- /trunk/CspCASL/Morphism.hs (revision 11220)
+++ /trunk/CspCASL/Morphism.hs (revision 11231)
@@ -12,13 +12,23 @@
 -}
 
-module CspCASL.Morphism where
+module CspCASL.Morphism ( symOf,
+                          makeChannelNameSymbol,
+                          makeProcNameSymbol
+                        ) where
 
 import CASL.Sign
-import CASL.Morphism as CASL_Morphism
+import qualified CASL.Morphism as CASL_Morphism
 import Common.Id(simpleIdToId)
+import CspCASL.AS_CspCASL_Process (CHANNEL_NAME, PROCESS_NAME)
 import CspCASL.SignCSP
 
 import qualified Data.Map as Map
 import qualified Data.Set as Set
+
+channelNameSymbType :: SymbType
+channelNameSymbType = OtherTypeKind "CHANNEL_KIND"
+
+processNameSymbType :: SymbType
+processNameSymbType = OtherTypeKind "PROC_NAME_KIND"
 
 -- | Calculate the set of symbols for a CspCASL signature
@@ -29,15 +39,15 @@
         chanNames = Set.fromList $ Map.keys (chans cspExt) -- Get the channel names
         procNames = Set.fromList $ Map.keys (procSet cspExt) -- Get the process names
-        mkChanSymbol c = Symbol {
-                           symName = simpleIdToId c,
-                           symbType = OtherTypeKind "CHANNEL_KIND"
-                         }
-        mkProcNameSymbol p = Symbol {
-                               symName = simpleIdToId p,
-                               symbType = OtherTypeKind "PROC_NAME_KIND"
-                             }
         -- Make channel symbols from names
-        chanSymbols = Set.map mkChanSymbol chanNames
+        chanNameSymbols = Set.map makeChannelNameSymbol chanNames
         -- Make process name symbols from names
-        procNameSymbols = Set.map mkProcNameSymbol procNames
-    in Set.unions [caslSymbols, chanSymbols, procNameSymbols]
+        procNameSymbols = Set.map makeProcNameSymbol procNames
+    in Set.unions [caslSymbols, chanNameSymbols, procNameSymbols]
+
+makeChannelNameSymbol :: CHANNEL_NAME -> Symbol
+makeChannelNameSymbol c =
+    Symbol {symName = simpleIdToId c, symbType = channelNameSymbType}
+
+makeProcNameSymbol :: PROCESS_NAME -> Symbol
+makeProcNameSymbol p =
+    Symbol {symName = simpleIdToId p, symbType = processNameSymbType}
Index: /trunk/CspCASL/StatAnaCSP.hs
===================================================================
--- /trunk/CspCASL/StatAnaCSP.hs (revision 11224)
+++ /trunk/CspCASL/StatAnaCSP.hs (revision 11231)
@@ -29,5 +29,4 @@
 import CASL.Overload (minExpFORMULA, oneExpTerm)
 import CASL.Sign
-import CASL.Morphism (RawSymbol)
 import CASL.StaticAna (allOpIds, allPredIds)
 import Common.AS_Annotation
@@ -45,4 +44,5 @@
 import CspCASL.Print_CspCASL ()
 import CspCASL.SignCSP
+import CspCASL.Morphism(makeChannelNameSymbol, makeProcNameSymbol)
 
 import qualified Data.Set as Set
@@ -121,5 +121,10 @@
               return m
       else case Map.lookup chanName m of
-             Nothing -> return (Map.insert chanName s m) -- insert new.
+             Nothing ->
+                 -- Add the channel name as a symbol to the list of
+                 -- newly defined symbols - which is stored in the CASL
+                 -- signature
+                 do addSymbol (makeChannelNameSymbol chanName)
+                    return (Map.insert chanName s m) -- insert new.
              Just e ->
                if e == s
@@ -160,4 +165,8 @@
                 alpha <- Monad.foldM (anaCommType sig) S.empty commTypes
                 let profile = (ProcProfile argSorts alpha)
+                -- Add the process name as a symbol to the list of
+                -- newly defined symbols - which is stored in the CASL
+                -- signature
+                addSymbol (makeProcNameSymbol name)
                 return (Map.insert name profile oldProcDecls)
     vds <- gets envDiags
