次の例のように、楽しみのためだけに Haskell で関数を印刷しようとしています。
{-# LANGUAGE FlexibleInstances #-}
instance Show (Int -> Bool) where
show _ = "function: Int -> Bool"
GHCi にロードして実行し、例を示します。
λ> :l foo
[1 of 1] Compiling Main ( foo.hs, interpreted )
foo.hs:2:1: Warning: Unrecognised pragma
Ok, modules loaded: Main.
λ> (==2) :: Int -> Bool
function: Int -> Bool
しかし、すべての関数が呼び出し時に自分自身を出力することを望みます。