
i personally prefer to have public/private modifiers on each function and gather interface documentation by tools like haddock Me too.
having to type one of "public" or "private" at each function site would get really tedious...
you mean as in "public static void main(String[] args) { ..}" instead of "main args = .."?-) there are such languages, and I'm happy to say Haskell isn't one of them! also remember that you'd need to add "public" and "private" to more than just function definitions: public class C a where public m1 :: a private m2 :: a -> String public infixl :@ private infixl :@@ -- internal applications public data Expr a = public Var a | Expr a (public :@) Expr a | Expr a (private :@@) Expr a deriving (private Show, public Eq) private data Rec a = public Rec{ private distance :: a , public x :: a , public y :: a} deriving (public Show) private -- please, no!!!!!-) the nice thing about Haskell syntax is that is is fairly "quiet", there isn't much that doesn't have to be there or could distract from the essentials of the code. please, let's keep it that way. cheers, claus