>>807
ありがとうございます
取り合えずこんなのを書いてみたんですがダメでした……

{-# LANGUAGE FlexibleInstances #-}
class FilterContext a

instance FilterContext [a]
instance FilterContext ([a], [a])

filter' :: (FilterContext b) => (a -> Bool) -> [a] -> b

filter' = filter

filter' p xs = (ts, fs)
where ts = filter p xs
fs = filter (not.p) xs