diff --git a/public/static/images/shu-uesugi-machupicchu.jpg b/public/static/images/shu-uesugi-machupicchu.jpg index 998699756..8b1c3de37 100644 Binary files a/public/static/images/shu-uesugi-machupicchu.jpg and b/public/static/images/shu-uesugi-machupicchu.jpg differ diff --git a/scripts/lib/runnerConfigs.ts b/scripts/lib/runnerConfigs.ts index 00670394c..0ec922e78 100644 --- a/scripts/lib/runnerConfigs.ts +++ b/scripts/lib/runnerConfigs.ts @@ -1709,6 +1709,14 @@ export const xusi: ExpressionRunnerShorthandConfig = { explanationsVisibility: 'visible' } +export const zjto: ExpressionRunnerShorthandConfig = { + runner: 'simple', + initialExpressionContainer: initialExpressionContainers.udaf, + showPriorities: true, + initialState: 'needsAlphaConvert', + explanationsVisibility: 'visible' +} + export const lipt: ExpressionRunnerShorthandConfig = { runner: 'runButtonOnly', initialExpressionContainer: initialExpressionContainers.udaf, diff --git a/src/components/ExpressionRunnerExplanation.tsx b/src/components/ExpressionRunnerExplanation.tsx index 30c885827..37ffc2f81 100644 --- a/src/components/ExpressionRunnerExplanation.tsx +++ b/src/components/ExpressionRunnerExplanation.tsx @@ -27,13 +27,13 @@ const allAtOnce = (hideFuncUnboundBadge?: boolean) => locale === 'en' ? ( <> Label items as {' '} - {' '} + {' '} {!hideFuncUnboundBadge && ( <> {' '} )} - {' '} + {' '} ) : ( <> diff --git a/src/components/H.tsx b/src/components/H.tsx index 1e2a60d94..220c0de84 100644 --- a/src/components/H.tsx +++ b/src/components/H.tsx @@ -247,7 +247,7 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { return (

Hello! This is page {episodeNumber + 1}{' '} - of a course called “ + of the course called “ {lessonTitle} ”. If you just got here,{' '} @@ -1934,14 +1934,14 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { Things I’m pretty good at:{' '} - Expository writing (like this course),{' '} + Expository writing (like this course) and{' '} React/TypeScript ( see the repo for this course - ), and product design (but not visual - design). I’ve also worked with Rails from - version 1 to version 6. + ). I’m okay at product design. I’ve also + worked with Rails from version 2 to + version 6. Current interests: As a professional EN → JP diff --git a/src/components/Runners/Zjto.tsx b/src/components/Runners/Zjto.tsx new file mode 100644 index 000000000..f80fc454a --- /dev/null +++ b/src/components/Runners/Zjto.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import ExpressionRunnerPrecomputed from 'src/components/ExpressionRunnerPrecomputed' +import config from 'src/lib/runners/zjto.json' + +const Zjto = ({ children }: { children?: React.ReactNode }) => ( + // @ts-ignore + + {children} + +) + +export default Zjto diff --git a/src/components/Runners/fakeIndex.ts b/src/components/Runners/fakeIndex.ts index 9e92c0481..ace63025f 100644 --- a/src/components/Runners/fakeIndex.ts +++ b/src/components/Runners/fakeIndex.ts @@ -243,6 +243,7 @@ export { default as Hiag } from 'src/components/FakeRunner' export { default as Gqct } from 'src/components/FakeRunner' export { default as Zwut } from 'src/components/FakeRunner' export { default as Xusi } from 'src/components/FakeRunner' +export { default as Zjto } from 'src/components/FakeRunner' export { default as Lipt } from 'src/components/FakeRunner' export { default as Zzhq } from 'src/components/FakeRunner' export { default as Mzys } from 'src/components/FakeRunner' diff --git a/src/components/Runners/index.ts b/src/components/Runners/index.ts index 06fb7bd3b..401411b63 100644 --- a/src/components/Runners/index.ts +++ b/src/components/Runners/index.ts @@ -243,6 +243,7 @@ export { default as Hiag } from 'src/components/Runners/Hiag' export { default as Gqct } from 'src/components/Runners/Gqct' export { default as Zwut } from 'src/components/Runners/Zwut' export { default as Xusi } from 'src/components/Runners/Xusi' +export { default as Zjto } from 'src/components/Runners/Zjto' export { default as Lipt } from 'src/components/Runners/Lipt' export { default as Zzhq } from 'src/components/Runners/Zzhq' export { default as Mzys } from 'src/components/Runners/Mzys' diff --git a/src/contents/10.en.tsx b/src/contents/10.en.tsx index acf6ec17d..d1d8a62e8 100644 --- a/src/contents/10.en.tsx +++ b/src/contents/10.en.tsx @@ -115,10 +115,12 @@ export default () => ( type: 'devil', children: ( <> -

I can’t return those yet.

+

+ I can’t return those yet. +

- The only one I’m returning you now is mathboxes with{' '} + The only ones I’m returning for now are mathboxes with{' '} .

@@ -137,10 +139,7 @@ export default () => ( type: 'crying', children: ( <> -

- But… you said, you’ll return our mathboxes if we solve - that difficult problem! -

+

But… you promised to return the mathboxes!

) }, @@ -349,8 +348,7 @@ export default () => ( { title: ( <> - A hint for reproducing{' '} - + A hint for reproducing ), content: ( @@ -373,8 +371,11 @@ export default () => ( children: ( <>

- Yes. Let me give you a hint for reproducing{' '} - ! + Yes.{' '} + + Let me give you a hint for reproducing{' '} + ! +

) @@ -474,10 +475,7 @@ export default () => ( children: ( <>

But… this lunchbox looks so complicated!

-

- I don’t think we can figure out how to fill each{' '} - icon… -

+

I don’t think we can do it…

) } @@ -491,7 +489,8 @@ export default () => ( content: ( <>

- The villagers were struggling, but looks like Saya’s got an idea: + The villagers were struggling, but it looks like Saya’s got an + idea:

( , right?

+ , + , + + ]} + description={ + <> + We want it to calculate {' '} + + + } + /> ) } @@ -668,7 +680,7 @@ export default () => ( <>

- You don’t have to follow all the steps! + You don’t have to follow all the steps with your eyes! {' '} Just glance over it. Save your eyes!

@@ -680,7 +692,7 @@ export default () => ( children: ( <>

- Take a look!{' '} + But guys, take a look!{' '} ( />{' '} are both now.

+

The special rule applies, and the{' '} @@ -722,13 +735,15 @@ export default () => ( children: ( <>

- The special rule just applied, and the{' '} - in{' '} - {' '} - became . + + The special rule just applied, and the{' '} + in{' '} + {' '} + became . +

Now, let’s {' '} @@ -764,6 +779,8 @@ export default () => ( }} /> + + ( } ]} /> - + Combine 👧🏻 Saya’s lunchbox with
a lunchbox that can be converted to … -
+ - + The result is a lunchbox that can be
converted to -
+ (

Well: Just because you were able to calculate {' '} - , it doesn’t necessarily mean - that your lunchbox has reproduced{' '} - . + ,{' '} + + it doesn’t necessarily mean that your lunchbox has + reproduced . +

- It needs to be able to subtract 1 from{' '} - any number. + + It needs to be able to subtract 1 from{' '} + any number. +

+ , + , + , + , + + ]} + description={ + <> + It needs to be able to subtract 1 from
+ any number. + + } + /> ) }, @@ -880,9 +916,11 @@ export default () => ( children: ( <>

- For example, can your lunchbox calculate{' '} - {' '} - ? + For example:{' '} + + Can your lunchbox calculate {' '} + ? +

) @@ -952,7 +990,8 @@ export default () => ( - You don’t have to follow all the steps! + You don’t have to follow all the steps with your + eyes! {' '} Just glance over it. @@ -1083,11 +1122,13 @@ export default () => ( type: 'devil', children: ( <> -

I didn’t think you’ll get it this easily

- But Saya is correct! Her lunchbox - does reproduce !{' '} - 🎉 + Saya is correct!{' '} + + Her lunchbox does reproduce{' '} + !{' '} + 🎉 +

) @@ -1126,8 +1167,9 @@ export default () => ( children: ( <>

- No, I’m just lucky. But anyway, we’ve reproduced{' '} - ! + No, I’m just lucky. But anyway, we showed that{' '} + can be + reproduced using a lunchbox!

) @@ -1301,7 +1343,7 @@ export default () => ( children: ( <>

- Well, but{' '} + But{' '} I won’t give you back{' '} yet. diff --git a/src/contents/10.jp.tsx b/src/contents/10.jp.tsx index 9d0f9ab19..ffca47f2c 100644 --- a/src/contents/10.jp.tsx +++ b/src/contents/10.jp.tsx @@ -679,6 +679,7 @@ export default () => ( が同じ になったよ!

+

前回と同じように @@ -753,6 +754,8 @@ export default () => ( }} /> + + ( ) +const ReproduceWithNoNegativeMargin = () => ( + <> + + + Repeat +
+ times +
+ + + Reproduce with +
a lunchbox + + } + /> + + } + right={ + <> + + Repeat +
+ times +
+ + + Reproduce with +
a lunchbox + + } + /> + + } + /> + +) + export default () => ( ( ) }, { + type: 'summary', title: ( <> Review: @@ -110,54 +160,19 @@ export default () => ( reproduce this using a lunchbox to get it back.

- - - Repeat -
- times -
- - - Reproduce with -
a lunchbox - - } - /> - - } - right={ - <> - - Repeat -
- times -
- - - Reproduce with -
a lunchbox - - } - /> - - } - /> +

In case you forgot about , let’s do a quick review!

+ + Let’s review ! + + } + />

Take a look at this mathbox and : @@ -167,6 +182,7 @@ export default () => ( ) }, { + type: 'summary', title: ( <>It’s necessary for additions and subtractions of large numbers ), @@ -191,7 +207,7 @@ export default () => ( } />

- Example (from beginner 2):{' '} + Example (from Beginner 2):{' '} If you don’t use , {' '} @@ -264,9 +280,10 @@ export default () => ( />

The villagers have been trying hard to reproduce{' '} - using a lunchbox. However, - looks like it’s not going well for them. + using a lunchbox.

+ +

However, looks like it’s not going well for them.

( children: ( <>

- ? What’s that? + + ? What’s that?

) @@ -385,19 +405,24 @@ export default () => (

What’s this?

    - It contains ,{' '} - , and{' '} - . + + It contains ,{' '} + , and{' '} + . + - On the left, there are three signs:{' '} - {' '} - {' '} - + + On the left, there are three signs:{' '} + {' '} + {' '} + +

- It looks like a traffic signal 🚦… + It looks like a traffic signal{' '} + 🚦

) @@ -409,10 +434,11 @@ export default () => (

First:{' '} - You can put any number on each of{' '} + You can fill each of{' '} ,{' '} , and{' '} - . + with any + number.

The numbers could be all the same or all different.

@@ -429,11 +455,11 @@ export default () => ( ]} description={ <> - You can put any number on each of + You can fill each of
,{' '} , and{' '} - + with any number } /> @@ -463,6 +489,8 @@ export default () => ( } ]} /> + + Used {' '} for{' '} @@ -669,8 +697,8 @@ export default () => ( <>

Question: If we{' '} - , will it - become like this? + it, will + it become like this?

) @@ -707,7 +735,7 @@ export default () => ( .

- + :

) @@ -723,14 +751,17 @@ export default () => ( <>

Let me explain why!

- First It checks if{' '} - {' '} - is . + First:{' '} + + It checks if{' '} + {' '} + is . +

) @@ -745,23 +776,23 @@ export default () => ( children: ( <>

- This time,{' '} + This time:{' '} - what’s in{' '} + What’s in{' '} {' '} - is not . + is NOT . {' '} Instead, it’s .

- In this case,{' '} + In this case:{' '} - the number in{' '} + The number in{' '} (

- If it’s not : + If it’s NOT : {' '} in{' '} {' '} @@ -914,7 +945,7 @@ export default () => ( You probably didn’t know this, but{' '} is actually - one of the secret features of a mathbox. + the secret feature of a mathbox.

@@ -931,8 +962,8 @@ export default () => ( ]} description={ <> - It’s a secret feature of a mathbox{' '} - + It’s the secret feature of a + mathbox } /> @@ -954,7 +985,7 @@ export default () => ( In fact,{' '} has been - forgotten by most people, + forgotten by the people in Lambda Village, {' '} because it’s not a very useful feature.

@@ -1108,7 +1139,7 @@ export default () => ( Yes.{' '} So you should first try to reproduce{' '} - first. + .

diff --git a/src/contents/11.jp.tsx b/src/contents/11.jp.tsx index 813fbbf40..3d4592563 100644 --- a/src/contents/11.jp.tsx +++ b/src/contents/11.jp.tsx @@ -50,6 +50,45 @@ export const FalseCaseExplanation = () => ( ) +const ReproduceWithNoNegativeMargin = () => ( + <> + + + {' '} + 回
+ 繰り返す +
+ + 弁当箱で再現} + /> + + } + right={ + <> + + を{' '} +
+ 繰り返す +
+ + 弁当箱で再現} + /> + + } + /> + +) + export default () => ( ( ) }, { + type: 'summary', title: ( <> 「 @@ -101,44 +141,20 @@ export default () => ( 」は、まだ返してもらっていません。これを弁当箱で再現できないと返してもらえないのです。

- - - を{' '} -
- 繰り返す -
- - 弁当箱で再現} - /> - - } - right={ - <> - - を{' '} -
- 繰り返す -
- - 弁当箱で再現} - /> - - } - /> +

」について忘れてしまった方も多いと思うので、ここで復習をしましょう。

+ + 「 + 」の復習をしましょう! + + } + />

まず、こちらの計算箱をご覧になり、 @@ -148,6 +164,7 @@ export default () => ( ) }, { + type: 'summary', title: <>大きな数の足し算や引き算に役立つ, content: ( <> @@ -243,8 +260,10 @@ export default () => ( ラムダ村の村人たちは、計算箱の「 」を 😈{' '} - 悪魔から返してもらうべく、弁当箱で繰り返しの機能を再現しようと頑張っていました。しかし… + 悪魔から返してもらうべく、弁当箱で繰り返しの機能を再現しようと頑張っていました。

+ +

しかし、あまり上手くいってないようです。

( } ]} /> + + {' '} {' '} diff --git a/src/contents/12.en.tsx b/src/contents/12.en.tsx index 6191ed3c6..262ac9f70 100644 --- a/src/contents/12.en.tsx +++ b/src/contents/12.en.tsx @@ -56,10 +56,12 @@ export default () => ( children: ( <>

- Let’s review again: If{' '} - is{' '} - , then the result is{' '} - … + Let’s review again:{' '} + + If is{' '} + , then the result is{' '} + … +

) @@ -74,9 +76,12 @@ export default () => ( children: ( <>

- And, if is NOT{' '} - , then the result is{' '} - . + And:{' '} + + If is NOT{' '} + , then the result is{' '} + . +

) @@ -234,8 +239,10 @@ export default () => ( children: ( <>

- The result is ! + The result is a lunchbox that can be converted to{' '} + !

+ ) }, @@ -393,9 +400,10 @@ export default () => ( children: ( <>

- This time, the result is{' '} - ! + This time, the result is a lunchbox that can be + converted to !

+ ) }, @@ -483,7 +491,9 @@ export default () => ( 👧🏻 Using a lunchbox!
- Question: Is this the correct answer? + Question: Is this the correct way to +
+ reproduce it?
( type: 'saya', children: ( <> -

As a final check:

+

+ As a final check: +

    @@ -604,8 +616,10 @@ export default () => ( children: ( <>

    - Let’s try the same thing with my lunchbox, and see if - the result is also . + + Let’s try the same thing with my lunchbox, and see if + the result is also . +

      @@ -642,7 +656,7 @@ export default () => ( If it becomes a lunchbox that can be
      - converted to , then{' '} + converted to , then{' '} success 🎉
      @@ -653,15 +667,11 @@ export default () => ( children: ( <>

      - I see, if the result is the same as using{' '} - … -

      -

      - We can be pretty sure that Saya’s lunchbox has{' '} - reproduced{' '} + I see, if this works, we can be pretty sure that Saya’s + lunchbox has reproduced{' '} correctly. - Let’s check!

      +

      Let’s check!

      ) } @@ -743,8 +753,42 @@ export default () => ( />

      - Because the result is , it’s a - success! 🎉 + The result is ,{' '} + + which is the same as using{' '} + + + . +

      + + ) + } + ]} + /> +

      + If we use : +

      + + + + The result is + +

      + If we use 👧🏻 Saya’s lunchbox: +

      + + + + The result is also + + +

      + So it’s a success! 🎉

      ) @@ -915,6 +959,7 @@ export default () => ( name: 'repeatFeature' }} /> + ? ), content: ( diff --git a/src/contents/12.jp.tsx b/src/contents/12.jp.tsx index 1e57608a8..412971550 100644 --- a/src/contents/12.jp.tsx +++ b/src/contents/12.jp.tsx @@ -251,6 +251,7 @@ export default () => ( {' '} に変換できる弁当箱が残った!

      + ) }, @@ -419,6 +420,7 @@ export default () => ( {' '} に変換できる弁当箱が残った!

      + ) }, @@ -675,7 +677,7 @@ export default () => ( - に変換できる弁当箱 + に変換できる弁当箱
      になれば成功 🎉
      @@ -779,7 +781,7 @@ export default () => ( が残ったので、 成功 - 🎉 です! + 🎉 だよ!

      ) @@ -791,9 +793,34 @@ export default () => (

      やったー、さすがサヤちゃん!

      ) + }, + { + type: 'dog', + children: ( + <> +

      すごい!まとめると、下のようになります!

      + + ) } ]} /> +

      + 「 + 」を使った場合: +

      + + + + 結果は になる + +

      + 👧🏻 サヤの弁当箱を使った場合: +

      + + + + 結果は になる + ) }, diff --git a/src/contents/14.en.tsx b/src/contents/14.en.tsx index 6de4657cd..f7e699424 100644 --- a/src/contents/14.en.tsx +++ b/src/contents/14.en.tsx @@ -195,7 +195,8 @@ export default () => (
      - You don’t have to follow all the steps! + You don’t have to follow all the steps with your + eyes! {' '} Just glance over it. Save your eyes! diff --git a/src/contents/2.en.tsx b/src/contents/2.en.tsx index 3b3505e66..0e3c7bc49 100644 --- a/src/contents/2.en.tsx +++ b/src/contents/2.en.tsx @@ -55,11 +55,11 @@ export const Conclusion = () => ( }} /> ,{' '} - + you’ll always use the correct number of ’s or ’s - + . You can be confident that your additions and subtractions are accurate.

      diff --git a/src/contents/7.en.tsx b/src/contents/7.en.tsx index aa2a60a3a..95ac2efa3 100644 --- a/src/contents/7.en.tsx +++ b/src/contents/7.en.tsx @@ -652,8 +652,7 @@ export default () => ( content: ( <>

      - Need a review?: To solve the above - lunchbox,{' '} + Need a review? To solve the above lunchbox,{' '} we’ll need to use the rules from{' '} Beginner 5. diff --git a/src/contents/8.en.tsx b/src/contents/8.en.tsx index c50633d68..24977b7cd 100644 --- a/src/contents/8.en.tsx +++ b/src/contents/8.en.tsx @@ -25,7 +25,7 @@ import NextLessonButton from 'src/components/NextLessonButton' import { Problem, StepOne, StepTwo, StepThree } from 'src/contents/7.en' import CardContent from 'src/components/CardContent' -export const BlankNumberPlusOne = () => ( +const BlankNumberPlusOne = () => ( <> Combine 👧🏻 Saya’s lunchbox @@ -45,6 +45,23 @@ export const BlankNumberPlusOne = () => ( ) +export const ReproducePlusOne = () => ( + <> + + In a mathbox, we use + + + + In a lunchbox, we use +
      + 👧🏻 Saya’s lunchbox to{' '} + reproduce +
      + . +
      + +) + export default () => ( ( } ]} /> - - In a mathbox, we use - - - - In a lunchbox, we use -
      - 👧🏻 Saya’s lunchbox to{' '} - reproduce -
      - . -
      + ) }, diff --git a/src/contents/9.en.tsx b/src/contents/9.en.tsx index 6a4df5996..7fb2c4240 100644 --- a/src/contents/9.en.tsx +++ b/src/contents/9.en.tsx @@ -24,7 +24,7 @@ import BottomRightBadge from 'src/components/BottomRightBadge' import TwoColGrid from 'src/components/TwoColGrid' import * as R from 'src/components/Runners' import NextLessonButton from 'src/components/NextLessonButton' -import { BlankNumberPlusOne } from 'src/contents/8.en' +import { ReproducePlusOne } from 'src/contents/8.en' export const SpecialRule = () => ( <> @@ -54,12 +54,14 @@ export default () => ( content: ( <>

      - On the last page, we learned that: By using{' '} - 👧🏻 Saya’s lunchbox, we can{' '} - reproduce{' '} - of a mathbox. + On the last page, we learned that,{' '} + + by using 👧🏻 Saya’s lunchbox, we can{' '} + reproduce{' '} + of a mathbox. +

      - +

      That’s it for the quick review. Let’s continue!

      @@ -214,7 +216,7 @@ export default () => ( children: ( <>

      - Why?: Because it doesn’t follow this + Why not? Because it doesn’t follow this pattern.

      @@ -226,9 +228,11 @@ export default () => ( />

      - There needs to be exactly one 🅱️ on the - top-right, but there are two in this - case. + + There needs to be exactly one 🅱️ on the + top-right, but there are two in this + case. +

      ) @@ -457,7 +461,8 @@ export default () => (

      - In this case, is in both{' '} + In this case, {' '} + is in both{' '} (

      Here’s a simple example:

        - The left lunchbox has different{' '} + The left lunchbox has different{' '} ( . - The right lunchbox has the same{' '} + The right lunchbox has the same{' '} ( .

        - This failed because was in - both{' '} + This failed because{' '} + was in both{' '} ( Couldn’t calculate {' '}
        - because was in both{' '} + because was in both{' '} and{' '} ,
        @@ -919,9 +924,9 @@ export default () => ( - + Change one of them to something different. - +

      @@ -948,7 +953,11 @@ export default () => ( /> and{' '} ,
      - change one of them to something different + + change one of them to +
      + something different +
      } /> @@ -1050,7 +1059,8 @@ export default () => ( inline bottomRightBadgeType="funcUnbound" /> - … (in this case: ) + … (in this case:{' '} + )

      ) @@ -1065,13 +1075,15 @@ export default () => ( children: ( <>

      - Because of this special rule: The{' '} - in{' '} - {' '} - will now become something else. + Because of this special rule:{' '} + + The in{' '} + {' '} + will now become something else. +

      ( children: ( <>

      + + on the top + became ! + +

      +

      + And{' '} ( children: ( <>

      - Let’s continue then! + Yes. Let’s continue then!{' '} +

      ) @@ -1235,7 +1255,8 @@ export default () => ( content: ( <>

      - If you combine 👧🏻 Saya’s lunchbox which reproduces{' '} + What we learned: If you combine 👧🏻{' '} + Saya’s lunchbox which reproduces{' '}

      @@ -1257,9 +1278,9 @@ export default () => ( />

      - Then, there will be the same item ( + Then: There will be the same item ( - + ) in both{' '} and{' '} @@ -1272,7 +1293,7 @@ export default () => (

      - + {' '} is in both{' '} and{' '} @@ -1299,6 +1320,8 @@ export default () => ( in this case:

      + +

      By doing this, it will be able to calculate{' '} diff --git a/src/contents/9.jp.tsx b/src/contents/9.jp.tsx index e4bd323e5..0a2b499fd 100644 --- a/src/contents/9.jp.tsx +++ b/src/contents/9.jp.tsx @@ -1294,6 +1294,8 @@ export default () => (

    + +

    これにより、正しく {' '} diff --git a/src/lib/runners/zjto.json b/src/lib/runners/zjto.json new file mode 100644 index 000000000..26a4f37e7 --- /dev/null +++ b/src/lib/runners/zjto.json @@ -0,0 +1,181 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "name": "b", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "c", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "f", + "highlightType": "highlighted", + "topLeftBadgeType": "conflict", + "bottomRightBadgeType": "callArg", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": true, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "f", + "highlightType": "highlighted", + "topLeftBadgeType": "conflict", + "bottomRightBadgeType": "callArg", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "name": "e", + "highlightType": "active", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "funcArg", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": true, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "b", + "highlightType": "active", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "funcBound", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "arg": { + "name": "f", + "highlightType": "highlighted", + "topLeftBadgeType": "conflict", + "bottomRightBadgeType": "funcUnbound", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "c", + "highlightType": "active", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "funcBound", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 1 + }, + "func": { + "name": "e", + "highlightType": "active", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "funcBound", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "state": "needsAlphaConvert", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "type": "function", + "maxNestedFunctionDepth": 4 + }, + "previouslyChangedExpressionState": "needsAlphaConvert", + "activePriority": 1, + "containerState": "stepped", + "numLeafNodes": 4 + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "visible", + "hidePriorities": false, + "hideRunButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +}