updated Labouchere.hs to enforce referential transparency