2016-09-05 9 views
2

私はライブラリを持っており、私は実行可能ファイルを私がcabal replにしたとき、つまりユーザーがHaskell式を使用し、モジュールをインポートして、自分で定義されているデータ型を使用できるようにしたいと思っています。としょうかん。コンパイルされたコードをヒントに読み込むことはできますか?

可能ですか? hintはソースファイル(ユーザーが利用できない)でしか動作しないという考えがありますが、私は確信していません。ライブラリから、またはグローバルにインストールされているキャブのパッケージからモジュールを読み込もうとしたとき、モジュールがパッケージモジュールであるという曖昧なエラーメッセージが表示されました。実際、私が書いたものはほとんどそれを行うでしょう:

ghci> runInterpreter $ loadModules ["Not.A.Package.Module"] 
Left (WontCompile [GhcError {errMsg = "<no location info>: error:\n module \8216Not.A.Package.Module\8217 is a package module"}]) 

どうすればいいですか? (私はGHC 8.0.1を使用していますが、pluginsはそれをサポートしていません。また、それは非常に致命的なプロジェクトだと思っています。

+0

は、これらのモジュールをインポート自体をGHCiのことはできますか? –

答えて

0

プロジェクトをスタックし、あなたがHackageに依存するコードを記述することができます。

プロジェクトで*.cabalファイルのbuild-dependsセクションにそのパッケージを追加します。 setImportsQを使用して必要なものをhintからインポートしてください。

例はChartChart-diagramsに応じて、次のようになります。

あなたの評価関数で
build-depends:  base 
        ... 
        , Chart 
        , Chart-diagrams 

そして:

setImportsQ[ ("Prelude",Nothing) 
      , ("Graphics.Rendering.Chart.Easy", Nothing) 
      , ("Graphics.Rendering.Chart.Backend.Diagrams", Nothing) 
      ] 
関連する問題