Type
Posted on 2017-11-03 by xkollar .
Have you ever semi-automatically quasi-subconsciously run :t outside GHCi?
$ type :t
:t is a function
:t ()
{
ghci -v0 <<< ":t ${*:-undefined}"
}What it can do:
$ :t map
map :: (a -> b) -> [a] -> [b]$ :t fold
<interactive>:1:1: error:
• Variable not in scope: fold
• Perhaps you meant one of these:
‘foldr’ (imported from Prelude), ‘foldl’ (imported from Prelude)Whops… what about
$ :t Data.Foldable.fold
Data.Foldable.fold :: (Monoid m, Foldable t) => t m -> mThat is better. Maybe we can poke also other packages, not just base…
$ :t Data.Time.addUTCTime
Data.Time.addUTCTime
:: time-1.6.0.1:Data.Time.Clock.UTC.NominalDiffTime
-> time-1.6.0.1:Data.Time.Clock.UTC.UTCTime
-> time-1.6.0.1:Data.Time.Clock.UTC.UTCTimeAwesome :-).
In the next episode we will deal with accidental runs of ls in GHCi.