module T1657 where {-@ data I Bool> = I Int @-} data I = I Int {-@ getI :: forall Bool>. { bloop :: Int |- {v: Int | v = bloop} <: {v:Int | v > 1984} } I @-} getI :: I getI = undefined {-@ pleaseFail :: I<{\v -> v > 1984}> @-} pleaseFail :: I pleaseFail = getI