Description:A grab bag of all v0.1 syntax, heavily commented to show multiline formatting

Type: file

**UNDECLARED TYPE** The type ``Bar`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:36:8:36:11:** ```roc Foo : (Bar, Baz) ``` ^^^
**UNDECLARED TYPE** The type ``Baz`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:36:13:36:16:** ```roc Foo : (Bar, Baz) ``` ^^^
**UNDECLARED TYPE** The type ``Bar`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:39:2:39:5:** ```roc Bar, # Comment after pattern tuple item ``` ^^^
**UNDECLARED TYPE** The type ``Baz`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:40:2:40:5:** ```roc Baz, # Another after pattern tuple item ``` ^^^
**UNDECLARED TYPE** The type ``Something`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:43:32:43:41:** ```roc Some(a) : { foo : Ok(a), bar : Something } ``` ^^^^^^^^^
**UNDECLARED TYPE** The type ``Something`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:46:8:46:17:** ```roc bar : Something, # After last field ``` ^^^^^^^^^
**UNDECLARED TYPE** The type ``Something`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:53:8:53:17:** ```roc bar : Something, # Another after pattern record field ``` ^^^^^^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: malformed import module name contains invalid control characters Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: Exposed item 'line!' already imported from module 'pf.Stdout', cannot import again from module 'MALFORMED_IMPORT' Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: Exposed item 'write!' already imported from module 'pf.Stdout', cannot import again from module 'MALFORMED_IMPORT' Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize dbg expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize dbg expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**UNUSED VARIABLE** Variable ``lower`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_lower` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:97:3:97:8:** ```roc lower # After pattern comment ``` ^^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**UNUSED VARIABLE** Variable ``rest`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_rest` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:102:19:102:23:** ```roc [1, 2, 3, .. as rest] # After pattern comment ``` ^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**UNUSED VARIABLE** Variable ``rest`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_rest` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:108:23:108:27:** ```roc [1, 2 | 5, 3, .. as rest] => 123 ``` ^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**UNUSED VARIABLE** Variable ``rest`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_rest` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:115:6:115:10:** ```roc rest, # After last pattern in list ``` ^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize alternatives pattern Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: record pattern with sub-patterns Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize local_dispatch expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: record pattern with sub-patterns Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: record pattern with sub-patterns Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: record pattern with sub-patterns Let us know if you want to help!
**UNUSED VARIABLE** Variable ``b`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_b` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:82:2:82:3:** ```roc b, ``` ^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: top-level expect Let us know if you want to help!
**UNDECLARED TYPE** The type ``String`` is not declared in this scope. This type is referenced here: **syntax_grab_bag.md:143:14:143:20:** ```roc main! : List(String) -> Result({}, _) ``` ^^^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: statement type in block Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: statement type in block Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: ... Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: ... Let us know if you want to help!
**UNDEFINED VARIABLE** Nothing is named `some_func` in this scope. Is there an `import` or `exposing` missing up-top?
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize dbg expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: crash statement Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize dbg expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: statement type in block Let us know if you want to help!
**UNDEFINED VARIABLE** Nothing is named `punned` in this scope. Is there an `import` or `exposing` missing up-top?
**UNDEFINED VARIABLE** Nothing is named `nested` in this scope. Is there an `import` or `exposing` missing up-top?
**UNDEFINED VARIABLE** Nothing is named `tag1` in this scope. Is there an `import` or `exposing` missing up-top?
**UNDEFINED VARIABLE** Nothing is named `nested` in this scope. Is there an `import` or `exposing` missing up-top?
**UNDEFINED VARIABLE** Nothing is named `foo` in this scope. Is there an `import` or `exposing` missing up-top?
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize suffix_single_question expression Let us know if you want to help!
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: canonicalize suffix_single_question expression Let us know if you want to help!
**UNDEFINED VARIABLE** Nothing is named `toStr` in this scope. Is there an `import` or `exposing` missing up-top?
**UNUSED VARIABLE** Variable ``multiline_tuple`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_multiline_tuple` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:180:2:180:17:** ```roc multiline_tuple = ( ``` ^^^^^^^^^^^^^^^
**UNUSED VARIABLE** Variable ``record`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_record` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:178:2:178:8:** ```roc record = { foo: 123, bar: "Hello", baz: tag, qux: Ok(world), punned } ``` ^^^^^^
**UNUSED VARIABLE** Variable ``tag_with_payload`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_tag_with_payload` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:164:2:164:18:** ```roc tag_with_payload = Ok(number) ``` ^^^^^^^^^^^^^^^^
**UNUSED VARIABLE** Variable ``list`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_list` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:166:2:166:6:** ```roc list = [ ``` ^^^^
**UNUSED VARIABLE** Variable ``bin_op_result`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_bin_op_result` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:188:2:188:15:** ```roc bin_op_result = Err(foo) ?? 12 > 5 * 5 or 13 + 2 < 5 and 10 - 1 >= 16 or 12 <= 3 / 5 ``` ^^^^^^^^^^^^^
**UNUSED VARIABLE** Variable ``static_dispatch_style`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_static_dispatch_style` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:189:2:189:23:** ```roc static_dispatch_style = some_fn(arg1)?.static_dispatch_method()?.next_static_dispatch_method()?.record_field? ``` ^^^^^^^^^^^^^^^^^^^^^
**UNUSED VARIABLE** Variable ``interpolated`` is not used anywhere in your code. If you don't need this variable, prefix it with an underscore like `_interpolated` to suppress this warning. The unused variable is declared here: **syntax_grab_bag.md:165:2:165:14:** ```roc interpolated = "Hello, ${world}" ``` ^^^^^^^^^^^^
**NOT IMPLEMENTED** This feature is not yet implemented or doesn't have a proper error report yet: top-level expect Let us know if you want to help!
**TYPE MISMATCH** This expression is used in an unexpected way: **syntax_grab_bag.md:68:1:68:8:** ```roc add_one = |num| { ``` ^^^^^^^ It is of type: _U64_ But you are trying to use it as: _[True, False]_
**TYPE MISMATCH** This expression is used in an unexpected way: **syntax_grab_bag.md:155:2:155:12:** ```roc match_time( ``` ^^^^^^^^^^ It is of type: _Error, * -> Error_ But you are trying to use it as: _* -> *_
**INCOMPATIBLE LIST ELEMENTS** The first two elements in this list have incompatible types: **syntax_grab_bag.md:167:3:** ```roc add_one( dbg # After dbg in list number, # after dbg expr as arg ), # Comment one 456, # Comment two ``` ^^^ The first element has this type: _U64_ However, the second element has this type: _Num(*)_ All elements in a list must have compatible types. Note: You can wrap each element in a tag to make them compatible. To learn about tags, see
(file @1.2-207.2
  (app @2.1-2.57
    (provides @2.6-2.12
      (exposed-lower-ident (text "main!")))
    (record-field @2.15-2.57 (name "pf")
      (e-string @2.28-2.55
        (e-string-part @2.29-2.54 (raw "../basic-cli/platform.roc"))))
    (packages @2.13-2.57
      (record-field @2.15-2.57 (name "pf")
        (e-string @2.28-2.55
          (e-string-part @2.29-2.54 (raw "../basic-cli/platform.roc"))))))
  (statements
    (s-import @4.1-4.42 (module ".Stdout") (qualifier "pf")
      (exposing
        (exposed-lower-ident (text "line!"))
        (exposed-lower-ident (text "write!"))))
    (s-import @6.1-12.4 (module ".StdoutMultiline") (qualifier "pf")
      (exposing
        (exposed-lower-ident (text "line!"))
        (exposed-lower-ident (text "write!"))))
    (s-import @14.1-14.82 (module ".Something") (qualifier "pkg")
      (exposing
        (exposed-lower-ident (text "func") (as "function"))
        (exposed-upper-ident (text "Type") (as "ValueCategory"))
        (exposed-upper-ident-star (text "Custom"))))
    (s-import @16.1-16.27 (module "BadName") (alias "GoodName"))
    (s-import @17.1-20.20 (module "BadNameMultiline") (alias "GoodNameMultiline"))
    (s-type-decl @22.1-23.6
      (header @22.1-22.10 (name "Map")
        (args
          (ty-var @22.5-22.6 (raw "a"))
          (ty-var @22.8-22.9 (raw "b"))))
      (ty-fn @22.13-22.41
        (ty-apply @22.13-22.20
          (ty (name "List"))
          (ty-var @22.18-22.19 (raw "a")))
        (ty-fn @22.23-22.29
          (ty-var @22.23-22.24 (raw "a"))
          (ty-var @22.28-22.29 (raw "b")))
        (ty-apply @22.34-22.41
          (ty (name "List"))
          (ty-var @22.39-22.40 (raw "b")))))
    (s-type-decl @23.1-36.4
      (header @23.1-26.2 (name "MapML")
        (args
          (ty-var @24.2-24.3 (raw "a"))
          (ty-var @25.2-25.3 (raw "b"))))
      (ty-fn @28.3-34.5
        (ty-apply @28.3-30.4
          (ty (name "List"))
          (ty-var @29.4-29.5 (raw "a")))
        (ty-fn @31.4-31.10
          (ty-var @31.4-31.5 (raw "a"))
          (ty-var @31.9-31.10 (raw "b")))
        (ty-apply @32.4-34.5
          (ty (name "List"))
          (ty-var @33.5-33.6 (raw "b")))))
    (s-type-decl @36.1-38.13
      (header @36.1-36.4 (name "Foo")
        (args))
      (ty-tuple @36.7-36.17
        (ty (name "Bar"))
        (ty (name "Baz"))))
    (s-type-decl @38.1-43.5
      (header @38.1-38.13 (name "FooMultiline")
        (args))
      (ty-tuple @38.16-41.2
        (ty (name "Bar"))
        (ty (name "Baz"))))
    (s-type-decl @43.1-44.7
      (header @43.1-43.8 (name "Some")
        (args
          (ty-var @43.6-43.7 (raw "a"))))
      (ty-record @43.11-43.43
        (anno-record-field @43.13-43.25 (name "foo")
          (ty-apply @43.19-43.24
            (ty (name "Ok"))
            (ty-var @43.22-43.23 (raw "a"))))
        (anno-record-field @43.26-43.43 (name "bar")
          (ty (name "Something")))))
    (s-type-decl @44.1-49.14
      (header @44.1-44.10 (name "SomeMl")
        (args
          (ty-var @44.8-44.9 (raw "a"))))
      (ty-record @44.13-47.2
        (anno-record-field @45.2-45.14 (name "foo")
          (ty-apply @45.8-45.13
            (ty (name "Ok"))
            (ty-var @45.11-45.12 (raw "a"))))
        (anno-record-field @46.2-46.18 (name "bar")
          (ty (name "Something")))))
    (s-type-decl @49.1-56.6
      (header @49.1-49.17 (name "SomeMultiline")
        (args
          (ty-var @49.15-49.16 (raw "a"))))
      (ty-record @49.20-54.2
        (anno-record-field @50.2-52.10 (name "foo")
          (ty-apply @52.4-52.9
            (ty (name "Ok"))
            (ty-var @52.7-52.8 (raw "a"))))
        (anno-record-field @53.2-53.18 (name "bar")
          (ty (name "Something")))))
    (s-type-decl @56.1-58.15
      (header @56.1-56.9 (name "Maybe")
        (args
          (ty-var @56.7-56.8 (raw "a"))))
      (ty-tag-union @56.12-56.27
        (tags
          (ty-apply @56.13-56.20
            (ty (name "Some"))
            (ty-var @56.18-56.19 (raw "a")))
          (ty (name "None")))))
    (s-type-decl @58.1-63.9
      (header @58.1-58.18 (name "MaybeMultiline")
        (args
          (ty-var @58.16-58.17 (raw "a"))))
      (ty-tag-union @58.21-61.2
        (tags
          (ty-apply @59.2-59.9
            (ty (name "Some"))
            (ty-var @59.7-59.8 (raw "a")))
          (ty (name "None")))))
    (s-type-decl @63.1-65.16
      (header @63.1-63.12 (name "SomeFunc")
        (args
          (ty-var @63.10-63.11 (raw "a"))))
      (ty-fn @63.15-63.38
        (ty-apply @63.15-63.23
          (ty (name "Maybe"))
          (ty-var @63.21-63.22 (raw "a")))
        (ty-var @63.25-63.26 (raw "a"))
        (ty-apply @63.30-63.38
          (ty (name "Maybe"))
          (ty-var @63.36-63.37 (raw "a")))))
    (s-decl @65.1-67.8
      (p-ident @65.1-65.16 (raw "add_one_oneline"))
      (e-lambda @65.19-67.8
        (args
          (p-ident @65.20-65.23 (raw "num")))
        (e-if-then-else @65.25-67.8
          (e-ident @65.28-65.31 (qaul "") (raw "num"))
          (e-int @65.32-65.33 (raw "2"))
          (e-int @65.39-65.40 (raw "5")))))
    (s-type-anno @67.1-68.8 (name "add_one")
      (ty-fn @67.11-67.21
        (ty (name "U64"))
        (ty (name "U64"))))
    (s-decl @68.1-78.2
      (p-ident @68.1-68.8 (raw "add_one"))
      (e-lambda @68.11-78.2
        (args
          (p-ident @68.12-68.15 (raw "num")))
        (e-block @68.17-78.2
          (statements
            (s-decl @69.2-69.11
              (p-ident @69.2-69.7 (raw "other"))
              (e-int @69.10-69.11 (raw "1")))
            (e-if-then-else @70.2-78.2
              (e-ident @70.5-70.8 (qaul "") (raw "num"))
              (e-block @70.9-74.3
                (statements
                  (e-dbg
                    (e-apply @72.4-72.15
                      (e-ident @72.4-72.13 (qaul "") (raw "some_func"))))
                  (e-int @73.3-73.4 (raw "0"))))
              (e-block @74.9-77.3
                (statements
                  (e-dbg
                    (e-int @75.7-75.10 (raw "123")))
                  (e-ident @76.3-76.8 (qaul "") (raw "other")))))))))
    (s-decl @80.1-140.7
      (p-ident @80.1-80.11 (raw "match_time"))
      (e-lambda @80.14-140.7
        (args
          (p-ident @81.2-81.3 (raw "a"))
          (p-ident @82.2-82.3 (raw "b")))
        (e-match
          (e-ident @84.8-84.9 (qaul "") (raw "a"))
          (branches
            (branch @85.3-89.7
              (p-alternatives
                (p-tag @85.3-85.7 (raw "Blue"))
                (p-tag @85.10-85.15 (raw "Green"))
                (p-tag @85.18-85.21 (raw "Red")))
              (e-block @85.25-88.4
                (statements
                  (s-decl @86.4-86.10
                    (p-ident @86.4-86.5 (raw "x"))
                    (e-int @86.8-86.10 (raw "12")))
                  (e-ident @87.4-87.5 (qaul "") (raw "x")))))
            (branch @89.3-97.8
              (p-alternatives
                (p-tag @89.3-89.7 (raw "Blue"))
                (p-tag @91.4-91.9 (raw "Green"))
                (p-tag @92.5-92.8 (raw "Red")))
              (e-block @93.7-96.5
                (statements
                  (s-decl @94.5-94.11
                    (p-ident @94.5-94.6 (raw "x"))
                    (e-int @94.9-94.11 (raw "12")))
                  (e-ident @95.5-95.6 (qaul "") (raw "x")))))
            (branch @97.3-99.4
              (p-ident @97.3-97.8 (raw "lower"))
              (e-int @98.7-98.8 (raw "1")))
            (branch @99.3-101.4
              (p-string @99.3-99.4 (raw """))
              (e-int @100.4-100.7 (raw "100")))
            (branch @101.3-102.4
              (p-alternatives
                (p-string @101.3-101.4 (raw """))
                (p-string @101.11-101.12 (raw """)))
              (e-int @101.20-101.23 (raw "200")))
            (branch @102.3-108.4
              (p-list @102.3-102.24
                (p-int @102.4-102.5 (raw "1"))
                (p-int @102.7-102.8 (raw "2"))
                (p-int @102.10-102.11 (raw "3"))
                (p-list-rest @102.13-102.24 (name "rest")))
              (e-int @104.5-104.8 (raw "123")))
            (branch @108.3-109.4
              (p-list @108.3-108.28
                (p-int @108.4-108.5 (raw "1"))
                (p-alternatives
                  (p-int @108.7-108.8 (raw "2"))
                  (p-int @108.11-108.12 (raw "5")))
                (p-int @108.14-108.15 (raw "3"))
                (p-list-rest @108.17-108.28 (name "rest")))
              (e-int @108.32-108.35 (raw "123")))
            (branch @109.3-117.7
              (p-list @109.3-116.4
                (p-int @110.4-110.5 (raw "1"))
                (p-alternatives
                  (p-int @111.4-111.5 (raw "2"))
                  (p-int @111.8-111.9 (raw "5")))
                (p-int @112.4-112.5 (raw "3"))
                (p-list-rest @113.4-115.11 (name "rest")))
              (e-int @116.8-116.11 (raw "123")))
            (branch @117.3-118.7
              (p-frac @117.3-117.7 (raw "3.14"))
              (e-int @117.11-117.14 (raw "314")))
            (branch @118.3-119.4
              (p-alternatives
                (p-frac @118.3-118.7 (raw "3.14"))
                (p-frac @118.10-118.14 (raw "6.28")))
              (e-int @118.18-118.21 (raw "314")))
            (branch @119.3-120.4
              (p-tuple @119.3-119.12
                (p-int @119.4-119.5 (raw "1"))
                (p-int @119.7-119.8 (raw "2"))
                (p-int @119.10-119.11 (raw "3")))
              (e-int @119.16-119.19 (raw "123")))
            (branch @120.3-121.4
              (p-tuple @120.3-120.16
                (p-int @120.4-120.5 (raw "1"))
                (p-alternatives
                  (p-int @120.7-120.8 (raw "2"))
                  (p-int @120.11-120.12 (raw "5")))
                (p-int @120.14-120.15 (raw "3")))
              (e-int @120.20-120.23 (raw "123")))
            (branch @121.3-122.4
              (p-record @121.3-121.29
                (field @121.5-121.12 (name "foo") (rest false)
                  (p-int @121.10-121.11 (raw "1")))
                (field @121.13-121.20 (name "bar") (rest false)
                  (p-int @121.18-121.19 (raw "2")))
                (field @121.21-121.29 (name "rest") (rest true)))
              (e-local-dispatch @121.33-122.4
                (e-int @121.33-121.35 (raw "12"))
                (e-apply @121.35-121.44
                  (e-ident @121.37-121.40 (qaul "") (raw "add"))
                  (e-int @121.41-121.43 (raw "34")))))
            (branch @122.3-130.4
              (p-record @122.3-129.4
                (field @123.4-125.8 (name "foo") (rest false)
                  (p-int @125.6-125.7 (raw "1")))
                (field @126.4-126.11 (name "bar") (rest false)
                  (p-int @126.9-126.10 (raw "2")))
                (field @127.4-128.10 (name "rest") (rest true)))
              (e-int @129.8-129.10 (raw "12")))
            (branch @130.3-131.4
              (p-record @130.3-130.25
                (field @130.5-130.12 (name "foo") (rest false)
                  (p-int @130.10-130.11 (raw "1")))
                (field @130.13-130.25 (name "bar") (rest false)
                  (p-alternatives
                    (p-int @130.18-130.19 (raw "2"))
                    (p-int @130.22-130.23 (raw "7")))))
              (e-int @130.29-130.31 (raw "12")))
            (branch @131.3-135.5
              (p-record @131.3-134.4
                (field @132.4-132.11 (name "foo") (rest false)
                  (p-int @132.9-132.10 (raw "1")))
                (field @133.4-133.15 (name "bar") (rest false)
                  (p-alternatives
                    (p-int @133.9-133.10 (raw "2"))
                    (p-int @133.13-133.14 (raw "7")))))
              (e-int @134.8-134.10 (raw "12")))
            (branch @135.3-136.5
              (p-tag @135.3-135.10 (raw "Ok")
                (p-int @135.6-135.9 (raw "123")))
              (e-int @135.14-135.17 (raw "123")))
            (branch @136.3-137.10
              (p-tag @136.3-136.17 (raw "Ok")
                (p-tag @136.6-136.16 (raw "Some")
                  (p-ident @136.11-136.15 (raw "dude"))))
              (e-ident @136.21-136.25 (qaul "") (raw "dude")))
            (branch @137.3-138.3
              (p-tag @137.3-137.34 (raw "TwoArgs")
                (p-string @137.11-137.12 (raw """))
                (p-tag @137.20-137.33 (raw "Some")
                  (p-string @137.25-137.26 (raw """))))
              (e-int @137.38-137.42 (raw "1000")))))))
    (s-expect @140.1-143.6
      (e-binop @141.2-143.6 (op "==")
        (e-ident @141.2-141.6 (qaul "") (raw "blah"))
        (e-int @141.10-141.11 (raw "1"))))
    (s-type-anno @143.1-144.6 (name "main!")
      (ty-fn @143.9-143.38
        (ty-apply @143.9-143.21
          (ty (name "List"))
          (ty (name "String")))
        (ty-apply @143.25-143.38
          (ty (name "Result"))
          (ty-record @143.32-143.34)
          (_))))
    (s-decl @144.1-196.2
      (p-ident @144.1-144.6 (raw "main!"))
      (e-lambda @144.9-196.2
        (args
          (p-underscore))
        (e-block @144.13-196.2
          (statements
            (s-decl @145.2-145.17
              (p-ident @145.2-145.7 (raw "world"))
              (e-string @145.10-145.17
                (e-string-part @145.11-145.16 (raw "World"))))
            (s-var @146.2-147.8 (name "number")
              (e-int @146.15-146.18 (raw "123")))
            (s-expect @147.2-148.5
              (e-binop @147.9-148.5 (op "==")
                (e-ident @147.9-147.13 (qaul "") (raw "blah"))
                (e-int @147.17-147.18 (raw "1"))))
            (s-decl @148.2-148.12
              (p-ident @148.2-148.5 (raw "tag"))
              (e-tag @148.8-148.12 (raw "Blue")))
            (s-return @149.2-154.5
              (e-ident @150.3-150.6 (qaul "") (raw "tag")))
            (e-ellipsis)
            (e-apply @155.2-157.3
              (e-ident @155.2-155.12 (qaul "") (raw "match_time"))
              (e-ellipsis))
            (e-apply @158.2-161.3
              (e-ident @158.2-158.11 (qaul "") (raw "some_func"))
              (e-dbg
                (e-int @160.4-160.6 (raw "42"))))
            (s-crash @162.2-163.49
              (e-string @163.3-163.17
                (e-string-part @163.4-163.16 (raw "Unreachable!"))))
            (s-decl @164.2-164.31
              (p-ident @164.2-164.18 (raw "tag_with_payload"))
              (e-apply @164.21-164.31
                (e-tag @164.21-164.23 (raw "Ok"))
                (e-ident @164.24-164.30 (qaul "") (raw "number"))))
            (s-decl @165.2-165.34
              (p-ident @165.2-165.14 (raw "interpolated"))
              (e-string @165.17-165.34
                (e-string-part @165.18-165.25 (raw "Hello, "))
                (e-ident @165.27-165.32 (qaul "") (raw "world"))
                (e-string-part @165.33-165.33 (raw ""))))
            (s-decl @166.2-173.3
              (p-ident @166.2-166.6 (raw "list"))
              (e-list @166.9-173.3
                (e-apply @167.3-170.4
                  (e-ident @167.3-167.10 (qaul "") (raw "add_one"))
                  (e-dbg
                    (e-ident @169.5-169.11 (qaul "") (raw "number"))))
                (e-int @171.3-171.6 (raw "456"))
                (e-int @172.3-172.6 (raw "789"))))
            (s-for
              (p-ident @174.6-174.7 (raw "n"))
              (e-ident @174.11-174.15 (qaul "") (raw "list"))
              (e-block @174.16-177.3
                (statements
                  (e-apply @175.3-175.43
                    (e-ident @175.3-175.15 (qaul "Stdout") (raw ".line!"))
                    (e-string @175.16-175.42
                      (e-string-part @175.17-175.24 (raw "Adding "))
                      (e-ident @175.26-175.27 (qaul "") (raw "n"))
                      (e-string-part @175.28-175.32 (raw " to "))
                      (e-ident @175.34-175.40 (qaul "") (raw "number"))
                      (e-string-part @175.41-175.41 (raw ""))))
                  (s-decl @176.3-177.3
                    (p-ident @176.3-176.9 (raw "number"))
                    (e-binop @176.12-177.3 (op "+")
                      (e-ident @176.12-176.18 (qaul "") (raw "number"))
                      (e-ident @176.21-176.22 (qaul "") (raw "n")))))))
            (s-decl @178.2-178.71
              (p-ident @178.2-178.8 (raw "record"))
              (e-record @178.11-178.71
                (field (field "foo") (optional false)
                  (e-int @178.18-178.21 (raw "123")))
                (field (field "bar") (optional false)
                  (e-string @178.28-178.35
                    (e-string-part @178.29-178.34 (raw "Hello"))))
                (field (field "baz") (optional false)
                  (e-ident @178.42-178.45 (qaul "") (raw "tag")))
                (field (field "qux") (optional false)
                  (e-apply @178.52-178.61
                    (e-tag @178.52-178.54 (raw "Ok"))
                    (e-ident @178.55-178.60 (qaul "") (raw "world"))))
                (field (field "punned") (optional false))))
            (s-decl @179.2-179.68
              (p-ident @179.2-179.7 (raw "tuple"))
              (e-tuple @179.10-179.68
                (e-int @179.11-179.14 (raw "123"))
                (e-string @179.16-179.23
                  (e-string-part @179.17-179.22 (raw "World")))
                (e-ident @179.25-179.28 (qaul "") (raw "tag"))
                (e-apply @179.30-179.39
                  (e-tag @179.30-179.32 (raw "Ok"))
                  (e-ident @179.33-179.38 (qaul "") (raw "world")))
                (e-tuple @179.41-179.56
                  (e-ident @179.42-179.48 (qaul "") (raw "nested"))
                  (e-ident @179.50-179.55 (qaul "") (raw "tuple")))
                (e-list @179.58-179.67
                  (e-int @179.59-179.60 (raw "1"))
                  (e-int @179.62-179.63 (raw "2"))
                  (e-int @179.65-179.66 (raw "3")))))
            (s-decl @180.2-187.3
              (p-ident @180.2-180.17 (raw "multiline_tuple"))
              (e-tuple @180.20-187.3
                (e-int @181.3-181.6 (raw "123"))
                (e-string @182.3-182.10
                  (e-string-part @182.4-182.9 (raw "World")))
                (e-ident @183.3-183.7 (qaul "") (raw "tag1"))
                (e-apply @184.3-184.12
                  (e-tag @184.3-184.5 (raw "Ok"))
                  (e-ident @184.6-184.11 (qaul "") (raw "world")))
                (e-tuple @185.3-185.18
                  (e-ident @185.4-185.10 (qaul "") (raw "nested"))
                  (e-ident @185.12-185.17 (qaul "") (raw "tuple")))
                (e-list @186.3-186.12
                  (e-int @186.4-186.5 (raw "1"))
                  (e-int @186.7-186.8 (raw "2"))
                  (e-int @186.10-186.11 (raw "3")))))
            (s-decl @188.2-189.23
              (p-ident @188.2-188.15 (raw "bin_op_result"))
              (e-binop @188.18-189.23 (op "or")
                (e-binop @188.18-188.74 (op "or")
                  (e-binop @188.18-188.43 (op ">")
                    (e-binop @188.18-188.34 (op "??")
                      (e-apply @188.18-188.26
                        (e-tag @188.18-188.21 (raw "Err"))
                        (e-ident @188.22-188.25 (qaul "") (raw "foo")))
                      (e-int @188.30-188.32 (raw "12")))
                    (e-binop @188.35-188.43 (op "*")
                      (e-int @188.35-188.36 (raw "5"))
                      (e-int @188.39-188.40 (raw "5"))))
                  (e-binop @188.44-188.74 (op "and")
                    (e-binop @188.44-188.58 (op "<")
                      (e-binop @188.44-188.52 (op "+")
                        (e-int @188.44-188.46 (raw "13"))
                        (e-int @188.49-188.50 (raw "2")))
                      (e-int @188.53-188.54 (raw "5")))
                    (e-binop @188.59-188.74 (op ">=")
                      (e-binop @188.59-188.68 (op "-")
                        (e-int @188.59-188.61 (raw "10"))
                        (e-int @188.64-188.65 (raw "1")))
                      (e-int @188.69-188.71 (raw "16")))))
                (e-binop @188.75-189.23 (op "<=")
                  (e-int @188.75-188.77 (raw "12"))
                  (e-binop @188.81-189.23 (op "/")
                    (e-int @188.81-188.82 (raw "3"))
                    (e-int @188.85-188.86 (raw "5"))))))
            (s-decl @189.2-190.8
              (p-ident @189.2-189.23 (raw "static_dispatch_style"))
              (e-field-access @189.26-190.8
                (e-field-access @189.26-189.110
                  (e-field-access @189.26-189.94
                    (e-question-suffix @189.26-189.40
                      (e-apply @189.26-189.39
                        (e-ident @189.26-189.33 (qaul "") (raw "some_fn"))
                        (e-ident @189.34-189.38 (qaul "") (raw "arg1"))))
                    (e-question-suffix @189.40-189.66
                      (e-apply @189.40-189.65
                        (e-ident @189.40-189.63 (qaul "") (raw ".static_dispatch_method")))))
                  (e-question-suffix @189.66-189.97
                    (e-apply @189.66-189.96
                      (e-ident @189.66-189.94 (qaul "") (raw ".next_static_dispatch_method")))))
                (e-question-suffix @189.97-189.111
                  (e-ident @189.97-189.110 (qaul "") (raw ".record_field")))))
            (e-question-suffix @190.2-190.29
              (e-apply @190.2-190.28
                (e-ident @190.2-190.14 (qaul "Stdout") (raw ".line!"))
                (e-ident @190.15-190.27 (qaul "") (raw "interpolated"))))
            (e-apply @191.2-195.3
              (e-ident @191.2-191.14 (qaul "Stdout") (raw ".line!"))
              (e-string @192.3-194.18
                (e-string-part @192.4-192.14 (raw "How about "))
                (e-apply @193.4-193.21
                  (e-ident @193.4-193.13 (qaul "Num") (raw ".toStr"))
                  (e-ident @193.14-193.20 (qaul "") (raw "number")))
                (e-string-part @194.4-194.17 (raw " as a string?"))))))))
    (s-type-anno @198.1-199.6 (name "empty")
      (ty-record @198.9-198.11))
    (s-decl @199.1-199.11
      (p-ident @199.1-199.6 (raw "empty"))
      (e-record @199.9-199.11))
    (s-type-anno @201.1-203.7 (name "tuple")
      (ty-apply @201.9-201.25
        (ty (name "Value"))
        (ty-tuple @201.15-201.24
          (ty-var @201.16-201.17 (raw "a"))
          (ty-var @201.19-201.20 (raw "b"))
          (ty-var @201.22-201.23 (raw "c")))))
    (s-expect @203.1-207.2
      (e-block @203.8-207.2
        (statements
          (s-decl @204.2-204.9
            (p-ident @204.2-204.5 (raw "foo"))
            (e-int @204.8-204.9 (raw "1")))
          (s-decl @205.2-205.10
            (p-ident @205.2-205.6 (raw "blah"))
            (e-int @205.9-205.10 (raw "1")))
          (e-binop @206.2-207.2 (op "==")
            (e-ident @206.2-206.6 (qaul "") (raw "blah"))
            (e-ident @206.10-206.13 (qaul "") (raw "foo"))))))))
NO CHANGE
(can-ir
  (d-let
    (p-assign @65.1-65.16 (ident "add_one_oneline"))
    (e-lambda @65.19-67.8
      (args
        (p-assign @65.20-65.23 (ident "num")))
      (e-if @65.25-67.8
        (if-branches
          (if-branch
            (e-lookup-local @65.28-65.31
              (pattern @65.20-65.23))
            (e-int @65.32-65.33 (value "2"))))
        (if-else
          (e-int @65.39-65.40 (value "5"))))))
  (d-let
    (p-assign @68.1-68.8 (ident "add_one"))
    (e-lambda @68.11-78.2
      (args
        (p-assign @68.12-68.15 (ident "num")))
      (e-block @68.17-78.2
        (s-let @69.2-69.11
          (p-assign @69.2-69.7 (ident "other"))
          (e-int @69.10-69.11 (value "1")))
        (e-if @70.2-78.2
          (if-branches
            (if-branch
              (e-lookup-local @70.5-70.8
                (pattern @68.12-68.15))
              (e-block @70.9-74.3
                (s-expr @71.3-73.4
                  (e-runtime-error (tag "not_implemented")))
                (e-int @73.3-73.4 (value "0")))))
          (if-else
            (e-block @74.9-77.3
              (s-expr @75.3-76.8
                (e-runtime-error (tag "not_implemented")))
              (e-lookup-local @76.3-76.8
                (pattern @69.2-69.7)))))))
    (annotation @68.1-68.8
      (declared-type
        (ty-fn @67.11-67.21 (effectful false)
          (ty @67.11-67.14 (name "U64"))
          (ty @67.18-67.21 (name "U64"))))))
  (d-let
    (p-assign @80.1-80.11 (ident "match_time"))
    (e-lambda @80.14-140.7
      (args
        (p-assign @81.2-81.3 (ident "a"))
        (p-assign @82.2-82.3 (ident "b")))
      (e-match @84.2-140.7
        (match @84.2-140.7
          (cond
            (e-lookup-local @84.8-84.9
              (pattern @81.2-81.3)))
          (branches
            (branch
              (patterns
                (p-runtime-error @1.1-1.1 (tag "not_implemented") (degenerate false)))
              (value
                (e-block @85.25-88.4
                  (s-let @86.4-86.10
                    (p-assign @86.4-86.5 (ident "x"))
                    (e-int @86.8-86.10 (value "12")))
                  (e-lookup-local @87.4-87.5
                    (pattern @86.4-86.5)))))
            (branch
              (patterns
                (p-runtime-error @1.1-1.1 (tag "not_implemented") (degenerate false)))
              (value
                (e-block @93.7-96.5
                  (s-let @94.5-94.11
                    (p-assign @94.5-94.6 (ident "x"))
                    (e-int @94.9-94.11 (value "12")))
                  (e-lookup-local @95.5-95.6
                    (pattern @94.5-94.6)))))
            (branch
              (patterns
                (p-assign @97.3-97.8 (ident "lower") (degenerate false)))
              (value
                (e-int @98.7-98.8 (value "1"))))
            (branch
              (patterns
                (p-str @99.3-99.4 (text """) (degenerate false)))
              (value
                (e-int @100.4-100.7 (value "100"))))
            (branch
              (patterns
                (p-runtime-error @1.1-1.1 (tag "not_implemented") (degenerate false)))
              (value
                (e-int @101.20-101.23 (value "200"))))
            (branch
              (patterns
                (p-list @102.3-102.24 (degenerate false)
                  (patterns
                    (p-int @102.4-102.5)
                    (p-int @102.7-102.8)
                    (p-int @102.10-102.11))
                  (rest-at (index 3)
                    (p-assign @102.19-102.23 (ident "rest")))))
              (value
                (e-int @104.5-104.8 (value "123"))))
            (branch
              (patterns
                (p-list @108.3-108.28 (degenerate false)
                  (patterns
                    (p-int @108.4-108.5)
                    (p-runtime-error @1.1-1.1 (tag "not_implemented"))
                    (p-int @108.14-108.15))
                  (rest-at (index 3)
                    (p-assign @108.23-108.27 (ident "rest")))))
              (value
                (e-int @108.32-108.35 (value "123"))))
            (branch
              (patterns
                (p-list @109.3-116.4 (degenerate false)
                  (patterns
                    (p-int @110.4-110.5)
                    (p-runtime-error @1.1-1.1 (tag "not_implemented"))
                    (p-int @112.4-112.5))
                  (rest-at (index 3)
                    (p-assign @115.6-115.10 (ident "rest")))))
              (value
                (e-int @116.8-116.11 (value "123"))))
            (branch
              (patterns
                (p-small-dec @117.3-117.7 (degenerate false)))
              (value
                (e-int @117.11-117.14 (value "314"))))
            (branch
              (patterns
                (p-runtime-error @1.1-1.1 (tag "not_implemented") (degenerate false)))
              (value
                (e-int @118.18-118.21 (value "314"))))
            (branch
              (patterns
                (p-tuple @119.3-119.12 (degenerate false)
                  (patterns
                    (p-int @119.4-119.5)
                    (p-int @119.7-119.8)
                    (p-int @119.10-119.11))))
              (value
                (e-int @119.16-119.19 (value "123"))))
            (branch
              (patterns
                (p-tuple @120.3-120.16 (degenerate false)
                  (patterns
                    (p-int @120.4-120.5)
                    (p-runtime-error @1.1-1.1 (tag "not_implemented"))
                    (p-int @120.14-120.15))))
              (value
                (e-int @120.20-120.23 (value "123"))))
            (branch
              (patterns
                (p-runtime-error @121.5-121.12 (tag "not_implemented") (degenerate false)))
              (value
                (e-runtime-error (tag "not_implemented"))))
            (branch
              (patterns
                (p-runtime-error @123.4-125.8 (tag "not_implemented") (degenerate false)))
              (value
                (e-int @129.8-129.10 (value "12"))))
            (branch
              (patterns
                (p-runtime-error @130.5-130.12 (tag "not_implemented") (degenerate false)))
              (value
                (e-int @130.29-130.31 (value "12"))))
            (branch
              (patterns
                (p-runtime-error @132.4-132.11 (tag "not_implemented") (degenerate false)))
              (value
                (e-int @134.8-134.10 (value "12"))))
            (branch
              (patterns
                (p-applied-tag @135.3-135.10 (degenerate false)))
              (value
                (e-int @135.14-135.17 (value "123"))))
            (branch
              (patterns
                (p-applied-tag @136.3-136.17 (degenerate false)))
              (value
                (e-lookup-local @136.21-136.25
                  (pattern @136.11-136.15))))
            (branch
              (patterns
                (p-applied-tag @137.3-137.34 (degenerate false)))
              (value
                (e-int @137.38-137.42 (value "1000")))))))))
  (d-let
    (p-assign @144.1-144.6 (ident "main!"))
    (e-lambda @144.9-196.2
      (args
        (p-underscore @144.10-144.11))
      (e-block @144.13-196.2
        (s-let @145.2-145.17
          (p-assign @145.2-145.7 (ident "world"))
          (e-string @145.10-145.17
            (e-literal @145.11-145.16 (string "World"))))
        (s-var @146.2-147.8
          (p-assign @146.2-147.8 (ident "number"))
          (e-int @146.15-146.18 (value "123")))
        (s-let @148.2-148.12
          (p-assign @148.2-148.5 (ident "tag"))
          (e-tag @148.8-148.12 (name "Blue") (args "TODO")))
        (s-expr @154.2-155.12
          (e-runtime-error (tag "not_implemented")))
        (s-expr @155.2-158.11
          (e-call @155.2-157.3
            (e-lookup-local @155.2-155.12
              (pattern @80.1-80.11))
            (e-runtime-error (tag "not_implemented"))))
        (s-expr @158.2-162.7
          (e-call @158.2-161.3
            (e-runtime-error (tag "ident_not_in_scope"))
            (e-runtime-error (tag "not_implemented"))))
        (s-let @164.2-164.31
          (p-assign @164.2-164.18 (ident "tag_with_payload"))
          (e-tag @164.21-164.31 (name "Ok") (args "TODO")))
        (s-let @165.2-165.34
          (p-assign @165.2-165.14 (ident "interpolated"))
          (e-string @165.17-165.34
            (e-literal @165.18-165.25 (string "Hello, "))
            (e-lookup-local @165.27-165.32
              (pattern @145.2-145.7))
            (e-literal @165.33-165.33 (string ""))))
        (s-let @166.2-173.3
          (p-assign @166.2-166.6 (ident "list"))
          (e-list @166.9-173.3
            (elems
              (e-call @167.3-170.4
                (e-lookup-local @167.3-167.10
                  (pattern @68.1-68.8))
                (e-runtime-error (tag "not_implemented")))
              (e-int @171.3-171.6 (value "456"))
              (e-int @172.3-172.6 (value "789")))))
        (s-let @178.2-178.71
          (p-assign @178.2-178.8 (ident "record"))
          (e-record @178.11-178.71
            (fields
              (field (name "foo")
                (e-int @178.18-178.21 (value "123")))
              (field (name "bar")
                (e-string @178.28-178.35
                  (e-literal @178.29-178.34 (string "Hello"))))
              (field (name "baz")
                (e-lookup-local @178.42-178.45
                  (pattern @148.2-148.5)))
              (field (name "qux")
                (e-tag @178.52-178.61 (name "Ok") (args "TODO")))
              (field (name "punned")
                (e-runtime-error (tag "ident_not_in_scope"))))))
        (s-let @179.2-179.68
          (p-assign @179.2-179.7 (ident "tuple"))
          (e-tuple @179.10-179.68
            (elems
              (e-int @179.11-179.14 (value "123"))
              (e-string @179.16-179.23
                (e-literal @179.17-179.22 (string "World")))
              (e-lookup-local @179.25-179.28
                (pattern @148.2-148.5))
              (e-tag @179.30-179.39 (name "Ok") (args "TODO"))
              (e-tuple @179.41-179.56
                (elems
                  (e-runtime-error (tag "ident_not_in_scope"))
                  (e-lookup-local @179.50-179.55
                    (pattern @179.2-179.7))))
              (e-list @179.58-179.67
                (elems
                  (e-int @179.59-179.60 (value "1"))
                  (e-int @179.62-179.63 (value "2"))
                  (e-int @179.65-179.66 (value "3")))))))
        (s-let @180.2-187.3
          (p-assign @180.2-180.17 (ident "multiline_tuple"))
          (e-tuple @180.20-187.3
            (elems
              (e-int @181.3-181.6 (value "123"))
              (e-string @182.3-182.10
                (e-literal @182.4-182.9 (string "World")))
              (e-runtime-error (tag "ident_not_in_scope"))
              (e-tag @184.3-184.12 (name "Ok") (args "TODO"))
              (e-tuple @185.3-185.18
                (elems
                  (e-runtime-error (tag "ident_not_in_scope"))
                  (e-lookup-local @185.12-185.17
                    (pattern @179.2-179.7))))
              (e-list @186.3-186.12
                (elems
                  (e-int @186.4-186.5 (value "1"))
                  (e-int @186.7-186.8 (value "2"))
                  (e-int @186.10-186.11 (value "3")))))))
        (s-let @188.2-189.23
          (p-assign @188.2-188.15 (ident "bin_op_result"))
          (e-binop @188.18-189.23 (op "or")
            (e-binop @188.18-188.74 (op "or")
              (e-binop @188.18-188.43 (op "gt")
                (e-binop @188.18-188.34 (op "null_coalesce")
                  (e-tag @188.18-188.26 (name "Err") (args "TODO"))
                  (e-int @188.30-188.32 (value "12")))
                (e-binop @188.35-188.43 (op "mul")
                  (e-int @188.35-188.36 (value "5"))
                  (e-int @188.39-188.40 (value "5"))))
              (e-binop @188.44-188.74 (op "and")
                (e-binop @188.44-188.58 (op "lt")
                  (e-binop @188.44-188.52 (op "add")
                    (e-int @188.44-188.46 (value "13"))
                    (e-int @188.49-188.50 (value "2")))
                  (e-int @188.53-188.54 (value "5")))
                (e-binop @188.59-188.74 (op "ge")
                  (e-binop @188.59-188.68 (op "sub")
                    (e-int @188.59-188.61 (value "10"))
                    (e-int @188.64-188.65 (value "1")))
                  (e-int @188.69-188.71 (value "16")))))
            (e-binop @188.75-189.23 (op "le")
              (e-int @188.75-188.77 (value "12"))
              (e-binop @188.81-189.23 (op "div")
                (e-int @188.81-188.82 (value "3"))
                (e-int @188.85-188.86 (value "5"))))))
        (s-let @189.2-190.8
          (p-assign @189.2-189.23 (ident "static_dispatch_style"))
          (e-dot-access @189.26-190.8 (field "unknown")
            (receiver
              (e-dot-access @189.26-189.110 (field "unknown")
                (receiver
                  (e-dot-access @189.26-189.94 (field "unknown")
                    (receiver
                      (e-runtime-error (tag "not_implemented")))))))))
        (s-expr @190.2-191.8
          (e-runtime-error (tag "not_implemented")))
        (e-call @191.2-195.3
          (e-lookup-external
            (ext-decl @191.2-191.14 (qualified "pf.Stdout.line!") (module "pf.Stdout") (local "line!") (kind "value")))
          (e-string @192.3-194.18
            (e-literal @192.4-192.14 (string "How about "))
            (e-call @193.4-193.21
              (e-runtime-error (tag "ident_not_in_scope"))
              (e-lookup-local @193.14-193.20
                (pattern @146.2-147.8)))
            (e-literal @194.4-194.17 (string " as a string?"))))))
    (annotation @144.1-144.6
      (declared-type
        (ty-fn @143.9-143.38 (effectful false)
          (ty-apply @143.9-143.21 (symbol "List")
            (ty @143.14-143.20 (name "String")))
          (ty-apply @143.25-143.38 (symbol "Result")
            (ty-record @143.32-143.34)
            (ty-underscore @143.36-143.37))))))
  (d-let
    (p-assign @199.1-199.6 (ident "empty"))
    (e-empty_record @199.9-199.11)
    (annotation @199.1-199.6
      (declared-type
        (ty-record @198.9-198.11))))
  (s-type-decl @22.1-23.6
    (ty-header @22.1-22.10 (name "Map")
      (ty-args
        (ty-var @22.5-22.6 (name "a"))
        (ty-var @22.8-22.9 (name "b"))))
    (ty-fn @22.13-22.41 (effectful false)
      (ty-apply @22.13-22.20 (symbol "List")
        (ty-var @22.18-22.19 (name "a")))
      (ty-parens @22.22-22.30
        (ty-fn @22.23-22.29 (effectful false)
          (ty-var @22.23-22.24 (name "a"))
          (ty-var @22.28-22.29 (name "b"))))
      (ty-apply @22.34-22.41 (symbol "List")
        (ty-var @22.39-22.40 (name "b")))))
  (s-type-decl @23.1-36.4
    (ty-header @23.1-26.2 (name "MapML")
      (ty-args
        (ty-var @24.2-24.3 (name "a"))
        (ty-var @25.2-25.3 (name "b"))))
    (ty-fn @28.3-34.5 (effectful false)
      (ty-apply @28.3-30.4 (symbol "List")
        (ty-var @29.4-29.5 (name "a")))
      (ty-parens @31.3-31.11
        (ty-fn @31.4-31.10 (effectful false)
          (ty-var @31.4-31.5 (name "a"))
          (ty-var @31.9-31.10 (name "b"))))
      (ty-apply @32.4-34.5 (symbol "List")
        (ty-var @33.5-33.6 (name "b")))))
  (s-type-decl @36.1-38.13
    (ty-header @36.1-36.4 (name "Foo"))
    (ty-tuple @36.7-36.17
      (ty @36.8-36.11 (name "Bar"))
      (ty @36.13-36.16 (name "Baz"))))
  (s-type-decl @38.1-43.5
    (ty-header @38.1-38.13 (name "FooMultiline"))
    (ty-tuple @38.16-41.2
      (ty @39.2-39.5 (name "Bar"))
      (ty @40.2-40.5 (name "Baz"))))
  (s-type-decl @43.1-44.7
    (ty-header @43.1-43.8 (name "Some")
      (ty-args
        (ty-var @43.6-43.7 (name "a"))))
    (ty-record @43.11-43.43
      (field (field "foo")
        (ty-apply @43.19-43.24 (symbol "Ok")
          (ty-var @43.22-43.23 (name "a"))))
      (field (field "bar")
        (ty @43.32-43.41 (name "Something")))))
  (s-type-decl @44.1-49.14
    (ty-header @44.1-44.10 (name "SomeMl")
      (ty-args
        (ty-var @44.8-44.9 (name "a"))))
    (ty-record @44.13-47.2
      (field (field "foo")
        (ty-apply @45.8-45.13 (symbol "Ok")
          (ty-var @45.11-45.12 (name "a"))))
      (field (field "bar")
        (ty @46.8-46.17 (name "Something")))))
  (s-type-decl @49.1-56.6
    (ty-header @49.1-49.17 (name "SomeMultiline")
      (ty-args
        (ty-var @49.15-49.16 (name "a"))))
    (ty-record @49.20-54.2
      (field (field "foo")
        (ty-apply @52.4-52.9 (symbol "Ok")
          (ty-var @52.7-52.8 (name "a"))))
      (field (field "bar")
        (ty @53.8-53.17 (name "Something")))))
  (s-type-decl @56.1-58.15
    (ty-header @56.1-56.9 (name "Maybe")
      (ty-args
        (ty-var @56.7-56.8 (name "a"))))
    (ty-tag-union @56.12-56.27
      (ty-apply @56.13-56.20 (symbol "Some")
        (ty-var @56.18-56.19 (name "a")))
      (ty @56.22-56.26 (name "None"))))
  (s-type-decl @58.1-63.9
    (ty-header @58.1-58.18 (name "MaybeMultiline")
      (ty-args
        (ty-var @58.16-58.17 (name "a"))))
    (ty-tag-union @58.21-61.2
      (ty-apply @59.2-59.9 (symbol "Some")
        (ty-var @59.7-59.8 (name "a")))
      (ty @60.2-60.6 (name "None"))))
  (s-type-decl @63.1-65.16
    (ty-header @63.1-63.12 (name "SomeFunc")
      (ty-args
        (ty-var @63.10-63.11 (name "a"))))
    (ty-fn @63.15-63.38 (effectful false)
      (ty-apply @63.15-63.23 (symbol "Maybe")
        (ty-var @63.21-63.22 (name "a")))
      (ty-var @63.25-63.26 (name "a"))
      (ty-apply @63.30-63.38 (symbol "Maybe")
        (ty-var @63.36-63.37 (name "a")))))
  (s-import @4.1-4.42 (module "pf.Stdout") (qualifier "pf")
    (exposes
      (exposed (name "line!") (wildcard false))
      (exposed (name "write!") (wildcard false))))
  (s-import @6.1-12.4 (module "MALFORMED_IMPORT") (qualifier "pf")
    (exposes
      (exposed (name "line!") (wildcard false))
      (exposed (name "write!") (wildcard false))))
  (s-import @14.1-14.82 (module "pkg.Something") (qualifier "pkg")
    (exposes
      (exposed (name "func") (alias "function") (wildcard false))
      (exposed (name "Type") (alias "ValueCategory") (wildcard false))
      (exposed (name "Custom") (wildcard true))))
  (s-import @16.1-16.27 (module "BadName") (alias "GoodName")
    (exposes))
  (s-import @17.1-20.20 (module "BadNameMultiline") (alias "GoodNameMultiline")
    (exposes)))
(inferred-types
  (defs
    (patt @65.1-65.16 (type "[False, True] -> Num(*)"))
    (patt @68.1-68.8 (type "Error -> Error"))
    (patt @80.1-80.11 (type "Error"))
    (patt @144.1-144.6 (type "Error -> Error"))
    (patt @199.1-199.6 (type "{}")))
  (expressions
    (expr @65.19-67.8 (type "[False, True] -> Num(*)"))
    (expr @68.11-78.2 (type "Error -> Error"))
    (expr @80.14-140.7 (type "Error"))
    (expr @144.9-196.2 (type "Error -> Error"))
    (expr @199.9-199.11 (type "{}"))))