Я хочу опробовать пакет threepenny-gui для haskell. Так я бегуПолучение ошибок при попытке тестирования threepenny-gui
cabal install threepenny-gui
... без каких-либо проблем
Так я попробовал следующий пример:
module Main where
import qualified Graphics.UI.Threepenny as UI
import Graphics.UI.Threepenny.Core
main :: IO()
main = do
startGUI defaultConfig setup
setup :: Window -> IO()
setup window = do
return window # set UI.title "Hello World!"
button <- UI.button # set UI.text "Click me!"
getBody window #+ [element button]
on UI.click button $ const $ do
element button # set UI.text "I have been clicked!"
, но я получаю ошибки о типах:
threePennyHelloWorld.hs:8:28:
Couldn't match type `IO()' with `UI()'
Expected type: Window -> UI()
Actual type: Window -> IO()
In the second argument of `startGUI', namely `setup'
In a stmt of a 'do' block: startGUI defaultConfig setup
threePennyHelloWorld.hs:12:25:
Couldn't match type `UI Window' with `IO a0'
Expected type: UI Window -> IO a0
Actual type: UI Window -> UI Window
In the second argument of `(#)', namely `set title "Hello World!"'
In a stmt of a 'do' block: return window # set title "Hello World!"
threePennyHelloWorld.hs:14:31:
Couldn't match type `UI Element' with `IO Element'
Expected type: UI Element -> IO Element
Actual type: UI Element -> UI Element
In the second argument of `(#)', namely `set text "Click me!"'
In a stmt of a 'do' block:
button <- UI.button # set text "Click me!"
threePennyHelloWorld.hs:15:9:
Couldn't match type `UI' with `IO'
Expected type: IO Element
Actual type: UI Element
In a stmt of a 'do' block: getBody window #+ [element button]
In the expression:
do { return window # set title "Hello World!";
button <- UI.button # set text "Click me!";
getBody window #+ [element button];
on UI.click button
$ const $ do { element button # set text "I have been clicked!" } }
In an equation for `setup':
setup window
= do { return window # set title "Hello World!";
button <- UI.button # set text "Click me!";
getBody window #+ [element button];
.... }
threePennyHelloWorld.hs:17:9:
Couldn't match type `UI' with `IO'
Expected type: IO()
Actual type: UI()
In a stmt of a 'do' block:
on UI.click button
$ const $ do { element button # set text "I have been clicked!" }
In the expression:
do { return window # set title "Hello World!";
button <- UI.button # set text "Click me!";
getBody window #+ [element button];
on UI.click button
$ const $ do { element button # set text "I have been clicked!" } }
In an equation for `setup':
setup window
= do { return window # set title "Hello World!";
button <- UI.button # set text "Click me!";
getBody window #+ [element button];
.... }
, даже когда я пытаюсь запустить пример File, я получаю те же ошибки
Есть ли у кого-нибудь идеи, что я делаю неправильно?
Вся ошибка просто говорю, что «Вы написали' IO() ', но вы имели в виду 'UI()'. – AJFarmar