Yes, it is. And if you only have one function to pass, there is no point really in putting it in a record. Except in this case the record is extensible, so you could still do that if you are planning on combing lots of small traits together. Perhaps I need a better example.
One that I have in mind at the moment is this:
type alias EqualityTrait s a =
{ a
| equal : s -> s -> Bool
, hashCode : s -> Int
}
This could be used to define custom equality comparison on arbitrary records, and then data structures such as hash tables, sets and so on implemented around it. Exactly how java.util.* works, which is where I take this idea from.
To give an example of where customizing equality could be useful - suppose I load a list of items from a back-end and each item already has a unique id on it. I could compare the records just by their ids. That way I can put the records in a set. If I change one, inserting it into the set will overwrite the previous value. The set could be made to behave differently with a different implementation of equality that compares the records by the value of all of their fields.