import { Add, Assoc0, Commutativity, Identity } from './index'; import { ApplyRewrite, ChainRewrites, Flip } from './util'; type Eq = ([a] extends [b] ? ([b] extends [a] ? true : false & { a: a; b: b }) : false & { a: a; b: b }); type assert = T; export type _testCases = { Identity: [ assert>, Identity<'B'>>, Add<'A', 'B'> >>, assert, '0'>, Identity>>, Add<'A', 'B'> >>, assert, Flip>>>, Add, '0'> >>, assert>>, Identity<'C'>>, Add<'A', Add<'B', 'C'>> >>, ], Commutativity: [ assert, Commutativity<'A', 'B'>>, Add<'B', 'A'> >>, assert, 'C'>, Commutativity<'A', 'B'>>, Add, 'C'> >>, assert>, Commutativity<'B', 'C'>>, Add<'A', Add<'C', 'B'>> >>, ], ChainRewrites: [ assert, Identity<'B'>, ], Add, 'C'> >, Add<'B', 'C'> >>, assert, Identity<'B'>, Flip>>, Commutativity, '0'>, ], Add, 'C'> >, Add<'0', Add<'B', 'C'>> >>, ], Assoc0: [ assert, 'C'>, Assoc0<'B', 'C'>>, Add<'0', Add<'B', 'C'>> >>, assert>, 'C'>, Assoc0, 'C'>>, Add<'0', Add, 'C'>> >>, ], };