Separate Analysis module
Type-encode normal forms