Is this a bug, or am I reading it wrong: Function applied to incorrect argument. expects: _ * _ * (([<non-equality>] * _ * _) -> _) but got: _ * _ * (([<equality>] * _ * _) -> _) I think it is telling me that I'm calling a function that requires an equality type with a non-equality type, but the actual error message seems backwards. Neal