{-# LANGUAGE OverloadedStrings #-}
module Nauty.Internal.Utils where
groupByTwo :: [a] -> [(a,a)]
groupByTwo :: forall a. [a] -> [(a, a)]
groupByTwo (a
x:a
y:[a]
xs) = (a
x,a
y) (a, a) -> [(a, a)] -> [(a, a)]
forall a. a -> [a] -> [a]
: [a] -> [(a, a)]
forall a. [a] -> [(a, a)]
groupByTwo [a]
xs
groupByTwo [a]
_ = []
ungroupByTwo :: [(a,a)] -> [a]
ungroupByTwo :: forall a. [(a, a)] -> [a]
ungroupByTwo ((a
a,a
b) : [(a, a)]
xs) = a
a a -> [a] -> [a]
forall a. a -> [a] -> [a]
: a
b a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [(a, a)] -> [a]
forall a. [(a, a)] -> [a]
ungroupByTwo [(a, a)]
xs
ungroupByTwo [(a, a)]
_ = []