提出したコードより、もう少しだけ整理してあります。書く話は、もう飽きたので、つづかないと思います。いじるのはやっぱり面倒で、もう一層くらいはさまないとダメだなー、というのがやってみた感想。のをあとで見て、ちょっと反省してる。この記事については「問題やご自身のコードに関して、ツイートやブログ記事など書いてくださって構いません。」とのことで書いてます。書ける人の方が少ないんじゃなかろうか。遅延評価なので自動的にストリームになる、......って理解であってる?*7:https://twitter.com/gengar68/status/376259612598497281*8:長さについては記法もあると思いますが。ゆるふわHaskell入門会に行ってきました。さんとお話ししたり、うっかりガチ勢の2次会に紛れ込んでしまい、なに話してんだかさっぱり分からないなりに刺激を受けたりと、それなりに有意義な一日でした。さんがツイッターで触れていたことにちょっと関わるので、ついでにここでご紹介しようかな、と。「データがそのまま入力できる」、「リテラルが自由自在」とはどういうことでしょうか。難しい話ではありません。以下のようにデータ型を定義すると、その型の値を表すリテラルが自動的に、一緒に定義されるということです。コード中で扱えるようになります。いう文字列が、ソースコード中で有効な値リテラルとして扱われ、そのまま入力できることが分かります。評価してみるとエラーになります。関数を使ってその値を表示することができない、というエラーです。評価してみても同じです。型クラスのインスタンスにすることで、この問題を解決することが出来ます。クラスのインスタンスにするのは、自動導出という仕組みが使えるので簡単です。読み込み直してみましょう。Homu)(Mado,Homu)後者の例は、まどほむにしてみたかっただけで、タプルにした意味は特にありません。インスタンスになるというお話は、別にするつもりないです。クラスのインスタンスを自動導出すると、そのデータ型の値を評価した結果、そのリテラル表現と同じ文字列が出力されるようになります。括弧の世界の人たちが重要視する性質です。説明としてはなにか間違ってるような気がして仕方がないのですが、どなたかつっこんでくださいませんでしょーか......。やって得るのか、という話です。手っ取り早い方法があります。パーサに食わせてみればいいわけです。ソースコードとして有効な表現のはずです。