fix expm, add a couple more functions
modify GADT to avoid nonsense units