Skip to content

Commit c4c39a8

Browse files
committed
Cryptol.Eval.FFI: More precise imports
This uses explicit import lists for all imported modules in `Cryptol.Eval.FFI`. It also fixes a bug where the code would fail to compile if the `ffi` cabal flag was disabled, as seen in #1979.
1 parent 61ef40f commit c4c39a8

File tree

1 file changed

+21
-25
lines changed

1 file changed

+21
-25
lines changed

src/Cryptol/Eval/FFI.hs

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,30 @@ module Cryptol.Eval.FFI
99
, evalForeignDecls
1010
) where
1111

12-
import Cryptol.Eval.FFI.ForeignSrc
13-
( ForeignSrc)
14-
#ifdef FFI_ENABLED
15-
import Cryptol.Eval.FFI.ForeignSrc
16-
(ForeignImpl, loadForeignImpl )
17-
#else
18-
import Cryptol.Parser.AST (ForeignMode)
19-
#endif
20-
import Cryptol.Eval.FFI.Error ( FFILoadError )
21-
import Cryptol.Eval (Eval, EvalEnv )
22-
import Cryptol.TypeCheck.AST
23-
( FFI(..), TVar(TVBound), findForeignDecls )
24-
import Cryptol.TypeCheck.FFI.FFIType ( FFIFunType(..) )
12+
import Cryptol.Eval.FFI.ForeignSrc (ForeignSrc)
13+
import Cryptol.Eval.FFI.Error (FFILoadError)
14+
import Cryptol.Eval (Eval, EvalEnv)
15+
import Cryptol.ModuleSystem.Name (Name)
16+
import Cryptol.TypeCheck.AST (FFI(..), findForeignDecls)
2517

2618
#ifdef FFI_ENABLED
2719

28-
import Data.Either(partitionEithers)
29-
import Data.Traversable(for)
30-
import Cryptol.Backend.Concrete
31-
import Cryptol.Backend.Monad
32-
import Cryptol.Eval.Env
33-
import Cryptol.Eval.Prims
34-
import Cryptol.Eval.Type
35-
import Cryptol.Eval.Value
36-
import Cryptol.ModuleSystem.Name
37-
import Cryptol.Utils.Ident
38-
import Cryptol.Eval.FFI.C(callForeignC)
39-
import Cryptol.Eval.FFI.Abstract(callForeignAbstract)
20+
import Data.Either (partitionEithers)
21+
import Data.Traversable (for)
22+
23+
import Cryptol.Backend.Concrete (Concrete)
24+
import Cryptol.Backend.Monad (io)
25+
import Cryptol.Eval.Env (bindVarDirect)
26+
import Cryptol.Eval.FFI.Abstract (callForeignAbstract)
27+
import Cryptol.Eval.FFI.C (callForeignC)
28+
import Cryptol.Eval.FFI.ForeignSrc (ForeignImpl, loadForeignImpl)
29+
import Cryptol.Eval.Prims (Prim(..))
30+
import Cryptol.Eval.Type (TypeEnv, bindTypeVar)
31+
import Cryptol.Eval.Value (GenValue, Backend(SEval))
32+
import Cryptol.ModuleSystem.Name (nameIdent)
33+
import Cryptol.TypeCheck.AST (TVar(TVBound))
34+
import Cryptol.TypeCheck.FFI.FFIType (FFIFunType(..))
35+
import Cryptol.Utils.Ident (unpackIdent)
4036

4137
#endif
4238

0 commit comments

Comments
 (0)