前回のあらすじですー>ω< Phantom Typeを駆使して空リストに適用しようとすると、コンパイル時にエラーを吐く型安全なリストを定義したのです(`・ω・´) しかし、tailはよく分からないエラーに阻まれて定義することができなかったのです……><; 今回は型安全なtailはどうやったら実現可能か考えてみたいと思いますです>ω< 前回のエラーをもう一度確認してみますです。 前回のソースコードとエラーを再掲しておきますです(`・ω・´) SafeList_by_PhantomType.hs{-# LANGUAGE ExistentialQuantification #-} module Main where import Prelude hiding (head, tail) data Empty data NonEmpty data SafeList x a = forall y. C