message: FixpointIterator ignore references in Graph interface types.
  Summary:
  Strip away references from the return types of `Graph::predecessors` and
  `Graph::successors` before trying to access `iterator` on them.
diff: @@ -65,17 +65,19 @@ class FixpointIterator {
  NodeId>::value,
  "No implementation of entry()");
  static_assert(
  - !std::is_same<typename std::iterator_traits<typename decltype(
  - GraphInterface::predecessors(
  + !std::is_same<
  + typename std::iterator_traits<typename std::remove_reference<
  + decltype(GraphInterface::predecessors(
  std::declval<Graph>(),
  - std::declval<NodeId>()))::iterator>::value_type,
  + std::declval<NodeId>()))>::type::iterator>::value_type,
  void>::value,
  "No implementation of predecessors() that returns an iterable type");
  static_assert(
  - !std::is_same<typename std::iterator_traits<typename decltype(
  - GraphInterface::successors(
  + !std::is_same<
  + typename std::iterator_traits<typename std::remove_reference<
  + decltype(GraphInterface::successors(
  std::declval<Graph>(),
  - std::declval<NodeId>()))::iterator>::value_type,
  + std::declval<NodeId>()))>::type::iterator>::value_type,
  void>::value,
  "No implementation of successors() that returns an iterable type");
  static_assert(
  