-module(other). -ifdef(VERSION_1). -define(VERSION,1). -export([exp1/0]). -export([exp1loc2/0]). -export([exp1exp2/0]). exp1() -> check([loc1(),exp1loc2(),exp1exp2(),loc1exp2(),loc1loc2()]). loc1() -> check([exp1loc2(),exp1exp2(),loc1exp2(),loc1loc2()]). exp1loc2() -> check([exp1exp2(),loc1exp2(),loc1loc2()]). exp1exp2() -> check([loc1exp2(),loc1loc2()]). loc1exp2() -> check([loc1loc2()]). -endif. % VERSION_1 -ifdef(VERSION_2). -define(VERSION,2). -export([exp2/0]). -export([loc1exp2/0]). -export([exp1exp2/0]). loc1exp2() -> check([exp1exp2(),exp1loc2(),loc2(),exp2(),loc1loc2()]). exp1exp2() -> check([exp1loc2(),loc2(),exp2(),loc1loc2()]). exp1loc2() -> check([loc2(),exp2(),loc1loc2()]). loc2() -> check([exp2(),loc1loc2()]). exp2() -> check([loc1loc2()]). -endif. % VERSION_2 loc1loc2() -> ?VERSION. check(VerList) -> case lists:all(fun(?VERSION) -> true; (_) -> false end, VerList) of true -> ?VERSION; false -> VerList end.