Parametricity for Nested Types and GADTs
Introduction
List
PTree
data PTree (A : Set) : Set where pleaf A : X pnode PTree (A × A) : XPForest
Bush
data Bush (A : Set) : Set where bnil : X bcons A, Bush (Bush A) : Xdata PTree (A : Set) : Set where pleaf A : X pnode PTree (A × A) : Xdata Bush (A : Set) : Set where bnil : X bcons A, Bush (Bush A) : X