Comments (6)
I know this issue is related to general refactoring and improvement of the metaprogramming powering the GATExpr stuff. This package which implements ML/Haskell style patternmatching as julia macros might make things easier. https://github.com/thautwarm/MLStyle.jl#generalized-algebraic-data-types
I know adding more dependencies isn't always a good thing, but this has been around for over a year and everythin @thautwarm does is usually awesome. Just putting it out there as something that could help. Then we could implement GATs out of GADTS so we can can have algebraic data while we have algebraic theories.
from catlab.jl.
Glad to know this. I know some about universal algebras but not familiar with categories. When you want to start refactoring this, feel free to ask me to work together(since Feb 1, I will have some bandwidth).
P.S: MLStyle can be developing time only dependencies, so don't worry about the dependency issues, if you can get help from mine. However, the generated code now is actually unreadable because currently there's no way to dump Julia ASTs to restore-able and readable source code.
from catlab.jl.
Hi, thank you for mentioning me here. I'm very interested in your works and, I checked your documentation, it seems that @signature
and @instance
are very close to some notions such as implicit first class modules or type classes.
I guess this repo, my type class implementation in Julia, might be helpful to your works.
Further collaboration is always welcome.
from catlab.jl.
This example seems particularly relevant https://thautwarm.github.io/CanonicalTraits.jl/stable/#Use-Case:-Modeling-Algebraic-Structures-1
from catlab.jl.
@jpfairbanks, thanks for noticing this connection.
@thautwarm, your package looks very nice! There is definitely overlap here, which is not surprising since Catlab's signatures/instances was inspired by a similar feature in the now defunct Cateno, which was in turn inspired by Haskell type classes. When I have the bandwidth to start addressing the issue, I'll reach out to see what we can do together.
from catlab.jl.
BTW, from my perspective, universal algebra has been swallowed by category theory. You can do universal algebra categorically, using Lawvere theories, but category theory has the tools to generalize and mutate universal algebra in all sorts of directions that are not obvious within the framework of traditional universal algebra.
from catlab.jl.
Related Issues (20)
- Fix an empty tuple problem ahead of Julia 1.10
- GATs are missing from API docs
- Warnings about cross references from docs build
- Move from JSON.jl to JSON3.jl
- Constraints on attributes in `maximum_common_subobject` HOT 5
- Maximum_common_subobject changes ordering
- Better graphviz support for bipartite graphs HOT 1
- Refactor FinSets from FinSetImpls, etc
- Add features to VM based hom search
- Ambiguities detected from Aqua
- Question about abstract vs. concrete type in `enumerate_paths` HOT 2
- `SigmaMigrationFunctor` method uses an undefined variable HOT 2
- Bug in `product` keyword arguments
- free-floating URLs not parsed well by documenter HOT 1
- Coproduct with looseACSetTransformations HOT 2
- Parameters in queries for attributes that are unions HOT 3
- Keyword argument for sending attrvars to other attrvars
- `Homomorphism` should error if there are multiple homomorphisms
- `representable` fails on attribute types
- Incorrect generation of state names?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from catlab.jl.