## Default signature check can be quite onerous

The `bytes`

library currently doesn't compile with GHC `master`

due to the new check of default signatures (7363d538, #12918 (closed)). Consider this example,

```
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DefaultSignatures #-}
module Hi where
import Control.Monad.Trans.Class
class MonadGet m where
type Remaining m :: *
remaining :: m (Remaining m)
default remaining :: (MonadTrans t, MonadGet n, m ~ t n) => m (Remaining (t n))
remaining = lift remaining
```

Patching this up requires a fair amount of hand-holding,

` default remaining :: (MonadTrans t, MonadGet n, m ~ t n, Remaining m ~ Remaining n, Monad n) => m (Remaining m)`

Yuck.

I suppose this is just how the world works, but I thought I'd leave this here in case anyone had a clever idea for improvement.