module Grakn.Util ( Convert(convert) , with , commas , spaces ) where import Data.List (intercalate) class Convert a b where convert :: a -> b instance Convert a a where convert = id with :: Show a => Maybe a -> String -> String (Just val) `with` suffix = show val ++ suffix Nothing `with` _ = "" commas :: Show a => [a] -> String commas = interList ", " spaces :: Show a => [a] -> String spaces = interList " " interList :: Show a => String -> [a] -> String interList sep = intercalate sep . map show