Programatica Tools for Certifiable , Auditable Development of High-assurance Systems in Haskell