পূর্বেই বলা হয়েছে, বিশুদ্ধ কোডের কোন রকম অনিয়ন্ত্রিত পার্শ্বপ্রতিক্রিয়া থাকা চলবে না, কিন্তু এর মানে এই নয় যে, একটি প্রোগ্রাম প্রতিক্রিয়ার স্পষ্টভাবে বর্ণনা ও নিয়ন্ত্রণ হতে বিরত থাকবে। হাস্কেলের আই/ও মানাডের মূলে রয়েছে এই ধারণাটি, যেখানে codice_98 টাইপের একটি বস্তুকে প্রোগ্রামের পারিপার্শ্বিক দুনিয়ার বর্তমান অবস্থা ধারণ করে আছে বলে ধরা হয়, এবং codice_5 টাইপের একটি মান গণনা করছে বলে ধরা হয়। একটি কম্পুগণনা যা কোন মান বহন করে না – যেমন একটি প্রক্রিয়া (প্রসেডিয়র) – টাইপ codice_100 বহন করে থাকে, যা ডামি মান codice_101কে "গণনা" করে। যখন একজন প্রোগ্রামার একটি ফাংশনের সাথে একটি codice_102 মানকে জুড়ে দেন, তখন দুনিয়ার সেই দর্শনের (ব্যবহারকারীর ইনপুট, ফাইল ইত্যাদি) ওপর ভিত্তি করে ফাংশন সিদ্ধান্ত গ্রহণ করে থাকে, এবং পরবর্তীতে নতুন পারিপার্শ্বিক অবস্থার ওপর ভিত্তি করে একটি মানাডিয় মান প্রদান করে (প্রোগ্রামের আউটপুট দেয়)। 

উদাহরণস্বরূপ, বিস্তৃত ফাইল সিস্টেমের ওপর কাজ চালানোর জন্য হাস্কেলের কিছু ফাংশন রয়েছে, যাদের মধ্যে একটির কাজ কোন ফাইলের অস্তিত্ব সম্পর্কে নিশ্চিত হওয়া এবং আরেকটির কাজ হল একটি ফাইলকে অপসারণ করা। দুটি ফাংশনের টাইপ সাক্ষর হল:

doesFileExist :: FilePath -> IO Bool
removeFile :: FilePath -> IO ()
প্রথমটি কেবলমাত্র ফাইলের অস্তিত্ব নিয়ে আগ্রহী, তাই এটি codice_102 মানাডের অধীনে একটি আউটপুট হিসেবে প্রদান করে। দ্বিতীয় ফাংশনটি ফাইল সিস্টেমের ওপর কাজ করে বিধায় এর codice_102 ধারকটি খাল।

codice_102 কেবলমাত্র ফাইল আই/ও তে সীমাবদ্ধ নয়; এটি ব্যবহারকারীর আই/ও পর্যন্ত অনুমোদন করে, এবং কিছু অনুজ্ঞাসূচক সিন্টাকটিক সুগারের বদৌলতে ধরাবাধা অনুকরণ করতে সক্ষম হয়: 

main :: IO ()
main = do
সিন্টাকটিক সুগার অপসারণ করলে, এটিকে নিম্নোক্ত মানাডিয় পাইপলাইনে অনুবাদ করা সম্ভব (হাস্কেলে codice_106 এর প্রকরণ হিসেবে বিবেচন করা যায় যখন মানাডিয় ক্রিয়াকে নজরে আনা হয় এবং তখন এর মূলগত ফলাফলকে আমরা উপেক্ষা করতে পারি):

main :: IO ()
main =
সিন্ট্যাক্স সুগার (অন্বয় মিষ্টান্ন )
আরো উদাহরণ
আই/ও মানাড (হাস্কেল)
একটি উদাহরণ: Maybe