Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sjbiaga/hascalam
Haskell to and from Scalameta
https://github.com/sjbiaga/hascalam
cabal-package haskell metaprogramming perl-script scalameta
Last synced: 26 days ago
JSON representation
Haskell to and from Scalameta
- Host: GitHub
- URL: https://github.com/sjbiaga/hascalam
- Owner: sjbiaga
- License: mit
- Created: 2024-05-30T11:49:07.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-07-07T13:42:32.000Z (4 months ago)
- Last Synced: 2024-09-29T19:01:22.495Z (about 1 month ago)
- Topics: cabal-package, haskell, metaprogramming, perl-script, scalameta
- Language: Haskell
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
HaScalaM
=========It converts (textually) to and fro between `Haskell` and `Scalameta` `AST`s.
Use a script to convert from `Scalameta` "`Source`" string to mirroring `Haskell`
classes, types and instances. Use the `Show` instances to convert from mirrored
`Haskell` types to `Scalameta` string.It is fairly complete as far as `Scalameta` coverage is concerned.
It starts with "constraint" classes corresponding to `Scalameta` traits,
goes through types corresponding to OOP, and ends with wrapper types that
have `Show` instances.The disadvantage is that constructors are "doubled", e.g., "`TDo (SmDoT`" is
required, because "`TDo`" involves type equality, while "`SmDoT`" only uses type
constraints. ("`T`" stands for "`term`".)It is used [here](https://github.com/sjbiaga/pisc-dotarrow) at the
metaprogramming level to convert to and fro between `Scala` and `Haskell`.