free-monad-like DSL for finite complete cats
(initial support, doesn't work totally due to https://github.com/idris-lang/Idris-dev/issues/1757 bug in Idris )