No instance for (Num [Integer]) arising from the literal ‘1’
plus1 :: [Integer] > [Integer] > [Integer]
plus1 (x:xs) remain
 (x==0) && (remain==1) = [1] ++ (plus1 xs (remain1) )
 (x==1) && (remain==1) = [0] ++ (plus1 xs remain)
 (x==0) && (remain==0) = [0] ++ (plus1 xs 0)
 (x==1) && (remain==0) = [1] ++ (plus1 xs 0)
 otherwise = []
• No instance for (Num [Integer]) arising from the literal ‘1’
• In the second argument of ‘(==)’, namely ‘1’
In the second argument of ‘(&&)’, namely ‘(remain == 1)’
In the expression: (x == 0) && (remain == 1)
1 answer

your type signature says that
remain
should be:: [Integer]
but you are comparing it with==
to1
with isInteger
. Perhaps your type signature was intended to beplus1 :: [Integer] > Integer > [Integer]