أي حزمة Haskell تحتوي على وحدة معينة
سؤال
أعرف اسم وحدة Haskell، لكن لا يمكنني معرفة الحزمة التي تم تعريفها بها.هذا أمر سيء لأنني لا أستطيع الترجمة بدون حزمة تعرض هذه الوحدة.
على وجه التحديد، لا يمكنني تحديد موقع Text.Regex، ولكن أود أن أعرف كيفية حل هذه المشكلة بشكل عام.
المحلول
http://www.haskell.org/ghc/docs/latest/html/users_guide/packages.html
ghc-pkg نص وحدة البحث.Regex
ولكن هذا لا يعمل إلا مع (أ) GHCs الحديثة، و(ب) الحزم المثبتة على نظامك.
يمكنك أيضًا استخدام grep من خلال ملف الحزمة (على سبيل المثال./usr/lib/ghc-6.8.2/package.conf) لمعرفة ما تم تثبيته.
يمكنك أيضًا استخدام محركات البحث haskell API com.hoogle أو ال hack محرك البحث hayoo.
Text.Regex موجود في الحزمة regex-base، وعدد قليل من الآخرين مبنيون فوقه.
نصائح أخرى
إذا كنت تستخدم Cabal وكانت الحزمة مثبتة لديك، فيمكنك فقط محاولة تجميعها باستخدام cabal build
, ، وسوف يعلمك Cabal بالحزمة التي نسيت إضافتها إلى تبعياتك:
Main.hs:1:8:
Could not find module `Text.Regex':
It is a member of the hidden package `regex-compat-0.93.1'.
Perhaps you need to add `regex-compat' to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
إذا كنت تستخدم دبيان والحزم المقدمة من دبيان، فهناك فهرس وثائق عالمي في /usr/share/doc/ghc-doc/html/libraries/index.html
الذي يسرد الحزمة في العمود الأخير.