OK, I've figured it out. In this O'Haskell statement, > struct Derived < Base = > value :: Int ...Derived is not, in fact, a subtype of Base. Derived and Base are disjoint types, but an implicit map of type "Derived -> Base" has been defined. -- Ashley Yakeley, Seattle WA