Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add capability for working with type sums and products #563

Closed
xsebek opened this issue Jul 18, 2022 · 2 comments · Fixed by #663
Closed

Add capability for working with type sums and products #563

xsebek opened this issue Jul 18, 2022 · 2 comments · Fixed by #663
Assignees
Labels
C-Low Hanging Fruit Ideal issue for new contributors. G-Design An issue having to do with game design. L-Capability checking Capability checking determines which capabilities are required by a given piece of code. Z-Feature A new feature to be added to the game.

Comments

@xsebek
Copy link
Member

xsebek commented Jul 18, 2022

There should be some capability(ies) and device(s) for working with type sums (alternative) and products (tuples):

  • sums: Inl, Inr, Case
  • products: Fst, Snd

It would help with organically introducing the language features in-game, provide a reference in entity description and also get notified about it by flashing command help as you obtained new capability.

Ideas:

  • printer + calculator --> typing device that would allow both sums and products, with the explanation that you are performing arithmetic on types
    • the downside is that calculator is hard to make, so maybe the typing device could also provide normal arithmetic?
@xsebek xsebek added Z-Feature A new feature to be added to the game. C-Low Hanging Fruit Ideal issue for new contributors. L-Capability checking Capability checking determines which capabilities are required by a given piece of code. G-Design An issue having to do with game design. labels Jul 18, 2022
@byorgey
Copy link
Member

byorgey commented Jul 18, 2022

Hah, I like the idea of making some kind of upgraded calculator to do type arithmetic. And having it also provide normal arithmetic sounds fine. Some additional bikeshedding thoughts:

  • I don't see what a printer has to do with anything.
    • Maybe a calculator + some sort of flying/lifting device (because you are doing arithmetic "lifted up to the type level")?
      • Maybe we could make a (difficult-to-construct) wings device which would also provide robots the ability to fly over mountains, boulders, and water?
      • That could be fun regardless of what we decide about this issue.
    • Oh, hmm, maybe you meant it as a pun on typing? How about changing the name of a printer to typewriter? 😄 Then the recipe could be typewriter + calculator like you suggested.
  • I'd like to come up with a funnier / less generic name than typing device. smart calculator seems too obvious. type-level calculator is also too generic and maybe too long. Hmm, how about an ADT calculator, and we make a joke in the description that says it stands for advanced display technology (since it can now print out answers using the typewriter, of course 😄 )? Just brainstorming here, very open to other ideas.

@xsebek
Copy link
Member Author

xsebek commented Jul 18, 2022

Typewriter was what I was going for. 👍

I am not sure what the in-word-description of such advanced display technology would be, but I am all for more jokes and puns! 😄

@byorgey byorgey self-assigned this Sep 1, 2022
byorgey added a commit that referenced this issue Sep 6, 2022
@mergify mergify bot closed this as completed in #663 Sep 7, 2022
mergify bot pushed a commit that referenced this issue Sep 7, 2022
Add `ADT calculator` entity (recipe: `calculator` + `I/O cable` + `typewriter`) which conveys capabilities to work with sum and product types (`inl`, `inr`, `case`; pairs, `fst`, `snd`).

Closes #563 .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Low Hanging Fruit Ideal issue for new contributors. G-Design An issue having to do with game design. L-Capability checking Capability checking determines which capabilities are required by a given piece of code. Z-Feature A new feature to be added to the game.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants