f::Int->[()] f n = take n (repeat ()) f'::[()] -> Int f' = length main = do print "Isomorphism" let n1 = f' [(), ()] + f' [()] let n2 = f' ([(), ()] ++ [()]) print $ n1 == n2 let dd = (f 3) ++ (f 2) let ff = f $ 3 + 2 print $ dd == ff let bb = (f' . f) 1 let cc = (f . f') [()] print $ dd == ff