ну то есть как, класс Category на самом деле определяет стрелки над объектами из Hask. Стрелки должны удовлетворять аксиомам. Hask сам по себе вроде бы образует категорию (если проигнорировать всякие seq, undefined и прочую компиляторную магию). Если определить над (некоторыми) объектами из него (i.e. типами) какие-то "другие" стрелки, то получается новая категория.
тем, что требуется устанавливать эту переменную для stack'а, а я пока не видел, что бы IntelliJ-Haskell это позволял, либо передавать через аргументы запуска