У меня есть ошибка в этом коде в Привязать Haskell приложения:Не в области видимости: 'грабеж' (я не использую Lens)
import Snap.Http.Server
import Snap.Core
import Snap.Snaplet
import Snap.Snaplet.Heist
import Snap.Util.FileServe
import Snap.Util.GZip
import Heist.Interpreted
import Heist
data App = App { appHeist :: Snaplet (Heist App) }
routes :: [(ByteString, Handler App App())]
routes = [("", serveDirectory "static")]
appInit :: SnapletInit App App
appInit = makeSnaplet "app" "An snaplet example application." Nothing $ do
h <- nestSnaplet "" heist $ heistInit "templates"
addRoutes routes
return $ App h
Ошибка является:
Not in scope: ‘heist’
и I не может найти в каком пакете функцию «heist».
Обратите внимание, что я не использую объектив и не хочу. Есть ли способ не использовать их и скомпилировать мой код?
Я не знаком с Snap или Heist (?), Но [Snap уже зависит от объектива] (http://hackage.haskell.org/package/snap-0.14.0.6). Если вы используете Snap, вы используете «объектив» - нет никакого способа обойти это, кроме как разветвить библиотеку и изменить ее, чтобы не использовать «объектив». Кроме того, в то время как многие типы «объективов» являются просто синонимами типа (поэтому вам не нужно использовать «объектив» для использования объективов), «SnapletLens» содержит конкретный тип из «объектива», то есть вам действительно нужно использовать объектив здесь. – user2407038