- Type equivalence among Int(Main application), Int(unknown) and Int(integer which 
  requires a *single* implementation for Int. Only the first two required equivalence
  are important.

Main application:
Start world
	# (ok,d,world)
		= readDynamic "unknown" world
	# dynamic_sum
		= case d
			((i1,i2 :: Int) :: (Real,Dynamic))
				-> toInt i1 + i2
	= (dynamic_sum,world)


Dynamic 'unknown':
Start world
	# (ok,d,world)
		= readDynamic "integer" world
	# new_dynamic
		= case d of
			(i :: Int)
				-> dynamic (toReal i,d)
	= WriteDynamic new_dynamic "unknown" world

Dynamic 'integer':
	= dynamic 1

- Communication scheme of Main application

 Application
    |
    | (Real,Dynamic)
    |
 Unknown
    |
    | Int 
    |
 Integer

- Explanation 
  The Int from Integer could be used in unknown and application and should therefore
  have a single implementation. The type equivalence of the integer propagates upwards
  until the Dynamic-keyword does not occur anymore in the external type of a dynamic
  on the path to the top.

- What to do with TypeConsSymbol