#90 Add Cons and Snoc + refactor Prism and Optional constructor