Generic Constraints for Type-Safe Embedded Programming