Strachey, referential transparency, Haskell

This is my input into the recent discussion on referential transparency (RT). I’m nowhere near as well versed in the subject as others, but how am I ever to learn anything unless I put my thoughts out there for them to be laughed at and ridiculed? It all started with a post on stackoverflow.com, which …

Continue reading ‘Strachey, referential transparency, Haskell’ »

Share

Shelltestrunner to the rescue

A little while ago shelltestrunner was announced on haskell-cafe. At the time I was slowly losing hope on ever getting decent test coverage in cblrepo using HUnit. Using something like shelltestrunner could be an easier and more workable solution, especially since what cblrepo needed most in the short term is a bit of integration testing. …

Continue reading ‘Shelltestrunner to the rescue’ »

Share

Maintaining Haskell packages for a Linux distribution—cblrepo

Maintaining a large set of Haskell packages for a Linux distribution is quite a chore. Especially if one wants to track Hackage as far as possible. Several distributions have tools to automatically convert Cabal-based packages into distribution packages, e.g. cabal2arch for ArchLinux and cabal-rpm. They are just conversion tools though, and the most time-consuming activity …

Continue reading ‘Maintaining Haskell packages for a Linux distribution—cblrepo’ »

Share

On maintaining Haskell packages for a Linux distro

When trying to maintain set of binary packages of Haskell libraries for a Linux distribution there are a few issues that come up: The set of packages must be compilable at all times, and Updating one package requires all packages that depend on it, in one or more steps, to be re-compiled. The first requires …

Continue reading ‘On maintaining Haskell packages for a Linux distro’ »

Share

XML character dereferencer

Just in case you ever need one: xmlCharDeref :: String -> String xmlCharDeref [] = [] xmlCharDeref (’&’:’#’:’x’:r) = let (digits, remainder) = span (/= ‘;’) r c = chr (read ("0x" ++ digits)) in c : xmlCharDeref (tail remainder) xmlCharDeref (’&’:’#’:r) = let (digits, remainder) = span (/= ‘;’) r c = chr (read …

Continue reading ‘XML character dereferencer’ »

Share