module NFib where instruction primadd "addint" :: Int! -> Int! -> Int! instruction primsub "subint" :: Int! -> Int! -> Int! (+) x y = let! y = y in let! x = x in primadd x y (-) x y = let! y = y in let! x = x in primsub x y main = nfib 27 -- normal nfib nfib n = case n of 0 -> 1 1 -> 1 n -> (+) 1 ((+) (nfib ((-) n 1)) (nfib ((-) n 2)))