2/6/2010 8:24 AM
 
12/24/2009 1:47 PM
 
The Potential Of Detroit


Entry to follow!
11/15/2009 9:26 PM
 
10/24/2009 8:32 AM
 
What Season is it Anyway?
IMG_2466
IMG_2464
Snow on ground, October 10th. It froze hard overnight and the trees are dumping leaves.
10/10/2009 10:11 AM
 
10/3/2009 12:30 PM
 
To Hugo James
IMG_2407

IMG_2406
You were born on September 25th, 2009 in the early afternoon. We were thrilled to finally meet you, though I'm sure our look of surprise matched yours. We won't be perfect parents but we had some pretty good examples and we'll do our best. We love you very much and look forward to getting to know you better.

P. S. If you should decide that you don't like the name, we tried to give you a good fallback -- though you should have heard some of the naming suggestions our friends so helpfully gave.
9/30/2009 9:09 AM
1
 
Vikings Nights
inflatable_vikings
In the neighbor's yard.
9/20/2009 8:10 PM
 
Almost Baby
usound
I believe he's sucking on his hand here.
9/13/2009 7:12 PM
 
Type Mess
Today I bumped into Haskell's "Monomorphism Restriction", which essentially requires that you provide explicit type information on parameters that are overloaded. It appears that GHC/i aggressively tries to avoid producing this error, which can lead to some strange behavior. For instance, f is a function to show and then print something:

f = putStrLn . show

Loaded into GHCi in a file by itself will produce the MR error. However:

f = putStrLn . show

f [1, 2]

Does not. If you query the type of f, it reports f :: [Integer] -> IO (). It's inferred that f takes a list of Integers from our function call, which is understandable but not quite as general as we'd intented f to be. If we add an another call to display a string:

f = putStrLn . show

f [1, 2]
f "ab"

We receive a unhelpful type error about the value of "1". I was scratching my head for awhile until I checked the type of my helper function.

The solution? Explicitly add the type signature:

f :: Show a => a -> IO ()

f = putStrLn . show
8/29/2009 9:26 PM
1