I’ve worked around this situation once or twice before - I used this strategy, based on your example:
module Role exposing (Role, adminToBool, userToBool)
type Role = Admin | User
adminToBool: (Role -> Bool) -> Bool
userToBool : (Role -> Bool) -> Bool