Pointfree version