#lang typed/racket
Structure 1
(struct: (α) Seq
([elem : α]
[recur : (Seq (Pair A A))]))
#lang typed/racket
Structure 2
(struct: (α) Elem ([elem : α]))
(struct: (α) Pare
([pair : (Pair (EP α) (EP α))]))
(define-type (EP α) (U (Elem α) (Pare α)))
(struct: (α) Seq
([elem : (EP α)]
[recur : (Seq α)]))