a=alengthV0c0Aa>=c0alengthV0Aa=alengthaNilc0LaNil
VC for queue
a=alengtharearV0alenrV0Aa>=alenfV0alengtharearV0Aa=alengthafrontV0alenfV0FalenrV0arearV0alenfV0afrontV0
a=asequenceV3aNilIa=alenrV3c0Aa=arearV3V1Aa=alenfV3c0Aa=afrontV3V2FAa=alengthV1c0Aa>=c0alengthV1Aa=alengthV2c0LaNilLaNil
VC for empty
a=asequenceaemptyaNil
a=ahdasequenceV1aSomeV3ICa=V3V4aConsVwfwV2FACtaConsVwfwV2LafrontV1INa=asequenceV1aNilF
VC for head
a=asequenceV5a++V1areverseV3Iia=alenrV5c0Aa=arearV5aNilAa=alenfV5a+V2V4Aa=afrontV5a++V1areverseV3a=alenrV5V4Aa=arearV5V3Aa=alenfV5V2Aa=afrontV5V1a>=V2V4FAia=alengthV6c0Aa>=V7alengthV6Aa=alengtha++V1areverseV3V7La+V2V4LaNila=alengthV3V4Aa>=V2alengthV3Aa=alengthV1V2a>=V2V4Ia=V4alengthV3Aa=V2alengthV1F
VC for create
a=atlasequenceV1aSomeasequenceV3ICa=asequenceV3a++V4areversearearV1aConswVfwV2FACa=alenrV1alengtharearV1Aa=a-alenfV1c1alengthV5aConswVfwV2LafrontV1INa=asequenceV1aNilF
VC for tail
a=asequenceV5a++asequenceV2aConsV1aNilIa=asequenceV5a++V4areverseV3FAa=a+alenrV2c1alengthV3Aa=alenfV2alengthV4LafrontV2LaConsV1arearV2F
VC for enqueue

b2706e5cafc7aff3704c7c7db9f32e03 1H0
ecee0cf4111ca5053108556df9021086 4H3H2
e82c4ece3a0e4ecb8bf87ede21fa3393 7H6H5H2
d6c9529443bdccc466f279500601dddb 9H8H5H2
4a1f2d2c7217ebdb4e9f70fc0d3c1a52 11H10H5H2
102e8d3ebcfffc19a9918bd665b2f156 13H12H5H2
