// Path: src/main/java/org/elmlang/intellijplugin/psi/ElmLowerCasePath.java
// public interface ElmLowerCasePath extends PsiElement {
// }
// 
// Path: src/main/java/org/elmlang/intellijplugin/psi/references/ElmReference.java
// public interface ElmReference extends PsiReference {
//     ElmReference referenceInAncestor(PsiElement ancestor);
// 
//     PsiElement getReferencingElement();
// 
//     ElmReferenceTarget getTarget();
// }
// 
// Path: src/main/java/org/elmlang/intellijplugin/psi/references/ElmValueReference.java
// public class ElmValueReference extends ElmReferenceBase<ElmLowerCaseId> {
// 
//     public ElmValueReference(ElmLowerCaseId element) {
//         super(element);
//     }
// 
//     private ElmValueReference(PsiElement element, ElmLowerCaseId referencingElement, TextRange rangeInElement) {
//         super(element, referencingElement, rangeInElement);
//     }
// 
//     @Override
//     protected Function3<PsiElement, ElmLowerCaseId, TextRange, ElmReference> constructor() {
//         return ElmValueReference::new;
//     }
// 
//     @Nullable
//     @Override
//     public PsiElement resolve() {
//         return ElmScope.scopeFor(this.referencingElement)
//                 .filter(this::theSameNameOrEmpty)
//                 .findFirst()
//                 .map(o -> o.orElse(null))
//                 .orElse(null);
//     }
// }


import com.intellij.lang.ASTNode;
import org.elmlang.intellijplugin.psi.ElmLowerCaseId;
import org.elmlang.intellijplugin.psi.ElmLowerCasePath;
import org.elmlang.intellijplugin.psi.references.ElmReference;
import org.elmlang.intellijplugin.psi.references.ElmValueReference;
import java.util.Arrays;
import java.util.stream.Stream;
package org.elmlang.intellijplugin.psi.impl;



public class ElmLowerCasePathImpl extends ElmPsiElement implements ElmLowerCasePath {
    public ElmLowerCasePathImpl(ASTNode node) {
        super(node);
    }

    public Stream<ElmReference> getReferencesStream() {
// Path: src/main/java/org/elmlang/intellijplugin/psi/ElmLowerCasePath.java
// public interface ElmLowerCasePath extends PsiElement {
// }
// 
// Path: src/main/java/org/elmlang/intellijplugin/psi/references/ElmReference.java
// public interface ElmReference extends PsiReference {
//     ElmReference referenceInAncestor(PsiElement ancestor);
// 
//     PsiElement getReferencingElement();
// 
//     ElmReferenceTarget getTarget();
// }
// 
// Path: src/main/java/org/elmlang/intellijplugin/psi/references/ElmValueReference.java
// public class ElmValueReference extends ElmReferenceBase<ElmLowerCaseId> {
// 
//     public ElmValueReference(ElmLowerCaseId element) {
//         super(element);
//     }
// 
//     private ElmValueReference(PsiElement element, ElmLowerCaseId referencingElement, TextRange rangeInElement) {
//         super(element, referencingElement, rangeInElement);
//     }
// 
//     @Override
//     protected Function3<PsiElement, ElmLowerCaseId, TextRange, ElmReference> constructor() {
//         return ElmValueReference::new;
//     }
// 
//     @Nullable
//     @Override
//     public PsiElement resolve() {
//         return ElmScope.scopeFor(this.referencingElement)
//                 .filter(this::theSameNameOrEmpty)
//                 .findFirst()
//                 .map(o -> o.orElse(null))
//                 .orElse(null);
//     }
// }


// Path: src/main/java/org/elmlang/intellijplugin/psi/impl/ElmLowerCasePathImpl.java
import com.intellij.lang.ASTNode;
import org.elmlang.intellijplugin.psi.ElmLowerCaseId;
import org.elmlang.intellijplugin.psi.ElmLowerCasePath;
import org.elmlang.intellijplugin.psi.references.ElmReference;
import org.elmlang.intellijplugin.psi.references.ElmValueReference;
import java.util.Arrays;
import java.util.stream.Stream;

package org.elmlang.intellijplugin.psi.impl;



public class ElmLowerCasePathImpl extends ElmPsiElement implements ElmLowerCasePath {
    public ElmLowerCasePathImpl(ASTNode node) {
        super(node);
    }

    public Stream<ElmReference> getReferencesStream() {
        return Arrays.stream(this.getChildren())