===================================
Constraint, formal with environment
===================================

module corpus_test_constraint is

  structure Outer is

    inner -> string is
      assert tagged_with_foo_path is
        with
          def foo -> string := "foo"
        for
          self.tags.contains(foo)
        end
      end
    end

  end

end

---

(module
  (identifier)
  (module_body
    (structure_def
      (identifier)
      (structure_body
        (member
          (member_def
            (identifier)
            (type_reference
              (builtin_types))
            (annotation_only_body
              (annotation
                (constraint
                  (identifier)
                  (formal_constraint
                    (constraint_sentence
                      (sentence_with_environment
                        (keyword_function_def
                          (function_def
                            (function_signature
                              (identifier)
                              (function_type_reference
                                (builtin_types)))
                            (function_body
                              (term
                                (predicate_value
                                  (simple_value
                                    (string
                                      (quoted_string))))))))
                        (constraint_sentence
                          (simple_sentence
                            (atomic_sentence
                              (term
                                (function_composition
                                  (reserved_self)
                                  (identifier)
                                  (identifier)))
                              (term
                                (identifier_reference
                                  (identifier))))))))))))))))))
