merging trailing [opt] as [optchain]s. Trying to solve 'self' references in modules