(involving GHC.TypeNats):
data Symmetric (n :: Nat) where S1 :: Symmetric 1 (:.) :: (KnownNat n, 2 <= n) => Cyclic n -> Symmetric (n-1) -> Symmetric n
But I had some issues with this. The full question is here (on Stack Overflow):