module ImportBound where data Proof {-@ bound chain @-} chain :: (Proof -> Bool) -> (Proof -> Bool) -> (Proof -> Bool) -> Proof -> Bool chain p q r = \v -> p v {-@ by :: forall

Prop, q :: Proof -> Prop, r :: Proof -> Prop>. (Chain p q r) => Proof

-> Proof -> Proof @-} by :: Proof -> Proof -> Proof by _ r = r