Skip to content

Instantly share code, notes, and snippets.

View tonyfettes's full-sized avatar

Haoxiang Fei tonyfettes

View GitHub Profile
@tonyfettes
tonyfettes / algebraic_effect.mbt
Created March 8, 2025 12:05
Algebraic Effect in MoonBit
///|
fn async_run(f : async () -> Unit) -> Unit = "%async.run"
///|
async fn async_suspend_with_error[T, E : Error](
f : ((T) -> Unit, (E) -> Unit) -> Unit
) -> T!E = "%async.suspend"
///|
type! Load (State) -> Unit
@tonyfettes
tonyfettes / MoonBit.cmake
Created February 7, 2025 04:53
MoonBit.cmake
include(CMakePrintHelpers)
set(MOON_HOME "$ENV{MOON_HOME}")
function(setup_moonbit_module directory)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${directory}/moon.mod.json MOON_MOD_JSON)
string(JSON
MOON_CURRENT_SOURCE_DIR
ERROR_VARIABLE MOON_CURRENT_SOURCE_DIR_ERROR
GET ${MOON_MOD_JSON} source)
if(NOT MOON_CURRENT_SOURCE_DIR_ERROR STREQUAL NOTFOUND)