Defined data types for antichain
Functor is good idea