Group oriented programming in Haskell on indices.