@@ -44,7 +44,7 @@ elaborateInstance (TypeClassInstanceMemberFunction funName className t) =
4444 ,((ProperName "Generic", Ident "toSignature"), mkSignatureFunction t)]
4545elaborateInstance e = return e
4646
47−mkSpineFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
47+mkSpineFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
4848mkSpineFunction t = do
4949 ctors <- M.toList . dataConstructors <$> getEnv
5050 tcs <- M.toList . typeClasses <$> getEnv
@@ -64,7 +64,7 @@ mkSpineFunction t = do
6464
6565 return . lamCase "x" . map mkCtorClause . constructorsForType t $ ctors
6666
67−mkSignatureFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
67+mkSignatureFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
6868mkSignatureFunction t = do
6969 ctors <- M.toList . dataConstructors <$> getEnv
7070 envtyps <- M.toList . types <$> getEnv
@@ -84,7 +84,7 @@ mkSignatureFunction t = do
8484
8585 return . lam "x" . mkSigProd . map mkProdClause . constructorsForType t $ ctors
8686
87−mkFromSpineFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
87+mkFromSpineFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
8888mkFromSpineFunction t = do
8989 ctors <- M.toList . dataConstructors <$> getEnv
9090 tcs <- M.toList . typeClasses <$> getEnv