module T1657 where {-@ data I
Bool> = I _ @-} data I = I Int {-@ getI :: forall
Bool>. { {x: Int
| True} <: {x:Int | x > 0} } I
@-} getI :: I getI = I 7 {-@ shouldPass :: I<{\z -> true}> @-} shouldPass :: I shouldPass = getI