Documentation for (&&) and (&&) states that they are lazy in their second argument...
[ghc.git] / testsuite / tests / typecheck / should_compile / T14488.hs
1 {-# LANGUAGE RankNTypes #-}
2
3 module T14488 where
4
5 type Lens' s a = forall f. Functor f => (a -> f a) -> s -> f s
6
7 data T a = MkT { _tfield :: Eq a => a }
8
9 tfield :: Eq a => Lens' (T a) a
10 tfield f t = MkT <$> f (_tfield t)