module WrongDirectCall where

data Nat = Z | S Nat deriving (Show, Eq)
div1_5 :: Nat -> Nat
div1_5 Z = Z
div1_5 (S Z) = S Z
div1_5 (S(S(S Z))) = S(S Z)
div1_5 (S(S(S(S Z)))) = S(S(S Z))
div1_5 (S(S(S(S(S(S Z)))))) = S(S(S(S Z)))
div1_5 (S(S Z)) = undefined
