module Solutions.P80 (ConvertibleGraph, toLists, toAdjacency, toPaths, toG) where
import Data.Maybe (fromJust)
import Problems.Graphs
class Graph g => ConvertibleGraph g where
toLists :: g -> Lists
toLists = forall a. HasCallStack => Maybe a -> a
fromJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => (Set Vertex, Set Edge) -> Maybe g
toGraph forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => g -> (Set Vertex, Set Edge)
sets
toAdjacency :: g -> Adjacency
toAdjacency = forall a. HasCallStack => Maybe a -> a
fromJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => (Set Vertex, Set Edge) -> Maybe g
toGraph forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => g -> (Set Vertex, Set Edge)
sets
toPaths :: g -> Paths
toPaths = forall a. HasCallStack => Maybe a -> a
fromJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => (Set Vertex, Set Edge) -> Maybe g
toGraph forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => g -> (Set Vertex, Set Edge)
sets
toG :: g -> G
toG = forall a. HasCallStack => Maybe a -> a
fromJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => (Set Vertex, Set Edge) -> Maybe g
toGraph forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall g. Graph g => g -> (Set Vertex, Set Edge)
sets
instance ConvertibleGraph Lists where
toLists :: Lists -> Lists
toLists = forall a. a -> a
id
instance ConvertibleGraph Adjacency where
toAdjacency :: Adjacency -> Adjacency
toAdjacency = forall a. a -> a
id
instance ConvertibleGraph Paths where
toPaths :: Paths -> Paths
toPaths = forall a. a -> a
id
instance ConvertibleGraph G where
toG :: G -> G
toG = forall a. a -> a
id