diff --git a/CSPM-CoreLanguage.cabal b/CSPM-CoreLanguage.cabal
--- a/CSPM-CoreLanguage.cabal
+++ b/CSPM-CoreLanguage.cabal
@@ -1,5 +1,5 @@
 Name:                CSPM-CoreLanguage
-Version:             0.2.0.3
+Version:             0.3.0.0
 Synopsis:            Definition of a FDR-compatible CSP core-language. 
 Description:
   This package contains an interface for a CSP core-language.
@@ -15,9 +15,8 @@
 License-File:        LICENSE
 Author:              2010 - 2011 Marc Fontaine
 Maintainer:          Marc Fontaine <fontaine@cs.uni-duesseldorf.de>
-Homepage:            http://www.stups.uni-duesseldorf.de/~fontaine/csp
 Stability:           experimental
-Tested-With:         GHC == 7.0.2
+Tested-With:         GHC == 7.0.3
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 
@@ -34,3 +33,5 @@
     CSPM.CoreLanguage.Process
     CSPM.CoreLanguage.ProcessWrapper
     CSPM.CoreLanguage.Field
+  Other-Modules:
+    Paths_CSPM_CoreLanguage
diff --git a/src/CSPM/CoreLanguage.hs b/src/CSPM/CoreLanguage.hs
--- a/src/CSPM/CoreLanguage.hs
+++ b/src/CSPM/CoreLanguage.hs
@@ -17,6 +17,7 @@
  ,module CSPM.CoreLanguage.ProcessWrapper
  ,module CSPM.CoreLanguage.Event
  ,module CSPM.CoreLanguage.Field
+ ,coreLanguageVersion
 )
 where
 
@@ -26,3 +27,9 @@
 import CSPM.CoreLanguage.Event (BE)
 import CSPM.CoreLanguage.Field hiding (BF (..))
 import CSPM.CoreLanguage.Field (BF)
+import Paths_CSPM_CoreLanguage (version)
+import Data.Version
+
+-- | The version of the CSPM-CoreLangugage library
+coreLanguageVersion :: Version
+coreLanguageVersion = version
diff --git a/src/CSPM/CoreLanguage/Event.hs b/src/CSPM/CoreLanguage/Event.hs
--- a/src/CSPM/CoreLanguage/Event.hs
+++ b/src/CSPM/CoreLanguage/Event.hs
@@ -10,16 +10,19 @@
 --
 -- This modules defines the event-related part of an interface between 
 -- the CSPM-CoreLanguage and the underlying implementation.
--- The underlying implementation has to instantiate the type-families 'Event', 'EventSet'
--- and 'RenamingRelation' and the class 'BE' ('BE'== base event).
+-- The underlying implementation has to instantiate the type-families 'Event',
+-- 'EventSet', 'RenamingRelation'
+-- and the class 'BE' ('BE'== base event).
 -- 
 -- For full CSPM-support (channels with multiple fields, event closure sets etc.)
 -- CSPM.CoreLanguage.Field is also needed.
 -----------------------------------------------------------------------------
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE DeriveDataTypeable #-}
 
 module CSPM.CoreLanguage.Event
 where
+import Data.Typeable
 
 type family Event i
 type family EventSet i
@@ -58,6 +61,7 @@
   = TickEvent
   | TauEvent
   | SEvent (Event i)
+  deriving Typeable
 
 class ShowEvent i where showEvent :: i -> String
 class ShowTTE i where showTTE :: i -> String
diff --git a/src/CSPM/CoreLanguage/Field.hs b/src/CSPM/CoreLanguage/Field.hs
--- a/src/CSPM/CoreLanguage/Field.hs
+++ b/src/CSPM/CoreLanguage/Field.hs
@@ -1,15 +1,15 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  CSPM.CoreLanguage.Field
--- Copyright   :  (c) Fontaine 2010
+-- Copyright   :  (c) Fontaine 2010 - 2011
 -- License     :  BSD
 -- 
 -- Maintainer  :  fontaine@cs.uni-duesseldorf.de
 -- Stability   :  experimental
 -- Portability :  GHC-only
 --
--- This modules extends 'BE' for languages that also support multi-field-events and
--- event-closure sets.
+-- This modules defines the class 'BF' for versions of CSP
+-- that also support multi-field-events and event-closure sets.
 -----------------------------------------------------------------------------
 {-# LANGUAGE TypeFamilies #-}
 
diff --git a/src/CSPM/CoreLanguage/Process.hs b/src/CSPM/CoreLanguage/Process.hs
--- a/src/CSPM/CoreLanguage/Process.hs
+++ b/src/CSPM/CoreLanguage/Process.hs
@@ -1,7 +1,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  CSPM.CoreLanguage.Process
--- Copyright   :  (c) Fontaine 2010
+-- Copyright   :  (c) Fontaine 2011
 -- License     :  BSD
 -- 
 -- Maintainer  :  fontaine@cs.uni-duesseldorf.de
@@ -13,11 +13,15 @@
 -- but abstracts, e.g. from the underlying functional programming language.
 --
 -- The implementation of the underlying language
--- must provide instances for the type families 'Prefix' and 'ExtProcess' and class 'BL'.
+-- must provide instances for the type families 'Prefix', 'ExtProcess'
+-- and class 'BL'.
 -----------------------------------------------------------------------------
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE DeriveDataTypeable #-}
 
-module CSPM.CoreLanguage.Process where
+module CSPM.CoreLanguage.Process
+where
+import Data.Typeable
 
 import CSPM.CoreLanguage.Event
 
@@ -28,8 +32,8 @@
 type family ExtProcess i
 
 class (BE i) => BL i where
-  -- | Try to perform an 'Event' return the successor 'Process' or Nothing if the event is
-  -- not possible.
+  -- | Try to perform an 'Event' return the successor 'Process' or Nothing
+  --   if the event is not possible.
   prefixNext :: Prefix i -> Event i -> Maybe (Process i)
   switchOn :: ExtProcess i -> Process i
 
@@ -61,6 +65,7 @@
   | Renaming (RenamingRelation i) (Process i)
   | LinkParallel (RenamingRelation i) (Process i) (Process i)
   | Exception (EventSet i) (Process i) (Process i)
+  deriving Typeable
 
 isOmega :: Process i -> Bool
 isOmega Omega = True
diff --git a/src/CSPM/CoreLanguage/ProcessWrapper.hs b/src/CSPM/CoreLanguage/ProcessWrapper.hs
--- a/src/CSPM/CoreLanguage/ProcessWrapper.hs
+++ b/src/CSPM/CoreLanguage/ProcessWrapper.hs
@@ -47,7 +47,6 @@
   -> Process i -> Process i
   -> Process i
 aparallel = AParallel
---aparallel a1 a2 p1 p2 = RepAParallel [(a1,p1),(a2,p2)]
 
 seq :: Process i -> Process i -> Process i
 seq = Seq
@@ -87,19 +86,19 @@
 
 repAParallel :: [(EventSet i,Process i)] -> Process i
 repAParallel l = case l of
-  [] -> error "ProcessWrapper : empty repAParallel"
+  [] -> error "ProcessWrapper.hs: empty repAParallel"
   [(_,p)] -> p
---  [(c1,p1),(c2,p2)] -> aparallel c1 c2 p1 p2 -- takes longer than generic version ?
   _ -> RepAParallel l
 
 repSharing :: EventSet i -> [Process i] -> Process i
-repSharing _ [] = error "ProcessWrapper.hs : empty repSharing"
+repSharing _ [] = error "ProcessWrapper.hs: empty repSharing"
 repSharing _ [p] = p
 repSharing c l = foldr1 (\a b -> sharing a c b) l
 
 repLinkParallel :: RenamingRelation i -> [Process i] -> Process i
-repLinkParallel _ [] = error "ProcessWrapper.hs : empty repLinkParallel"
-repLinkParallel _ [_] = error "ProcessWrapper.hs : repLinkParallel over one process"
+repLinkParallel _ [] = error "ProcessWrapper.hs: empty repLinkParallel"
+repLinkParallel _ [_]
+  = error "ProcessWrapper.hs: repLinkParallel over one process"
 repLinkParallel rel l = foldr1 (\a b -> linkParallel rel a b) l
 
 chaos :: EventSet i -> Process i
