18 Repos
Sets of functions defining shared behavior for different data types, implementing mathematical patterns.
Distinct from Abstract Data Types: Specifically refers to the type-class pattern for generic behaviors, distinct from general abstract data type definitions.
Explore 18 awesome GitHub repositories matching software engineering & architecture · Type Classes. Refine with filters or upvote what's useful.
This project is a comprehensive educational guide and curriculum for applying functional programming principles and category theory within the JavaScript ecosystem. It provides a structured learning path focused on writing predictable and scalable code through the use of pure functions and immutability. The resource includes a dedicated course on algebraic data structures and a functional programming tutorial. To reinforce theoretical concepts, it features a set of interactive coding exercises and runnable programming challenges for hands-on practice. The materials cover a broad range of fun
Covers the implementation of generic mathematical patterns through the definition of type classes.
fp-ts is a TypeScript library that brings pure functional programming patterns to the language through algebraic data types, type class abstractions, and composable combinators. It provides foundational data types like Option for optional values, Either for typed error handling, and Task for lazy asynchronous computations, all designed to make invalid states unrepresentable and side effects explicit. The library is built on category theory concepts, offering type classes such as Functor, Applicative, Monad, Semigroup, and Monoid with lawful instances for common data structures. The library di
Provides category-theory-based type classes like Functor, Applicative, and Monad.
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
CheckCstyle calculates the number of distinct classes instantiated within a type to identify excessive complexity.
PureScript is a statically typed, purely functional programming language that compiles to JavaScript. It is designed as a cross-platform frontend language for building safe web applications, utilizing a static type system and a JavaScript compiler to ensure program correctness across browser and server environments. The language is distinguished by its emphasis on mathematical purity, featuring a robust type system with first-class support for monads. It provides a sophisticated toolset for static verification, including algebraic data types, type classes, and automatic type inference to reje
Provides type classes to define shared interfaces and generic abstractions for different data types.
This project is a comprehensive functional programming curriculum and learning resource for Haskell. It provides sequenced educational paths and technical reference guides designed to take developers from beginner to advanced levels of proficiency. The project distinguishes itself through a deep focus on theoretical and technical foundations, offering detailed studies on type theory, category theory, and runtime internals. It includes a dedicated performance handbook for optimizing execution speed and memory management, as well as an ecosystem guide for managing development tools and editor c
Covers the implementation of fundamental type classes like Functor and Monad based on category theory.
Cello is a programming language extension for C that provides a higher-level implementation of the language. It integrates an object-oriented framework, an automated garbage collection system, and a runtime reflection library to enable dynamic type inspection. The project implements a structured system for object orientation within C, including support for classes, type classes, and polymorphism. It includes a runtime exception handling system to intercept execution errors and initiate recovery procedures. The framework further provides generic programming capabilities for creating reusable
Implements type classes to define shared interfaces and consistent behavior across different data types.
PyTorch Metric Learning is an open-source library for training neural networks to produce similarity-preserving embedding spaces. It provides a modular framework where interchangeable loss functions, mining strategies, and evaluation tools can be composed to learn representations that map similar items to nearby points and dissimilar items to distant points in the embedding space. The library distinguishes itself through a highly configurable architecture that separates concerns across several interchangeable components. Users can assemble custom loss functions from pluggable distance metrics
Penalizes class vectors that are too close together to improve class separation in the embedding space.
Object-Oriented CSS (OOCSS) is a CSS methodology and framework that structures stylesheets around reusable, composable classes. Its core principle is separating layout and structure from visual design, allowing the same structural classes to work with different visual treatments. The approach encourages styling elements based on their own properties rather than their location in the DOM, making components portable across different contexts. The methodology is built on class composition, where complex visual patterns are created by combining multiple single-purpose CSS classes on a single elem
Defines a consistent naming system for CSS classes to ensure predictability and avoid specificity conflicts.
Snap.js is a JavaScript library for building draggable side navigation panels on touch devices. It enables slide-in menus from the left or right screen edge, driven by a gesture-based state machine that interprets drag and flick gestures to open and close the panel. The library distinguishes horizontal menu drags from vertical scrolling by analyzing the initial touch movement angle, and locks menu movement to a single axis to prevent interference. It uses hardware-accelerated CSS transforms for smooth animations and provides configurable snap thresholds that determine whether a drag should op
Adds custom CSS class names to menu elements to match existing design systems and styling conventions.
Basscss is a lightweight CSS utility toolkit built on an atomic, single-purpose class architecture. Each class performs exactly one visual function, enabling immutable, side-effect-free styling where no class ever overrides or conflicts with another. The system provides a predefined spacing scale, responsive breakpoint prefixes for conditional styling across device widths, and accessible visibility control that keeps content programmatically available to assistive technologies. The framework distinguishes itself through a float-based grid system that constructs layouts using floated percentag
Defines a single-purpose class architecture where each CSS class performs exactly one visual function.
tailwind-merge is a utility library that resolves conflicting Tailwind CSS class strings when combining multiple sets of classes. It automatically detects and removes conflicting utility classes, keeping only the last class from each group that modifies the same CSS property, while preserving non-conflicting and non-Tailwind classes unchanged. The library handles complex conflict scenarios including modifier-order resolution, arbitrary value type detection, postfix modifier semantics, and asymmetric conflicts where one class group removes preceding classes from other groups but not vice versa
Implements heuristics to correctly resolve Tailwind class names containing slashes that are not modifiers.
Cats ist eine funktionale Programmierbibliothek für Scala und eine Typklassen-Bibliothek, die darauf ausgelegt ist, algebraische Muster und funktionale Abstraktionen zu implementieren. Sie bietet einen standardisierten Satz an Schnittstellen und ein modulares Toolkit aus funktionalen Wrappern und Containern, um Ad-hoc-Polymorphismus und generische Programmierung über unterschiedliche Typen hinweg zu ermöglichen. Das Projekt dient als Standard für funktionale Abstraktion und bietet eine Monad-Transformer-Suite zur Komposition verschachtelter, effektbehafteter Kontexte und zur Handhabung mehrerer rechnerischer Seiteneffekte innerhalb einer einzigen Pipeline. Es ermöglicht zudem die Konstruktion eingebetteter domänenspezifischer Sprachen, indem Programmlogik als Datenstrukturen dargestellt wird, die unabhängig von ihren Definitionen interpretiert werden. Die Bibliothek deckt breite Funktionsbereiche ab, einschließlich algebraischer Datenmanipulation zum Kombinieren und Reduzieren von Werten, typsicherem Zustandsmanagement und funktionaler Fehlerbehandlung zur Formalisierung von Fehlerakkumulation und -wiederherstellung. Sie bietet zudem Werkzeuge für das Management effektbehafteter Berechnungen und die Erweiterung von Standard-Collection-Typen um funktionale Fähigkeiten. Die Bibliothek enthält Mechanismen zur Validierung algebraischer Gesetze, um sicherzustellen, dass Typklassen-Instanzen mathematische Eigenschaften einhalten.
Provides a framework for defining type classes to implement ad-hoc polymorphism and generic programming based on mathematical patterns.
Buttons is a CSS button framework and UI component library providing a set of reusable visual elements for mobile and desktop web environments. It functions as a CSS utility system and variable-driven theming engine that enables the creation of consistent buttons using configurable typography and shapes. The system utilizes a modular CSS architecture where independent style and color classes are composed on single elements to produce varied visual effects, such as 3D or flat designs. It employs a declarative design framework that maps configuration options to real-time visual attributes via c
Uses a modular architecture combining independent style and color classes for varied visual effects.
Scalaz is a functional programming library for Scala that provides a collection of purely functional data structures and type classes. It functions as a framework for organizing functional behaviors into hierarchies to enable generic programming and type-safe transformations. The library includes tools for composing and managing nested functional effects within a single type stack through a monad transformer system. It provides data structures for representing and combining input, output, and optionality effects. The project covers a broad surface of functional abstractions, including the im
Defines shared behavior across types using a principled type class system and inheritance structure.
css-loader ist ein Webpack-Modul, das CSS-Dateien in JavaScript-Module umwandelt und deren interne Abhängigkeiten während des Bundling-Prozesses auflöst. Es fungiert als CSS-Asset-Resolver, der Import-Regeln und url-Funktionen in Modul-Identifikatoren übersetzt, um Stylesheets in einen Abhängigkeitsgraphen zu integrieren. Das Projekt implementiert CSS Modules, um globale Stil-Kollisionen zu verhindern, indem Klassen- und ID-Selektoren lokal mit eindeutigen Identifikatoren gekapselt werden. Es enthält ein System für Interoperable CSS (ICSS), das die gemeinsame Nutzung und Komposition von Stilen über verschiedene Klassen und Module hinweg durch wiederverwendbare Wertdeklarationen ermöglicht. Das Tool bietet Funktionen für die Asset-Pfad-Auflösung und die Generierung von Source-Maps, um gebündelte Stile mit den ursprünglichen Quelldateien zu verknüpfen. Es unterstützt zudem den Export von Stilen als konstruierbare Stylesheets und die Steuerung der Loader-Sequenzierung innerhalb einer Build-Pipeline.
Links multiple local class names together so that a single exported identifier includes multiple classes.
Mapperly is a C# source generator used for high-performance object-to-object mapping in .NET. It functions as a compile-time mapping library that produces the necessary transformation code during the build process, eliminating the need for runtime reflection when converting between domain models and data transfer objects. The tool distinguishes itself by providing type-safe diagnostic validation and strict mapping enforcement, emitting warnings for unmapped properties at compile time. It includes specialized capabilities for circular reference handling and deep cloning to maintain object iden
Resolves object mapping for interfaces and base types by identifying specific derived implementations.
Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for the Java platform. It is built around a Haskell-inspired compiler that implements non-strict evaluation and a static type inference system to ensure data immutability and prevent side effects. The project distinguishes itself through a sophisticated type system featuring rank polymorphism, type-class based dispatch, and static purity enforcement. It includes a JVM language bridge and a foreign function interface that map Java classes and interfaces into functional types, allow
Implements generic operations across data types using type classes and automatic instances.
CSS Guidelines ist ein umfassender Styleguide und eine Referenz für das Schreiben von wartbarem, skalierbarem und modularm CSS in großen Webprojekten. Es bietet eine Reihe professioneller Standards für die Organisation von Stylesheets und die Implementierung konsistenter Benennungsmuster, um die langfristige Gesundheit der Codebase zu verbessern und technische Schulden zu reduzieren. Das Projekt konzentriert sich auf eine strikte Methodik für das Scoping von Klassen, um isolierte und vorhersehbare Komponenten zu erstellen und Style-Leckagen zwischen unabhängigen Teilen einer Benutzeroberfläche zu verhindern. Es betont eine flache Selektor-Hierarchie, um Spezifitätskonflikte zu vermeiden, und fördert die Trennung von strukturellem Layout und visueller Ästhetik. Durch die Organisation von Code in logische Verzeichnisstrukturen und die Anwendung von Single-Responsibility-Designprinzipien stellen die Richtlinien sicher, dass Styles einfach zu aktualisieren und zu überschreiben sind, während ein Projekt wächst. Diese Standards decken die grundlegenden Aspekte des Aufbaus zuverlässiger Design-Systeme ab, einschließlich der Verwaltung von Kaskadierungsebenen und der Implementierung konsistenter Architektur-Patterns. Die Dokumentation dient als zentrale Ressource für Teams, die darauf abzielen, vorhersehbare, qualitativ hochwertige Styling-Konventionen über komplexe Interfaces hinweg zu etablieren.
Encourages the use of single-purpose utility classes to maximize visual code reuse.