@@ -44,7 +44,7 @@ elaborateInstance (TypeClassInstanceMemberFunction funName className t) =
44 ,((ProperName "Generic", Ident "toSignature"), mkSignatureFunction t)]
44 ,((ProperName "Generic", Ident "toSignature"), mkSignatureFunction t)]
45elaborateInstance e = return e
45elaborateInstance e = return e
47−mkSpineFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
47+mkSpineFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
48mkSpineFunction t = do
48mkSpineFunction t = do
49 ctors <- M.toList . dataConstructors <$> getEnv
49 ctors <- M.toList . dataConstructors <$> getEnv
50 tcs <- M.toList . typeClasses <$> getEnv
50 tcs <- M.toList . typeClasses <$> getEnv
@@ -64,7 +64,7 @@ mkSpineFunction t = do
65 return . lamCase "x" . map mkCtorClause . constructorsForType t $ ctors
65 return . lamCase "x" . map mkCtorClause . constructorsForType t $ ctors
67−mkSignatureFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
67+mkSignatureFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
68mkSignatureFunction t = do
68mkSignatureFunction t = do
69 ctors <- M.toList . dataConstructors <$> getEnv
69 ctors <- M.toList . dataConstructors <$> getEnv
70 envtyps <- M.toList . types <$> getEnv
70 envtyps <- M.toList . types <$> getEnv
@@ -84,7 +84,7 @@ mkSignatureFunction t = do
85 return . lam "x" . mkSigProd . map mkProdClause . constructorsForType t $ ctors
85 return . lam "x" . mkSigProd . map mkProdClause . constructorsForType t $ ctors
87−mkFromSpineFunction :: MonadState CheckState m => Qualified ProperName -> m Expr
87+mkFromSpineFunction :: (Functor m, MonadState CheckState m) => Qualified ProperName -> m Expr
88mkFromSpineFunction t = do
88mkFromSpineFunction t = do
89 ctors <- M.toList . dataConstructors <$> getEnv
89 ctors <- M.toList . dataConstructors <$> getEnv
90 tcs <- M.toList . typeClasses <$> getEnv
90 tcs <- M.toList . typeClasses <$> getEnv