{-# LANGUAGE RankNTypes #-}

-- Make sure for-alls can occur in data types

module Foo where

newtype CPS1 a = CPS1 { unCPS1 :: forall ans . (a -> ans) -> ans }

newtype CPS2 a = CPS2 (forall ans . (a -> ans) -> ans)
        -- This one also has an interesting record selector;
        -- caused an applyTypeArgs crash in 5.02.1

data    CPS3 a = CPS3 { unCPS3 :: forall ans . (a -> ans) -> ans }
data    CPS4 a = CPS4 (forall ans . (a -> ans) -> ans)
