module Fib (fib) where -- フィボナッチ数の計算 fibs = 0:1:zipWith (+) fibs (tail fibs) fib :: Int -> Int fib i = fibs !! i Main.hsでfibの型注釈を書いていますが、fibの実体を書いてあるsrc/Fib.hsと別ファイルになっているので fib :: Int -> Int と型クラス制約を入れておかないのエラーが出てしまいます。 Lib.hsはそのまま使ってください。 {-# LANGUAGE OverloadedStrings #-} module Lib where import Foreign.C.Types import GHC.Ptr (Ptr) import qualified Data.MessagePack as MP import Data.ByteString