I want to use the Functional API to create a custom layer that supports masking, meaning that it propagates a mask on the input tensor so that the output is also masked