Вопрос в видео формате: http://youtu.be/3_pvK-gcLMMКак получить тип термина внутри блока do в Лексах?
Вопрос в текстовом формате: как я могу получить Leksah сказать мне тип unlisten
в коде ниже?
Код взят из https://github.com/SodiumFRP/sodium/blob/master/haskell/examples/tests/unit-tests.hs
Если это не представляется возможным с Leksah (чтобы получить тип термина внутри сделай блок), то как можно извлечь эту информацию? Есть ли другой инструмент Haskell или IDE, который может это сделать?
module Main where
import FRP.Sodium
import Control.Applicative
import Control.Monad
import Control.Monad.Trans
import Data.Char
import Data.IORef
import Test.HUnit
main = do
putStrLn "Give me a line"
event1 = TestCase $ do
(ev, push) <- sync newEvent
outRef <- newIORef ""
sync $ do
push '?'
unlisten <- sync $ do
push 'h'
unlisten <- listen ev $ \letter -> modifyIORef outRef (++ [letter])
push 'e'
return unlisten
sync $ do
push 'l'
push 'l'
push 'o'
unlisten
sync $ do
push '!'
out <- readIORef outRef
assertEqual "event1" "hello" =<< readIORef outRef
EDIT: Кажется, что Haskell-ВИМ-теперь могут сделать это:
Было бы неплохо иметь то же самое в Leksah каким-то образом.