camelSplit :: String -> [String]
camelSplit s = let (wrd,lst) = foldl (\(wrd,lst) c -> if isUpper c 
                                                      then ([c],if null wrd then lst else reverse wrd:lst) 
                                                      else (c:wrd,lst)) ([],[]) s
               in reverse (reverse wrd:lst)
camelSplit :: String -> [String]
camelSplit s = let (wrd,lst) = foldl (\(wrd,lst) c -> if isUpper c 
                                                      then ([c],if null wrd then lst else reverse wrd:lst) 
                                                      else (c:wrd,lst)) ([],[]) s
               in reverse (reverse wrd:lst)
camelSplit s = let (wrd,lst) = foldl (\(wrd,lst) c -> if isUpper c 
                                                      then ([c],if null wrd then lst else reverse wrd:lst) 
                                                      else (c:wrd,lst)) ([],[]) s
               in reverse (reverse wrd:lst)