[Haskell-cafe] Modelling structurally subtyped and cyclic data in type safe Haskell