/*
 * generated by Xtext 2.11.0
 */
package org.eclipse.osbp.xtext.functionlibrarydsl.scoping


/**
 * This class contains custom scoping description.
 * 
 * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping
 * on how and when to use it.
 */
class FunctionLibraryDslScopeProvider extends AbstractFunctionLibraryDslScopeProvider {

}
