consistentSection ::
  (Ord t5, Show t5, Node.C node, Arith.Constant t5) =>
  Params.System node a ->
  Sequ.Section (Record.Record t t3 t1 t4 (TopoIdx.Position node) [] t2 t5) ->
  Bool
consistentSection sysParams (Sequ.Section _ _ rec) =
  let recs = map f $ Graph.edges $ Params.systemTopology sysParams
      f (Graph.DirEdge fr to) =
        Record.extract [TopoIdx.ppos fr to, TopoIdx.ppos to fr] rec
  in all consistentRecord recs
consistentSection ::
  (Ord t5, Show t5, Node.C node, Arith.Constant t5) =>
  Params.System node a ->
  Sequ.Section (Record.Record t t3 t1 t4 (TopoIdx.Position node) [] t2 t5) ->
  Bool
consistentSection sysParams (Sequ.Section _ _ rec) =
  let recs = map f $ Graph.edges $ Params.systemTopology sysParams
      f (Graph.DirEdge fr to) =
        Record.extract [TopoIdx.ppos fr to, TopoIdx.ppos to fr] rec
  in all consistentRecord recs
consistentSection sysParams (Sequ.Section _ _ rec) =
  let recs = map f $ Graph.edges $ Params.systemTopology sysParams
      f (Graph.DirEdge fr to) =
        Record.extract [TopoIdx.ppos fr to, TopoIdx.ppos to fr] rec
  in all consistentRecord recs