Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

Liqwid-Labs/liqwid-plutarch-extra

Repository files navigation

⚠️ Archival notice

As of Jan 9 2023, this repository has been archived, and has been replaced by the liqwid-libs monorepo. Please use that instead.


liqwid-plutarch-extra (aka LPE)

Public discussion and assistance can be found on discord @ #liqwid-plutarch-extra. Issues and project-management-related information are tracked on Notion.

What is this?

LPE is a repository for holding Plutarch types, typeclasses, helpers, and utilities shared between Liqwid Labs projects.

What exactly does this do for me?

LPE is primarily intended as a temporary destination for code before upstreaming to plutarch-extra. We welcome contributions, issues, or requests from the community, but first encourage direct contributions to plutarch.

The code in LPE can broadly be categorized as follows:

  • (Co)category typeclasses (PFunctor and friends),
  • Missing functionality from existing Plutarch modules like Plutarch.List, Plutarch.Maybe, and so forth
  • Genuine extras, like those found in Precompile, Tagged, MultiSig, and FixedDecimal

Caveat Emptor

Because this code is the first destination for Liqwid Labs's projects to share snippets, the code in LPE may:

  • Be untested
  • Be undocumented
  • Be sub-optimal in terms of performance or readability
  • Duplicate functionality found elsewhere
  • Go against some notion of best practice
  • Disappear at a moment's notice, either because its broken, not needed, or has been upstreamed.

Some functionality may be contraversial or make certain stylistic assumptions that the authors of Plutarch don't share, and thus certain parts of LPE may never be accepted into plutarch-extra.

Users are welcome to inquire about the status of particular snippets on the discord.

How do I use this?

To integrate this with your project, use Nix. We work against the main branch of Plutarch, so you will have to use it also. See the flake.nix file for more details.

Liqwid uses liqwid-nix to set up its projects. You are not required to use liqwid-nix to use this library, but you are welcome to check check it out.

Standards

The LPE code base follows strict standards to increase consistency, to minimize the impact of legacy, to properly use automated tools, and more. The standards document can be found here.

What can I do with this?

liqwid-plutarch-extra is licensed under the Apache 2.0 license (SPDX code Apache-2.0); please see the LICENSE file for more details.