[Haskell-cafe] mutually recursive types