module HGraph.Undirected.Output ( toDot ) where import HGraph.Undirected import Data.List toDot :: t a -> [Char] toDot t a g = [Char] "graph {\n " [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ [Char] -> [[Char]] -> [Char] forall a. [a] -> [[a]] -> [a] intercalate [Char] ";\n " ((a -> [Char]) -> [a] -> [[Char]] forall a b. (a -> b) -> [a] -> [b] map a -> [Char] forall a. Show a => a -> [Char] show ([a] -> [[Char]]) -> [a] -> [[Char]] forall a b. (a -> b) -> a -> b $ t a -> [a] forall a. t a -> [a] forall (t :: * -> *) a. UndirectedGraph t => t a -> [a] vertices t a g) [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ [Char] ";\n" [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ [Char] -> [[Char]] -> [Char] forall a. [a] -> [[a]] -> [a] intercalate [Char] ";\n " (((a, a) -> [Char]) -> [(a, a)] -> [[Char]] forall a b. (a -> b) -> [a] -> [b] map (\(a v,a u) -> a -> [Char] forall a. Show a => a -> [Char] show a v [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ [Char] " -- " [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ a -> [Char] forall a. Show a => a -> [Char] show a u) ([(a, a)] -> [[Char]]) -> [(a, a)] -> [[Char]] forall a b. (a -> b) -> a -> b $ t a -> [(a, a)] forall a. t a -> [(a, a)] forall (t :: * -> *) a. UndirectedGraph t => t a -> [(a, a)] edges t a g) [Char] -> [Char] -> [Char] forall a. [a] -> [a] -> [a] ++ [Char] ";\n}"