subgraphIsomorphisms :: Ord a => G.Graph a Color -> G.Graph a Color -> [M.Map a a]
subgraphIsomorphisms g_smaller g_larger = [M.fromList [(i_smaller, G.indexGVertexArray g_larger ! n_larger) | (i_smaller, n_larger) <- fromJust (elems (G.indexGVertexArray g_smaller) `zipEqual` raw_subiso)] | raw_subiso <- raw_subisos]
  where
    raw_subisos = subgraphIsomorphisms' [(G.gVertexVertexArray g_smaller ! m, ns) | (m, ns) <- assocs (G.graph g_smaller)]
                                        [(G.gVertexVertexArray g_larger  ! m, ns) | (m, ns) <- assocs (G.graph g_larger)]
subgraphIsomorphisms :: Ord a => G.Graph a Color -> G.Graph a Color -> [M.Map a a]
subgraphIsomorphisms g_smaller g_larger = [M.fromList [(i_smaller, G.indexGVertexArray g_larger ! n_larger) | (i_smaller, n_larger) <- fromJust (elems (G.indexGVertexArray g_smaller) `zipEqual` raw_subiso)] | raw_subiso <- raw_subisos]
  where
    raw_subisos = subgraphIsomorphisms' [(G.gVertexVertexArray g_smaller ! m, ns) | (m, ns) <- assocs (G.graph g_smaller)]
                                        [(G.gVertexVertexArray g_larger  ! m, ns) | (m, ns) <- assocs (G.graph g_larger)]
subgraphIsomorphisms g_smaller g_larger = [M.fromList [(i_smaller, G.indexGVertexArray g_larger ! n_larger) | (i_smaller, n_larger) <- fromJust (elems (G.indexGVertexArray g_smaller) `zipEqual` raw_subiso)] | raw_subiso <- raw_subisos]
  where
    raw_subisos = subgraphIsomorphisms' [(G.gVertexVertexArray g_smaller ! m, ns) | (m, ns) <- assocs (G.graph g_smaller)]
                                        [(G.gVertexVertexArray g_larger  ! m, ns) | (m, ns) <- assocs (G.graph g_larger)]