
Hello Claus, Friday, February 24, 2006, 6:55:51 PM, you wrote: CR> not quite (though I believe that would be close to Simon M's idea). CR> in my modification, both map and length would move completely CR> into the export section WHY? it's not the interface. implementation of exported functions is of no interest for module users like the implementations of any other functions. i tried to emphasize this moment - in any case we should either duplicate part of code or have the definitions splitted in the very unpleasant manner. i prefer instead to not have "interface" section at all and generate it automatically by haddock
-- |iterate function over list map :: (a->b) -> [a] -> [b]
-- |find length of list length :: [a] -> Int
private:
map f (x:xs) = f x : map f xs map f [] = []
length xs = length# xs 0#
length# (x:xs) n# = length# xs (n# +# 1) length# [] n# = n#
and in order to see map's type or comment when i implement it, i should see to other part of file. i personally prefer to have public/private modifiers on each function and gather interface documentation by tools like haddock
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com