Generated type variables are better now
hlint and compiler warnings fixed