shift things around
some haskell stuff