move types to separate file
proper and full types.mli