import StdDebug
-check :: [Either TypeDef Function] -> Either [String] (Expression, [([Char], Scheme)])
+check :: ![Either TypeDef Function] -> Either [String] (Expression, [([Char], Scheme)])
check tdfs
# dups = filter (\x->length x > 1) (groupBy (\(Function i _ _) (Function j _ _)->i == j) functions)
| length dups > 0 = Left ["Duplicate functions: ":[toString n\\[(Function n _ _):_]<-dups]]