:− module hello.
:− interface.
:− import module io.
:− pred main(io::di, io::uo) is det.
:− implementation.
main(IOState in, IOState out) :− io.write string(“Hello, World!\n”, IOState in, IOState out).
:− module fib.
:− interface.
:− import module io.
:− pred main(io::di, io::uo) is det.
:− implementation.
:− import module int.
:− pred fib(int::in, int::out) is det.

fib(N, X) :−
    (
      if N =< 2
      then X = 1
      else fib(N − 1, A), fib(N − 2, B), X = A + B
    ).

main(!IO) :−
   fib(17, X),
   io.write string(“fib(17, ”, !IO),
   io.write int(X, !IO),
   io.write string(“)\n”, !IO).