Incorporates strong typing over predicate logic programming, and, conversely, incorporates predicate logic programming into strongly typed functional languages. The style of predicate logic is from Prolog; the strongly typed functional language is Haskell.
row :: String -> (Item, (USD, Measure))
given csv :: String -> [String] and line is = "apple,$1.99 Lb"
hint: words "a b" = ["a","b"] ... all types mentioned above are in today's @1HaskellADay problem at http://lpaste.net/4698665561507233792
For Read a, point-free-itize: f a list = read a:list (f is used in a foldr-expression)