Om berekeningen voor te stellen die zouden kunnen falen op verschillende manieren kan je gebruik maken van het volgende algebraïsch datatype:

 data Ofwel a b = Links a | Rechts b

De conventie is om fouten te taggen met Links en juiste antwoorden met Rechts. In het volgende stukje Haskell code wordt het Ofwel datatype gebruikt om de exacte gehele deling te implementeren. In dat voorbeeld zijn er twee mogelijke error’s: men zou kunnen delen door 0 of door een getal dat geen deler van de teller is.

safeDiv :: Int -> Int -> Ofwel String Int
safeDiv x y | y == 0         = Links "can't divide by zero"
            | x `mod` y /= 0 = Links "not exact"
            | otherwise      = Rechts (x `div` y)