main = return ()


class HasConfig option configuration where
   ($$) :: option -> configuration -> configuration

class NodeTypeConfigParms nodeTypeConfig nodeTypeParms where
   nodeTypeConfig :: 
      nodeTypeConfig value -> nodeTypeParms value -> nodeTypeParms value

instance (NodeTypeConfigParms nodeTypeConfig nodeTypeParms)
      => HasConfig (nodeTypeConfig value) (nodeTypeParms value) where
   ($$) = nodeTypeConfig

class ArcTypeConfigParms arcTypeConfig arcTypeParms where
   arcTypeConfig :: 
      arcTypeConfig value -> arcTypeParms value -> arcTypeParms value
      
instance (ArcTypeConfigParms arcTypeConfig arcTypeParms)
      => HasConfig (arcTypeConfig value) (arcTypeParms value) where
   ($$) = arcTypeConfig

