SlopScore
00 crowd

vibefun

A vibe coded functional programming language
Open repo on GitHubgithub.com/mbcrawfo/vibefun
TypeScript · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 11 hours ago by mbcrawfo · last checked 4 hours ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-18: A vibe coded functional programming language; its own README says "A vibe coded functional programming language". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as mbcrawfo. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
A vibe coded functional programming language
created
2025-11-22 · pushed 1 month ago · 968 commits · 3 contributors
languages
TypeScript 99%JavaScript 1%Shell 0%Dockerfile 0%
paperwork
licensereadme 42% health
dependencies
⚠ 7 of 200 deps have known advisories · OSV.dev, checked 11 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
dockerfilejavascriptshelltypescript
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: A vibe coded functional programming language; its own README says "A vibe coded functional programming language". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Vibefun

CI CodeRabbit Pull Request Reviews

A pragmatic functional programming language that transpiles to JavaScript

What is Vibefun?

Vibefun is a statically-typed functional programming language designed to bring the best of ML-style functional programming to the JavaScript ecosystem. It combines powerful type inference, algebraic data types, and pattern matching with seamless JavaScript interop, making functional programming practical for real-world applications.

Like OCaml and F#, Vibefun is pragmatic: it provides strong functional defaults while giving you explicit escape hatches when you need them. The compiler transpiles to readable ES2020 JavaScript, allowing you to leverage the entire JavaScript ecosystem while enjoying the benefits of a robust type system and functional programming patterns.

Vibefun prioritizes developer experience with helpful error messages, comprehensive type inference that minimizes annotations, and a design philosophy that favors explicitness over magic.

Key Features

  • Hindley-Milner Type Inference - Write less type annotations while maintaining complete type safety
  • Algebraic Data Types - Express your domain with variants (sum types) and records (product types)
  • Exhaustive Pattern Matching - The compiler ensures you handle all cases
  • Immutability by Default - Explicit mut keyword for mutable references when needed
  • First-Class Functions - All functions are automatically curried for elegant partial application
  • Pipe Operator - Chain transformations with the |> operator for readable data pipelines
  • Type-Safe JavaScript Interop - Use any JavaScript library with explicit, type-safe FFI bindings

Examples

Pattern Matching with Algebraic Data Types

// Define a type with multiple variants
type Option<T> = Some(T) | None

// Pattern matching ensures all cases are handled
let getOrDefault = <T>(opt: Option<T>, default: T): T =>
    match opt {
        | Some(x) => x
        | None => default
    }

// Usage
let value = getOrDefault(Some(42), 0);  // 42
let missing = getOrDefault(None, 0);    // 0

Functional Composition & Pipe Operator

// The pipe operator makes data transformations readable
[1, 2, 3, 4, 5]
    |> List.filter((x) => x % 2 == 0)  // [2, 4]
    |> List.map((x) => x * 2)          // [4, 8]
    |> List.sum                        // 12

// Automatic currying enables elegant partial application
let add = (x, y) => x + y;
let increment = add(1);  // Partially applied function
[1, 2, 3] |> List.map(increment);  // [2, 3, 4]

Type-Safe JavaScript Interop

// Declare external JavaScript functions with full type safety
external from "node-fetch" {
    type Response = {
        ok: Bool,
        status: Int,
        json: (Unit) -> Promise<JsObject>
    };

    type RequestInit = {
        method: String,
        headers: JsObject
    };

    fetch: (String, RequestInit) -> Promise<Response> = "fetch";
}

// Use JavaScript libraries in type-safe unsafe blocks
let fetchUser = (id: Int) => unsafe {
    let url = "https://api.example.com/users/" & String.fromInt(id);
    let options = { method: "GET", headers: {} };
    fetch(url, options);
};

Documentation

For comprehensive language details, see the Language Specification.


Vibefun is currently in active development. The language specification is being implemented and the compiler is taking shape. Contributions and feedback are welcome!

Read the rest on GitHub

Scan report · 2026-09-18
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review

From the balcony · 0 of 4 clapped

    Crusoe, Schnitzel, Cap'm Slop and Princess read it and passed. Their reasons are on the balcony, with every other verdict.

    Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

    0 comments

    log in to comment.

    report this listinglog in to report