Vì tôi đang cố gắng tìm hiểu về TH Tôi phát hiện ra rằng nó cho phép các hành động tùy ý IO
trong quá trình biên dịch (xem What's so bad about Template Haskell?). Điều này có vẻ khá nguy hiểm đối với tôi. Tại sao vậy? Nó thực sự cần thiết cho một số nhiệm vụ? Hay chỉ đơn giản là thiết kế của nó, để "quăng mọi thứ không tinh khiết vào thùng chứa IO
"?Tại sao mẫu Haskell cho phép các hoạt động IO tùy ý trong quá trình biên dịch?
Cập nhật: tôi sẽ cũng quan tâm nếu có bất kỳ nỗ lực thực hiện một tập hợp con safe của TH không cho phép tùy tiện IO
hoạt động.