[Haskell] What would Haskell middleware look like?