for messing around with some haskell type stuff