diff --git a/comfort-graph.cabal b/comfort-graph.cabal
--- a/comfort-graph.cabal
+++ b/comfort-graph.cabal
@@ -1,5 +1,5 @@
 Name:                comfort-graph
-Version:             0.0.0.1
+Version:             0.0.0.2
 Synopsis:            Graph structure with type parameters for nodes and edges
 Description:
   This graph structure is based on "Data.Map"
@@ -51,7 +51,7 @@
 Cabal-Version:       >=1.10
 
 Source-Repository this
-  Tag:         0.0.0.1
+  Tag:         0.0.0.2
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/comfort-graph
 
diff --git a/src/Data/Graph/Comfort.hs b/src/Data/Graph/Comfort.hs
--- a/src/Data/Graph/Comfort.hs
+++ b/src/Data/Graph/Comfort.hs
@@ -69,7 +69,7 @@
 import qualified Test.QuickCheck as QC
 
 import Data.Functor (Functor, fmap)
-import Data.List (map, any, (++))
+import Data.List (map, any, all, (++))
 import Data.Maybe (Maybe)
 import Data.Bool (Bool, not, (&&), (||))
 import Data.Eq (Eq, (==))
@@ -111,8 +111,8 @@
    &&
    (Fold.and $ flip Map.mapWithKey ns $
       \n (ins,_nl,outs) ->
-         Fold.all ((n==) . toWrap) (Map.keysSet ins) &&
-         Fold.all ((n==) . fromWrap) (Map.keysSet outs))
+         all ((n==) . toWrap) (Map.keys ins) &&
+         all ((n==) . fromWrap) (Map.keys outs))
 
 
 type LabeledNode n label = (n, label)
@@ -379,10 +379,10 @@
    (Edge e, Ord n) =>
    Graph e n el nl -> n -> [n]
 _pre g n =
-   Set.toList . Set.map fromWrap . Map.keysSet . fst3 .
+   map fromWrap . Map.keys . fst3 .
    Map.findWithDefault (error "pre: unknown node") n . graphMapWrap $ g
 suc g n =
-   Set.toList . Set.map toWrap . Map.keysSet . thd3 .
+   map toWrap . Map.keys . thd3 .
    Map.findWithDefault (error "suc: unknown node") n . graphMapWrap $ g
 
 adjacentEdges ::
@@ -411,8 +411,12 @@
    withWrappedGraph $ \ns ->
    case Map.findWithDefault (error "deleteNode: unknown node") n ns of
       (ins, _nl, outs) ->
-         applyMap (Map.mapKeys fromWrap $ Map.mapWithKey (\e _ -> mapThd3 $ Map.delete e) ins)  $
-         applyMap (Map.mapKeys toWrap   $ Map.mapWithKey (\e _ -> mapFst3 $ Map.delete e) outs) $
+         applyMap
+            (Map.mapKeys fromWrap $
+             Map.mapWithKey (\e _ -> mapThd3 $ Map.delete e) ins)  $
+         applyMap
+            (Map.mapKeys toWrap   $
+             Map.mapWithKey (\e _ -> mapFst3 $ Map.delete e) outs) $
          Map.delete n ns
 
 {- |
@@ -460,6 +464,9 @@
           nl,
           MapU.mapMaybeKeys (fmap TC.Wrap . f . TC.unwrap) outs))
 
+{- |
+Same restrictions as in 'mapMaybeEdgeKeys'.
+-}
 mapEdgeKeys ::
    (Edge e1, Ord n) =>
    (e0 n -> e1 n) ->
@@ -498,6 +505,7 @@
 existing edges are replaced with new labels.
 However, I think we should better have an extra function for this purpose
 and you should not rely on this behavior.
+It is an unchecked error if edges between non-existing nodes are inserted.
 -}
 insertEdgeSet ::
    (Edge e, Ord n) =>
@@ -505,8 +513,12 @@
 insertEdgeSet es =
    let ess = Map.mapWithKey Map.singleton $ wrapMap es
    in  withWrappedGraph $
-       applyMap (fmap (\new -> mapFst3 (Map.union new)) $ Map.mapKeysWith Map.union toWrap   ess) .
-       applyMap (fmap (\new -> mapThd3 (Map.union new)) $ Map.mapKeysWith Map.union fromWrap ess)
+       applyMap
+          (fmap (\new -> mapFst3 (Map.union new)) $
+           Map.mapKeysWith Map.union toWrap   ess) .
+       applyMap
+          (fmap (\new -> mapThd3 (Map.union new)) $
+           Map.mapKeysWith Map.union fromWrap ess)
 
 fromList ::
    (Edge e, Ord n) =>
