errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
Generated Cast of:
  Applying untyped:
    Name: *?
  ...to:
    Name: x

... to: nothing
... with resolved type:
  void Alternatives are:
Cost ( 0, 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
      Application of
        Variable Expression: *?: forall
          instance of type DT (not function type)
          function
        ... with parameters
          pointer to instance of type DT (not function type)
        ... returning
          reference to instance of type DT (not function type)

        ... with resolved type:
          pointer to forall
            instance of type [unbound] (not function type)
            function
          ... with parameters
            pointer to instance of type [unbound] (not function type)
          ... returning
            reference to instance of type [unbound] (not function type)

        ... to arguments
        Variable Expression: x: pointer to instance of struct A without body
        ... with resolved type:
          pointer to instance of struct A without body

      ... with resolved type:
        reference to instance of struct A without body
    ... to: nothing
    ... with resolved type:
      void
  (types:
    void
  )
  Environment:([unbound]DT) -> instance of struct A without body (no widening)


Cost ( 0, 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
      Application of
        Variable Expression: *?: forall
          instance of type DT (not function type)
          function
        ... with parameters
          pointer to instance of type DT (not function type)
        ... returning
          reference to instance of type DT (not function type)

        ... with resolved type:
          pointer to forall
            instance of type [unbound] (not function type)
            function
          ... with parameters
            pointer to instance of type [unbound] (not function type)
          ... returning
            reference to instance of type [unbound] (not function type)

        ... to arguments
        Variable Expression: x: pointer to instance of struct B with body
        ... with resolved type:
          pointer to instance of struct B with body

      ... with resolved type:
        reference to instance of struct B with body
    ... to: nothing
    ... with resolved type:
      void
  (types:
    void
  )
  Environment:([unbound]DT) -> instance of struct B with body (no widening)



errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
  Name: foo
...to:
  Name: v

errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
  Name: baz
...to:
  Name: v

errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
  Name: quux
...to:
  Name: v

errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
  Name: baz
...to:
  Name: y

errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
  Name: quux
...to:
  Name: y

errors/completeType.cfa:72:1 error: No alternatives with satisfiable assertions for Applying untyped:
  Name: baz
...to:
  Name: z

      Unsatisfiable alternative:
Cost ( 0, 0, 1, 0, 0, 1, -5, 0 ): Application of
            Variable Expression: baz: forall
              instance of type T (not function type)
              with assertions
              Variable Expression: ?=?: pointer to function
              ... with parameters
                reference to instance of type T (not function type)
                instance of type T (not function type)
              ... returning
                instance of type T (not function type)

              ... with resolved type:
                pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                  instance of type T (not function type)
                ... returning
                  instance of type T (not function type)

              Variable Expression: ?{}: pointer to function
              ... with parameters
                reference to instance of type T (not function type)
              ... returning nothing

              ... with resolved type:
                pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                ... returning nothing

              Variable Expression: ?{}: pointer to function
              ... with parameters
                reference to instance of type T (not function type)
                instance of type T (not function type)
              ... returning nothing

              ... with resolved type:
                pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                  instance of type T (not function type)
                ... returning nothing

              Variable Expression: ^?{}: pointer to function
              ... with parameters
                reference to instance of type T (not function type)
              ... returning nothing

              ... with resolved type:
                pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                ... returning nothing

              function
            ... with parameters
              pointer to instance of type T (not function type)
            ... returning nothing

            ... with resolved type:
              pointer to forall
                instance of type [unbound] (not function type)
                with assertions
                Variable Expression: ?=?: pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                  instance of type T (not function type)
                ... returning
                  instance of type T (not function type)

                ... with resolved type:
                  pointer to function
                  ... with parameters
                    reference to instance of type [unbound] (not function type)
                    instance of type [unbound] (not function type)
                  ... returning
                    instance of type [unbound] (not function type)

                Variable Expression: ?{}: pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                ... returning nothing

                ... with resolved type:
                  pointer to function
                  ... with parameters
                    reference to instance of type [unbound] (not function type)
                  ... returning nothing

                Variable Expression: ?{}: pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                  instance of type T (not function type)
                ... returning nothing

                ... with resolved type:
                  pointer to function
                  ... with parameters
                    reference to instance of type [unbound] (not function type)
                    instance of type [unbound] (not function type)
                  ... returning nothing

                Variable Expression: ^?{}: pointer to function
                ... with parameters
                  reference to instance of type T (not function type)
                ... returning nothing

                ... with resolved type:
                  pointer to function
                  ... with parameters
                    reference to instance of type [unbound] (not function type)
                  ... returning nothing

                function
              ... with parameters
                pointer to instance of type [unbound] (not function type)
              ... returning nothing

            ... to arguments
            Variable Expression: z: pointer to instance of type T (not function type)
            ... with resolved type:
              pointer to instance of type T (not function type)
          with 1 pending inference slots

          ... with resolved type:
            void
        (types:
          void
        )
        Environment:([unbound]T) -> instance of type T (not function type) (no widening)

      Could not satisfy assertion:
Variable Expression: ?=?: pointer to function
        ... with parameters
          reference to instance of type T (not function type)
          instance of type T (not function type)
        ... returning
          instance of type T (not function type)

        ... with resolved type:
          pointer to function
          ... with parameters
            reference to instance of type [unbound] (not function type)
            instance of type [unbound] (not function type)
          ... returning
            instance of type [unbound] (not function type)

