0 | module Node.Event.Internal
3 | on0 : HasIO io => (a -> PrimIO () -> PrimIO ()) -> a -> IO () -> io ()
4 | on0 fn a cb = primIO $
fn a $
toPrim cb
7 | on1 : HasIO io => (a -> (e -> PrimIO ()) -> PrimIO ()) -> a -> (e -> IO ()) -> io ()
8 | on1 fn a cb = primIO $
fn a $
\e => toPrim $
cb e
11 | on2 : HasIO io => (a -> (b -> c -> PrimIO ()) -> PrimIO ()) -> a -> (b -> c -> IO ()) -> io ()
12 | on2 fn a cb = primIO $
fn a $
\b, c => toPrim $
cb b c
15 | nodeOn0 : String -> String
16 | nodeOn0 event = "node:lambda: (tya, a, callback) => a.on('\{event}', callback)"
19 | nodeOn1 : String -> String
20 | nodeOn1 event = "node:lambda: (tya, tyb, a, callback) => a.on('\{event}', b => callback(b)())"
23 | nodeOn2 : String -> String
24 | nodeOn2 event = "node:lambda: (tya, tyb, tyc, a, callback) => a.on('\{event}', (b, c) => callback(b)(c)())"