Typed-directed name resolution brings Haskell closer to a write-only language; that is, an ambiguous phrase made total sense to the author when the author wrote it, but an independent reader will need extraordinary effort to disambiguate.

{-# LANGUAGE TypeDirectedNameResolution #-}

import EnglishMonad
import Cities(buffalo)
import Animals(buffalo)
import Verbs(buffalo,buffalo)

{- why two buffalo's from Verbs? because they are of different types: one is present verb type and the other is past participle verb type. ever heard of Type Directed Name Resolution? -}

buffalo = buffalo buffalo buffalo buffalo buffalo buffalo buffalo buffalo

main = runEnglishMonad buffalo

{- http://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffalo_buffalo_buffalo_Buffalo_buffalo -}
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to