Functions and Types in Bluespec