{"id":201526,"name":"koneko","ecosystem":"hackage","description":"\n\n[Index] [Quick Jump]\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\n\n\n\n\n\n\n  \n  koneko - a concatenative not-quite-lisp for kittens\n\n\nâÂ Description,\nâÂ WhirlwindÂ Tour,\nâÂ LanguageÂ Reference,\nâÂ MoreÂ Examples,\nâÂ Doctests;\n\nâÂ Installing,\nâÂ Running,\nâÂ (Build)Â Requirements,\nâÂ SpecsÂ \u0026Â Docs,\nâÂ VimÂ SyntaxÂ Highlighting;\n\nâÂ TODO,\nâÂ License\n\nNB: work in progress.\n\nKoneko (å­ç« -- \"kitten\" in Japanese) is a simple functional\nconcatenative stack-based programming language with Lisp (\u0026 Haskell)\ninfluences.  It is intended to combine the elegance of the\n(point-free) \"concatenation is composition\" model with the elegance of\nLisp-like languages.\n\nâ Try koneko in your browser with the JavaScript\nREPL.\n\nNB: use whitespace to separate tokens since \"special\" characters like\n+ and ( are not delimiters but valid parts of identifiers.\n\nDetails:\nâÂ LanguageÂ Features,\nâÂ Ident(ifiers)Â \u0026Â Quoting\n\nNB: all data types are immutable.\n\nNB: nil and #f are falsy, everything else is truthy.\n\nDetails:\nâÂ PrimitiveÂ DataÂ Types,\nâÂ Pairs,Â ListsÂ \u0026Â Dicts,\nâÂ Records\n\nNB: since purely concatenative programs contain no free variables,\nalmost any \"subexpression\" can be \"factored out\" simply by giving it a\nname.\n\nDetails:\nâÂ Functions,\nâÂ Multi(method)s\n\nDetails:\nâÂ Primitives,Â BuiltinsÂ \u0026Â Prelude,\nâÂ Prelude:Â SyntaxÂ HighlightedÂ Source,\nâÂ Prelude:Â FunctionÂ Index\n\nDetails:\nâÂ SyntacticÂ Sugar\n\nâÂ 01:Â LanguageÂ Features,\n\nâÂ 02:Â Ident(ifiers)Â \u0026Â Quoting,\n\nâÂ 03:Â PrimitiveÂ DataÂ Types,\n\nâÂ 04:Â Pairs,Â ListsÂ \u0026Â Dicts,\n\nâÂ 05:Â Functions,\n\nâÂ 06:Â Multi(method)s,\n\nâÂ 07:Â Records,\n\nâÂ 08:Â SyntacticÂ Sugar,\n\nâÂ 09:Â Primitives,Â BuiltinsÂ \u0026Â Prelude,\n\nâÂ 10:Â StandardÂ Library,\n\nâÂ 11:Â PossibleÂ FutureÂ Extensions\n\nâÂ SyntaxÂ HighlightedÂ Source,\nâÂ FunctionÂ Index\n\nâÂ MoreÂ Examples\n\nLike Python (\u0026 Haskell), koneko supports \"doctests\": executable pieces\nof documentation that look like interactive REPL sessions.  Doctests\nmake it easy to write user tutorials, documentation, and regression\ntests at the same time and confirm that examples in documentation are\ncorrect and up to date.\n\nNB: this README, the Language Reference, and koneko's Prelude \u0026\nStandard Library are full of doctests.\n\nLets look at an example, mylib.knk:\n\nWe run koneko with the --doctest option (in this case also with -v\nfor verbosity) to execute the tests in a koneko -- or markdown --\nfile:\n\nNB: for :mylib use to be able to load the mylib.knk file we need\nto add the current directory to KONEKOPATH.\n\nSee (Build) Requirements.\n\n... TODO ...\n\n... TODO ...\n\nThe Haskell implementation requires the Haskell\nPlatform (and a few additional\nlibraries that the Cabal build system provided with the Platform can\ninstall); see koneko.cabal for the dependencies.\n\nThe JavaScript implementation requires Node.js.\n\nTODO: haddock\n\n\n\n(i.e. lib/*.knk)\n\n","homepage":"https://github.com/obfusk/koneko","licenses":"GPL-3.0-or-later","normalized_licenses":["GPL-3.0-or-later"],"repository_url":"https://github.com/obfusk/koneko","keywords_array":["compilers-interpreters","gpl","library","program","Propose Tags"],"namespace":null,"versions_count":1,"first_release_published_at":"2022-02-12T12:48:03.000Z","latest_release_published_at":"2022-02-12T12:48:03.000Z","latest_release_number":"0.0.2","last_synced_at":"2026-05-23T12:45:54.805Z","created_at":"2022-04-05T22:03:40.003Z","updated_at":"2026-05-23T15:41:33.573Z","registry_url":"https://hackage.haskell.org/package/koneko","install_command":"cabal install koneko","documentation_url":null,"metadata":{},"repo_metadata":{"id":56845204,"uuid":"111186467","full_name":"obfusk/koneko","owner":"obfusk","description":"koneko - a concatenative not-quite-lisp for kittens","archived":false,"fork":false,"pushed_at":"2024-08-30T02:07:58.000Z","size":1270,"stargazers_count":25,"open_issues_count":34,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-12-08T06:08:09.057Z","etag":null,"topics":["concatenative","functional-programming","language","lisp","programming-language","stack","work-in-progress"],"latest_commit_sha":null,"homepage":"https://koneko.dev","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/obfusk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.GPLv3","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-18T07:42:20.000Z","updated_at":"2025-06-25T16:33:29.000Z","dependencies_parsed_at":"2024-08-29T01:26:35.951Z","dependency_job_id":"3e43dc6a-1555-4872-b283-29f8e3f831a3","html_url":"https://github.com/obfusk/koneko","commit_stats":{"total_commits":366,"total_committers":1,"mean_commits":366.0,"dds":0.0,"last_synced_commit":"3bb62aae7a8ee0d21136c18f7fe5e6cff9676a30"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/obfusk/koneko","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obfusk","download_url":"https://codeload.github.com/obfusk/koneko/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31005417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T00:15:12.539Z","status":"ssl_error","status_checked_at":"2026-03-27T00:14:54.741Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"obfusk","name":"FC Stegerman","uuid":"1260687","kind":"user","description":"Fixer of Bugs (want help? ask me!) » @f-droid core dev » Reproducible Builds » formerly @fsfe » CS/InfoSec, FP, Software Freedom, Privacy, Math, 日本語 » they/them","email":"","website":"https://obfusk.ch","location":".nl","twitter":null,"company":"@f-droid, Reproducible Builds, @Debian","icon_url":"https://avatars.githubusercontent.com/u/1260687?v=4","repositories_count":126,"last_synced_at":"2023-03-23T01:01:15.137Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/obfusk","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-03T15:10:02.573Z","updated_at":"2023-03-23T01:01:15.782Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obfusk","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obfusk/repositories"},"tags":[{"name":"v0.0.2","sha":"0cb3d446ab59a35bf4fea53483b16976ee0fbf2e","kind":"tag","published_at":"2022-02-12T12:44:38.000Z","download_url":"https://codeload.github.com/obfusk/koneko/tar.gz/v0.0.2","html_url":"https://github.com/obfusk/koneko/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/obfusk/koneko@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/tags/v0.0.2/manifests"}]},"repo_metadata_updated_at":"2026-05-23T15:41:33.552Z","dependent_packages_count":0,"downloads":159,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":97.35930989965378,"dependent_repos_count":55.143477495452146,"dependent_packages_count":12.217592864268529,"stargazers_count":20.245290769321052,"forks_count":27.18150343289713,"average":42.429434892318525},"purl":"pkg:hackage/koneko","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/koneko","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/koneko","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/koneko/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-09-01T00:27:52.408Z","issues_count":44,"pull_requests_count":0,"avg_time_to_close_issue":17257895.0,"avg_time_to_close_pull_request":null,"issues_closed_count":10,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":1,"avg_comments_per_issue":0.06818181818181818,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/obfusk%2Fkoneko/issues","maintainers":[{"login":"obfusk","count":44,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/obfusk"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/koneko/codemeta","maintainers":[{"uuid":"obfusk","login":"obfusk","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://hackage.haskell.org/user/obfusk","role":null,"created_at":"2022-11-14T18:40:44.000Z","updated_at":"2022-11-14T18:40:44.000Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/obfusk/packages"}]}