Error found: in module FoldableInstance9 at tests/purs/failing/FoldableInstance9.purs:53:1 - 53:38 (line 53, column 1 - line 53, column 38) One or more type variables are in positions that prevent Foldable from being derived. To derive this class, make sure that these variables are only used as the final arguments to type constructors, and that those type constructors themselves have instances of Foldable. tests/purs/failing/FoldableInstance9.purs:  15 data Test f g h a  16  = Test1 (f a a a) (f Int a a) (f a a Int) (f Int a Int) (f Int Int Int)  17  | Test2 { all :: f a a a  18  , rights :: f Int a a  19  , lefts :: f a a Int  20  , middle :: f Int a Int  21  , none :: f Int Int Int  22  }  23  | Test3 (g  24  { all :: f a a a  25  , rights :: f Int a a  26  , lefts :: f a a Int  27  , middle :: f Int a Int  28  , none :: f Int Int Int  ...  32  { nested1 ::  33  { all :: f a a a  34  , rights :: f Int a a  35  , lefts :: f a a Int  36  , middle :: f Int a Int  37  , none :: f Int Int Int  ...  40  g  41  { all :: f a a a  42  , rights :: f Int a a  43  , lefts :: f a a Int  44  , middle :: f Int a Int  45  , none :: f Int Int Int  46  }  47  a  48  }  49  a)  50  | Test5 (Rec f a)  51  | Test6 (g (Rec f a) a)  52  | Test7 (h { nested1 :: Rec f a, nested2 :: g (Rec f a) a } a)  53 derive instance Foldable (Test f g h) See https://github.com/purescript/documentation/blob/master/errors/CannotDeriveInvalidConstructorArg.md for more information, or to contribute content related to this error.